vulkan 3.17 → 3.21
raw patch · 618 files changed
+49723/−26063 lines, 618 files
Files
- changelog.md +21/−0
- package.yaml +1/−1
- src/Vulkan/CStruct/Extends.hs +232/−11
- src/Vulkan/Core10/APIConstants.hs +15/−6
- src/Vulkan/Core10/Buffer.hs +30/−14
- src/Vulkan/Core10/BufferView.hs +83/−48
- src/Vulkan/Core10/BufferView.hs-boot +9/−5
- src/Vulkan/Core10/CommandBuffer.hs +28/−24
- src/Vulkan/Core10/CommandBufferBuilding.hs +14617/−13588
- src/Vulkan/Core10/CommandPool.hs +12/−11
- src/Vulkan/Core10/DescriptorSet.hs +122/−60
- src/Vulkan/Core10/Device.hs +119/−58
- src/Vulkan/Core10/DeviceInitialization.hs +151/−127
- src/Vulkan/Core10/Enums/AccessFlagBits.hs +45/−45
- src/Vulkan/Core10/Enums/BorderColor.hs +1/−1
- src/Vulkan/Core10/Enums/BufferCreateFlagBits.hs +2/−2
- src/Vulkan/Core10/Enums/BufferUsageFlagBits.hs +5/−3
- src/Vulkan/Core10/Enums/ColorComponentFlagBits.hs +1/−1
- src/Vulkan/Core10/Enums/CommandBufferResetFlagBits.hs +1/−1
- src/Vulkan/Core10/Enums/CommandPoolCreateFlagBits.hs +1/−1
- src/Vulkan/Core10/Enums/CompareOp.hs +61/−9
- src/Vulkan/Core10/Enums/ComponentSwizzle.hs +1/−1
- src/Vulkan/Core10/Enums/DependencyFlagBits.hs +16/−9
- src/Vulkan/Core10/Enums/DescriptorSetLayoutCreateFlagBits.hs +1/−1
- src/Vulkan/Core10/Enums/DescriptorType.hs +29/−13
- src/Vulkan/Core10/Enums/DynamicState.hs +1/−1
- src/Vulkan/Core10/Enums/Filter.hs +6/−6
- src/Vulkan/Core10/Enums/Format.hs +2/−2
- src/Vulkan/Core10/Enums/FormatFeatureFlagBits.hs +74/−39
- src/Vulkan/Core10/Enums/ImageAspectFlagBits.hs +4/−2
- src/Vulkan/Core10/Enums/ImageCreateFlagBits.hs +21/−11
- src/Vulkan/Core10/Enums/ImageLayout.hs +62/−44
- src/Vulkan/Core10/Enums/ImageTiling.hs +2/−1
- src/Vulkan/Core10/Enums/ImageType.hs +1/−0
- src/Vulkan/Core10/Enums/ImageUsageFlagBits.hs +22/−4
- src/Vulkan/Core10/Enums/LogicOp.hs +1/−1
- src/Vulkan/Core10/Enums/MemoryPropertyFlagBits.hs +1/−1
- src/Vulkan/Core10/Enums/PipelineCacheCreateFlagBits.hs +1/−1
- src/Vulkan/Core10/Enums/PipelineColorBlendStateCreateFlagBits.hs +7/−7
- src/Vulkan/Core10/Enums/PipelineCreateFlagBits.hs +20/−4
- src/Vulkan/Core10/Enums/PipelineDepthStencilStateCreateFlagBits.hs +12/−12
- src/Vulkan/Core10/Enums/PipelineLayoutCreateFlagBits.hs +6/−10
- src/Vulkan/Core10/Enums/PipelineShaderStageCreateFlagBits.hs +5/−5
- src/Vulkan/Core10/Enums/PipelineStageFlagBits.hs +21/−20
- src/Vulkan/Core10/Enums/PrimitiveTopology.hs +30/−30
- src/Vulkan/Core10/Enums/QueryControlFlagBits.hs +1/−1
- src/Vulkan/Core10/Enums/QueryPipelineStatisticFlagBits.hs +32/−14
- src/Vulkan/Core10/Enums/QueryType.hs +52/−27
- src/Vulkan/Core10/Enums/QueueFlagBits.hs +3/−3
- src/Vulkan/Core10/Enums/RenderPassCreateFlagBits.hs +1/−1
- src/Vulkan/Core10/Enums/Result.hs +9/−2
- src/Vulkan/Core10/Enums/SampleCountFlagBits.hs +1/−0
- src/Vulkan/Core10/Enums/SamplerAddressMode.hs +1/−1
- src/Vulkan/Core10/Enums/SamplerCreateFlagBits.hs +18/−4
- src/Vulkan/Core10/Enums/SamplerMipmapMode.hs +1/−1
- src/Vulkan/Core10/Enums/ShaderStageFlagBits.hs +8/−8
- src/Vulkan/Core10/Enums/SharingMode.hs +2/−2
- src/Vulkan/Core10/Enums/StructureType.hs +389/−51
- src/Vulkan/Core10/Enums/SubpassDescriptionFlagBits.hs +21/−21
- src/Vulkan/Core10/Event.hs +88/−41
- src/Vulkan/Core10/Event.hs-boot +9/−5
- src/Vulkan/Core10/ExtensionDiscovery.hs +10/−4
- src/Vulkan/Core10/Fence.hs +17/−17
- src/Vulkan/Core10/FuncPointers.hs +2/−2
- src/Vulkan/Core10/FundamentalTypes.hs +43/−12
- src/Vulkan/Core10/FundamentalTypes.hs-boot +6/−1
- src/Vulkan/Core10/Handles.hs +28/−4
- src/Vulkan/Core10/Image.hs +271/−94
- src/Vulkan/Core10/ImageView.hs +257/−87
- src/Vulkan/Core10/LayerDiscovery.hs +9/−2
- src/Vulkan/Core10/Memory.hs +42/−21
- src/Vulkan/Core10/MemoryManagement.hs +3/−2
- src/Vulkan/Core10/OtherTypes.hs +76/−51
- src/Vulkan/Core10/Pass.hs +308/−156
- src/Vulkan/Core10/Pipeline.hs +5868/−5589
- src/Vulkan/Core10/PipelineCache.hs +5/−5
- src/Vulkan/Core10/PipelineLayout.hs +14/−11
- src/Vulkan/Core10/Query.hs +96/−60
- src/Vulkan/Core10/Queue.hs +65/−62
- src/Vulkan/Core10/QueueSemaphore.hs +19/−3
- src/Vulkan/Core10/Sampler.hs +73/−24
- src/Vulkan/Core10/Shader.hs +22/−14
- src/Vulkan/Core10/SparseResourceMemoryManagement.hs +19/−18
- src/Vulkan/Core11/Enums/ExternalMemoryHandleTypeFlagBits.hs +1/−1
- src/Vulkan/Core11/Enums/FenceImportFlagBits.hs +1/−1
- src/Vulkan/Core11/Enums/PeerMemoryFeatureFlagBits.hs +1/−1
- src/Vulkan/Core11/Enums/SamplerYcbcrModelConversion.hs +3/−3
- src/Vulkan/Core11/Enums/SamplerYcbcrRange.hs +2/−2
- src/Vulkan/Core11/Enums/SemaphoreImportFlagBits.hs +1/−1
- src/Vulkan/Core11/Enums/TessellationDomainOrigin.hs +2/−2
- src/Vulkan/Core11/Originally_Based_On_VK_KHR_protected_memory.hs +38/−7
- src/Vulkan/Core11/Originally_Based_On_VK_KHR_subgroup.hs +6/−6
- src/Vulkan/Core11/Promoted_From_VK_KHR_bind_memory2.hs +2/−2
- src/Vulkan/Core11/Promoted_From_VK_KHR_descriptor_update_template.hs +9/−8
- src/Vulkan/Core11/Promoted_From_VK_KHR_device_group.hs +138/−48
- src/Vulkan/Core11/Promoted_From_VK_KHR_external_memory.hs +3/−3
- src/Vulkan/Core11/Promoted_From_VK_KHR_external_memory_capabilities.hs +3/−3
- src/Vulkan/Core11/Promoted_From_VK_KHR_get_memory_requirements2.hs +0/−1
- src/Vulkan/Core11/Promoted_From_VK_KHR_get_physical_device_properties2.hs +93/−14
- src/Vulkan/Core11/Promoted_From_VK_KHR_multiview.hs +7/−6
- src/Vulkan/Core11/Promoted_From_VK_KHR_sampler_ycbcr_conversion.hs +25/−25
- src/Vulkan/Core12.hs +21/−20
- src/Vulkan/Core12/Enums/DescriptorBindingFlagBits.hs +8/−3
- src/Vulkan/Core12/Enums/DriverId.hs +6/−1
- src/Vulkan/Core12/Enums/SamplerReductionMode.hs +1/−1
- src/Vulkan/Core12/Enums/SemaphoreType.hs +1/−1
- src/Vulkan/Core12/Promoted_From_VK_EXT_descriptor_indexing.hs +2/−2
- src/Vulkan/Core12/Promoted_From_VK_EXT_host_query_reset.hs +1/−1
- src/Vulkan/Core12/Promoted_From_VK_EXT_sampler_filter_minmax.hs +1/−1
- src/Vulkan/Core12/Promoted_From_VK_EXT_scalar_block_layout.hs +1/−1
- src/Vulkan/Core12/Promoted_From_VK_KHR_buffer_device_address.hs +12/−8
- src/Vulkan/Core12/Promoted_From_VK_KHR_create_renderpass2.hs +429/−220
- src/Vulkan/Core12/Promoted_From_VK_KHR_depth_stencil_resolve.hs +83/−7
- src/Vulkan/Core12/Promoted_From_VK_KHR_draw_indirect_count.hs +376/−116
- src/Vulkan/Core12/Promoted_From_VK_KHR_imageless_framebuffer.hs +8/−0
- src/Vulkan/Core12/Promoted_From_VK_KHR_shader_atomic_int64.hs +1/−1
- src/Vulkan/Core12/Promoted_From_VK_KHR_shader_subgroup_extended_types.hs +2/−2
- src/Vulkan/Core12/Promoted_From_VK_KHR_timeline_semaphore.hs +5/−5
- src/Vulkan/Core12/Promoted_From_VK_KHR_uniform_buffer_standard_layout.hs +1/−1
- src/Vulkan/Core12/Promoted_From_VK_KHR_vulkan_memory_model.hs +2/−2
- src/Vulkan/Core13.hs +4/−4
- src/Vulkan/Core13/Enums/AccessFlags2.hs +43/−38
- src/Vulkan/Core13/Enums/FormatFeatureFlags2.hs +145/−45
- src/Vulkan/Core13/Enums/PipelineCreationFeedbackFlagBits.hs +3/−3
- src/Vulkan/Core13/Enums/PipelineStageFlags2.hs +34/−25
- src/Vulkan/Core13/Enums/ToolPurposeFlagBits.hs +4/−4
- src/Vulkan/Core13/Promoted_From_VK_EXT_extended_dynamic_state.hs +118/−78
- src/Vulkan/Core13/Promoted_From_VK_EXT_extended_dynamic_state2.hs +27/−18
- src/Vulkan/Core13/Promoted_From_VK_EXT_image_robustness.hs +2/−2
- src/Vulkan/Core13/Promoted_From_VK_EXT_inline_uniform_block.hs +1/−1
- src/Vulkan/Core13/Promoted_From_VK_EXT_private_data.hs +4/−4
- src/Vulkan/Core13/Promoted_From_VK_EXT_subgroup_size_control.hs +7/−7
- src/Vulkan/Core13/Promoted_From_VK_EXT_texel_buffer_alignment.hs +1/−3
- src/Vulkan/Core13/Promoted_From_VK_KHR_copy_commands2.hs +122/−88
- src/Vulkan/Core13/Promoted_From_VK_KHR_dynamic_rendering.hs +132/−59
- src/Vulkan/Core13/Promoted_From_VK_KHR_maintenance4.hs +12/−1
- src/Vulkan/Core13/Promoted_From_VK_KHR_shader_integer_dot_product.hs +31/−32
- src/Vulkan/Core13/Promoted_From_VK_KHR_synchronization2.hs +438/−306
- src/Vulkan/Dynamic.hs +48/−7
- src/Vulkan/Exception.hs +2/−1
- src/Vulkan/Extensions.hs +40/−0
- src/Vulkan/Extensions/Dependencies.hs +67/−12
- src/Vulkan/Extensions/VK_AMD_buffer_marker.hs +25/−19
- src/Vulkan/Extensions/VK_AMD_device_coherent_memory.hs +2/−2
- src/Vulkan/Extensions/VK_AMD_device_coherent_memory.hs-boot +2/−2
- src/Vulkan/Extensions/VK_AMD_display_native_hdr.hs +9/−6
- src/Vulkan/Extensions/VK_AMD_display_native_hdr.hs-boot +8/−5
- src/Vulkan/Extensions/VK_AMD_draw_indirect_count.hs +2/−2
- src/Vulkan/Extensions/VK_AMD_gcn_shader.hs +3/−3
- src/Vulkan/Extensions/VK_AMD_gpu_shader_half_float.hs +3/−3
- src/Vulkan/Extensions/VK_AMD_gpu_shader_int16.hs +3/−3
- src/Vulkan/Extensions/VK_AMD_memory_overallocation_behavior.hs +2/−2
- src/Vulkan/Extensions/VK_AMD_memory_overallocation_behavior.hs-boot +2/−2
- src/Vulkan/Extensions/VK_AMD_mixed_attachment_samples.hs +2/−2
- src/Vulkan/Extensions/VK_AMD_negative_viewport_height.hs +2/−2
- src/Vulkan/Extensions/VK_AMD_pipeline_compiler_control.hs +2/−2
- src/Vulkan/Extensions/VK_AMD_pipeline_compiler_control.hs-boot +2/−2
- src/Vulkan/Extensions/VK_AMD_rasterization_order.hs +4/−4
- src/Vulkan/Extensions/VK_AMD_rasterization_order.hs-boot +2/−2
- src/Vulkan/Extensions/VK_AMD_shader_ballot.hs +3/−3
- src/Vulkan/Extensions/VK_AMD_shader_core_properties.hs +4/−3
- src/Vulkan/Extensions/VK_AMD_shader_core_properties.hs-boot +4/−3
- src/Vulkan/Extensions/VK_AMD_shader_core_properties2.hs +4/−3
- src/Vulkan/Extensions/VK_AMD_shader_core_properties2.hs-boot +4/−3
- src/Vulkan/Extensions/VK_AMD_shader_early_and_late_fragment_tests.hs +207/−0
- src/Vulkan/Extensions/VK_AMD_shader_early_and_late_fragment_tests.hs-boot +107/−0
- src/Vulkan/Extensions/VK_AMD_shader_explicit_vertex_parameter.hs +3/−3
- src/Vulkan/Extensions/VK_AMD_shader_fragment_mask.hs +3/−3
- src/Vulkan/Extensions/VK_AMD_shader_image_load_store_lod.hs +3/−3
- src/Vulkan/Extensions/VK_AMD_shader_info.hs +3/−3
- src/Vulkan/Extensions/VK_AMD_shader_info.hs-boot +2/−2
- src/Vulkan/Extensions/VK_AMD_shader_trinary_minmax.hs +3/−3
- src/Vulkan/Extensions/VK_AMD_texture_gather_bias_lod.hs +6/−5
- src/Vulkan/Extensions/VK_AMD_texture_gather_bias_lod.hs-boot +6/−5
- src/Vulkan/Extensions/VK_ANDROID_external_memory_android_hardware_buffer.hs +17/−13
- src/Vulkan/Extensions/VK_ANDROID_external_memory_android_hardware_buffer.hs-boot +10/−6
- src/Vulkan/Extensions/VK_ARM_rasterization_order_attachment_access.hs +69/−127
- src/Vulkan/Extensions/VK_ARM_rasterization_order_attachment_access.hs-boot +0/−155
- src/Vulkan/Extensions/VK_EXT_4444_formats.hs +4/−3
- src/Vulkan/Extensions/VK_EXT_4444_formats.hs-boot +4/−3
- src/Vulkan/Extensions/VK_EXT_acquire_drm_display.hs +3/−3
- src/Vulkan/Extensions/VK_EXT_acquire_xlib_display.hs +4/−4
- src/Vulkan/Extensions/VK_EXT_acquire_xlib_display.hs-boot +3/−3
- src/Vulkan/Extensions/VK_EXT_astc_decode_mode.hs +6/−5
- src/Vulkan/Extensions/VK_EXT_astc_decode_mode.hs-boot +4/−3
- src/Vulkan/Extensions/VK_EXT_attachment_feedback_loop_layout.hs +227/−0
- src/Vulkan/Extensions/VK_EXT_attachment_feedback_loop_layout.hs-boot +139/−0
- src/Vulkan/Extensions/VK_EXT_blend_operation_advanced.hs +11/−8
- src/Vulkan/Extensions/VK_EXT_blend_operation_advanced.hs-boot +5/−2
- src/Vulkan/Extensions/VK_EXT_border_color_swizzle.hs +7/−6
- src/Vulkan/Extensions/VK_EXT_border_color_swizzle.hs-boot +4/−3
- src/Vulkan/Extensions/VK_EXT_buffer_device_address.hs +5/−4
- src/Vulkan/Extensions/VK_EXT_buffer_device_address.hs-boot +5/−4
- src/Vulkan/Extensions/VK_EXT_calibrated_timestamps.hs +7/−6
- src/Vulkan/Extensions/VK_EXT_calibrated_timestamps.hs-boot +5/−4
- src/Vulkan/Extensions/VK_EXT_color_write_enable.hs +17/−13
- src/Vulkan/Extensions/VK_EXT_color_write_enable.hs-boot +4/−3
- src/Vulkan/Extensions/VK_EXT_conditional_rendering.hs +25/−19
- src/Vulkan/Extensions/VK_EXT_conditional_rendering.hs-boot +2/−2
- src/Vulkan/Extensions/VK_EXT_conservative_rasterization.hs +28/−4
- src/Vulkan/Extensions/VK_EXT_conservative_rasterization.hs-boot +5/−4
- src/Vulkan/Extensions/VK_EXT_custom_border_color.hs +5/−5
- src/Vulkan/Extensions/VK_EXT_custom_border_color.hs-boot +2/−2
- src/Vulkan/Extensions/VK_EXT_debug_marker.hs +33/−23
- src/Vulkan/Extensions/VK_EXT_debug_marker.hs-boot +4/−3
- src/Vulkan/Extensions/VK_EXT_debug_report.hs +6/−6
- src/Vulkan/Extensions/VK_EXT_debug_report.hs-boot +2/−2
- src/Vulkan/Extensions/VK_EXT_debug_utils.hs +51/−42
- src/Vulkan/Extensions/VK_EXT_debug_utils.hs-boot +2/−2
- src/Vulkan/Extensions/VK_EXT_depth_clamp_zero_one.hs +189/−0
- src/Vulkan/Extensions/VK_EXT_depth_clamp_zero_one.hs-boot +92/−0
- src/Vulkan/Extensions/VK_EXT_depth_clip_control.hs +16/−16
- src/Vulkan/Extensions/VK_EXT_depth_clip_control.hs-boot +14/−13
- src/Vulkan/Extensions/VK_EXT_depth_clip_enable.hs +3/−3
- src/Vulkan/Extensions/VK_EXT_depth_clip_enable.hs-boot +2/−2
- src/Vulkan/Extensions/VK_EXT_depth_range_unrestricted.hs +9/−6
- src/Vulkan/Extensions/VK_EXT_descriptor_indexing.hs +6/−4
- src/Vulkan/Extensions/VK_EXT_device_memory_report.hs +5/−4
- src/Vulkan/Extensions/VK_EXT_device_memory_report.hs-boot +4/−3
- src/Vulkan/Extensions/VK_EXT_direct_mode_display.hs +3/−3
- src/Vulkan/Extensions/VK_EXT_directfb_surface.hs +4/−4
- src/Vulkan/Extensions/VK_EXT_directfb_surface.hs-boot +3/−3
- src/Vulkan/Extensions/VK_EXT_discard_rectangles.hs +13/−9
- src/Vulkan/Extensions/VK_EXT_discard_rectangles.hs-boot +4/−3
- src/Vulkan/Extensions/VK_EXT_display_control.hs +8/−6
- src/Vulkan/Extensions/VK_EXT_display_control.hs-boot +6/−4
- src/Vulkan/Extensions/VK_EXT_display_surface_counter.hs +4/−4
- src/Vulkan/Extensions/VK_EXT_display_surface_counter.hs-boot +3/−3
- src/Vulkan/Extensions/VK_EXT_extended_dynamic_state.hs +4/−3
- src/Vulkan/Extensions/VK_EXT_extended_dynamic_state.hs-boot +4/−3
- src/Vulkan/Extensions/VK_EXT_extended_dynamic_state2.hs +24/−17
- src/Vulkan/Extensions/VK_EXT_extended_dynamic_state2.hs-boot +4/−3
- src/Vulkan/Extensions/VK_EXT_external_memory_dma_buf.hs +8/−7
- src/Vulkan/Extensions/VK_EXT_external_memory_host.hs +5/−4
- src/Vulkan/Extensions/VK_EXT_external_memory_host.hs-boot +4/−3
- src/Vulkan/Extensions/VK_EXT_filter_cubic.hs +5/−18
- src/Vulkan/Extensions/VK_EXT_filter_cubic.hs-boot +4/−4
- src/Vulkan/Extensions/VK_EXT_fragment_density_map.hs +10/−9
- src/Vulkan/Extensions/VK_EXT_fragment_density_map.hs-boot +7/−6
- src/Vulkan/Extensions/VK_EXT_fragment_density_map2.hs +12/−62
- src/Vulkan/Extensions/VK_EXT_fragment_density_map2.hs-boot +11/−61
- src/Vulkan/Extensions/VK_EXT_fragment_shader_interlock.hs +8/−7
- src/Vulkan/Extensions/VK_EXT_fragment_shader_interlock.hs-boot +8/−7
- src/Vulkan/Extensions/VK_EXT_full_screen_exclusive.hs +10/−6
- src/Vulkan/Extensions/VK_EXT_full_screen_exclusive.hs-boot +10/−6
- src/Vulkan/Extensions/VK_EXT_global_priority.hs +2/−2
- src/Vulkan/Extensions/VK_EXT_global_priority_query.hs +6/−4
- src/Vulkan/Extensions/VK_EXT_graphics_pipeline_library.hs +14/−12
- src/Vulkan/Extensions/VK_EXT_graphics_pipeline_library.hs-boot +7/−5
- src/Vulkan/Extensions/VK_EXT_hdr_metadata.hs +4/−3
- src/Vulkan/Extensions/VK_EXT_hdr_metadata.hs-boot +4/−3
- src/Vulkan/Extensions/VK_EXT_headless_surface.hs +4/−4
- src/Vulkan/Extensions/VK_EXT_headless_surface.hs-boot +3/−3
- src/Vulkan/Extensions/VK_EXT_host_query_reset.hs +4/−3
- src/Vulkan/Extensions/VK_EXT_image_2d_view_of_3d.hs +241/−0
- src/Vulkan/Extensions/VK_EXT_image_2d_view_of_3d.hs-boot +127/−0
- src/Vulkan/Extensions/VK_EXT_image_compression_control.hs +1006/−0
- src/Vulkan/Extensions/VK_EXT_image_compression_control.hs-boot +204/−0
- src/Vulkan/Extensions/VK_EXT_image_compression_control_swapchain.hs +208/−0
- src/Vulkan/Extensions/VK_EXT_image_compression_control_swapchain.hs-boot +107/−0
- src/Vulkan/Extensions/VK_EXT_image_drm_format_modifier.hs +34/−30
- src/Vulkan/Extensions/VK_EXT_image_drm_format_modifier.hs-boot +30/−26
- src/Vulkan/Extensions/VK_EXT_image_robustness.hs +6/−5
- src/Vulkan/Extensions/VK_EXT_image_view_min_lod.hs +10/−9
- src/Vulkan/Extensions/VK_EXT_image_view_min_lod.hs-boot +6/−5
- src/Vulkan/Extensions/VK_EXT_index_type_uint8.hs +2/−2
- src/Vulkan/Extensions/VK_EXT_index_type_uint8.hs-boot +2/−2
- src/Vulkan/Extensions/VK_EXT_inline_uniform_block.hs +8/−6
- src/Vulkan/Extensions/VK_EXT_line_rasterization.hs +32/−31
- src/Vulkan/Extensions/VK_EXT_line_rasterization.hs-boot +4/−3
- src/Vulkan/Extensions/VK_EXT_load_store_op_none.hs +2/−2
- src/Vulkan/Extensions/VK_EXT_memory_budget.hs +4/−3
- src/Vulkan/Extensions/VK_EXT_memory_budget.hs-boot +4/−3
- src/Vulkan/Extensions/VK_EXT_memory_priority.hs +4/−3
- src/Vulkan/Extensions/VK_EXT_memory_priority.hs-boot +4/−3
- src/Vulkan/Extensions/VK_EXT_mesh_shader.hs +4009/−0
- src/Vulkan/Extensions/VK_EXT_mesh_shader.hs-boot +286/−0
- src/Vulkan/Extensions/VK_EXT_metal_objects.hs +1423/−0
- src/Vulkan/Extensions/VK_EXT_metal_objects.hs-boot +319/−0
- src/Vulkan/Extensions/VK_EXT_metal_surface.hs +4/−4
- src/Vulkan/Extensions/VK_EXT_metal_surface.hs-boot +3/−3
- src/Vulkan/Extensions/VK_EXT_multi_draw.hs +381/−122
- src/Vulkan/Extensions/VK_EXT_multi_draw.hs-boot +2/−2
- src/Vulkan/Extensions/VK_EXT_multisampled_render_to_single_sampled.hs +448/−0
- src/Vulkan/Extensions/VK_EXT_multisampled_render_to_single_sampled.hs-boot +209/−0
- src/Vulkan/Extensions/VK_EXT_non_seamless_cube_map.hs +210/−0
- src/Vulkan/Extensions/VK_EXT_non_seamless_cube_map.hs-boot +112/−0
- src/Vulkan/Extensions/VK_EXT_pageable_device_local_memory.hs +4/−3
- src/Vulkan/Extensions/VK_EXT_pageable_device_local_memory.hs-boot +4/−3
- src/Vulkan/Extensions/VK_EXT_pci_bus_info.hs +4/−3
- src/Vulkan/Extensions/VK_EXT_pci_bus_info.hs-boot +4/−3
- src/Vulkan/Extensions/VK_EXT_physical_device_drm.hs +6/−5
- src/Vulkan/Extensions/VK_EXT_physical_device_drm.hs-boot +6/−5
- src/Vulkan/Extensions/VK_EXT_pipeline_creation_cache_control.hs +3/−3
- src/Vulkan/Extensions/VK_EXT_pipeline_creation_feedback.hs +2/−2
- src/Vulkan/Extensions/VK_EXT_pipeline_properties.hs +434/−0
- src/Vulkan/Extensions/VK_EXT_pipeline_properties.hs-boot +177/−0
- src/Vulkan/Extensions/VK_EXT_pipeline_robustness.hs +674/−0
- src/Vulkan/Extensions/VK_EXT_pipeline_robustness.hs-boot +164/−0
- src/Vulkan/Extensions/VK_EXT_post_depth_coverage.hs +10/−11
- src/Vulkan/Extensions/VK_EXT_primitive_topology_list_restart.hs +3/−5
- src/Vulkan/Extensions/VK_EXT_primitive_topology_list_restart.hs-boot +2/−2
- src/Vulkan/Extensions/VK_EXT_primitives_generated_query.hs +13/−12
- src/Vulkan/Extensions/VK_EXT_primitives_generated_query.hs-boot +11/−10
- src/Vulkan/Extensions/VK_EXT_private_data.hs +25/−2
- src/Vulkan/Extensions/VK_EXT_provoking_vertex.hs +13/−13
- src/Vulkan/Extensions/VK_EXT_provoking_vertex.hs-boot +4/−3
- src/Vulkan/Extensions/VK_EXT_queue_family_foreign.hs +4/−3
- src/Vulkan/Extensions/VK_EXT_rasterization_order_attachment_access.hs +256/−0
- src/Vulkan/Extensions/VK_EXT_rasterization_order_attachment_access.hs-boot +136/−0
- src/Vulkan/Extensions/VK_EXT_rgba10x6_formats.hs +7/−7
- src/Vulkan/Extensions/VK_EXT_rgba10x6_formats.hs-boot +5/−4
- src/Vulkan/Extensions/VK_EXT_robustness2.hs +22/−18
- src/Vulkan/Extensions/VK_EXT_robustness2.hs-boot +4/−4
- src/Vulkan/Extensions/VK_EXT_sample_locations.hs +13/−9
- src/Vulkan/Extensions/VK_EXT_sample_locations.hs-boot +4/−3
- src/Vulkan/Extensions/VK_EXT_sampler_filter_minmax.hs +4/−3
- src/Vulkan/Extensions/VK_EXT_scalar_block_layout.hs +4/−3
- src/Vulkan/Extensions/VK_EXT_separate_stencil_usage.hs +2/−2
- src/Vulkan/Extensions/VK_EXT_shader_atomic_float.hs +10/−9
- src/Vulkan/Extensions/VK_EXT_shader_atomic_float.hs-boot +6/−5
- src/Vulkan/Extensions/VK_EXT_shader_atomic_float2.hs +13/−12
- src/Vulkan/Extensions/VK_EXT_shader_atomic_float2.hs-boot +8/−7
- src/Vulkan/Extensions/VK_EXT_shader_demote_to_helper_invocation.hs +6/−5
- src/Vulkan/Extensions/VK_EXT_shader_image_atomic_int64.hs +4/−3
- src/Vulkan/Extensions/VK_EXT_shader_image_atomic_int64.hs-boot +4/−3
- src/Vulkan/Extensions/VK_EXT_shader_module_identifier.hs +708/−0
- src/Vulkan/Extensions/VK_EXT_shader_module_identifier.hs-boot +195/−0
- src/Vulkan/Extensions/VK_EXT_shader_stencil_export.hs +3/−3
- src/Vulkan/Extensions/VK_EXT_shader_subgroup_ballot.hs +12/−12
- src/Vulkan/Extensions/VK_EXT_shader_subgroup_vote.hs +4/−4
- src/Vulkan/Extensions/VK_EXT_shader_viewport_index_layer.hs +13/−13
- src/Vulkan/Extensions/VK_EXT_subgroup_size_control.hs +6/−6
- src/Vulkan/Extensions/VK_EXT_subpass_merge_feedback.hs +684/−0
- src/Vulkan/Extensions/VK_EXT_subpass_merge_feedback.hs-boot +187/−0
- src/Vulkan/Extensions/VK_EXT_swapchain_colorspace.hs +3/−3
- src/Vulkan/Extensions/VK_EXT_texel_buffer_alignment.hs +4/−3
- src/Vulkan/Extensions/VK_EXT_texel_buffer_alignment.hs-boot +4/−3
- src/Vulkan/Extensions/VK_EXT_texture_compression_astc_hdr.hs +5/−4
- src/Vulkan/Extensions/VK_EXT_tooling_info.hs +2/−2
- src/Vulkan/Extensions/VK_EXT_transform_feedback.hs +315/−101
- src/Vulkan/Extensions/VK_EXT_transform_feedback.hs-boot +5/−4
- src/Vulkan/Extensions/VK_EXT_validation_cache.hs +6/−5
- src/Vulkan/Extensions/VK_EXT_validation_cache.hs-boot +4/−3
- src/Vulkan/Extensions/VK_EXT_validation_features.hs +2/−2
- src/Vulkan/Extensions/VK_EXT_validation_features.hs-boot +2/−2
- src/Vulkan/Extensions/VK_EXT_validation_flags.hs +2/−2
- src/Vulkan/Extensions/VK_EXT_validation_flags.hs-boot +2/−2
- src/Vulkan/Extensions/VK_EXT_vertex_attribute_divisor.hs +5/−4
- src/Vulkan/Extensions/VK_EXT_vertex_attribute_divisor.hs-boot +4/−3
- src/Vulkan/Extensions/VK_EXT_vertex_input_dynamic_state.hs +18/−14
- src/Vulkan/Extensions/VK_EXT_vertex_input_dynamic_state.hs-boot +4/−3
- src/Vulkan/Extensions/VK_EXT_ycbcr_2plane_444_formats.hs +4/−3
- src/Vulkan/Extensions/VK_EXT_ycbcr_2plane_444_formats.hs-boot +4/−3
- src/Vulkan/Extensions/VK_EXT_ycbcr_image_arrays.hs +6/−5
- src/Vulkan/Extensions/VK_EXT_ycbcr_image_arrays.hs-boot +5/−4
- src/Vulkan/Extensions/VK_FUCHSIA_buffer_collection.hs +14/−12
- src/Vulkan/Extensions/VK_FUCHSIA_buffer_collection.hs-boot +6/−4
- src/Vulkan/Extensions/VK_FUCHSIA_external_memory.hs +6/−4
- src/Vulkan/Extensions/VK_FUCHSIA_external_memory.hs-boot +6/−4
- src/Vulkan/Extensions/VK_FUCHSIA_external_semaphore.hs +12/−10
- src/Vulkan/Extensions/VK_FUCHSIA_external_semaphore.hs-boot +6/−4
- src/Vulkan/Extensions/VK_FUCHSIA_imagepipe_surface.hs +4/−4
- src/Vulkan/Extensions/VK_FUCHSIA_imagepipe_surface.hs-boot +3/−3
- src/Vulkan/Extensions/VK_GGP_frame_token.hs +6/−4
- src/Vulkan/Extensions/VK_GGP_frame_token.hs-boot +6/−4
- src/Vulkan/Extensions/VK_GGP_stream_descriptor_surface.hs +4/−4
- src/Vulkan/Extensions/VK_GGP_stream_descriptor_surface.hs-boot +3/−3
- src/Vulkan/Extensions/VK_GOOGLE_decorate_string.hs +2/−2
- src/Vulkan/Extensions/VK_GOOGLE_display_timing.hs +4/−3
- src/Vulkan/Extensions/VK_GOOGLE_display_timing.hs-boot +4/−3
- src/Vulkan/Extensions/VK_GOOGLE_hlsl_functionality1.hs +2/−2
- src/Vulkan/Extensions/VK_GOOGLE_surfaceless_query.hs +4/−4
- src/Vulkan/Extensions/VK_GOOGLE_user_type.hs +3/−3
- src/Vulkan/Extensions/VK_HUAWEI_invocation_mask.hs +29/−16
- src/Vulkan/Extensions/VK_HUAWEI_invocation_mask.hs-boot +18/−8
- src/Vulkan/Extensions/VK_HUAWEI_subpass_shading.hs +145/−47
- src/Vulkan/Extensions/VK_HUAWEI_subpass_shading.hs-boot +15/−7
- src/Vulkan/Extensions/VK_IMG_filter_cubic.hs +17/−5
- src/Vulkan/Extensions/VK_IMG_format_pvrtc.hs +2/−2
- src/Vulkan/Extensions/VK_INTEL_performance_query.hs +38/−29
- src/Vulkan/Extensions/VK_INTEL_performance_query.hs-boot +2/−2
- src/Vulkan/Extensions/VK_INTEL_shader_integer_functions2.hs +6/−5
- src/Vulkan/Extensions/VK_INTEL_shader_integer_functions2.hs-boot +6/−5
- src/Vulkan/Extensions/VK_KHR_16bit_storage.hs +10/−8
- src/Vulkan/Extensions/VK_KHR_8bit_storage.hs +9/−7
- src/Vulkan/Extensions/VK_KHR_acceleration_structure.hs +184/−113
- src/Vulkan/Extensions/VK_KHR_acceleration_structure.hs-boot +19/−15
- src/Vulkan/Extensions/VK_KHR_android_surface.hs +4/−4
- src/Vulkan/Extensions/VK_KHR_android_surface.hs-boot +3/−3
- src/Vulkan/Extensions/VK_KHR_bind_memory2.hs +2/−2
- src/Vulkan/Extensions/VK_KHR_buffer_device_address.hs +5/−4
- src/Vulkan/Extensions/VK_KHR_copy_commands2.hs +2/−2
- src/Vulkan/Extensions/VK_KHR_create_renderpass2.hs +6/−4
- src/Vulkan/Extensions/VK_KHR_dedicated_allocation.hs +4/−3
- src/Vulkan/Extensions/VK_KHR_deferred_host_operations.hs +4/−4
- src/Vulkan/Extensions/VK_KHR_depth_stencil_resolve.hs +4/−3
- src/Vulkan/Extensions/VK_KHR_descriptor_update_template.hs +3/−3
- src/Vulkan/Extensions/VK_KHR_device_group.hs +6/−5
- src/Vulkan/Extensions/VK_KHR_device_group_creation.hs +2/−2
- src/Vulkan/Extensions/VK_KHR_display.hs +10/−5
- src/Vulkan/Extensions/VK_KHR_display.hs-boot +3/−3
- src/Vulkan/Extensions/VK_KHR_display_swapchain.hs +7/−5
- src/Vulkan/Extensions/VK_KHR_display_swapchain.hs-boot +6/−4
- src/Vulkan/Extensions/VK_KHR_draw_indirect_count.hs +2/−2
- src/Vulkan/Extensions/VK_KHR_driver_properties.hs +4/−3
- src/Vulkan/Extensions/VK_KHR_dynamic_rendering.hs +18/−14
- src/Vulkan/Extensions/VK_KHR_dynamic_rendering.hs-boot +8/−4
- src/Vulkan/Extensions/VK_KHR_external_fence.hs +4/−3
- src/Vulkan/Extensions/VK_KHR_external_fence_capabilities.hs +3/−3
- src/Vulkan/Extensions/VK_KHR_external_fence_fd.hs +9/−8
- src/Vulkan/Extensions/VK_KHR_external_fence_fd.hs-boot +4/−3
- src/Vulkan/Extensions/VK_KHR_external_fence_win32.hs +11/−10
- src/Vulkan/Extensions/VK_KHR_external_fence_win32.hs-boot +4/−3
- src/Vulkan/Extensions/VK_KHR_external_memory.hs +5/−4
- src/Vulkan/Extensions/VK_KHR_external_memory_capabilities.hs +3/−3
- src/Vulkan/Extensions/VK_KHR_external_memory_fd.hs +7/−6
- src/Vulkan/Extensions/VK_KHR_external_memory_fd.hs-boot +4/−3
- src/Vulkan/Extensions/VK_KHR_external_memory_win32.hs +7/−6
- src/Vulkan/Extensions/VK_KHR_external_memory_win32.hs-boot +4/−3
- src/Vulkan/Extensions/VK_KHR_external_semaphore.hs +4/−3
- src/Vulkan/Extensions/VK_KHR_external_semaphore_capabilities.hs +3/−3
- src/Vulkan/Extensions/VK_KHR_external_semaphore_fd.hs +10/−9
- src/Vulkan/Extensions/VK_KHR_external_semaphore_fd.hs-boot +4/−3
- src/Vulkan/Extensions/VK_KHR_external_semaphore_win32.hs +12/−11
- src/Vulkan/Extensions/VK_KHR_external_semaphore_win32.hs-boot +4/−3
- src/Vulkan/Extensions/VK_KHR_format_feature_flags2.hs +24/−6
- src/Vulkan/Extensions/VK_KHR_fragment_shader_barycentric.hs +364/−0
- src/Vulkan/Extensions/VK_KHR_fragment_shader_barycentric.hs-boot +198/−0
- src/Vulkan/Extensions/VK_KHR_fragment_shading_rate.hs +75/−70
- src/Vulkan/Extensions/VK_KHR_fragment_shading_rate.hs-boot +11/−9
- src/Vulkan/Extensions/VK_KHR_get_display_properties2.hs +3/−3
- src/Vulkan/Extensions/VK_KHR_get_display_properties2.hs-boot +3/−3
- src/Vulkan/Extensions/VK_KHR_get_memory_requirements2.hs +2/−2
- src/Vulkan/Extensions/VK_KHR_get_memory_requirements2.hs-boot +2/−2
- src/Vulkan/Extensions/VK_KHR_get_physical_device_properties2.hs +2/−2
- src/Vulkan/Extensions/VK_KHR_get_surface_capabilities2.hs +67/−39
- src/Vulkan/Extensions/VK_KHR_get_surface_capabilities2.hs-boot +8/−7
- src/Vulkan/Extensions/VK_KHR_global_priority.hs +8/−12
- src/Vulkan/Extensions/VK_KHR_global_priority.hs-boot +4/−6
- src/Vulkan/Extensions/VK_KHR_image_format_list.hs +2/−2
- src/Vulkan/Extensions/VK_KHR_imageless_framebuffer.hs +6/−4
- src/Vulkan/Extensions/VK_KHR_incremental_present.hs +5/−4
- src/Vulkan/Extensions/VK_KHR_incremental_present.hs-boot +5/−4
- src/Vulkan/Extensions/VK_KHR_maintenance1.hs +2/−2
- src/Vulkan/Extensions/VK_KHR_maintenance2.hs +2/−2
- src/Vulkan/Extensions/VK_KHR_maintenance3.hs +4/−3
- src/Vulkan/Extensions/VK_KHR_maintenance4.hs +3/−3
- src/Vulkan/Extensions/VK_KHR_multiview.hs +7/−6
- src/Vulkan/Extensions/VK_KHR_performance_query.hs +6/−5
- src/Vulkan/Extensions/VK_KHR_performance_query.hs-boot +4/−3
- src/Vulkan/Extensions/VK_KHR_pipeline_executable_properties.hs +23/−16
- src/Vulkan/Extensions/VK_KHR_pipeline_executable_properties.hs-boot +4/−3
- src/Vulkan/Extensions/VK_KHR_pipeline_library.hs +10/−2
- src/Vulkan/Extensions/VK_KHR_pipeline_library.hs-boot +2/−2
- src/Vulkan/Extensions/VK_KHR_portability_enumeration.hs +2/−2
- src/Vulkan/Extensions/VK_KHR_portability_subset.hs +23/−22
- src/Vulkan/Extensions/VK_KHR_portability_subset.hs-boot +5/−4
- src/Vulkan/Extensions/VK_KHR_present_id.hs +5/−4
- src/Vulkan/Extensions/VK_KHR_present_id.hs-boot +4/−3
- src/Vulkan/Extensions/VK_KHR_present_wait.hs +15/−5
- src/Vulkan/Extensions/VK_KHR_present_wait.hs-boot +6/−4
- src/Vulkan/Extensions/VK_KHR_push_descriptor.hs +25/−18
- src/Vulkan/Extensions/VK_KHR_push_descriptor.hs-boot +4/−3
- src/Vulkan/Extensions/VK_KHR_ray_query.hs +16/−15
- src/Vulkan/Extensions/VK_KHR_ray_query.hs-boot +16/−15
- src/Vulkan/Extensions/VK_KHR_ray_tracing_maintenance1.hs +1161/−0
- src/Vulkan/Extensions/VK_KHR_ray_tracing_maintenance1.hs-boot +225/−0
- src/Vulkan/Extensions/VK_KHR_ray_tracing_pipeline.hs +424/−202
- src/Vulkan/Extensions/VK_KHR_ray_tracing_pipeline.hs-boot +45/−32
- src/Vulkan/Extensions/VK_KHR_relaxed_block_layout.hs +3/−3
- src/Vulkan/Extensions/VK_KHR_sampler_mirror_clamp_to_edge.hs +2/−2
- src/Vulkan/Extensions/VK_KHR_sampler_ycbcr_conversion.hs +10/−6
- src/Vulkan/Extensions/VK_KHR_separate_depth_stencil_layouts.hs +6/−4
- src/Vulkan/Extensions/VK_KHR_shader_atomic_int64.hs +6/−5
- src/Vulkan/Extensions/VK_KHR_shader_clock.hs +6/−5
- src/Vulkan/Extensions/VK_KHR_shader_clock.hs-boot +6/−5
- src/Vulkan/Extensions/VK_KHR_shader_draw_parameters.hs +12/−11
- src/Vulkan/Extensions/VK_KHR_shader_float16_int8.hs +5/−4
- src/Vulkan/Extensions/VK_KHR_shader_float_controls.hs +9/−8
- src/Vulkan/Extensions/VK_KHR_shader_integer_dot_product.hs +9/−8
- src/Vulkan/Extensions/VK_KHR_shader_non_semantic_info.hs +3/−3
- src/Vulkan/Extensions/VK_KHR_shader_subgroup_extended_types.hs +2/−2
- src/Vulkan/Extensions/VK_KHR_shader_subgroup_uniform_control_flow.hs +3/−3
- src/Vulkan/Extensions/VK_KHR_shader_subgroup_uniform_control_flow.hs-boot +3/−3
- src/Vulkan/Extensions/VK_KHR_shader_terminate_invocation.hs +4/−3
- src/Vulkan/Extensions/VK_KHR_shared_presentable_image.hs +8/−5
- src/Vulkan/Extensions/VK_KHR_shared_presentable_image.hs-boot +8/−5
- src/Vulkan/Extensions/VK_KHR_spirv_1_4.hs +4/−3
- src/Vulkan/Extensions/VK_KHR_storage_buffer_storage_class.hs +2/−2
- src/Vulkan/Extensions/VK_KHR_surface.hs +9/−4
- src/Vulkan/Extensions/VK_KHR_surface.hs-boot +2/−2
- src/Vulkan/Extensions/VK_KHR_surface_protected_capabilities.hs +3/−3
- src/Vulkan/Extensions/VK_KHR_surface_protected_capabilities.hs-boot +3/−3
- src/Vulkan/Extensions/VK_KHR_swapchain.hs +32/−20
- src/Vulkan/Extensions/VK_KHR_swapchain.hs-boot +8/−7
- src/Vulkan/Extensions/VK_KHR_swapchain_mutable_format.hs +8/−5
- src/Vulkan/Extensions/VK_KHR_synchronization2.hs +54/−25
- src/Vulkan/Extensions/VK_KHR_synchronization2.hs-boot +17/−5
- src/Vulkan/Extensions/VK_KHR_timeline_semaphore.hs +5/−4
- src/Vulkan/Extensions/VK_KHR_uniform_buffer_standard_layout.hs +5/−4
- src/Vulkan/Extensions/VK_KHR_variable_pointers.hs +9/−7
- src/Vulkan/Extensions/VK_KHR_vulkan_memory_model.hs +4/−4
- src/Vulkan/Extensions/VK_KHR_wayland_surface.hs +4/−4
- src/Vulkan/Extensions/VK_KHR_wayland_surface.hs-boot +3/−3
- src/Vulkan/Extensions/VK_KHR_win32_keyed_mutex.hs +4/−3
- src/Vulkan/Extensions/VK_KHR_win32_keyed_mutex.hs-boot +4/−3
- src/Vulkan/Extensions/VK_KHR_win32_surface.hs +4/−4
- src/Vulkan/Extensions/VK_KHR_win32_surface.hs-boot +3/−3
- src/Vulkan/Extensions/VK_KHR_workgroup_memory_explicit_layout.hs +7/−6
- src/Vulkan/Extensions/VK_KHR_workgroup_memory_explicit_layout.hs-boot +7/−6
- src/Vulkan/Extensions/VK_KHR_xcb_surface.hs +4/−4
- src/Vulkan/Extensions/VK_KHR_xcb_surface.hs-boot +3/−3
- src/Vulkan/Extensions/VK_KHR_xlib_surface.hs +4/−4
- src/Vulkan/Extensions/VK_KHR_xlib_surface.hs-boot +3/−3
- src/Vulkan/Extensions/VK_KHR_zero_initialize_workgroup_memory.hs +4/−3
- src/Vulkan/Extensions/VK_MVK_ios_surface.hs +5/−5
- src/Vulkan/Extensions/VK_MVK_ios_surface.hs-boot +4/−4
- src/Vulkan/Extensions/VK_MVK_macos_surface.hs +4/−4
- src/Vulkan/Extensions/VK_MVK_macos_surface.hs-boot +3/−3
- src/Vulkan/Extensions/VK_NN_vi_surface.hs +4/−4
- src/Vulkan/Extensions/VK_NN_vi_surface.hs-boot +3/−3
- src/Vulkan/Extensions/VK_NVX_binary_import.hs +20/−14
- src/Vulkan/Extensions/VK_NVX_binary_import.hs-boot +11/−8
- src/Vulkan/Extensions/VK_NVX_image_view_handle.hs +2/−2
- src/Vulkan/Extensions/VK_NVX_image_view_handle.hs-boot +2/−2
- src/Vulkan/Extensions/VK_NVX_multiview_per_view_attributes.hs +9/−8
- src/Vulkan/Extensions/VK_NVX_multiview_per_view_attributes.hs-boot +9/−8
- src/Vulkan/Extensions/VK_NV_acquire_winrt_display.hs +4/−3
- src/Vulkan/Extensions/VK_NV_clip_space_w_scaling.hs +11/−8
- src/Vulkan/Extensions/VK_NV_clip_space_w_scaling.hs-boot +2/−2
- src/Vulkan/Extensions/VK_NV_compute_shader_derivatives.hs +7/−6
- src/Vulkan/Extensions/VK_NV_compute_shader_derivatives.hs-boot +6/−5
- src/Vulkan/Extensions/VK_NV_cooperative_matrix.hs +5/−4
- src/Vulkan/Extensions/VK_NV_cooperative_matrix.hs-boot +5/−4
- src/Vulkan/Extensions/VK_NV_corner_sampled_image.hs +11/−10
- src/Vulkan/Extensions/VK_NV_corner_sampled_image.hs-boot +10/−9
- src/Vulkan/Extensions/VK_NV_coverage_reduction_mode.hs +6/−5
- src/Vulkan/Extensions/VK_NV_coverage_reduction_mode.hs-boot +4/−3
- src/Vulkan/Extensions/VK_NV_dedicated_allocation.hs +2/−2
- src/Vulkan/Extensions/VK_NV_dedicated_allocation.hs-boot +2/−2
- src/Vulkan/Extensions/VK_NV_dedicated_allocation_image_aliasing.hs +4/−3
- src/Vulkan/Extensions/VK_NV_dedicated_allocation_image_aliasing.hs-boot +4/−3
- src/Vulkan/Extensions/VK_NV_device_diagnostic_checkpoints.hs +14/−10
- src/Vulkan/Extensions/VK_NV_device_diagnostic_checkpoints.hs-boot +4/−3
- src/Vulkan/Extensions/VK_NV_device_diagnostics_config.hs +30/−15
- src/Vulkan/Extensions/VK_NV_device_diagnostics_config.hs-boot +15/−5
- src/Vulkan/Extensions/VK_NV_device_generated_commands.hs +304/−125
- src/Vulkan/Extensions/VK_NV_device_generated_commands.hs-boot +5/−4
- src/Vulkan/Extensions/VK_NV_external_memory.hs +7/−6
- src/Vulkan/Extensions/VK_NV_external_memory.hs-boot +6/−5
- src/Vulkan/Extensions/VK_NV_external_memory_capabilities.hs +2/−2
- src/Vulkan/Extensions/VK_NV_external_memory_capabilities.hs-boot +2/−2
- src/Vulkan/Extensions/VK_NV_external_memory_rdma.hs +4/−3
- src/Vulkan/Extensions/VK_NV_external_memory_rdma.hs-boot +4/−3
- src/Vulkan/Extensions/VK_NV_external_memory_win32.hs +6/−5
- src/Vulkan/Extensions/VK_NV_external_memory_win32.hs-boot +6/−5
- src/Vulkan/Extensions/VK_NV_fill_rectangle.hs +2/−2
- src/Vulkan/Extensions/VK_NV_fragment_coverage_to_color.hs +3/−3
- src/Vulkan/Extensions/VK_NV_fragment_coverage_to_color.hs-boot +2/−2
- src/Vulkan/Extensions/VK_NV_fragment_shader_barycentric.hs +28/−102
- src/Vulkan/Extensions/VK_NV_fragment_shader_barycentric.hs-boot +0/−195
- src/Vulkan/Extensions/VK_NV_fragment_shading_rate_enums.hs +38/−33
- src/Vulkan/Extensions/VK_NV_fragment_shading_rate_enums.hs-boot +4/−3
- src/Vulkan/Extensions/VK_NV_framebuffer_mixed_samples.hs +3/−3
- src/Vulkan/Extensions/VK_NV_framebuffer_mixed_samples.hs-boot +2/−2
- src/Vulkan/Extensions/VK_NV_geometry_shader_passthrough.hs +9/−9
- src/Vulkan/Extensions/VK_NV_glsl_shader.hs +2/−2
- src/Vulkan/Extensions/VK_NV_inherited_viewport_scissor.hs +4/−4
- src/Vulkan/Extensions/VK_NV_inherited_viewport_scissor.hs-boot +2/−2
- src/Vulkan/Extensions/VK_NV_linear_color_attachment.hs +5/−6
- src/Vulkan/Extensions/VK_NV_linear_color_attachment.hs-boot +3/−4
- src/Vulkan/Extensions/VK_NV_mesh_shader.hs +700/−192
- src/Vulkan/Extensions/VK_NV_mesh_shader.hs-boot +18/−17
- src/Vulkan/Extensions/VK_NV_ray_tracing.hs +208/−97
- src/Vulkan/Extensions/VK_NV_ray_tracing.hs-boot +22/−20
- src/Vulkan/Extensions/VK_NV_ray_tracing_motion_blur.hs +5/−4
- src/Vulkan/Extensions/VK_NV_ray_tracing_motion_blur.hs-boot +4/−3
- src/Vulkan/Extensions/VK_NV_representative_fragment_test.hs +3/−3
- src/Vulkan/Extensions/VK_NV_representative_fragment_test.hs-boot +2/−2
- src/Vulkan/Extensions/VK_NV_sample_mask_override_coverage.hs +5/−5
- src/Vulkan/Extensions/VK_NV_scissor_exclusive.hs +18/−14
- src/Vulkan/Extensions/VK_NV_scissor_exclusive.hs-boot +4/−3
- src/Vulkan/Extensions/VK_NV_shader_image_footprint.hs +9/−8
- src/Vulkan/Extensions/VK_NV_shader_image_footprint.hs-boot +8/−7
- src/Vulkan/Extensions/VK_NV_shader_sm_builtins.hs +7/−7
- src/Vulkan/Extensions/VK_NV_shader_sm_builtins.hs-boot +7/−7
- src/Vulkan/Extensions/VK_NV_shader_subgroup_partitioned.hs +4/−4
- src/Vulkan/Extensions/VK_NV_shading_rate_image.hs +47/−37
- src/Vulkan/Extensions/VK_NV_shading_rate_image.hs-boot +9/−8
- src/Vulkan/Extensions/VK_NV_viewport_array2.hs +10/−10
- src/Vulkan/Extensions/VK_NV_viewport_swizzle.hs +3/−3
- src/Vulkan/Extensions/VK_NV_viewport_swizzle.hs-boot +2/−2
- src/Vulkan/Extensions/VK_NV_win32_keyed_mutex.hs +4/−3
- src/Vulkan/Extensions/VK_NV_win32_keyed_mutex.hs-boot +4/−3
- src/Vulkan/Extensions/VK_QCOM_fragment_density_map_offset.hs +12/−10
- src/Vulkan/Extensions/VK_QCOM_fragment_density_map_offset.hs-boot +6/−4
- src/Vulkan/Extensions/VK_QCOM_image_processing.hs +509/−0
- src/Vulkan/Extensions/VK_QCOM_image_processing.hs-boot +212/−0
- src/Vulkan/Extensions/VK_QCOM_render_pass_shader_resolve.hs +2/−2
- src/Vulkan/Extensions/VK_QCOM_render_pass_store_ops.hs +2/−2
- src/Vulkan/Extensions/VK_QCOM_render_pass_transform.hs +25/−11
- src/Vulkan/Extensions/VK_QCOM_render_pass_transform.hs-boot +23/−9
- src/Vulkan/Extensions/VK_QCOM_rotated_copy_commands.hs +6/−4
- src/Vulkan/Extensions/VK_QCOM_rotated_copy_commands.hs-boot +6/−4
- src/Vulkan/Extensions/VK_QCOM_tile_properties.hs +482/−0
- src/Vulkan/Extensions/VK_QCOM_tile_properties.hs-boot +131/−0
- src/Vulkan/Extensions/VK_QNX_screen_surface.hs +4/−4
- src/Vulkan/Extensions/VK_QNX_screen_surface.hs-boot +3/−3
- src/Vulkan/Extensions/VK_SEC_amigo_profiling.hs +300/−0
- src/Vulkan/Extensions/VK_SEC_amigo_profiling.hs-boot +170/−0
- src/Vulkan/Extensions/VK_VALVE_descriptor_set_host_mapping.hs +2/−2
- src/Vulkan/Extensions/VK_VALVE_descriptor_set_host_mapping.hs-boot +2/−2
- src/Vulkan/Extensions/VK_VALVE_mutable_descriptor_type.hs +4/−3
- src/Vulkan/Extensions/VK_VALVE_mutable_descriptor_type.hs-boot +4/−3
- src/Vulkan/SPIRVRequirements.hs +208/−3
- src/Vulkan/Version.hs +2/−2
- vulkan.cabal +21/−1
changelog.md view
@@ -2,6 +2,27 @@ ## WIP +## [3.21] - 2022-09-05+- Bump API version to v1.3.226++## [3.20] - 2022-09-05+- Bump API version to v1.3.217++## [3.19] - 2022-09-05+- Bump API version to v1.3.216++## [3.18.1] - 2022-09-05+- Bump API version to v1.3.214++## [3.18] - 2022-09-05+- Bump API version to v1.3.213++## [3.17.2] - 2022-04-21+- Bump API version to v1.3.212++## [3.17.1] - 2022-04-07+- Bump API version to v1.3.211+ ## [3.17] - 2022-03-31 - Bump API version to v1.3.210 - A significant breaking change is that
package.yaml view
@@ -1,5 +1,5 @@ name: vulkan-version: "3.17"+version: "3.21" synopsis: Bindings to the Vulkan graphics API. description: Please see [the readme](https://github.com/expipiplus1/vulkan/#readme) category: Graphics
src/Vulkan/CStruct/Extends.hs view
@@ -72,6 +72,7 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_swapchain (AcquireNextImageInfoKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_performance_query (AcquireProfilingLockInfoKHR) import {-# SOURCE #-} Vulkan.Core10.AllocationCallbacks (AllocationCallbacks)+import {-# SOURCE #-} Vulkan.Extensions.VK_SEC_amigo_profiling (AmigoProfilingSubmitInfoSEC) import {-# SOURCE #-} Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer (AndroidHardwareBufferFormatProperties2ANDROID) import {-# SOURCE #-} Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer (AndroidHardwareBufferFormatPropertiesANDROID) import {-# SOURCE #-} Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer (AndroidHardwareBufferPropertiesANDROID)@@ -221,6 +222,7 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_display (DisplaySurfaceCreateInfoKHR) import {-# SOURCE #-} Vulkan.Core10.OtherTypes (DrawIndexedIndirectCommand) import {-# SOURCE #-} Vulkan.Core10.OtherTypes (DrawIndirectCommand)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_mesh_shader (DrawMeshTasksIndirectCommandEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_mesh_shader (DrawMeshTasksIndirectCommandNV) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_image_drm_format_modifier (DrmFormatModifierProperties2EXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_image_drm_format_modifier (DrmFormatModifierPropertiesEXT)@@ -233,6 +235,14 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_NV_external_memory (ExportMemoryAllocateInfoNV) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_external_memory_win32 (ExportMemoryWin32HandleInfoKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_external_memory_win32 (ExportMemoryWin32HandleInfoNV)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_metal_objects (ExportMetalBufferInfoEXT)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_metal_objects (ExportMetalCommandQueueInfoEXT)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_metal_objects (ExportMetalDeviceInfoEXT)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_metal_objects (ExportMetalIOSurfaceInfoEXT)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_metal_objects (ExportMetalObjectCreateInfoEXT)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_metal_objects (ExportMetalObjectsInfoEXT)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_metal_objects (ExportMetalSharedEventInfoEXT)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_metal_objects (ExportMetalTextureInfoEXT) import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_external_semaphore (ExportSemaphoreCreateInfo) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_external_semaphore_win32 (ExportSemaphoreWin32HandleInfoKHR) import {-# SOURCE #-} Vulkan.Core10.ExtensionDiscovery (ExtensionProperties)@@ -275,6 +285,8 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_MVK_ios_surface (IOSSurfaceCreateInfoMVK) import {-# SOURCE #-} Vulkan.Core10.CommandBufferBuilding (ImageBlit) import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2 (ImageBlit2)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_image_compression_control (ImageCompressionControlEXT)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_image_compression_control (ImageCompressionPropertiesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_FUCHSIA_buffer_collection (ImageConstraintsInfoFUCHSIA) import {-# SOURCE #-} Vulkan.Core10.CommandBufferBuilding (ImageCopy) import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2 (ImageCopy2)@@ -296,6 +308,7 @@ import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_get_memory_requirements2 (ImageSparseMemoryRequirementsInfo2) import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_EXT_separate_stencil_usage (ImageStencilUsageCreateInfo) import {-# SOURCE #-} Vulkan.Core10.SparseResourceMemoryManagement (ImageSubresource)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_image_compression_control (ImageSubresource2EXT) import {-# SOURCE #-} Vulkan.Core10.CommandBufferBuilding (ImageSubresourceLayers) import {-# SOURCE #-} Vulkan.Core10.ImageView (ImageSubresourceRange) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_swapchain (ImageSwapchainCreateInfoKHR)@@ -304,6 +317,7 @@ import {-# SOURCE #-} Vulkan.Core10.ImageView (ImageViewCreateInfo) import {-# SOURCE #-} Vulkan.Extensions.VK_NVX_image_view_handle (ImageViewHandleInfoNVX) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_image_view_min_lod (ImageViewMinLodCreateInfoEXT)+import {-# SOURCE #-} Vulkan.Extensions.VK_QCOM_image_processing (ImageViewSampleWeightCreateInfoQCOM) import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_maintenance2 (ImageViewUsageCreateInfo) import {-# SOURCE #-} Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer (ImportAndroidHardwareBufferInfoANDROID) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_external_fence_fd (ImportFenceFdInfoKHR)@@ -314,6 +328,10 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_external_memory_win32 (ImportMemoryWin32HandleInfoKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_external_memory_win32 (ImportMemoryWin32HandleInfoNV) import {-# SOURCE #-} Vulkan.Extensions.VK_FUCHSIA_external_memory (ImportMemoryZirconHandleInfoFUCHSIA)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_metal_objects (ImportMetalBufferInfoEXT)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_metal_objects (ImportMetalIOSurfaceInfoEXT)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_metal_objects (ImportMetalSharedEventInfoEXT)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_metal_objects (ImportMetalTextureInfoEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_external_semaphore_fd (ImportSemaphoreFdInfoKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_external_semaphore_win32 (ImportSemaphoreWin32HandleInfoKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_FUCHSIA_external_semaphore (ImportSemaphoreZirconHandleInfoFUCHSIA)@@ -351,6 +369,7 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_multi_draw (MultiDrawIndexedInfoEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_multi_draw (MultiDrawInfoEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_sample_locations (MultisamplePropertiesEXT)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled (MultisampledRenderToSingleSampledInfoEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_dynamic_rendering (MultiviewPerViewAttributesInfoNVX) import {-# SOURCE #-} Vulkan.Extensions.VK_VALVE_mutable_descriptor_type (MutableDescriptorTypeCreateInfoVALVE) import {-# SOURCE #-} Vulkan.Extensions.VK_VALVE_mutable_descriptor_type (MutableDescriptorTypeListVALVE)@@ -371,6 +390,8 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_astc_decode_mode (PhysicalDeviceASTCDecodeFeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_acceleration_structure (PhysicalDeviceAccelerationStructureFeaturesKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_acceleration_structure (PhysicalDeviceAccelerationStructurePropertiesKHR)+import {-# SOURCE #-} Vulkan.Extensions.VK_SEC_amigo_profiling (PhysicalDeviceAmigoProfilingFeaturesSEC)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_attachment_feedback_loop_layout (PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_blend_operation_advanced (PhysicalDeviceBlendOperationAdvancedFeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_blend_operation_advanced (PhysicalDeviceBlendOperationAdvancedPropertiesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_border_color_swizzle (PhysicalDeviceBorderColorSwizzleFeaturesEXT)@@ -388,6 +409,7 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_custom_border_color (PhysicalDeviceCustomBorderColorFeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_custom_border_color (PhysicalDeviceCustomBorderColorPropertiesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_dedicated_allocation_image_aliasing (PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_depth_clamp_zero_one (PhysicalDeviceDepthClampZeroOneFeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_depth_clip_control (PhysicalDeviceDepthClipControlFeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_depth_clip_enable (PhysicalDeviceDepthClipEnableFeaturesEXT) import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_depth_stencil_resolve (PhysicalDeviceDepthStencilResolveProperties)@@ -420,7 +442,8 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_QCOM_fragment_density_map_offset (PhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM) import {-# SOURCE #-} Vulkan.Extensions.VK_QCOM_fragment_density_map_offset (PhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_fragment_density_map (PhysicalDeviceFragmentDensityMapPropertiesEXT)-import {-# SOURCE #-} Vulkan.Extensions.VK_NV_fragment_shader_barycentric (PhysicalDeviceFragmentShaderBarycentricFeaturesNV)+import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_fragment_shader_barycentric (PhysicalDeviceFragmentShaderBarycentricFeaturesKHR)+import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_fragment_shader_barycentric (PhysicalDeviceFragmentShaderBarycentricPropertiesKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_fragment_shader_interlock (PhysicalDeviceFragmentShaderInterlockFeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_fragment_shading_rate_enums (PhysicalDeviceFragmentShadingRateEnumsFeaturesNV) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_fragment_shading_rate_enums (PhysicalDeviceFragmentShadingRateEnumsPropertiesNV)@@ -433,8 +456,13 @@ import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_device_group_creation (PhysicalDeviceGroupProperties) import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_EXT_host_query_reset (PhysicalDeviceHostQueryResetFeatures) import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_external_memory_capabilities (PhysicalDeviceIDProperties)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_image_2d_view_of_3d (PhysicalDeviceImage2DViewOf3DFeaturesEXT)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_image_compression_control (PhysicalDeviceImageCompressionControlFeaturesEXT)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_image_compression_control_swapchain (PhysicalDeviceImageCompressionControlSwapchainFeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_image_drm_format_modifier (PhysicalDeviceImageDrmFormatModifierInfoEXT) import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2 (PhysicalDeviceImageFormatInfo2)+import {-# SOURCE #-} Vulkan.Extensions.VK_QCOM_image_processing (PhysicalDeviceImageProcessingFeaturesQCOM)+import {-# SOURCE #-} Vulkan.Extensions.VK_QCOM_image_processing (PhysicalDeviceImageProcessingPropertiesQCOM) import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_EXT_image_robustness (PhysicalDeviceImageRobustnessFeatures) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_filter_cubic (PhysicalDeviceImageViewImageFormatInfoEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_image_view_min_lod (PhysicalDeviceImageViewMinLodFeaturesEXT)@@ -455,20 +483,27 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_memory_priority (PhysicalDeviceMemoryPriorityFeaturesEXT) import {-# SOURCE #-} Vulkan.Core10.DeviceInitialization (PhysicalDeviceMemoryProperties) import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2 (PhysicalDeviceMemoryProperties2)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_mesh_shader (PhysicalDeviceMeshShaderFeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_mesh_shader (PhysicalDeviceMeshShaderFeaturesNV)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_mesh_shader (PhysicalDeviceMeshShaderPropertiesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_mesh_shader (PhysicalDeviceMeshShaderPropertiesNV) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_multi_draw (PhysicalDeviceMultiDrawFeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_multi_draw (PhysicalDeviceMultiDrawPropertiesEXT)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled (PhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT) import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_multiview (PhysicalDeviceMultiviewFeatures) import {-# SOURCE #-} Vulkan.Extensions.VK_NVX_multiview_per_view_attributes (PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX) import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_multiview (PhysicalDeviceMultiviewProperties) import {-# SOURCE #-} Vulkan.Extensions.VK_VALVE_mutable_descriptor_type (PhysicalDeviceMutableDescriptorTypeFeaturesVALVE)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_non_seamless_cube_map (PhysicalDeviceNonSeamlessCubeMapFeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_pci_bus_info (PhysicalDevicePCIBusInfoPropertiesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_pageable_device_local_memory (PhysicalDevicePageableDeviceLocalMemoryFeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_performance_query (PhysicalDevicePerformanceQueryFeaturesKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_performance_query (PhysicalDevicePerformanceQueryPropertiesKHR) import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_EXT_pipeline_creation_cache_control (PhysicalDevicePipelineCreationCacheControlFeatures) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_pipeline_executable_properties (PhysicalDevicePipelineExecutablePropertiesFeaturesKHR)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_pipeline_properties (PhysicalDevicePipelinePropertiesFeaturesEXT)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_pipeline_robustness (PhysicalDevicePipelineRobustnessFeaturesEXT)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_pipeline_robustness (PhysicalDevicePipelineRobustnessPropertiesEXT) import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_maintenance2 (PhysicalDevicePointClippingProperties) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_portability_subset (PhysicalDevicePortabilitySubsetFeaturesKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_portability_subset (PhysicalDevicePortabilitySubsetPropertiesKHR)@@ -485,8 +520,9 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_provoking_vertex (PhysicalDeviceProvokingVertexPropertiesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_push_descriptor (PhysicalDevicePushDescriptorPropertiesKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_rgba10x6_formats (PhysicalDeviceRGBA10X6FormatsFeaturesEXT)-import {-# SOURCE #-} Vulkan.Extensions.VK_ARM_rasterization_order_attachment_access (PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_rasterization_order_attachment_access (PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_ray_query (PhysicalDeviceRayQueryFeaturesKHR)+import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_ray_tracing_maintenance1 (PhysicalDeviceRayTracingMaintenance1FeaturesKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_ray_tracing_motion_blur (PhysicalDeviceRayTracingMotionBlurFeaturesNV) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_ray_tracing_pipeline (PhysicalDeviceRayTracingPipelineFeaturesKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_ray_tracing_pipeline (PhysicalDeviceRayTracingPipelinePropertiesKHR)@@ -507,12 +543,15 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_AMD_shader_core_properties (PhysicalDeviceShaderCorePropertiesAMD) import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_EXT_shader_demote_to_helper_invocation (PhysicalDeviceShaderDemoteToHelperInvocationFeatures) import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_shader_draw_parameters (PhysicalDeviceShaderDrawParametersFeatures)+import {-# SOURCE #-} Vulkan.Extensions.VK_AMD_shader_early_and_late_fragment_tests (PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD) import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_shader_float16_int8 (PhysicalDeviceShaderFloat16Int8Features) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_shader_image_atomic_int64 (PhysicalDeviceShaderImageAtomicInt64FeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_shader_image_footprint (PhysicalDeviceShaderImageFootprintFeaturesNV) import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_KHR_shader_integer_dot_product (PhysicalDeviceShaderIntegerDotProductFeatures) import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_KHR_shader_integer_dot_product (PhysicalDeviceShaderIntegerDotProductProperties) import {-# SOURCE #-} Vulkan.Extensions.VK_INTEL_shader_integer_functions2 (PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_shader_module_identifier (PhysicalDeviceShaderModuleIdentifierFeaturesEXT)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_shader_module_identifier (PhysicalDeviceShaderModuleIdentifierPropertiesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_shader_sm_builtins (PhysicalDeviceShaderSMBuiltinsFeaturesNV) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_shader_sm_builtins (PhysicalDeviceShaderSMBuiltinsPropertiesNV) import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_shader_subgroup_extended_types (PhysicalDeviceShaderSubgroupExtendedTypesFeatures)@@ -525,6 +564,7 @@ import {-# SOURCE #-} Vulkan.Core11.Originally_Based_On_VK_KHR_subgroup (PhysicalDeviceSubgroupProperties) import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_EXT_subgroup_size_control (PhysicalDeviceSubgroupSizeControlFeatures) import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_EXT_subgroup_size_control (PhysicalDeviceSubgroupSizeControlProperties)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_subpass_merge_feedback (PhysicalDeviceSubpassMergeFeedbackFeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_HUAWEI_subpass_shading (PhysicalDeviceSubpassShadingFeaturesHUAWEI) import {-# SOURCE #-} Vulkan.Extensions.VK_HUAWEI_subpass_shading (PhysicalDeviceSubpassShadingPropertiesHUAWEI) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_get_surface_capabilities2 (PhysicalDeviceSurfaceInfo2KHR)@@ -532,6 +572,7 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_texel_buffer_alignment (PhysicalDeviceTexelBufferAlignmentFeaturesEXT) import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_EXT_texel_buffer_alignment (PhysicalDeviceTexelBufferAlignmentProperties) import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_EXT_texture_compression_astc_hdr (PhysicalDeviceTextureCompressionASTCHDRFeatures)+import {-# SOURCE #-} Vulkan.Extensions.VK_QCOM_tile_properties (PhysicalDeviceTilePropertiesFeaturesQCOM) import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_timeline_semaphore (PhysicalDeviceTimelineSemaphoreFeatures) import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_timeline_semaphore (PhysicalDeviceTimelineSemaphoreProperties) import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_EXT_tooling_info (PhysicalDeviceToolProperties)@@ -579,6 +620,7 @@ import {-# SOURCE #-} Vulkan.Core10.PipelineLayout (PipelineLayoutCreateInfo) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_pipeline_library (PipelineLibraryCreateInfoKHR) import {-# SOURCE #-} Vulkan.Core10.Pipeline (PipelineMultisampleStateCreateInfo)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_pipeline_properties (PipelinePropertiesIdentifierEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_conservative_rasterization (PipelineRasterizationConservativeStateCreateInfoEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_depth_clip_enable (PipelineRasterizationDepthClipStateCreateInfoEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_line_rasterization (PipelineRasterizationLineStateCreateInfoEXT)@@ -588,8 +630,10 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_transform_feedback (PipelineRasterizationStateStreamCreateInfoEXT) import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering (PipelineRenderingCreateInfo) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_representative_fragment_test (PipelineRepresentativeFragmentTestStateCreateInfoNV)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_pipeline_robustness (PipelineRobustnessCreateInfoEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_sample_locations (PipelineSampleLocationsStateCreateInfoEXT) import {-# SOURCE #-} Vulkan.Core10.Pipeline (PipelineShaderStageCreateInfo)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_shader_module_identifier (PipelineShaderStageModuleIdentifierCreateInfoEXT) import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_EXT_subgroup_size_control (PipelineShaderStageRequiredSubgroupSizeCreateInfo) import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_maintenance2 (PipelineTessellationDomainOriginStateCreateInfo) import {-# SOURCE #-} Vulkan.Core10.Pipeline (PipelineTessellationStateCreateInfo)@@ -632,10 +676,15 @@ import {-# SOURCE #-} Vulkan.Core10.CommandBufferBuilding (RenderPassBeginInfo) import {-# SOURCE #-} Vulkan.Core10.Pass (RenderPassCreateInfo) import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_create_renderpass2 (RenderPassCreateInfo2)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_subpass_merge_feedback (RenderPassCreationControlEXT)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_subpass_merge_feedback (RenderPassCreationFeedbackCreateInfoEXT)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_subpass_merge_feedback (RenderPassCreationFeedbackInfoEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_fragment_density_map (RenderPassFragmentDensityMapCreateInfoEXT) import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_maintenance2 (RenderPassInputAttachmentAspectCreateInfo) import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_multiview (RenderPassMultiviewCreateInfo) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_sample_locations (RenderPassSampleLocationsBeginInfoEXT)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_subpass_merge_feedback (RenderPassSubpassFeedbackCreateInfoEXT)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_subpass_merge_feedback (RenderPassSubpassFeedbackInfoEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_QCOM_render_pass_transform (RenderPassTransformBeginInfoQCOM) import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering (RenderingAttachmentInfo) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_dynamic_rendering (RenderingFragmentDensityMapAttachmentInfoEXT)@@ -663,6 +712,7 @@ import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_timeline_semaphore (SemaphoreWaitInfo) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_device_generated_commands (SetStateFlagsIndirectCommandNV) import {-# SOURCE #-} Vulkan.Core10.Shader (ShaderModuleCreateInfo)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_shader_module_identifier (ShaderModuleIdentifierEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_validation_cache (ShaderModuleValidationCacheCreateInfoEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_AMD_shader_info (ShaderResourceUsageAMD) import {-# SOURCE #-} Vulkan.Extensions.VK_AMD_shader_info (ShaderStatisticsInfoAMD)@@ -694,9 +744,11 @@ import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_depth_stencil_resolve (SubpassDescriptionDepthStencilResolve) import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_create_renderpass2 (SubpassEndInfo) import {-# SOURCE #-} Vulkan.Extensions.VK_QCOM_fragment_density_map_offset (SubpassFragmentDensityMapOffsetEndInfoQCOM)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled (SubpassResolvePerformanceQueryEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_sample_locations (SubpassSampleLocationsEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_HUAWEI_subpass_shading (SubpassShadingPipelineCreateInfoHUAWEI) import {-# SOURCE #-} Vulkan.Core10.Image (SubresourceLayout)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_image_compression_control (SubresourceLayout2EXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_display_surface_counter (SurfaceCapabilities2EXT) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_get_surface_capabilities2 (SurfaceCapabilities2KHR) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_full_screen_exclusive (SurfaceCapabilitiesFullScreenExclusiveEXT)@@ -711,7 +763,9 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_AMD_display_native_hdr (SwapchainDisplayNativeHdrCreateInfoAMD) import {-# SOURCE #-} Vulkan.Extensions.VK_FUCHSIA_buffer_collection (SysmemColorSpaceFUCHSIA) import {-# SOURCE #-} Vulkan.Extensions.VK_AMD_texture_gather_bias_lod (TextureLODGatherFormatPropertiesAMD)+import {-# SOURCE #-} Vulkan.Extensions.VK_QCOM_tile_properties (TilePropertiesQCOM) import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_timeline_semaphore (TimelineSemaphoreSubmitInfo)+import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_ray_tracing_maintenance1 (TraceRaysIndirectCommand2KHR) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_ray_tracing_pipeline (TraceRaysIndirectCommandKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_acceleration_structure (TransformMatrixKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_validation_cache (ValidationCacheCreateInfoEXT)@@ -747,7 +801,8 @@ -- = See Also -- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,--- 'BaseOutStructure', 'Vulkan.Core10.Enums.StructureType.StructureType'+-- 'BaseOutStructure', 'Vulkan.Core10.Enums.StructureType.StructureType',+-- 'Vulkan.Extensions.VK_EXT_pipeline_properties.getPipelinePropertiesEXT' data BaseOutStructure = BaseOutStructure { -- | @sType@ is the structure type of the structure being iterated through. sType :: StructureType@@ -866,6 +921,7 @@ Extends BufferCreateInfo BufferDeviceAddressCreateInfoEXT = () Extends BufferCreateInfo BufferCollectionBufferCreateInfoFUCHSIA = () Extends BufferImageCopy2 CopyCommandTransformInfoQCOM = ()+ Extends BufferViewCreateInfo ExportMetalObjectCreateInfoEXT = () Extends CommandBufferBeginInfo DeviceGroupCommandBufferBeginInfo = () Extends CommandBufferInheritanceInfo CommandBufferInheritanceConditionalRenderingInfoEXT = () Extends CommandBufferInheritanceInfo CommandBufferInheritanceRenderPassTransformInfoQCOM = ()@@ -876,6 +932,7 @@ Extends ComputePipelineCreateInfo PipelineCreationFeedbackCreateInfo = () Extends ComputePipelineCreateInfo SubpassShadingPipelineCreateInfoHUAWEI = () Extends ComputePipelineCreateInfo PipelineCompilerControlCreateInfoAMD = ()+ Extends ComputePipelineCreateInfo PipelineRobustnessCreateInfoEXT = () Extends DescriptorPoolCreateInfo DescriptorPoolInlineUniformBlockCreateInfo = () Extends DescriptorPoolCreateInfo MutableDescriptorTypeCreateInfoVALVE = () Extends DescriptorSetAllocateInfo DescriptorSetVariableDescriptorCountAllocateInfo = ()@@ -920,15 +977,16 @@ Extends DeviceCreateInfo PhysicalDeviceExclusiveScissorFeaturesNV = () Extends DeviceCreateInfo PhysicalDeviceCornerSampledImageFeaturesNV = () Extends DeviceCreateInfo PhysicalDeviceComputeShaderDerivativesFeaturesNV = ()- Extends DeviceCreateInfo PhysicalDeviceFragmentShaderBarycentricFeaturesNV = () Extends DeviceCreateInfo PhysicalDeviceShaderImageFootprintFeaturesNV = () Extends DeviceCreateInfo PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV = () Extends DeviceCreateInfo PhysicalDeviceShadingRateImageFeaturesNV = () Extends DeviceCreateInfo PhysicalDeviceInvocationMaskFeaturesHUAWEI = () Extends DeviceCreateInfo PhysicalDeviceMeshShaderFeaturesNV = ()+ Extends DeviceCreateInfo PhysicalDeviceMeshShaderFeaturesEXT = () Extends DeviceCreateInfo PhysicalDeviceAccelerationStructureFeaturesKHR = () Extends DeviceCreateInfo PhysicalDeviceRayTracingPipelineFeaturesKHR = () Extends DeviceCreateInfo PhysicalDeviceRayQueryFeaturesKHR = ()+ Extends DeviceCreateInfo PhysicalDeviceRayTracingMaintenance1FeaturesKHR = () Extends DeviceCreateInfo DeviceMemoryOverallocationCreateInfoAMD = () Extends DeviceCreateInfo PhysicalDeviceFragmentDensityMapFeaturesEXT = () Extends DeviceCreateInfo PhysicalDeviceFragmentDensityMap2FeaturesEXT = ()@@ -981,6 +1039,7 @@ Extends DeviceCreateInfo PhysicalDeviceFragmentShadingRateFeaturesKHR = () Extends DeviceCreateInfo PhysicalDeviceShaderTerminateInvocationFeatures = () Extends DeviceCreateInfo PhysicalDeviceFragmentShadingRateEnumsFeaturesNV = ()+ Extends DeviceCreateInfo PhysicalDeviceImage2DViewOf3DFeaturesEXT = () Extends DeviceCreateInfo PhysicalDeviceMutableDescriptorTypeFeaturesVALVE = () Extends DeviceCreateInfo PhysicalDeviceDepthClipControlFeaturesEXT = () Extends DeviceCreateInfo PhysicalDeviceVertexInputDynamicStateFeaturesEXT = ()@@ -988,22 +1047,46 @@ Extends DeviceCreateInfo PhysicalDeviceColorWriteEnableFeaturesEXT = () Extends DeviceCreateInfo PhysicalDeviceSynchronization2Features = () Extends DeviceCreateInfo PhysicalDevicePrimitivesGeneratedQueryFeaturesEXT = ()+ Extends DeviceCreateInfo PhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT = () Extends DeviceCreateInfo PhysicalDeviceInheritedViewportScissorFeaturesNV = () Extends DeviceCreateInfo PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT = () Extends DeviceCreateInfo PhysicalDeviceProvokingVertexFeaturesEXT = () Extends DeviceCreateInfo PhysicalDeviceShaderIntegerDotProductFeatures = ()+ Extends DeviceCreateInfo PhysicalDeviceFragmentShaderBarycentricFeaturesKHR = () Extends DeviceCreateInfo PhysicalDeviceRayTracingMotionBlurFeaturesNV = () Extends DeviceCreateInfo PhysicalDeviceRGBA10X6FormatsFeaturesEXT = () Extends DeviceCreateInfo PhysicalDeviceDynamicRenderingFeatures = () Extends DeviceCreateInfo PhysicalDeviceImageViewMinLodFeaturesEXT = ()- Extends DeviceCreateInfo PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM = ()+ Extends DeviceCreateInfo PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT = () Extends DeviceCreateInfo PhysicalDeviceLinearColorAttachmentFeaturesNV = () Extends DeviceCreateInfo PhysicalDeviceGraphicsPipelineLibraryFeaturesEXT = () Extends DeviceCreateInfo PhysicalDeviceDescriptorSetHostMappingFeaturesVALVE = ()+ Extends DeviceCreateInfo PhysicalDeviceShaderModuleIdentifierFeaturesEXT = ()+ Extends DeviceCreateInfo PhysicalDeviceImageCompressionControlFeaturesEXT = ()+ Extends DeviceCreateInfo PhysicalDeviceImageCompressionControlSwapchainFeaturesEXT = ()+ Extends DeviceCreateInfo PhysicalDeviceSubpassMergeFeedbackFeaturesEXT = ()+ Extends DeviceCreateInfo PhysicalDevicePipelinePropertiesFeaturesEXT = ()+ Extends DeviceCreateInfo PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD = ()+ Extends DeviceCreateInfo PhysicalDeviceNonSeamlessCubeMapFeaturesEXT = ()+ Extends DeviceCreateInfo PhysicalDevicePipelineRobustnessFeaturesEXT = ()+ Extends DeviceCreateInfo PhysicalDeviceImageProcessingFeaturesQCOM = ()+ Extends DeviceCreateInfo PhysicalDeviceTilePropertiesFeaturesQCOM = ()+ Extends DeviceCreateInfo PhysicalDeviceAmigoProfilingFeaturesSEC = ()+ Extends DeviceCreateInfo PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT = ()+ Extends DeviceCreateInfo PhysicalDeviceDepthClampZeroOneFeaturesEXT = () Extends DeviceQueueCreateInfo DeviceQueueGlobalPriorityCreateInfoKHR = ()+ Extends EventCreateInfo ExportMetalObjectCreateInfoEXT = ()+ Extends EventCreateInfo ImportMetalSharedEventInfoEXT = ()+ Extends ExportMetalObjectsInfoEXT ExportMetalDeviceInfoEXT = ()+ Extends ExportMetalObjectsInfoEXT ExportMetalCommandQueueInfoEXT = ()+ Extends ExportMetalObjectsInfoEXT ExportMetalBufferInfoEXT = ()+ Extends ExportMetalObjectsInfoEXT ExportMetalTextureInfoEXT = ()+ Extends ExportMetalObjectsInfoEXT ExportMetalIOSurfaceInfoEXT = ()+ Extends ExportMetalObjectsInfoEXT ExportMetalSharedEventInfoEXT = () Extends FenceCreateInfo ExportFenceCreateInfo = () Extends FenceCreateInfo ExportFenceWin32HandleInfoKHR = () Extends FormatProperties2 DrmFormatModifierPropertiesListEXT = ()+ Extends FormatProperties2 SubpassResolvePerformanceQueryEXT = () Extends FormatProperties2 FormatProperties3 = () Extends FormatProperties2 DrmFormatModifierPropertiesList2EXT = () Extends FramebufferCreateInfo FramebufferAttachmentsCreateInfo = ()@@ -1019,6 +1102,7 @@ Extends GraphicsPipelineCreateInfo AttachmentSampleCountInfoAMD = () Extends GraphicsPipelineCreateInfo MultiviewPerViewAttributesInfoNVX = () Extends GraphicsPipelineCreateInfo GraphicsPipelineLibraryCreateInfoEXT = ()+ Extends GraphicsPipelineCreateInfo PipelineRobustnessCreateInfoEXT = () Extends ImageBlit2 CopyCommandTransformInfoQCOM = () Extends ImageCreateInfo DedicatedAllocationImageCreateInfoNV = () Extends ImageCreateInfo ExternalMemoryImageCreateInfoNV = ()@@ -1030,11 +1114,16 @@ Extends ImageCreateInfo ImageDrmFormatModifierExplicitCreateInfoEXT = () Extends ImageCreateInfo ImageStencilUsageCreateInfo = () Extends ImageCreateInfo BufferCollectionImageCreateInfoFUCHSIA = ()+ Extends ImageCreateInfo ImageCompressionControlEXT = ()+ Extends ImageCreateInfo ExportMetalObjectCreateInfoEXT = ()+ Extends ImageCreateInfo ImportMetalTextureInfoEXT = ()+ Extends ImageCreateInfo ImportMetalIOSurfaceInfoEXT = () Extends ImageFormatProperties2 ExternalImageFormatProperties = () Extends ImageFormatProperties2 SamplerYcbcrConversionImageFormatProperties = () Extends ImageFormatProperties2 TextureLODGatherFormatPropertiesAMD = () Extends ImageFormatProperties2 AndroidHardwareBufferUsageANDROID = () Extends ImageFormatProperties2 FilterCubicImageViewImageFormatPropertiesEXT = ()+ Extends ImageFormatProperties2 ImageCompressionPropertiesEXT = () Extends ImageMemoryBarrier SampleLocationsInfoEXT = () Extends ImageMemoryBarrier2 SampleLocationsInfoEXT = () Extends ImageMemoryRequirementsInfo2 ImagePlaneMemoryRequirementsInfo = ()@@ -1042,10 +1131,13 @@ Extends ImageViewCreateInfo SamplerYcbcrConversionInfo = () Extends ImageViewCreateInfo ImageViewASTCDecodeModeEXT = () Extends ImageViewCreateInfo ImageViewMinLodCreateInfoEXT = ()+ Extends ImageViewCreateInfo ExportMetalObjectCreateInfoEXT = ()+ Extends ImageViewCreateInfo ImageViewSampleWeightCreateInfoQCOM = () Extends InstanceCreateInfo DebugReportCallbackCreateInfoEXT = () Extends InstanceCreateInfo ValidationFlagsEXT = () Extends InstanceCreateInfo ValidationFeaturesEXT = () Extends InstanceCreateInfo DebugUtilsMessengerCreateInfoEXT = ()+ Extends InstanceCreateInfo ExportMetalObjectCreateInfoEXT = () Extends MemoryAllocateInfo DedicatedAllocationMemoryAllocateInfoNV = () Extends MemoryAllocateInfo ExportMemoryAllocateInfoNV = () Extends MemoryAllocateInfo ImportMemoryWin32HandleInfoNV = ()@@ -1062,6 +1154,8 @@ Extends MemoryAllocateInfo MemoryPriorityAllocateInfoEXT = () Extends MemoryAllocateInfo MemoryOpaqueCaptureAddressAllocateInfo = () Extends MemoryAllocateInfo ImportMemoryBufferCollectionFUCHSIA = ()+ Extends MemoryAllocateInfo ExportMetalObjectCreateInfoEXT = ()+ Extends MemoryAllocateInfo ImportMetalBufferInfoEXT = () Extends MemoryRequirements2 MemoryDedicatedRequirements = () Extends PhysicalDeviceExternalSemaphoreInfo SemaphoreTypeCreateInfo = () Extends PhysicalDeviceFeatures2 PhysicalDeviceDeviceGeneratedCommandsFeaturesNV = ()@@ -1098,15 +1192,16 @@ Extends PhysicalDeviceFeatures2 PhysicalDeviceExclusiveScissorFeaturesNV = () Extends PhysicalDeviceFeatures2 PhysicalDeviceCornerSampledImageFeaturesNV = () Extends PhysicalDeviceFeatures2 PhysicalDeviceComputeShaderDerivativesFeaturesNV = ()- Extends PhysicalDeviceFeatures2 PhysicalDeviceFragmentShaderBarycentricFeaturesNV = () Extends PhysicalDeviceFeatures2 PhysicalDeviceShaderImageFootprintFeaturesNV = () Extends PhysicalDeviceFeatures2 PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV = () Extends PhysicalDeviceFeatures2 PhysicalDeviceShadingRateImageFeaturesNV = () Extends PhysicalDeviceFeatures2 PhysicalDeviceInvocationMaskFeaturesHUAWEI = () Extends PhysicalDeviceFeatures2 PhysicalDeviceMeshShaderFeaturesNV = ()+ Extends PhysicalDeviceFeatures2 PhysicalDeviceMeshShaderFeaturesEXT = () Extends PhysicalDeviceFeatures2 PhysicalDeviceAccelerationStructureFeaturesKHR = () Extends PhysicalDeviceFeatures2 PhysicalDeviceRayTracingPipelineFeaturesKHR = () Extends PhysicalDeviceFeatures2 PhysicalDeviceRayQueryFeaturesKHR = ()+ Extends PhysicalDeviceFeatures2 PhysicalDeviceRayTracingMaintenance1FeaturesKHR = () Extends PhysicalDeviceFeatures2 PhysicalDeviceFragmentDensityMapFeaturesEXT = () Extends PhysicalDeviceFeatures2 PhysicalDeviceFragmentDensityMap2FeaturesEXT = () Extends PhysicalDeviceFeatures2 PhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM = ()@@ -1157,6 +1252,7 @@ Extends PhysicalDeviceFeatures2 PhysicalDeviceFragmentShadingRateFeaturesKHR = () Extends PhysicalDeviceFeatures2 PhysicalDeviceShaderTerminateInvocationFeatures = () Extends PhysicalDeviceFeatures2 PhysicalDeviceFragmentShadingRateEnumsFeaturesNV = ()+ Extends PhysicalDeviceFeatures2 PhysicalDeviceImage2DViewOf3DFeaturesEXT = () Extends PhysicalDeviceFeatures2 PhysicalDeviceMutableDescriptorTypeFeaturesVALVE = () Extends PhysicalDeviceFeatures2 PhysicalDeviceDepthClipControlFeaturesEXT = () Extends PhysicalDeviceFeatures2 PhysicalDeviceVertexInputDynamicStateFeaturesEXT = ()@@ -1164,23 +1260,39 @@ Extends PhysicalDeviceFeatures2 PhysicalDeviceColorWriteEnableFeaturesEXT = () Extends PhysicalDeviceFeatures2 PhysicalDeviceSynchronization2Features = () Extends PhysicalDeviceFeatures2 PhysicalDevicePrimitivesGeneratedQueryFeaturesEXT = ()+ Extends PhysicalDeviceFeatures2 PhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT = () Extends PhysicalDeviceFeatures2 PhysicalDeviceInheritedViewportScissorFeaturesNV = () Extends PhysicalDeviceFeatures2 PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT = () Extends PhysicalDeviceFeatures2 PhysicalDeviceProvokingVertexFeaturesEXT = () Extends PhysicalDeviceFeatures2 PhysicalDeviceShaderIntegerDotProductFeatures = ()+ Extends PhysicalDeviceFeatures2 PhysicalDeviceFragmentShaderBarycentricFeaturesKHR = () Extends PhysicalDeviceFeatures2 PhysicalDeviceRayTracingMotionBlurFeaturesNV = () Extends PhysicalDeviceFeatures2 PhysicalDeviceRGBA10X6FormatsFeaturesEXT = () Extends PhysicalDeviceFeatures2 PhysicalDeviceDynamicRenderingFeatures = () Extends PhysicalDeviceFeatures2 PhysicalDeviceImageViewMinLodFeaturesEXT = ()- Extends PhysicalDeviceFeatures2 PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM = ()+ Extends PhysicalDeviceFeatures2 PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT = () Extends PhysicalDeviceFeatures2 PhysicalDeviceLinearColorAttachmentFeaturesNV = () Extends PhysicalDeviceFeatures2 PhysicalDeviceGraphicsPipelineLibraryFeaturesEXT = () Extends PhysicalDeviceFeatures2 PhysicalDeviceDescriptorSetHostMappingFeaturesVALVE = ()+ Extends PhysicalDeviceFeatures2 PhysicalDeviceShaderModuleIdentifierFeaturesEXT = ()+ Extends PhysicalDeviceFeatures2 PhysicalDeviceImageCompressionControlFeaturesEXT = ()+ Extends PhysicalDeviceFeatures2 PhysicalDeviceImageCompressionControlSwapchainFeaturesEXT = ()+ Extends PhysicalDeviceFeatures2 PhysicalDeviceSubpassMergeFeedbackFeaturesEXT = ()+ Extends PhysicalDeviceFeatures2 PhysicalDevicePipelinePropertiesFeaturesEXT = ()+ Extends PhysicalDeviceFeatures2 PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD = ()+ Extends PhysicalDeviceFeatures2 PhysicalDeviceNonSeamlessCubeMapFeaturesEXT = ()+ Extends PhysicalDeviceFeatures2 PhysicalDevicePipelineRobustnessFeaturesEXT = ()+ Extends PhysicalDeviceFeatures2 PhysicalDeviceImageProcessingFeaturesQCOM = ()+ Extends PhysicalDeviceFeatures2 PhysicalDeviceTilePropertiesFeaturesQCOM = ()+ Extends PhysicalDeviceFeatures2 PhysicalDeviceAmigoProfilingFeaturesSEC = ()+ Extends PhysicalDeviceFeatures2 PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT = ()+ Extends PhysicalDeviceFeatures2 PhysicalDeviceDepthClampZeroOneFeaturesEXT = () Extends PhysicalDeviceImageFormatInfo2 PhysicalDeviceExternalImageFormatInfo = () Extends PhysicalDeviceImageFormatInfo2 ImageFormatListCreateInfo = () Extends PhysicalDeviceImageFormatInfo2 PhysicalDeviceImageDrmFormatModifierInfoEXT = () Extends PhysicalDeviceImageFormatInfo2 ImageStencilUsageCreateInfo = () Extends PhysicalDeviceImageFormatInfo2 PhysicalDeviceImageViewImageFormatInfoEXT = ()+ Extends PhysicalDeviceImageFormatInfo2 ImageCompressionControlEXT = () Extends PhysicalDeviceMemoryProperties2 PhysicalDeviceMemoryBudgetPropertiesEXT = () Extends PhysicalDeviceProperties2 PhysicalDeviceDeviceGeneratedCommandsPropertiesNV = () Extends PhysicalDeviceProperties2 PhysicalDeviceMultiDrawPropertiesEXT = ()@@ -1212,6 +1324,7 @@ Extends PhysicalDeviceProperties2 PhysicalDeviceTransformFeedbackPropertiesEXT = () Extends PhysicalDeviceProperties2 PhysicalDeviceShadingRateImagePropertiesNV = () Extends PhysicalDeviceProperties2 PhysicalDeviceMeshShaderPropertiesNV = ()+ Extends PhysicalDeviceProperties2 PhysicalDeviceMeshShaderPropertiesEXT = () Extends PhysicalDeviceProperties2 PhysicalDeviceAccelerationStructurePropertiesKHR = () Extends PhysicalDeviceProperties2 PhysicalDeviceRayTracingPipelinePropertiesKHR = () Extends PhysicalDeviceProperties2 PhysicalDeviceRayTracingPropertiesNV = ()@@ -1236,7 +1349,11 @@ Extends PhysicalDeviceProperties2 PhysicalDeviceProvokingVertexPropertiesEXT = () Extends PhysicalDeviceProperties2 PhysicalDeviceShaderIntegerDotProductProperties = () Extends PhysicalDeviceProperties2 PhysicalDeviceDrmPropertiesEXT = ()+ Extends PhysicalDeviceProperties2 PhysicalDeviceFragmentShaderBarycentricPropertiesKHR = () Extends PhysicalDeviceProperties2 PhysicalDeviceGraphicsPipelineLibraryPropertiesEXT = ()+ Extends PhysicalDeviceProperties2 PhysicalDeviceShaderModuleIdentifierPropertiesEXT = ()+ Extends PhysicalDeviceProperties2 PhysicalDevicePipelineRobustnessPropertiesEXT = ()+ Extends PhysicalDeviceProperties2 PhysicalDeviceImageProcessingPropertiesQCOM = () Extends PhysicalDeviceSurfaceInfo2KHR SurfaceFullScreenExclusiveInfoEXT = () Extends PhysicalDeviceSurfaceInfo2KHR SurfaceFullScreenExclusiveWin32InfoEXT = () Extends PipelineColorBlendStateCreateInfo PipelineColorBlendAdvancedStateCreateInfoEXT = ()@@ -1252,8 +1369,11 @@ Extends PipelineRasterizationStateCreateInfo PipelineRasterizationLineStateCreateInfoEXT = () Extends PipelineRasterizationStateCreateInfo PipelineRasterizationProvokingVertexStateCreateInfoEXT = () Extends PipelineShaderStageCreateInfo (ShaderModuleCreateInfo '[]) = ()+ Extends PipelineShaderStageCreateInfo ShaderModuleValidationCacheCreateInfoEXT = () Extends PipelineShaderStageCreateInfo DebugUtilsObjectNameInfoEXT = () Extends PipelineShaderStageCreateInfo PipelineShaderStageRequiredSubgroupSizeCreateInfo = ()+ Extends PipelineShaderStageCreateInfo PipelineShaderStageModuleIdentifierCreateInfoEXT = ()+ Extends PipelineShaderStageCreateInfo PipelineRobustnessCreateInfoEXT = () Extends PipelineTessellationStateCreateInfo PipelineTessellationDomainOriginStateCreateInfo = () Extends PipelineVertexInputStateCreateInfo PipelineVertexInputDivisorStateCreateInfoEXT = () Extends PipelineViewportStateCreateInfo PipelineViewportWScalingStateCreateInfoNV = ()@@ -1274,6 +1394,7 @@ Extends QueueFamilyProperties2 QueueFamilyCheckpointPropertiesNV = () Extends QueueFamilyProperties2 QueueFamilyCheckpointProperties2NV = () Extends RayTracingPipelineCreateInfoKHR PipelineCreationFeedbackCreateInfo = ()+ Extends RayTracingPipelineCreateInfoKHR PipelineRobustnessCreateInfoEXT = () Extends RayTracingPipelineCreateInfoNV PipelineCreationFeedbackCreateInfo = () Extends RenderPassBeginInfo DeviceGroupRenderPassBeginInfo = () Extends RenderPassBeginInfo RenderPassSampleLocationsBeginInfoEXT = ()@@ -1283,7 +1404,10 @@ Extends RenderPassCreateInfo RenderPassInputAttachmentAspectCreateInfo = () Extends RenderPassCreateInfo RenderPassFragmentDensityMapCreateInfoEXT = () Extends RenderPassCreateInfo2 RenderPassFragmentDensityMapCreateInfoEXT = ()+ Extends RenderPassCreateInfo2 RenderPassCreationControlEXT = ()+ Extends RenderPassCreateInfo2 RenderPassCreationFeedbackCreateInfoEXT = () Extends RenderingInfo DeviceGroupRenderPassBeginInfo = ()+ Extends RenderingInfo MultisampledRenderToSingleSampledInfoEXT = () Extends RenderingInfo RenderingFragmentShadingRateAttachmentInfoKHR = () Extends RenderingInfo RenderingFragmentDensityMapAttachmentInfoEXT = () Extends RenderingInfo MultiviewPerViewAttributesInfoNVX = ()@@ -1295,6 +1419,8 @@ Extends SemaphoreCreateInfo ExportSemaphoreCreateInfo = () Extends SemaphoreCreateInfo ExportSemaphoreWin32HandleInfoKHR = () Extends SemaphoreCreateInfo SemaphoreTypeCreateInfo = ()+ Extends SemaphoreCreateInfo ExportMetalObjectCreateInfoEXT = ()+ Extends SemaphoreCreateInfo ImportMetalSharedEventInfoEXT = () Extends ShaderModuleCreateInfo ShaderModuleValidationCacheCreateInfoEXT = () Extends SubmitInfo Win32KeyedMutexAcquireReleaseInfoNV = () Extends SubmitInfo Win32KeyedMutexAcquireReleaseInfoKHR = ()@@ -1303,23 +1429,30 @@ Extends SubmitInfo ProtectedSubmitInfo = () Extends SubmitInfo TimelineSemaphoreSubmitInfo = () Extends SubmitInfo PerformanceQuerySubmitInfoKHR = ()+ Extends SubmitInfo AmigoProfilingSubmitInfoSEC = () Extends SubmitInfo2 Win32KeyedMutexAcquireReleaseInfoNV = () Extends SubmitInfo2 Win32KeyedMutexAcquireReleaseInfoKHR = () Extends SubmitInfo2 PerformanceQuerySubmitInfoKHR = () Extends SubpassDependency2 MemoryBarrier2 = () Extends SubpassDescription2 SubpassDescriptionDepthStencilResolve = () Extends SubpassDescription2 FragmentShadingRateAttachmentInfoKHR = ()+ Extends SubpassDescription2 MultisampledRenderToSingleSampledInfoEXT = ()+ Extends SubpassDescription2 RenderPassCreationControlEXT = ()+ Extends SubpassDescription2 RenderPassSubpassFeedbackCreateInfoEXT = () Extends SubpassEndInfo SubpassFragmentDensityMapOffsetEndInfoQCOM = ()+ Extends SubresourceLayout2EXT ImageCompressionPropertiesEXT = () Extends SurfaceCapabilities2KHR DisplayNativeHdrSurfaceCapabilitiesAMD = () Extends SurfaceCapabilities2KHR SharedPresentSurfaceCapabilitiesKHR = () Extends SurfaceCapabilities2KHR SurfaceProtectedCapabilitiesKHR = () Extends SurfaceCapabilities2KHR SurfaceCapabilitiesFullScreenExclusiveEXT = ()+ Extends SurfaceFormat2KHR ImageCompressionPropertiesEXT = () Extends SwapchainCreateInfoKHR SwapchainCounterCreateInfoEXT = () Extends SwapchainCreateInfoKHR DeviceGroupSwapchainCreateInfoKHR = () Extends SwapchainCreateInfoKHR SwapchainDisplayNativeHdrCreateInfoAMD = () Extends SwapchainCreateInfoKHR ImageFormatListCreateInfo = () Extends SwapchainCreateInfoKHR SurfaceFullScreenExclusiveInfoEXT = () Extends SwapchainCreateInfoKHR SurfaceFullScreenExclusiveWin32InfoEXT = ()+ Extends SwapchainCreateInfoKHR ImageCompressionControlEXT = () Extends WriteDescriptorSet WriteDescriptorSetInlineUniformBlock = () Extends WriteDescriptorSet WriteDescriptorSetAccelerationStructureKHR = () Extends WriteDescriptorSet WriteDescriptorSetAccelerationStructureNV = ()@@ -1588,7 +1721,6 @@ STRUCTURE_TYPE_PIPELINE_VIEWPORT_EXCLUSIVE_SCISSOR_STATE_CREATE_INFO_NV -> go @PipelineViewportExclusiveScissorStateCreateInfoNV STRUCTURE_TYPE_PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV -> go @PhysicalDeviceCornerSampledImageFeaturesNV STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV -> go @PhysicalDeviceComputeShaderDerivativesFeaturesNV- STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_NV -> go @PhysicalDeviceFragmentShaderBarycentricFeaturesNV STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_FOOTPRINT_FEATURES_NV -> go @PhysicalDeviceShaderImageFootprintFeaturesNV STRUCTURE_TYPE_PHYSICAL_DEVICE_DEDICATED_ALLOCATION_IMAGE_ALIASING_FEATURES_NV -> go @PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV STRUCTURE_TYPE_PIPELINE_VIEWPORT_SHADING_RATE_IMAGE_STATE_CREATE_INFO_NV -> go @PipelineViewportShadingRateImageStateCreateInfoNV@@ -1598,6 +1730,8 @@ STRUCTURE_TYPE_PIPELINE_VIEWPORT_COARSE_SAMPLE_ORDER_STATE_CREATE_INFO_NV -> go @PipelineViewportCoarseSampleOrderStateCreateInfoNV STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV -> go @PhysicalDeviceMeshShaderFeaturesNV STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV -> go @PhysicalDeviceMeshShaderPropertiesNV+ STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_EXT -> go @PhysicalDeviceMeshShaderFeaturesEXT+ STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_EXT -> go @PhysicalDeviceMeshShaderPropertiesEXT STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHR -> go @WriteDescriptorSetAccelerationStructureKHR STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_NV -> go @WriteDescriptorSetAccelerationStructureNV STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_FEATURES_KHR -> go @PhysicalDeviceAccelerationStructureFeaturesKHR@@ -1606,6 +1740,7 @@ STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_PROPERTIES_KHR -> go @PhysicalDeviceAccelerationStructurePropertiesKHR STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_PROPERTIES_KHR -> go @PhysicalDeviceRayTracingPipelinePropertiesKHR STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_NV -> go @PhysicalDeviceRayTracingPropertiesNV+ STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MAINTENANCE_1_FEATURES_KHR -> go @PhysicalDeviceRayTracingMaintenance1FeaturesKHR STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT -> go @DrmFormatModifierPropertiesListEXT STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT -> go @PhysicalDeviceImageDrmFormatModifierInfoEXT STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT -> go @ImageDrmFormatModifierListCreateInfoEXT@@ -1718,6 +1853,7 @@ STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_FEATURES_NV -> go @PhysicalDeviceFragmentShadingRateEnumsFeaturesNV STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_PROPERTIES_NV -> go @PhysicalDeviceFragmentShadingRateEnumsPropertiesNV STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_ENUM_STATE_CREATE_INFO_NV -> go @PipelineFragmentShadingRateEnumStateCreateInfoNV+ STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_2D_VIEW_OF_3D_FEATURES_EXT -> go @PhysicalDeviceImage2DViewOf3DFeaturesEXT STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_VALVE -> go @PhysicalDeviceMutableDescriptorTypeFeaturesVALVE STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_VALVE -> go @MutableDescriptorTypeCreateInfoVALVE STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_CONTROL_FEATURES_EXT -> go @PhysicalDeviceDepthClipControlFeaturesEXT@@ -1730,6 +1866,9 @@ STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV -> go @QueueFamilyCheckpointProperties2NV STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES -> go @PhysicalDeviceSynchronization2Features STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVES_GENERATED_QUERY_FEATURES_EXT -> go @PhysicalDevicePrimitivesGeneratedQueryFeaturesEXT+ STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_FEATURES_EXT -> go @PhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT+ STRUCTURE_TYPE_SUBPASS_RESOLVE_PERFORMANCE_QUERY_EXT -> go @SubpassResolvePerformanceQueryEXT+ STRUCTURE_TYPE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_INFO_EXT -> go @MultisampledRenderToSingleSampledInfoEXT STRUCTURE_TYPE_PHYSICAL_DEVICE_INHERITED_VIEWPORT_SCISSOR_FEATURES_NV -> go @PhysicalDeviceInheritedViewportScissorFeaturesNV STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_VIEWPORT_SCISSOR_INFO_NV -> go @CommandBufferInheritanceViewportScissorInfoNV STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT -> go @PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT@@ -1739,6 +1878,8 @@ STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES -> go @PhysicalDeviceShaderIntegerDotProductFeatures STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES -> go @PhysicalDeviceShaderIntegerDotProductProperties STRUCTURE_TYPE_PHYSICAL_DEVICE_DRM_PROPERTIES_EXT -> go @PhysicalDeviceDrmPropertiesEXT+ STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_KHR -> go @PhysicalDeviceFragmentShaderBarycentricFeaturesKHR+ STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_PROPERTIES_KHR -> go @PhysicalDeviceFragmentShaderBarycentricPropertiesKHR STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MOTION_BLUR_FEATURES_NV -> go @PhysicalDeviceRayTracingMotionBlurFeaturesNV STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_MOTION_TRIANGLES_DATA_NV -> throwIO $ IOError Nothing InvalidArgument "peekChainHead" ("struct type STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_MOTION_TRIANGLES_DATA_NV contains an undiscriminated union (DeviceOrHostAddressConstKHR) and can't be safely peeked") Nothing Nothing STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MOTION_INFO_NV -> go @AccelerationStructureMotionInfoNV@@ -1758,12 +1899,48 @@ STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_ATTRIBUTES_INFO_NVX -> go @MultiviewPerViewAttributesInfoNVX STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_MIN_LOD_FEATURES_EXT -> go @PhysicalDeviceImageViewMinLodFeaturesEXT STRUCTURE_TYPE_IMAGE_VIEW_MIN_LOD_CREATE_INFO_EXT -> go @ImageViewMinLodCreateInfoEXT- STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_ARM -> go @PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM+ STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_EXT -> go @PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT STRUCTURE_TYPE_PHYSICAL_DEVICE_LINEAR_COLOR_ATTACHMENT_FEATURES_NV -> go @PhysicalDeviceLinearColorAttachmentFeaturesNV STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_FEATURES_EXT -> go @PhysicalDeviceGraphicsPipelineLibraryFeaturesEXT STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_PROPERTIES_EXT -> go @PhysicalDeviceGraphicsPipelineLibraryPropertiesEXT STRUCTURE_TYPE_GRAPHICS_PIPELINE_LIBRARY_CREATE_INFO_EXT -> go @GraphicsPipelineLibraryCreateInfoEXT STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_SET_HOST_MAPPING_FEATURES_VALVE -> go @PhysicalDeviceDescriptorSetHostMappingFeaturesVALVE+ STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_FEATURES_EXT -> go @PhysicalDeviceShaderModuleIdentifierFeaturesEXT+ STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_PROPERTIES_EXT -> go @PhysicalDeviceShaderModuleIdentifierPropertiesEXT+ STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_MODULE_IDENTIFIER_CREATE_INFO_EXT -> go @PipelineShaderStageModuleIdentifierCreateInfoEXT+ STRUCTURE_TYPE_IMAGE_COMPRESSION_CONTROL_EXT -> go @ImageCompressionControlEXT+ STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_FEATURES_EXT -> go @PhysicalDeviceImageCompressionControlFeaturesEXT+ STRUCTURE_TYPE_IMAGE_COMPRESSION_PROPERTIES_EXT -> go @ImageCompressionPropertiesEXT+ STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_FEATURES_EXT -> go @PhysicalDeviceImageCompressionControlSwapchainFeaturesEXT+ STRUCTURE_TYPE_RENDER_PASS_CREATION_CONTROL_EXT -> go @RenderPassCreationControlEXT+ STRUCTURE_TYPE_RENDER_PASS_CREATION_FEEDBACK_CREATE_INFO_EXT -> go @RenderPassCreationFeedbackCreateInfoEXT+ STRUCTURE_TYPE_RENDER_PASS_SUBPASS_FEEDBACK_CREATE_INFO_EXT -> go @RenderPassSubpassFeedbackCreateInfoEXT+ STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_MERGE_FEEDBACK_FEATURES_EXT -> go @PhysicalDeviceSubpassMergeFeedbackFeaturesEXT+ STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROPERTIES_FEATURES_EXT -> go @PhysicalDevicePipelinePropertiesFeaturesEXT+ STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_FEATURES_AMD -> go @PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD+ STRUCTURE_TYPE_EXPORT_METAL_OBJECT_CREATE_INFO_EXT -> go @ExportMetalObjectCreateInfoEXT+ STRUCTURE_TYPE_EXPORT_METAL_DEVICE_INFO_EXT -> go @ExportMetalDeviceInfoEXT+ STRUCTURE_TYPE_EXPORT_METAL_COMMAND_QUEUE_INFO_EXT -> go @ExportMetalCommandQueueInfoEXT+ STRUCTURE_TYPE_EXPORT_METAL_BUFFER_INFO_EXT -> go @ExportMetalBufferInfoEXT+ STRUCTURE_TYPE_IMPORT_METAL_BUFFER_INFO_EXT -> go @ImportMetalBufferInfoEXT+ STRUCTURE_TYPE_EXPORT_METAL_TEXTURE_INFO_EXT -> go @ExportMetalTextureInfoEXT+ STRUCTURE_TYPE_IMPORT_METAL_TEXTURE_INFO_EXT -> go @ImportMetalTextureInfoEXT+ STRUCTURE_TYPE_EXPORT_METAL_IO_SURFACE_INFO_EXT -> go @ExportMetalIOSurfaceInfoEXT+ STRUCTURE_TYPE_IMPORT_METAL_IO_SURFACE_INFO_EXT -> go @ImportMetalIOSurfaceInfoEXT+ STRUCTURE_TYPE_EXPORT_METAL_SHARED_EVENT_INFO_EXT -> go @ExportMetalSharedEventInfoEXT+ STRUCTURE_TYPE_IMPORT_METAL_SHARED_EVENT_INFO_EXT -> go @ImportMetalSharedEventInfoEXT+ STRUCTURE_TYPE_PHYSICAL_DEVICE_NON_SEAMLESS_CUBE_MAP_FEATURES_EXT -> go @PhysicalDeviceNonSeamlessCubeMapFeaturesEXT+ STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_FEATURES_EXT -> go @PhysicalDevicePipelineRobustnessFeaturesEXT+ STRUCTURE_TYPE_PIPELINE_ROBUSTNESS_CREATE_INFO_EXT -> go @PipelineRobustnessCreateInfoEXT+ STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_PROPERTIES_EXT -> go @PhysicalDevicePipelineRobustnessPropertiesEXT+ STRUCTURE_TYPE_IMAGE_VIEW_SAMPLE_WEIGHT_CREATE_INFO_QCOM -> go @ImageViewSampleWeightCreateInfoQCOM+ STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_FEATURES_QCOM -> go @PhysicalDeviceImageProcessingFeaturesQCOM+ STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_PROPERTIES_QCOM -> go @PhysicalDeviceImageProcessingPropertiesQCOM+ STRUCTURE_TYPE_PHYSICAL_DEVICE_TILE_PROPERTIES_FEATURES_QCOM -> go @PhysicalDeviceTilePropertiesFeaturesQCOM+ STRUCTURE_TYPE_PHYSICAL_DEVICE_AMIGO_PROFILING_FEATURES_SEC -> go @PhysicalDeviceAmigoProfilingFeaturesSEC+ STRUCTURE_TYPE_AMIGO_PROFILING_SUBMIT_INFO_SEC -> go @AmigoProfilingSubmitInfoSEC+ STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_FEATURES_EXT -> go @PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT+ STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLAMP_ZERO_ONE_FEATURES_EXT -> go @PhysicalDeviceDepthClampZeroOneFeaturesEXT t -> throwIO $ IOError Nothing InvalidArgument "peekChainHead" ("Unrecognized struct type: " <> show t) Nothing Nothing where go :: forall e . (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b@@ -1980,7 +2157,6 @@ {-# complete (::&) :: PipelineViewportExclusiveScissorStateCreateInfoNV #-} {-# complete (::&) :: PhysicalDeviceCornerSampledImageFeaturesNV #-} {-# complete (::&) :: PhysicalDeviceComputeShaderDerivativesFeaturesNV #-}-{-# complete (::&) :: PhysicalDeviceFragmentShaderBarycentricFeaturesNV #-} {-# complete (::&) :: PhysicalDeviceShaderImageFootprintFeaturesNV #-} {-# complete (::&) :: PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV #-} {-# complete (::&) :: PipelineViewportShadingRateImageStateCreateInfoNV #-}@@ -1990,6 +2166,8 @@ {-# complete (::&) :: PipelineViewportCoarseSampleOrderStateCreateInfoNV #-} {-# complete (::&) :: PhysicalDeviceMeshShaderFeaturesNV #-} {-# complete (::&) :: PhysicalDeviceMeshShaderPropertiesNV #-}+{-# complete (::&) :: PhysicalDeviceMeshShaderFeaturesEXT #-}+{-# complete (::&) :: PhysicalDeviceMeshShaderPropertiesEXT #-} {-# complete (::&) :: WriteDescriptorSetAccelerationStructureKHR #-} {-# complete (::&) :: WriteDescriptorSetAccelerationStructureNV #-} {-# complete (::&) :: PhysicalDeviceAccelerationStructureFeaturesKHR #-}@@ -1998,6 +2176,7 @@ {-# complete (::&) :: PhysicalDeviceAccelerationStructurePropertiesKHR #-} {-# complete (::&) :: PhysicalDeviceRayTracingPipelinePropertiesKHR #-} {-# complete (::&) :: PhysicalDeviceRayTracingPropertiesNV #-}+{-# complete (::&) :: PhysicalDeviceRayTracingMaintenance1FeaturesKHR #-} {-# complete (::&) :: DrmFormatModifierPropertiesListEXT #-} {-# complete (::&) :: PhysicalDeviceImageDrmFormatModifierInfoEXT #-} {-# complete (::&) :: ImageDrmFormatModifierListCreateInfoEXT #-}@@ -2110,6 +2289,7 @@ {-# complete (::&) :: PhysicalDeviceFragmentShadingRateEnumsFeaturesNV #-} {-# complete (::&) :: PhysicalDeviceFragmentShadingRateEnumsPropertiesNV #-} {-# complete (::&) :: PipelineFragmentShadingRateEnumStateCreateInfoNV #-}+{-# complete (::&) :: PhysicalDeviceImage2DViewOf3DFeaturesEXT #-} {-# complete (::&) :: PhysicalDeviceMutableDescriptorTypeFeaturesVALVE #-} {-# complete (::&) :: MutableDescriptorTypeCreateInfoVALVE #-} {-# complete (::&) :: PhysicalDeviceDepthClipControlFeaturesEXT #-}@@ -2122,6 +2302,9 @@ {-# complete (::&) :: QueueFamilyCheckpointProperties2NV #-} {-# complete (::&) :: PhysicalDeviceSynchronization2Features #-} {-# complete (::&) :: PhysicalDevicePrimitivesGeneratedQueryFeaturesEXT #-}+{-# complete (::&) :: PhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT #-}+{-# complete (::&) :: SubpassResolvePerformanceQueryEXT #-}+{-# complete (::&) :: MultisampledRenderToSingleSampledInfoEXT #-} {-# complete (::&) :: PhysicalDeviceInheritedViewportScissorFeaturesNV #-} {-# complete (::&) :: CommandBufferInheritanceViewportScissorInfoNV #-} {-# complete (::&) :: PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT #-}@@ -2131,6 +2314,8 @@ {-# complete (::&) :: PhysicalDeviceShaderIntegerDotProductFeatures #-} {-# complete (::&) :: PhysicalDeviceShaderIntegerDotProductProperties #-} {-# complete (::&) :: PhysicalDeviceDrmPropertiesEXT #-}+{-# complete (::&) :: PhysicalDeviceFragmentShaderBarycentricFeaturesKHR #-}+{-# complete (::&) :: PhysicalDeviceFragmentShaderBarycentricPropertiesKHR #-} {-# complete (::&) :: PhysicalDeviceRayTracingMotionBlurFeaturesNV #-} {-# complete (::&) :: AccelerationStructureGeometryMotionTrianglesDataNV #-} {-# complete (::&) :: AccelerationStructureMotionInfoNV #-}@@ -2150,12 +2335,48 @@ {-# complete (::&) :: MultiviewPerViewAttributesInfoNVX #-} {-# complete (::&) :: PhysicalDeviceImageViewMinLodFeaturesEXT #-} {-# complete (::&) :: ImageViewMinLodCreateInfoEXT #-}-{-# complete (::&) :: PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM #-}+{-# complete (::&) :: PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT #-} {-# complete (::&) :: PhysicalDeviceLinearColorAttachmentFeaturesNV #-} {-# complete (::&) :: PhysicalDeviceGraphicsPipelineLibraryFeaturesEXT #-} {-# complete (::&) :: PhysicalDeviceGraphicsPipelineLibraryPropertiesEXT #-} {-# complete (::&) :: GraphicsPipelineLibraryCreateInfoEXT #-} {-# complete (::&) :: PhysicalDeviceDescriptorSetHostMappingFeaturesVALVE #-}+{-# complete (::&) :: PhysicalDeviceShaderModuleIdentifierFeaturesEXT #-}+{-# complete (::&) :: PhysicalDeviceShaderModuleIdentifierPropertiesEXT #-}+{-# complete (::&) :: PipelineShaderStageModuleIdentifierCreateInfoEXT #-}+{-# complete (::&) :: ImageCompressionControlEXT #-}+{-# complete (::&) :: PhysicalDeviceImageCompressionControlFeaturesEXT #-}+{-# complete (::&) :: ImageCompressionPropertiesEXT #-}+{-# complete (::&) :: PhysicalDeviceImageCompressionControlSwapchainFeaturesEXT #-}+{-# complete (::&) :: RenderPassCreationControlEXT #-}+{-# complete (::&) :: RenderPassCreationFeedbackCreateInfoEXT #-}+{-# complete (::&) :: RenderPassSubpassFeedbackCreateInfoEXT #-}+{-# complete (::&) :: PhysicalDeviceSubpassMergeFeedbackFeaturesEXT #-}+{-# complete (::&) :: PhysicalDevicePipelinePropertiesFeaturesEXT #-}+{-# complete (::&) :: PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD #-}+{-# complete (::&) :: ExportMetalObjectCreateInfoEXT #-}+{-# complete (::&) :: ExportMetalDeviceInfoEXT #-}+{-# complete (::&) :: ExportMetalCommandQueueInfoEXT #-}+{-# complete (::&) :: ExportMetalBufferInfoEXT #-}+{-# complete (::&) :: ImportMetalBufferInfoEXT #-}+{-# complete (::&) :: ExportMetalTextureInfoEXT #-}+{-# complete (::&) :: ImportMetalTextureInfoEXT #-}+{-# complete (::&) :: ExportMetalIOSurfaceInfoEXT #-}+{-# complete (::&) :: ImportMetalIOSurfaceInfoEXT #-}+{-# complete (::&) :: ExportMetalSharedEventInfoEXT #-}+{-# complete (::&) :: ImportMetalSharedEventInfoEXT #-}+{-# complete (::&) :: PhysicalDeviceNonSeamlessCubeMapFeaturesEXT #-}+{-# complete (::&) :: PhysicalDevicePipelineRobustnessFeaturesEXT #-}+{-# complete (::&) :: PipelineRobustnessCreateInfoEXT #-}+{-# complete (::&) :: PhysicalDevicePipelineRobustnessPropertiesEXT #-}+{-# complete (::&) :: ImageViewSampleWeightCreateInfoQCOM #-}+{-# complete (::&) :: PhysicalDeviceImageProcessingFeaturesQCOM #-}+{-# complete (::&) :: PhysicalDeviceImageProcessingPropertiesQCOM #-}+{-# complete (::&) :: PhysicalDeviceTilePropertiesFeaturesQCOM #-}+{-# complete (::&) :: PhysicalDeviceAmigoProfilingFeaturesSEC #-}+{-# complete (::&) :: AmigoProfilingSubmitInfoSEC #-}+{-# complete (::&) :: PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT #-}+{-# complete (::&) :: PhysicalDeviceDepthClampZeroOneFeaturesEXT #-} -- | View the head and tail of a 'Chain', see '::&' --
src/Vulkan/Core10/APIConstants.hs view
@@ -48,6 +48,8 @@ , pattern SHADER_UNUSED_KHR , MAX_GLOBAL_PRIORITY_SIZE_KHR , pattern MAX_GLOBAL_PRIORITY_SIZE_KHR+ , MAX_SHADER_MODULE_IDENTIFIER_SIZE_EXT+ , pattern MAX_SHADER_MODULE_IDENTIFIER_SIZE_EXT , pattern NULL_HANDLE , IsHandle , HasObjectType(..)@@ -105,7 +107,7 @@ -- -- = See Also ----- No cross-references are available+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0> pattern MAX_PHYSICAL_DEVICE_NAME_SIZE :: forall a . Integral a => a pattern MAX_PHYSICAL_DEVICE_NAME_SIZE = 256 @@ -117,7 +119,7 @@ -- -- = See Also ----- No cross-references are available+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0> pattern UUID_SIZE :: forall a . Integral a => a pattern UUID_SIZE = 16 @@ -143,7 +145,7 @@ -- -- = See Also ----- No cross-references are available+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0> pattern MAX_EXTENSION_NAME_SIZE :: forall a . Integral a => a pattern MAX_EXTENSION_NAME_SIZE = 256 @@ -154,7 +156,7 @@ -- -- = See Also ----- No cross-references are available+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0> pattern MAX_DESCRIPTION_SIZE :: forall a . Integral a => a pattern MAX_DESCRIPTION_SIZE = 256 @@ -165,7 +167,7 @@ -- -- = See Also ----- No cross-references are available+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0> pattern MAX_MEMORY_TYPES :: forall a . Integral a => a pattern MAX_MEMORY_TYPES = 32 @@ -176,7 +178,7 @@ -- -- = See Also ----- No cross-references are available+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0> pattern MAX_MEMORY_HEAPS :: forall a . Integral a => a pattern MAX_MEMORY_HEAPS = 16 @@ -331,6 +333,13 @@ -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_global_priority VK_KHR_global_priority> pattern MAX_GLOBAL_PRIORITY_SIZE_KHR :: forall a . Integral a => a pattern MAX_GLOBAL_PRIORITY_SIZE_KHR = 16+++type MAX_SHADER_MODULE_IDENTIFIER_SIZE_EXT = 32++-- No documentation found for TopLevel "VK_MAX_SHADER_MODULE_IDENTIFIER_SIZE_EXT"+pattern MAX_SHADER_MODULE_IDENTIFIER_SIZE_EXT :: forall a . Integral a => a+pattern MAX_SHADER_MODULE_IDENTIFIER_SIZE_EXT = 32 -- | VK_NULL_HANDLE - Reserved non-valid object handle
src/Vulkan/Core10/Buffer.hs view
@@ -163,7 +163,7 @@ -- parameters affecting creation of the buffer. (BufferCreateInfo a) -> -- | @pAllocator@ controls host memory allocation as described in the- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation> -- chapter. ("allocator" ::: Maybe AllocationCallbacks) -> io (Buffer)@@ -252,7 +252,7 @@ -> -- | @buffer@ is the buffer to destroy. Buffer -> -- | @pAllocator@ controls host memory allocation as described in the- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation> -- chapter. ("allocator" ::: Maybe AllocationCallbacks) -> io ()@@ -295,17 +295,17 @@ -- for the @physicalDevice@ that was used to create @device@ -- -- - #VUID-VkBufferCreateInfo-flags-00915# If the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-sparseBinding sparse bindings>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-sparseBinding sparseBinding> -- feature is not enabled, @flags@ /must/ not contain -- 'Vulkan.Core10.Enums.BufferCreateFlagBits.BUFFER_CREATE_SPARSE_BINDING_BIT' -- -- - #VUID-VkBufferCreateInfo-flags-00916# If the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-sparseResidencyBuffer sparse buffer residency>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-sparseResidencyBuffer sparseResidencyBuffer> -- feature is not enabled, @flags@ /must/ not contain -- 'Vulkan.Core10.Enums.BufferCreateFlagBits.BUFFER_CREATE_SPARSE_RESIDENCY_BIT' -- -- - #VUID-VkBufferCreateInfo-flags-00917# If the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-sparseResidencyAliased sparse aliased residency>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-sparseResidencyAliased sparseResidencyAliased> -- feature is not enabled, @flags@ /must/ not contain -- 'Vulkan.Core10.Enums.BufferCreateFlagBits.BUFFER_CREATE_SPARSE_ALIASED_BIT' --@@ -328,7 +328,8 @@ -- handle types specified in -- 'Vulkan.Core11.Promoted_From_VK_KHR_external_memory.ExternalMemoryBufferCreateInfo'::@handleTypes@ ----- - #VUID-VkBufferCreateInfo-flags-01887# If the protected memory+-- - #VUID-VkBufferCreateInfo-flags-01887# If the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-protectedMemory protectedMemory> -- feature is not enabled, @flags@ /must/ not contain -- 'Vulkan.Core10.Enums.BufferCreateFlagBits.BUFFER_CREATE_PROTECTED_BIT' --@@ -365,11 +366,31 @@ -- - #VUID-VkBufferCreateInfo-flags-03338# If @flags@ includes -- 'Vulkan.Core10.Enums.BufferCreateFlagBits.BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT', -- the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-bufferDeviceAddressCaptureReplay bufferDeviceAddressCaptureReplay>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-bufferDeviceAddressCaptureReplay bufferDeviceAddressCaptureReplay> -- or--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-bufferDeviceAddressCaptureReplayEXT ::bufferDeviceAddressCaptureReplay>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-bufferDeviceAddressCaptureReplayEXT bufferDeviceAddressCaptureReplayEXT> -- feature /must/ be enabled --+-- - #VUID-VkBufferCreateInfo-usage-04813# If @usage@ includes+-- @VK_BUFFER_USAGE_VIDEO_DECODE_SRC_BIT_KHR@,+-- @VK_BUFFER_USAGE_VIDEO_DECODE_DST_BIT_KHR@, then the @pNext@ chain+-- /must/ include a valid+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoProfileListInfoKHR VkVideoProfileListInfoKHR>+-- structure with @profileCount@ greater than @0@ and @pProfiles@+-- including at least one+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoProfileInfoKHR VkVideoProfileInfoKHR>::@videoCodecOperation@+-- specifying a decode operation+--+-- - #VUID-VkBufferCreateInfo-usage-04814# If @usage@ includes+-- @VK_BUFFER_USAGE_VIDEO_ENCODE_SRC_BIT_KHR@,+-- @VK_BUFFER_USAGE_VIDEO_ENCODE_DST_BIT_KHR@, then the @pNext@ chain+-- /must/ include a valid+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoProfileListInfoKHR VkVideoProfileListInfoKHR>+-- structure with @profileCount@ greater than @0@ and @pProfiles@+-- including at least one+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoProfileInfoKHR VkVideoProfileInfoKHR>::@videoCodecOperation@+-- specifying an encode operation+-- -- - #VUID-VkBufferCreateInfo-size-06409# @size@ /must/ be less than or -- equal to -- 'Vulkan.Core13.Promoted_From_VK_KHR_maintenance4.PhysicalDeviceMaintenance4Properties'::@maxBufferSize@@@ -387,13 +408,8 @@ -- 'Vulkan.Core12.Promoted_From_VK_KHR_buffer_device_address.BufferOpaqueCaptureAddressCreateInfo', -- 'Vulkan.Extensions.VK_NV_dedicated_allocation.DedicatedAllocationBufferCreateInfoNV', -- 'Vulkan.Core11.Promoted_From_VK_KHR_external_memory.ExternalMemoryBufferCreateInfo',--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoDecodeH264ProfileEXT VkVideoDecodeH264ProfileEXT>,--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoDecodeH265ProfileEXT VkVideoDecodeH265ProfileEXT>,--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH264ProfileEXT VkVideoEncodeH264ProfileEXT>,--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH265ProfileEXT VkVideoEncodeH265ProfileEXT>,--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoProfileKHR VkVideoProfileKHR>, -- or--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoProfilesKHR VkVideoProfilesKHR>+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoProfileListInfoKHR VkVideoProfileListInfoKHR> -- -- - #VUID-VkBufferCreateInfo-sType-unique# The @sType@ value of each -- struct in the @pNext@ chain /must/ be unique
src/Vulkan/Core10/BufferView.hs view
@@ -12,11 +12,13 @@ import Control.Exception.Base (bracket) import Control.Monad (unless) import Control.Monad.IO.Class (liftIO)+import Data.Typeable (eqT) import Foreign.Marshal.Alloc (allocaBytes) import Foreign.Marshal.Alloc (callocBytes) import Foreign.Marshal.Alloc (free) import GHC.Base (when) import GHC.IO (throwIO)+import GHC.Ptr (castPtr) import GHC.Ptr (nullFunPtr) import Foreign.Ptr (nullPtr) import Foreign.Ptr (plusPtr)@@ -28,11 +30,10 @@ import Vulkan.CStruct (ToCStruct(..)) import Vulkan.Zero (Zero(..)) import Control.Monad.IO.Class (MonadIO)+import Data.Type.Equality ((:~:)(Refl)) import Data.Typeable (Typeable)-import Foreign.Storable (Storable) import Foreign.Storable (Storable(peek)) import Foreign.Storable (Storable(poke))-import qualified Foreign.Storable (Storable(..)) import GHC.Generics (Generic) import GHC.IO.Exception (IOErrorType(..)) import GHC.IO.Exception (IOException(..))@@ -40,12 +41,14 @@ import Foreign.Ptr (Ptr) import Data.Kind (Type) import Control.Monad.Trans.Cont (ContT(..))+import Vulkan.CStruct.Extends (forgetExtensions) import Vulkan.NamedType ((:::)) import Vulkan.Core10.AllocationCallbacks (AllocationCallbacks) import Vulkan.Core10.Handles (Buffer) import Vulkan.Core10.Handles (BufferView) import Vulkan.Core10.Handles (BufferView(..)) import Vulkan.Core10.Enums.BufferViewCreateFlags (BufferViewCreateFlags)+import Vulkan.CStruct.Extends (Chain) import Vulkan.Core10.Handles (Device) import Vulkan.Core10.Handles (Device(..)) import Vulkan.Core10.Handles (Device(Device))@@ -53,9 +56,18 @@ import Vulkan.Dynamic (DeviceCmds(pVkDestroyBufferView)) import Vulkan.Core10.FundamentalTypes (DeviceSize) import Vulkan.Core10.Handles (Device_T)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_metal_objects (ExportMetalObjectCreateInfoEXT)+import Vulkan.CStruct.Extends (Extends)+import Vulkan.CStruct.Extends (Extendss)+import Vulkan.CStruct.Extends (Extensible(..)) import Vulkan.Core10.Enums.Format (Format)+import Vulkan.CStruct.Extends (PeekChain)+import Vulkan.CStruct.Extends (PeekChain(..))+import Vulkan.CStruct.Extends (PokeChain)+import Vulkan.CStruct.Extends (PokeChain(..)) import Vulkan.Core10.Enums.Result (Result) import Vulkan.Core10.Enums.Result (Result(..))+import Vulkan.CStruct.Extends (SomeStruct) import Vulkan.Core10.Enums.StructureType (StructureType) import Vulkan.Exception (VulkanException(..)) import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO))@@ -67,7 +79,7 @@ unsafe #endif "dynamic" mkVkCreateBufferView- :: FunPtr (Ptr Device_T -> Ptr BufferViewCreateInfo -> Ptr AllocationCallbacks -> Ptr BufferView -> IO Result) -> Ptr Device_T -> Ptr BufferViewCreateInfo -> Ptr AllocationCallbacks -> Ptr BufferView -> IO Result+ :: FunPtr (Ptr Device_T -> Ptr (SomeStruct BufferViewCreateInfo) -> Ptr AllocationCallbacks -> Ptr BufferView -> IO Result) -> Ptr Device_T -> Ptr (SomeStruct BufferViewCreateInfo) -> Ptr AllocationCallbacks -> Ptr BufferView -> IO Result -- | vkCreateBufferView - Create a new buffer view object --@@ -104,15 +116,15 @@ -- 'Vulkan.Core10.AllocationCallbacks.AllocationCallbacks', -- 'Vulkan.Core10.Handles.BufferView', 'BufferViewCreateInfo', -- 'Vulkan.Core10.Handles.Device'-createBufferView :: forall io- . (MonadIO io)+createBufferView :: forall a io+ . (Extendss BufferViewCreateInfo a, PokeChain a, MonadIO io) => -- | @device@ is the logical device that creates the buffer view. Device -> -- | @pCreateInfo@ is a pointer to a 'BufferViewCreateInfo' structure -- containing parameters to be used to create the buffer view.- BufferViewCreateInfo+ (BufferViewCreateInfo a) -> -- | @pAllocator@ controls host memory allocation as described in the- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation> -- chapter. ("allocator" ::: Maybe AllocationCallbacks) -> io (BufferView)@@ -126,7 +138,7 @@ Nothing -> pure nullPtr Just j -> ContT $ withCStruct (j) pPView <- ContT $ bracket (callocBytes @BufferView 8) free- r <- lift $ traceAroundEvent "vkCreateBufferView" (vkCreateBufferView' (deviceHandle (device)) pCreateInfo pAllocator (pPView))+ r <- lift $ traceAroundEvent "vkCreateBufferView" (vkCreateBufferView' (deviceHandle (device)) (forgetExtensions pCreateInfo) pAllocator (pPView)) lift $ when (r < SUCCESS) (throwIO (VulkanException r)) pView <- lift $ peek @BufferView pPView pure $ (pView)@@ -139,7 +151,7 @@ -- favourite resource management library) as the last argument. -- To just extract the pair pass '(,)' as the last argument. ---withBufferView :: forall io r . MonadIO io => Device -> BufferViewCreateInfo -> Maybe AllocationCallbacks -> (io BufferView -> (BufferView -> io ()) -> r) -> r+withBufferView :: forall a io r . (Extendss BufferViewCreateInfo a, PokeChain a, MonadIO io) => Device -> BufferViewCreateInfo a -> Maybe AllocationCallbacks -> (io BufferView -> (BufferView -> io ()) -> r) -> r withBufferView device pCreateInfo pAllocator b = b (createBufferView device pCreateInfo pAllocator) (\(o0) -> destroyBufferView device o0 pAllocator)@@ -202,7 +214,7 @@ -> -- | @bufferView@ is the buffer view to destroy. BufferView -> -- | @pAllocator@ controls host memory allocation as described in the- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation> -- chapter. ("allocator" ::: Maybe AllocationCallbacks) -> io ()@@ -239,7 +251,7 @@ -- elements given by (⌊@range@ \/ (texel block size)⌋ × (texels per -- block)) where texel block size and texels per block are as defined -- in the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#formats-compatibility Compatible Formats>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#formats-compatibility Compatible Formats> -- table for @format@, /must/ be less than or equal to -- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxTexelBufferElements@ --@@ -252,7 +264,7 @@ -- elements given by (⌊(size - @offset@) \/ (texel block size)⌋ × -- (texels per block)) where size is the size of @buffer@, and texel -- block size and texels per block are as defined in the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#formats-compatibility Compatible Formats>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#formats-compatibility Compatible Formats> -- table for @format@, /must/ be less than or equal to -- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxTexelBufferElements@ --@@ -289,12 +301,12 @@ -- 'Vulkan.Core10.Handles.DeviceMemory' object -- -- - #VUID-VkBufferViewCreateInfo-offset-02749# If the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-texelBufferAlignment texelBufferAlignment>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-texelBufferAlignment texelBufferAlignment> -- feature is not enabled, @offset@ /must/ be a multiple of -- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@minTexelBufferOffsetAlignment@ -- -- - #VUID-VkBufferViewCreateInfo-buffer-02750# If the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-texelBufferAlignment texelBufferAlignment>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-texelBufferAlignment texelBufferAlignment> -- feature is enabled and if @buffer@ was created with @usage@ -- containing -- 'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT',@@ -308,7 +320,7 @@ -- instead -- -- - #VUID-VkBufferViewCreateInfo-buffer-02751# If the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-texelBufferAlignment texelBufferAlignment>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-texelBufferAlignment texelBufferAlignment> -- feature is enabled and if @buffer@ was created with @usage@ -- containing -- 'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT',@@ -321,13 +333,26 @@ -- bytes, then the size of a single component of @format@ is used -- instead --+-- - #VUID-VkBufferViewCreateInfo-pNext-06782# If the @pNext@ chain+-- includes a+-- 'Vulkan.Extensions.VK_EXT_metal_objects.ExportMetalObjectCreateInfoEXT'+-- structure, its @exportObjectType@ member /must/ be+-- 'Vulkan.Extensions.VK_EXT_metal_objects.EXPORT_METAL_OBJECT_TYPE_METAL_TEXTURE_BIT_EXT'.+-- -- == Valid Usage (Implicit) -- -- - #VUID-VkBufferViewCreateInfo-sType-sType# @sType@ /must/ be -- 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO' -- -- - #VUID-VkBufferViewCreateInfo-pNext-pNext# @pNext@ /must/ be @NULL@+-- or a pointer to a valid instance of+-- 'Vulkan.Extensions.VK_EXT_metal_objects.ExportMetalObjectCreateInfoEXT' --+-- - #VUID-VkBufferViewCreateInfo-sType-unique# The @sType@ value of each+-- struct in the @pNext@ chain /must/ be unique, with the exception of+-- structures of type+-- 'Vulkan.Extensions.VK_EXT_metal_objects.ExportMetalObjectCreateInfoEXT'+-- -- - #VUID-VkBufferViewCreateInfo-flags-zerobitmask# @flags@ /must/ be -- @0@ --@@ -345,8 +370,10 @@ -- 'Vulkan.Core10.FundamentalTypes.DeviceSize', -- 'Vulkan.Core10.Enums.Format.Format', -- 'Vulkan.Core10.Enums.StructureType.StructureType', 'createBufferView'-data BufferViewCreateInfo = BufferViewCreateInfo- { -- | @flags@ is reserved for future use.+data BufferViewCreateInfo (es :: [Type]) = BufferViewCreateInfo+ { -- | @pNext@ is @NULL@ or a pointer to a structure extending this structure.+ next :: Chain es+ , -- | @flags@ is reserved for future use. flags :: BufferViewCreateFlags , -- | @buffer@ is a 'Vulkan.Core10.Handles.Buffer' on which the view will be -- created.@@ -362,56 +389,64 @@ -- 'Vulkan.Core10.APIConstants.WHOLE_SIZE', the range from @offset@ to the -- end of the buffer is used. If 'Vulkan.Core10.APIConstants.WHOLE_SIZE' is -- used and the remaining size of the buffer is not a multiple of the- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#texel-block-size texel block size>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#texel-block-size texel block size> -- of @format@, the nearest smaller multiple is used. range :: DeviceSize }- deriving (Typeable, Eq)+ deriving (Typeable) #if defined(GENERIC_INSTANCES)-deriving instance Generic (BufferViewCreateInfo)+deriving instance Generic (BufferViewCreateInfo (es :: [Type])) #endif-deriving instance Show BufferViewCreateInfo+deriving instance Show (Chain es) => Show (BufferViewCreateInfo es) -instance ToCStruct BufferViewCreateInfo where+instance Extensible BufferViewCreateInfo where+ extensibleTypeName = "BufferViewCreateInfo"+ setNext BufferViewCreateInfo{..} next' = BufferViewCreateInfo{next = next', ..}+ getNext BufferViewCreateInfo{..} = next+ extends :: forall e b proxy. Typeable e => proxy e -> (Extends BufferViewCreateInfo e => b) -> Maybe b+ extends _ f+ | Just Refl <- eqT @e @ExportMetalObjectCreateInfoEXT = Just f+ | otherwise = Nothing++instance (Extendss BufferViewCreateInfo es, PokeChain es) => ToCStruct (BufferViewCreateInfo es) where withCStruct x f = allocaBytes 56 $ \p -> pokeCStruct p x (f p)- pokeCStruct p BufferViewCreateInfo{..} f = do- poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO)- poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)- poke ((p `plusPtr` 16 :: Ptr BufferViewCreateFlags)) (flags)- poke ((p `plusPtr` 24 :: Ptr Buffer)) (buffer)- poke ((p `plusPtr` 32 :: Ptr Format)) (format)- poke ((p `plusPtr` 40 :: Ptr DeviceSize)) (offset)- poke ((p `plusPtr` 48 :: Ptr DeviceSize)) (range)- f+ pokeCStruct p BufferViewCreateInfo{..} f = evalContT $ do+ lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO)+ pNext'' <- fmap castPtr . ContT $ withChain (next)+ lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext''+ lift $ poke ((p `plusPtr` 16 :: Ptr BufferViewCreateFlags)) (flags)+ lift $ poke ((p `plusPtr` 24 :: Ptr Buffer)) (buffer)+ lift $ poke ((p `plusPtr` 32 :: Ptr Format)) (format)+ lift $ poke ((p `plusPtr` 40 :: Ptr DeviceSize)) (offset)+ lift $ poke ((p `plusPtr` 48 :: Ptr DeviceSize)) (range)+ lift $ f cStructSize = 56 cStructAlignment = 8- pokeZeroCStruct p f = do- poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO)- poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)- poke ((p `plusPtr` 24 :: Ptr Buffer)) (zero)- poke ((p `plusPtr` 32 :: Ptr Format)) (zero)- poke ((p `plusPtr` 40 :: Ptr DeviceSize)) (zero)- poke ((p `plusPtr` 48 :: Ptr DeviceSize)) (zero)- f+ pokeZeroCStruct p f = evalContT $ do+ lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO)+ pNext' <- fmap castPtr . ContT $ withZeroChain @es+ lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext'+ lift $ poke ((p `plusPtr` 24 :: Ptr Buffer)) (zero)+ lift $ poke ((p `plusPtr` 32 :: Ptr Format)) (zero)+ lift $ poke ((p `plusPtr` 40 :: Ptr DeviceSize)) (zero)+ lift $ poke ((p `plusPtr` 48 :: Ptr DeviceSize)) (zero)+ lift $ f -instance FromCStruct BufferViewCreateInfo where+instance (Extendss BufferViewCreateInfo es, PeekChain es) => FromCStruct (BufferViewCreateInfo es) where peekCStruct p = do+ pNext <- peek @(Ptr ()) ((p `plusPtr` 8 :: Ptr (Ptr ())))+ next <- peekChain (castPtr pNext) flags <- peek @BufferViewCreateFlags ((p `plusPtr` 16 :: Ptr BufferViewCreateFlags)) buffer <- peek @Buffer ((p `plusPtr` 24 :: Ptr Buffer)) format <- peek @Format ((p `plusPtr` 32 :: Ptr Format)) offset <- peek @DeviceSize ((p `plusPtr` 40 :: Ptr DeviceSize)) range <- peek @DeviceSize ((p `plusPtr` 48 :: Ptr DeviceSize)) pure $ BufferViewCreateInfo- flags buffer format offset range--instance Storable BufferViewCreateInfo where- sizeOf ~_ = 56- alignment ~_ = 8- peek = peekCStruct- poke ptr poked = pokeCStruct ptr poked (pure ())+ next flags buffer format offset range -instance Zero BufferViewCreateInfo where+instance es ~ '[] => Zero (BufferViewCreateInfo es) where zero = BufferViewCreateInfo+ () zero zero zero
src/Vulkan/Core10/BufferView.hs-boot view
@@ -5,11 +5,15 @@ import Vulkan.CStruct (FromCStruct) import Vulkan.CStruct (ToCStruct) import Data.Kind (Type)--data BufferViewCreateInfo+import {-# SOURCE #-} Vulkan.CStruct.Extends (Chain)+import {-# SOURCE #-} Vulkan.CStruct.Extends (Extendss)+import {-# SOURCE #-} Vulkan.CStruct.Extends (PeekChain)+import {-# SOURCE #-} Vulkan.CStruct.Extends (PokeChain)+type role BufferViewCreateInfo nominal+data BufferViewCreateInfo (es :: [Type]) -instance ToCStruct BufferViewCreateInfo-instance Show BufferViewCreateInfo+instance (Extendss BufferViewCreateInfo es, PokeChain es) => ToCStruct (BufferViewCreateInfo es)+instance Show (Chain es) => Show (BufferViewCreateInfo es) -instance FromCStruct BufferViewCreateInfo+instance (Extendss BufferViewCreateInfo es, PeekChain es) => FromCStruct (BufferViewCreateInfo es)
src/Vulkan/Core10/CommandBuffer.hs view
@@ -149,7 +149,7 @@ -- contents. -- -- When command buffers are first allocated, they are in the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-lifecycle initial state>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-lifecycle initial state>. -- -- == Valid Usage (Implicit) --@@ -239,15 +239,15 @@ -- = Description -- -- Any primary command buffer that is in the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-lifecycle recording or executable state>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-lifecycle recording or executable state> -- and has any element of @pCommandBuffers@ recorded into it, becomes--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-lifecycle invalid>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-lifecycle invalid>. -- -- == Valid Usage -- -- - #VUID-vkFreeCommandBuffers-pCommandBuffers-00047# All elements of -- @pCommandBuffers@ /must/ not be in the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-lifecycle pending state>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-lifecycle pending state> -- -- - #VUID-vkFreeCommandBuffers-pCommandBuffers-00048# @pCommandBuffers@ -- /must/ be a valid pointer to an array of @commandBufferCount@@@ -319,14 +319,14 @@ -- -- - #VUID-vkBeginCommandBuffer-commandBuffer-00049# @commandBuffer@ -- /must/ not be in the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-lifecycle recording or pending state>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-lifecycle recording or pending state> -- -- - #VUID-vkBeginCommandBuffer-commandBuffer-00050# If @commandBuffer@ -- was allocated from a 'Vulkan.Core10.Handles.CommandPool' which did -- not have the -- 'Vulkan.Core10.Enums.CommandPoolCreateFlagBits.COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT' -- flag set, @commandBuffer@ /must/ be in the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-lifecycle initial state>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-lifecycle initial state> -- -- - #VUID-vkBeginCommandBuffer-commandBuffer-00051# If @commandBuffer@ -- is a secondary command buffer, the @pInheritanceInfo@ member of@@ -336,8 +336,9 @@ -- - #VUID-vkBeginCommandBuffer-commandBuffer-00052# If @commandBuffer@ -- is a secondary command buffer and either the @occlusionQueryEnable@ -- member of the @pInheritanceInfo@ member of @pBeginInfo@ is--- 'Vulkan.Core10.FundamentalTypes.FALSE', or the precise occlusion--- queries feature is not enabled, then+-- 'Vulkan.Core10.FundamentalTypes.FALSE', or the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-occlusionQueryPrecise occlusionQueryPrecise>+-- feature is not enabled, then -- @pBeginInfo->pInheritanceInfo->queryFlags@ /must/ not contain -- 'Vulkan.Core10.Enums.QueryControlFlagBits.QUERY_CONTROL_PRECISE_BIT' --@@ -426,29 +427,32 @@ -- /must/ be reset. -- -- The command buffer /must/ have been in the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-lifecycle recording state>,+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-lifecycle recording state>, -- and is moved to the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-lifecycle executable state>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-lifecycle executable state>. -- -- == Valid Usage -- -- - #VUID-vkEndCommandBuffer-commandBuffer-00059# @commandBuffer@ /must/ -- be in the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-lifecycle recording state>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-lifecycle recording state> -- -- - #VUID-vkEndCommandBuffer-commandBuffer-00060# If @commandBuffer@ is -- a primary command buffer, there /must/ not be an active render pass -- instance -- -- - #VUID-vkEndCommandBuffer-commandBuffer-00061# All queries made--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#queries-operation-active active>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#queries-operation-active active> -- during the recording of @commandBuffer@ /must/ have been made -- inactive -- -- - #VUID-vkEndCommandBuffer-None-01978# Conditional rendering /must/ -- not be--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#active-conditional-rendering active>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#active-conditional-rendering active> --+-- - #VUID-vkEndCommandBuffer-None-06991# There /must/ be no video+-- session object bound+-- -- - #VUID-vkEndCommandBuffer-commandBuffer-01815# If @commandBuffer@ is -- a secondary command buffer, there /must/ not be an outstanding -- 'Vulkan.Extensions.VK_EXT_debug_utils.cmdBeginDebugUtilsLabelEXT'@@ -517,15 +521,15 @@ -- = Description -- -- Any primary command buffer that is in the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-lifecycle recording or executable state>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-lifecycle recording or executable state> -- and has @commandBuffer@ recorded into it, becomes--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-lifecycle invalid>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-lifecycle invalid>. -- -- == Valid Usage -- -- - #VUID-vkResetCommandBuffer-commandBuffer-00045# @commandBuffer@ -- /must/ not be in the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-lifecycle pending state>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-lifecycle pending state> -- -- - #VUID-vkResetCommandBuffer-commandBuffer-00046# @commandBuffer@ -- /must/ have been allocated from a pool that was created with the@@ -567,9 +571,9 @@ . (MonadIO io) => -- | @commandBuffer@ is the command buffer to reset. The command buffer /can/ -- be in any state other than- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-lifecycle pending>,+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-lifecycle pending>, -- and is moved into the- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-lifecycle initial state>.+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-lifecycle initial state>. CommandBuffer -> -- | @flags@ is a bitmask of -- 'Vulkan.Core10.Enums.CommandBufferResetFlagBits.CommandBufferResetFlagBits'@@ -674,23 +678,23 @@ -- -- - #VUID-VkCommandBufferInheritanceInfo-occlusionQueryEnable-00056# If -- the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-inheritedQueries inherited queries>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-inheritedQueries inheritedQueries> -- feature is not enabled, @occlusionQueryEnable@ /must/ be -- 'Vulkan.Core10.FundamentalTypes.FALSE' -- -- - #VUID-VkCommandBufferInheritanceInfo-queryFlags-00057# If the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-inheritedQueries inherited queries>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-inheritedQueries inheritedQueries> -- feature is enabled, @queryFlags@ /must/ be a valid combination of -- 'Vulkan.Core10.Enums.QueryControlFlagBits.QueryControlFlagBits' -- values -- -- - #VUID-VkCommandBufferInheritanceInfo-queryFlags-02788# If the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-inheritedQueries inherited queries>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-inheritedQueries inheritedQueries> -- feature is not enabled, @queryFlags@ /must/ be @0@ -- -- - #VUID-VkCommandBufferInheritanceInfo-pipelineStatistics-02789# If -- the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-pipelineStatisticsQuery pipeline statistics queries>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-pipelineStatisticsQuery pipelineStatisticsQuery> -- feature is enabled, @pipelineStatistics@ /must/ be a valid -- combination of -- 'Vulkan.Core10.Enums.QueryPipelineStatisticFlagBits.QueryPipelineStatisticFlagBits'@@ -698,7 +702,7 @@ -- -- - #VUID-VkCommandBufferInheritanceInfo-pipelineStatistics-00058# If -- the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-pipelineStatisticsQuery pipeline statistics queries>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-pipelineStatisticsQuery pipelineStatisticsQuery> -- feature is not enabled, @pipelineStatistics@ /must/ be @0@ -- -- == Valid Usage (Implicit)@@ -739,7 +743,7 @@ next :: Chain es , -- | @renderPass@ is a 'Vulkan.Core10.Handles.RenderPass' object defining -- which render passes the 'Vulkan.Core10.Handles.CommandBuffer' will be- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-compatibility compatible>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-compatibility compatible> -- with and /can/ be executed within. renderPass :: RenderPass , -- | @subpass@ is the index of the subpass within the render pass instance
src/Vulkan/Core10/CommandBufferBuilding.hs view
@@ -249,13594 +249,14623 @@ -- - The pipeline bound to -- 'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_COMPUTE' -- controls the behavior of all--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#dispatch dispatching commands>.------ - The pipeline bound to--- 'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_GRAPHICS'--- controls the behavior of all--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#drawing drawing commands>.------ - The pipeline bound to--- 'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_RAY_TRACING_KHR'--- controls the behavior of--- 'Vulkan.Extensions.VK_KHR_ray_tracing_pipeline.cmdTraceRaysKHR' and--- 'Vulkan.Extensions.VK_KHR_ray_tracing_pipeline.cmdTraceRaysIndirectKHR'.------ - The pipeline bound to--- 'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_SUBPASS_SHADING_HUAWEI'--- controls the behavior of--- 'Vulkan.Extensions.VK_HUAWEI_subpass_shading.cmdSubpassShadingHUAWEI'.------ == Valid Usage------ - #VUID-vkCmdBindPipeline-pipelineBindPoint-00777# If--- @pipelineBindPoint@ is--- 'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_COMPUTE',--- the 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was--- allocated from /must/ support compute operations------ - #VUID-vkCmdBindPipeline-pipelineBindPoint-00778# If--- @pipelineBindPoint@ is--- 'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_GRAPHICS',--- the 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was--- allocated from /must/ support graphics operations------ - #VUID-vkCmdBindPipeline-pipelineBindPoint-00779# If--- @pipelineBindPoint@ is--- 'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_COMPUTE',--- @pipeline@ /must/ be a compute pipeline------ - #VUID-vkCmdBindPipeline-pipelineBindPoint-00780# If--- @pipelineBindPoint@ is--- 'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_GRAPHICS',--- @pipeline@ /must/ be a graphics pipeline------ - #VUID-vkCmdBindPipeline-pipeline-00781# If the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-variableMultisampleRate variable multisample rate>--- feature is not supported, @pipeline@ is a graphics pipeline, the--- current subpass--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-noattachments uses no attachments>,--- and this is not the first call to this function with a graphics--- pipeline after transitioning to the current subpass, then the sample--- count specified by this pipeline /must/ match that set in the--- previous pipeline------ - #VUID-vkCmdBindPipeline-variableSampleLocations-01525# If--- 'Vulkan.Extensions.VK_EXT_sample_locations.PhysicalDeviceSampleLocationsPropertiesEXT'::@variableSampleLocations@--- is 'Vulkan.Core10.FundamentalTypes.FALSE', and @pipeline@ is a--- graphics pipeline created with a--- 'Vulkan.Extensions.VK_EXT_sample_locations.PipelineSampleLocationsStateCreateInfoEXT'--- structure having its @sampleLocationsEnable@ member set to--- 'Vulkan.Core10.FundamentalTypes.TRUE' but without--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'--- enabled then the current render pass instance /must/ have been begun--- by specifying a--- 'Vulkan.Extensions.VK_EXT_sample_locations.RenderPassSampleLocationsBeginInfoEXT'--- structure whose @pPostSubpassSampleLocations@ member contains an--- element with a @subpassIndex@ matching the current subpass index and--- the @sampleLocationsInfo@ member of that element /must/ match the--- @sampleLocationsInfo@ specified in--- 'Vulkan.Extensions.VK_EXT_sample_locations.PipelineSampleLocationsStateCreateInfoEXT'--- when the pipeline was created------ - #VUID-vkCmdBindPipeline-None-02323# This command /must/ not be--- recorded when transform feedback is active------ - #VUID-vkCmdBindPipeline-pipelineBindPoint-02391# If--- @pipelineBindPoint@ is--- 'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_RAY_TRACING_KHR',--- the 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was--- allocated from /must/ support compute operations------ - #VUID-vkCmdBindPipeline-pipelineBindPoint-02392# If--- @pipelineBindPoint@ is--- 'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_RAY_TRACING_KHR',--- @pipeline@ /must/ be a ray tracing pipeline------ - #VUID-vkCmdBindPipeline-pipeline-03382# @pipeline@ /must/ not have--- been created with--- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_LIBRARY_BIT_KHR'--- set------ - #VUID-vkCmdBindPipeline-commandBuffer-04808# If @commandBuffer@ is a--- secondary command buffer with--- 'Vulkan.Extensions.VK_NV_inherited_viewport_scissor.CommandBufferInheritanceViewportScissorInfoNV'::@viewportScissor2D@--- enabled and @pipelineBindPoint@ is--- 'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_GRAPHICS',--- then the @pipeline@ /must/ have been created with--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'--- or 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT', and--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT'--- or 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR' enabled------ - #VUID-vkCmdBindPipeline-commandBuffer-04809# If @commandBuffer@ is a--- secondary command buffer with--- 'Vulkan.Extensions.VK_NV_inherited_viewport_scissor.CommandBufferInheritanceViewportScissorInfoNV'::@viewportScissor2D@--- enabled and @pipelineBindPoint@ is--- 'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_GRAPHICS'--- and @pipeline@ was created with--- 'Vulkan.Extensions.VK_EXT_discard_rectangles.PipelineDiscardRectangleStateCreateInfoEXT'--- structure and its @discardRectangleCount@ member is not @0@, then--- the pipeline /must/ have been created with--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DISCARD_RECTANGLE_EXT'--- enabled------ - #VUID-vkCmdBindPipeline-pipelineBindPoint-04881# If--- @pipelineBindPoint@ is--- 'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_GRAPHICS'--- and the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-provokingVertexModePerPipeline provokingVertexModePerPipeline>--- limit is 'Vulkan.Core10.FundamentalTypes.FALSE', then pipeline’s--- 'Vulkan.Extensions.VK_EXT_provoking_vertex.PipelineRasterizationProvokingVertexStateCreateInfoEXT'::@provokingVertexMode@--- /must/ be the same as that of any other pipelines previously bound--- to this bind point within the current render pass instance,--- including any pipeline already bound when beginning the render pass--- instance------ - #VUID-vkCmdBindPipeline-pipelineBindPoint-04949# If--- @pipelineBindPoint@ is--- 'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_SUBPASS_SHADING_HUAWEI',--- the 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was--- allocated from /must/ support compute operations------ - #VUID-vkCmdBindPipeline-pipelineBindPoint-04950# If--- @pipelineBindPoint@ is--- 'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_SUBPASS_SHADING_HUAWEI',--- @pipeline@ /must/ be a subpass shading pipeline------ - #VUID-vkCmdBindPipeline-pipeline-06195# If @pipeline@ is a graphics--- pipeline, this command has been called inside a render pass instance--- started with--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',--- and commands using the previously bound graphics pipeline have been--- recorded within the render pass instance, then the value of--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@colorAttachmentCount@--- specified by this pipeline /must/ match that set in the previous--- pipeline------ - #VUID-vkCmdBindPipeline-pipeline-06196# If @pipeline@ is a graphics--- pipeline, this command has been called inside a render pass instance--- started with--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',--- and commands using the previously bound graphics pipeline have been--- recorded within the render pass instance, then the elements of--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@--- specified by this pipeline /must/ match that set in the previous--- pipeline------ - #VUID-vkCmdBindPipeline-pipeline-06197# If @pipeline@ is a graphics--- pipeline, this command has been called inside a render pass instance--- started with--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',--- and commands using the previously bound graphics pipeline have been--- recorded within the render pass instance, then the value of--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@depthAttachmentFormat@--- specified by this pipeline /must/ match that set in the previous--- pipeline------ - #VUID-vkCmdBindPipeline-pipeline-06194# If @pipeline@ is a graphics--- pipeline, this command has been called inside a render pass instance--- started with--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',--- and commands using the previously bound graphics pipeline have been--- recorded within the render pass instance, then the value of--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@stencilAttachmentFormat@--- specified by this pipeline /must/ match that set in the previous--- pipeline------ - #VUID-vkCmdBindPipeline-pipelineBindPoint-06653# If--- @pipelineBindPoint@ is--- 'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_GRAPHICS',--- @pipeline@ /must/ have been created without--- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_LIBRARY_BIT_KHR'------ == Valid Usage (Implicit)------ - #VUID-vkCmdBindPipeline-commandBuffer-parameter# @commandBuffer@--- /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle------ - #VUID-vkCmdBindPipeline-pipelineBindPoint-parameter#--- @pipelineBindPoint@ /must/ be a valid--- 'Vulkan.Core10.Enums.PipelineBindPoint.PipelineBindPoint' value------ - #VUID-vkCmdBindPipeline-pipeline-parameter# @pipeline@ /must/ be a--- valid 'Vulkan.Core10.Handles.Pipeline' handle------ - #VUID-vkCmdBindPipeline-commandBuffer-recording# @commandBuffer@--- /must/ be in the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording state>------ - #VUID-vkCmdBindPipeline-commandBuffer-cmdpool# The--- 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was--- allocated from /must/ support graphics, or compute operations------ - #VUID-vkCmdBindPipeline-commonparent# Both of @commandBuffer@, and--- @pipeline@ /must/ have been created, allocated, or retrieved from--- the same 'Vulkan.Core10.Handles.Device'------ == Host Synchronization------ - Host access to @commandBuffer@ /must/ be externally synchronized------ - Host access to the 'Vulkan.Core10.Handles.CommandPool' that--- @commandBuffer@ was allocated from /must/ be externally synchronized------ == Command Properties------ \'------ +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | Primary | Both | Graphics |--- | Secondary | | Compute |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,--- 'Vulkan.Core10.Handles.CommandBuffer', 'Vulkan.Core10.Handles.Pipeline',--- 'Vulkan.Core10.Enums.PipelineBindPoint.PipelineBindPoint'-cmdBindPipeline :: forall io- . (MonadIO io)- => -- | @commandBuffer@ is the command buffer that the pipeline will be bound- -- to.- CommandBuffer- -> -- | @pipelineBindPoint@ is a- -- 'Vulkan.Core10.Enums.PipelineBindPoint.PipelineBindPoint' value- -- specifying to which bind point the pipeline is bound. Binding one does- -- not disturb the others.- PipelineBindPoint- -> -- | @pipeline@ is the pipeline to be bound.- Pipeline- -> io ()-cmdBindPipeline commandBuffer pipelineBindPoint pipeline = liftIO $ do- let vkCmdBindPipelinePtr = pVkCmdBindPipeline (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)- unless (vkCmdBindPipelinePtr /= nullFunPtr) $- throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdBindPipeline is null" Nothing Nothing- let vkCmdBindPipeline' = mkVkCmdBindPipeline vkCmdBindPipelinePtr- traceAroundEvent "vkCmdBindPipeline" (vkCmdBindPipeline' (commandBufferHandle (commandBuffer)) (pipelineBindPoint) (pipeline))- pure $ ()---foreign import ccall-#if !defined(SAFE_FOREIGN_CALLS)- unsafe-#endif- "dynamic" mkVkCmdSetViewport- :: FunPtr (Ptr CommandBuffer_T -> Word32 -> Word32 -> Ptr Viewport -> IO ()) -> Ptr CommandBuffer_T -> Word32 -> Word32 -> Ptr Viewport -> IO ()---- | vkCmdSetViewport - Set the viewport dynamically for a command buffer------ = Description------ This command sets the viewport transformation parameters state for--- subsequent drawing commands when the graphics pipeline is created with--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT' set in--- 'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@.--- Otherwise, this state is specified by the--- 'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo'::@pViewports@--- values used to create the currently active pipeline.------ The viewport parameters taken from element i of @pViewports@ replace the--- current state for the viewport index @firstViewport@ + i, for i in [0,--- @viewportCount@).------ == Valid Usage------ - #VUID-vkCmdSetViewport-firstViewport-01223# The sum of--- @firstViewport@ and @viewportCount@ /must/ be between @1@ and--- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxViewports@,--- inclusive------ - #VUID-vkCmdSetViewport-firstViewport-01224# If the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-multiViewport multiple viewports>--- feature is not enabled, @firstViewport@ /must/ be @0@------ - #VUID-vkCmdSetViewport-viewportCount-01225# If the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-multiViewport multiple viewports>--- feature is not enabled, @viewportCount@ /must/ be @1@------ - #VUID-vkCmdSetViewport-commandBuffer-04821# @commandBuffer@ /must/--- not have--- 'Vulkan.Extensions.VK_NV_inherited_viewport_scissor.CommandBufferInheritanceViewportScissorInfoNV'::@viewportScissor2D@--- enabled------ == Valid Usage (Implicit)------ - #VUID-vkCmdSetViewport-commandBuffer-parameter# @commandBuffer@--- /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle------ - #VUID-vkCmdSetViewport-pViewports-parameter# @pViewports@ /must/ be--- a valid pointer to an array of @viewportCount@ valid--- 'Vulkan.Core10.Pipeline.Viewport' structures------ - #VUID-vkCmdSetViewport-commandBuffer-recording# @commandBuffer@--- /must/ be in the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording state>------ - #VUID-vkCmdSetViewport-commandBuffer-cmdpool# The--- 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was--- allocated from /must/ support graphics operations------ - #VUID-vkCmdSetViewport-viewportCount-arraylength# @viewportCount@--- /must/ be greater than @0@------ == Host Synchronization------ - Host access to @commandBuffer@ /must/ be externally synchronized------ - Host access to the 'Vulkan.Core10.Handles.CommandPool' that--- @commandBuffer@ was allocated from /must/ be externally synchronized------ == Command Properties------ \'------ +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | Primary | Both | Graphics |--- | Secondary | | |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,--- 'Vulkan.Core10.Handles.CommandBuffer', 'Vulkan.Core10.Pipeline.Viewport'-cmdSetViewport :: forall io- . (MonadIO io)- => -- | @commandBuffer@ is the command buffer into which the command will be- -- recorded.- CommandBuffer- -> -- | @firstViewport@ is the index of the first viewport whose parameters are- -- updated by the command.- ("firstViewport" ::: Word32)- -> -- | @pViewports@ is a pointer to an array of- -- 'Vulkan.Core10.Pipeline.Viewport' structures specifying viewport- -- parameters.- ("viewports" ::: Vector Viewport)- -> io ()-cmdSetViewport commandBuffer firstViewport viewports = liftIO . evalContT $ do- let vkCmdSetViewportPtr = pVkCmdSetViewport (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)- lift $ unless (vkCmdSetViewportPtr /= nullFunPtr) $- throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetViewport is null" Nothing Nothing- let vkCmdSetViewport' = mkVkCmdSetViewport vkCmdSetViewportPtr- pPViewports <- ContT $ allocaBytes @Viewport ((Data.Vector.length (viewports)) * 24)- lift $ Data.Vector.imapM_ (\i e -> poke (pPViewports `plusPtr` (24 * (i)) :: Ptr Viewport) (e)) (viewports)- lift $ traceAroundEvent "vkCmdSetViewport" (vkCmdSetViewport' (commandBufferHandle (commandBuffer)) (firstViewport) ((fromIntegral (Data.Vector.length $ (viewports)) :: Word32)) (pPViewports))- pure $ ()---foreign import ccall-#if !defined(SAFE_FOREIGN_CALLS)- unsafe-#endif- "dynamic" mkVkCmdSetScissor- :: FunPtr (Ptr CommandBuffer_T -> Word32 -> Word32 -> Ptr Rect2D -> IO ()) -> Ptr CommandBuffer_T -> Word32 -> Word32 -> Ptr Rect2D -> IO ()---- | vkCmdSetScissor - Set scissor rectangles dynamically for a command--- buffer------ = Description------ The scissor rectangles taken from element i of @pScissors@ replace the--- current state for the scissor index @firstScissor@ + i, for i in [0,--- @scissorCount@).------ This command sets the scissor rectangles for subsequent drawing commands--- when the graphics pipeline is created with--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR' set in--- 'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@.--- Otherwise, this state is specified by the--- 'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo'::@pScissors@--- values used to create the currently active pipeline.------ == Valid Usage------ - #VUID-vkCmdSetScissor-firstScissor-00592# The sum of @firstScissor@--- and @scissorCount@ /must/ be between @1@ and--- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxViewports@,--- inclusive------ - #VUID-vkCmdSetScissor-firstScissor-00593# If the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-multiViewport multiple viewports>--- feature is not enabled, @firstScissor@ /must/ be @0@------ - #VUID-vkCmdSetScissor-scissorCount-00594# If the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-multiViewport multiple viewports>--- feature is not enabled, @scissorCount@ /must/ be @1@------ - #VUID-vkCmdSetScissor-x-00595# The @x@ and @y@ members of @offset@--- member of any element of @pScissors@ /must/ be greater than or equal--- to @0@------ - #VUID-vkCmdSetScissor-offset-00596# Evaluation of (@offset.x@ +--- @extent.width@) /must/ not cause a signed integer addition overflow--- for any element of @pScissors@------ - #VUID-vkCmdSetScissor-offset-00597# Evaluation of (@offset.y@ +--- @extent.height@) /must/ not cause a signed integer addition overflow--- for any element of @pScissors@------ - #VUID-vkCmdSetScissor-viewportScissor2D-04789# If this command is--- recorded in a secondary command buffer with--- 'Vulkan.Extensions.VK_NV_inherited_viewport_scissor.CommandBufferInheritanceViewportScissorInfoNV'::@viewportScissor2D@--- enabled, then this function /must/ not be called------ == Valid Usage (Implicit)------ - #VUID-vkCmdSetScissor-commandBuffer-parameter# @commandBuffer@--- /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle------ - #VUID-vkCmdSetScissor-pScissors-parameter# @pScissors@ /must/ be a--- valid pointer to an array of @scissorCount@--- 'Vulkan.Core10.FundamentalTypes.Rect2D' structures------ - #VUID-vkCmdSetScissor-commandBuffer-recording# @commandBuffer@--- /must/ be in the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording state>------ - #VUID-vkCmdSetScissor-commandBuffer-cmdpool# The--- 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was--- allocated from /must/ support graphics operations------ - #VUID-vkCmdSetScissor-scissorCount-arraylength# @scissorCount@--- /must/ be greater than @0@------ == Host Synchronization------ - Host access to @commandBuffer@ /must/ be externally synchronized------ - Host access to the 'Vulkan.Core10.Handles.CommandPool' that--- @commandBuffer@ was allocated from /must/ be externally synchronized------ == Command Properties------ \'------ +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | Primary | Both | Graphics |--- | Secondary | | |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,--- 'Vulkan.Core10.Handles.CommandBuffer',--- 'Vulkan.Core10.FundamentalTypes.Rect2D'-cmdSetScissor :: forall io- . (MonadIO io)- => -- | @commandBuffer@ is the command buffer into which the command will be- -- recorded.- CommandBuffer- -> -- | @firstScissor@ is the index of the first scissor whose state is updated- -- by the command.- ("firstScissor" ::: Word32)- -> -- | @pScissors@ is a pointer to an array of- -- 'Vulkan.Core10.FundamentalTypes.Rect2D' structures defining scissor- -- rectangles.- ("scissors" ::: Vector Rect2D)- -> io ()-cmdSetScissor commandBuffer firstScissor scissors = liftIO . evalContT $ do- let vkCmdSetScissorPtr = pVkCmdSetScissor (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)- lift $ unless (vkCmdSetScissorPtr /= nullFunPtr) $- throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetScissor is null" Nothing Nothing- let vkCmdSetScissor' = mkVkCmdSetScissor vkCmdSetScissorPtr- pPScissors <- ContT $ allocaBytes @Rect2D ((Data.Vector.length (scissors)) * 16)- lift $ Data.Vector.imapM_ (\i e -> poke (pPScissors `plusPtr` (16 * (i)) :: Ptr Rect2D) (e)) (scissors)- lift $ traceAroundEvent "vkCmdSetScissor" (vkCmdSetScissor' (commandBufferHandle (commandBuffer)) (firstScissor) ((fromIntegral (Data.Vector.length $ (scissors)) :: Word32)) (pPScissors))- pure $ ()---foreign import ccall-#if !defined(SAFE_FOREIGN_CALLS)- unsafe-#endif- "dynamic" mkVkCmdSetLineWidth- :: FunPtr (Ptr CommandBuffer_T -> CFloat -> IO ()) -> Ptr CommandBuffer_T -> CFloat -> IO ()---- | vkCmdSetLineWidth - Set line width dynamically for a command buffer------ = Description------ This command sets the line width for subsequent drawing commands when--- the graphics pipeline is created with--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_WIDTH' set in--- 'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@.--- Otherwise, this state is specified by the--- 'Vulkan.Core10.Pipeline.PipelineRasterizationStateCreateInfo'::@lineWidth@--- value used to create the currently active pipeline.------ == Valid Usage------ - #VUID-vkCmdSetLineWidth-lineWidth-00788# If the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-wideLines wide lines>--- feature is not enabled, @lineWidth@ /must/ be @1.0@------ == Valid Usage (Implicit)------ - #VUID-vkCmdSetLineWidth-commandBuffer-parameter# @commandBuffer@--- /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle------ - #VUID-vkCmdSetLineWidth-commandBuffer-recording# @commandBuffer@--- /must/ be in the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording state>------ - #VUID-vkCmdSetLineWidth-commandBuffer-cmdpool# The--- 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was--- allocated from /must/ support graphics operations------ == Host Synchronization------ - Host access to @commandBuffer@ /must/ be externally synchronized------ - Host access to the 'Vulkan.Core10.Handles.CommandPool' that--- @commandBuffer@ was allocated from /must/ be externally synchronized------ == Command Properties------ \'------ +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | Primary | Both | Graphics |--- | Secondary | | |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,--- 'Vulkan.Core10.Handles.CommandBuffer'-cmdSetLineWidth :: forall io- . (MonadIO io)- => -- | @commandBuffer@ is the command buffer into which the command will be- -- recorded.- CommandBuffer- -> -- | @lineWidth@ is the width of rasterized line segments.- ("lineWidth" ::: Float)- -> io ()-cmdSetLineWidth commandBuffer lineWidth = liftIO $ do- let vkCmdSetLineWidthPtr = pVkCmdSetLineWidth (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)- unless (vkCmdSetLineWidthPtr /= nullFunPtr) $- throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetLineWidth is null" Nothing Nothing- let vkCmdSetLineWidth' = mkVkCmdSetLineWidth vkCmdSetLineWidthPtr- traceAroundEvent "vkCmdSetLineWidth" (vkCmdSetLineWidth' (commandBufferHandle (commandBuffer)) (CFloat (lineWidth)))- pure $ ()---foreign import ccall-#if !defined(SAFE_FOREIGN_CALLS)- unsafe-#endif- "dynamic" mkVkCmdSetDepthBias- :: FunPtr (Ptr CommandBuffer_T -> CFloat -> CFloat -> CFloat -> IO ()) -> Ptr CommandBuffer_T -> CFloat -> CFloat -> CFloat -> IO ()---- | vkCmdSetDepthBias - Set depth bias factors and clamp dynamically for a--- command buffer------ = Description------ This command sets the depth bias parameters for subsequent drawing--- commands when the graphics pipeline is created with--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BIAS' set in--- 'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@.--- Otherwise, this state is specified by the corresponding--- 'Vulkan.Core10.Pipeline.PipelineRasterizationStateCreateInfo'::@depthBiasConstantFactor@,--- @depthBiasClamp@, and @depthBiasSlopeFactor@ values used to create the--- currently active pipeline.------ == Valid Usage------ - #VUID-vkCmdSetDepthBias-depthBiasClamp-00790# If the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-depthBiasClamp depth bias clamping>--- feature is not enabled, @depthBiasClamp@ /must/ be @0.0@------ == Valid Usage (Implicit)------ - #VUID-vkCmdSetDepthBias-commandBuffer-parameter# @commandBuffer@--- /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle------ - #VUID-vkCmdSetDepthBias-commandBuffer-recording# @commandBuffer@--- /must/ be in the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording state>------ - #VUID-vkCmdSetDepthBias-commandBuffer-cmdpool# The--- 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was--- allocated from /must/ support graphics operations------ == Host Synchronization------ - Host access to @commandBuffer@ /must/ be externally synchronized------ - Host access to the 'Vulkan.Core10.Handles.CommandPool' that--- @commandBuffer@ was allocated from /must/ be externally synchronized------ == Command Properties------ \'------ +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | Primary | Both | Graphics |--- | Secondary | | |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,--- 'Vulkan.Core10.Handles.CommandBuffer'-cmdSetDepthBias :: forall io- . (MonadIO io)- => -- | @commandBuffer@ is the command buffer into which the command will be- -- recorded.- CommandBuffer- -> -- | @depthBiasConstantFactor@ is a scalar factor controlling the constant- -- depth value added to each fragment.- ("depthBiasConstantFactor" ::: Float)- -> -- | @depthBiasClamp@ is the maximum (or minimum) depth bias of a fragment.- ("depthBiasClamp" ::: Float)- -> -- | @depthBiasSlopeFactor@ is a scalar factor applied to a fragment’s slope- -- in depth bias calculations.- ("depthBiasSlopeFactor" ::: Float)- -> io ()-cmdSetDepthBias commandBuffer depthBiasConstantFactor depthBiasClamp depthBiasSlopeFactor = liftIO $ do- let vkCmdSetDepthBiasPtr = pVkCmdSetDepthBias (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)- unless (vkCmdSetDepthBiasPtr /= nullFunPtr) $- throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetDepthBias is null" Nothing Nothing- let vkCmdSetDepthBias' = mkVkCmdSetDepthBias vkCmdSetDepthBiasPtr- traceAroundEvent "vkCmdSetDepthBias" (vkCmdSetDepthBias' (commandBufferHandle (commandBuffer)) (CFloat (depthBiasConstantFactor)) (CFloat (depthBiasClamp)) (CFloat (depthBiasSlopeFactor)))- pure $ ()---foreign import ccall-#if !defined(SAFE_FOREIGN_CALLS)- unsafe-#endif- "dynamic" mkVkCmdSetBlendConstants- :: FunPtr (Ptr CommandBuffer_T -> Ptr (FixedArray 4 CFloat) -> IO ()) -> Ptr CommandBuffer_T -> Ptr (FixedArray 4 CFloat) -> IO ()---- | vkCmdSetBlendConstants - Set the values of blend constants------ = Description------ This command sets blend constants for subsequent drawing commands when--- the graphics pipeline is created with--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_BLEND_CONSTANTS' set in--- 'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@.--- Otherwise, this state is specified by the--- 'Vulkan.Core10.Pipeline.PipelineColorBlendStateCreateInfo'::@blendConstants@--- values used to create the currently active pipeline.------ == Valid Usage (Implicit)------ - #VUID-vkCmdSetBlendConstants-commandBuffer-parameter#--- @commandBuffer@ /must/ be a valid--- 'Vulkan.Core10.Handles.CommandBuffer' handle------ - #VUID-vkCmdSetBlendConstants-commandBuffer-recording#--- @commandBuffer@ /must/ be in the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording state>------ - #VUID-vkCmdSetBlendConstants-commandBuffer-cmdpool# The--- 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was--- allocated from /must/ support graphics operations------ == Host Synchronization------ - Host access to @commandBuffer@ /must/ be externally synchronized------ - Host access to the 'Vulkan.Core10.Handles.CommandPool' that--- @commandBuffer@ was allocated from /must/ be externally synchronized------ == Command Properties------ \'------ +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | Primary | Both | Graphics |--- | Secondary | | |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,--- 'Vulkan.Core10.Handles.CommandBuffer'-cmdSetBlendConstants :: forall io- . (MonadIO io)- => -- | @commandBuffer@ is the command buffer into which the command will be- -- recorded.- CommandBuffer- -> -- | @blendConstants@ is a pointer to an array of four values specifying the- -- Rc, Gc, Bc, and Ac components of the blend constant color used in- -- blending, depending on the- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#framebuffer-blendfactors blend factor>.- ("blendConstants" ::: (Float, Float, Float, Float))- -> io ()-cmdSetBlendConstants commandBuffer blendConstants = liftIO . evalContT $ do- let vkCmdSetBlendConstantsPtr = pVkCmdSetBlendConstants (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)- lift $ unless (vkCmdSetBlendConstantsPtr /= nullFunPtr) $- throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetBlendConstants is null" Nothing Nothing- let vkCmdSetBlendConstants' = mkVkCmdSetBlendConstants vkCmdSetBlendConstantsPtr- pBlendConstants <- ContT $ allocaBytes @(FixedArray 4 CFloat) 16- let pBlendConstants' = lowerArrayPtr pBlendConstants- lift $ case (blendConstants) of- (e0, e1, e2, e3) -> do- poke (pBlendConstants' :: Ptr CFloat) (CFloat (e0))- poke (pBlendConstants' `plusPtr` 4 :: Ptr CFloat) (CFloat (e1))- poke (pBlendConstants' `plusPtr` 8 :: Ptr CFloat) (CFloat (e2))- poke (pBlendConstants' `plusPtr` 12 :: Ptr CFloat) (CFloat (e3))- lift $ traceAroundEvent "vkCmdSetBlendConstants" (vkCmdSetBlendConstants' (commandBufferHandle (commandBuffer)) (pBlendConstants))- pure $ ()---foreign import ccall-#if !defined(SAFE_FOREIGN_CALLS)- unsafe-#endif- "dynamic" mkVkCmdSetDepthBounds- :: FunPtr (Ptr CommandBuffer_T -> CFloat -> CFloat -> IO ()) -> Ptr CommandBuffer_T -> CFloat -> CFloat -> IO ()---- | vkCmdSetDepthBounds - Set depth bounds range dynamically for a command--- buffer------ = Description------ This command sets the depth bounds range for subsequent drawing commands--- when the graphics pipeline is created with--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BOUNDS' set in--- 'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@.--- Otherwise, this state is specified by the--- 'Vulkan.Core10.Pipeline.PipelineDepthStencilStateCreateInfo'::@minDepthBounds@--- and--- 'Vulkan.Core10.Pipeline.PipelineDepthStencilStateCreateInfo'::@maxDepthBounds@--- values used to create the currently active pipeline.------ == Valid Usage------ - #VUID-vkCmdSetDepthBounds-minDepthBounds-00600# Unless the--- @VK_EXT_depth_range_unrestricted@ extension is enabled--- @minDepthBounds@ /must/ be between @0.0@ and @1.0@, inclusive------ - #VUID-vkCmdSetDepthBounds-maxDepthBounds-00601# Unless the--- @VK_EXT_depth_range_unrestricted@ extension is enabled--- @maxDepthBounds@ /must/ be between @0.0@ and @1.0@, inclusive------ == Valid Usage (Implicit)------ - #VUID-vkCmdSetDepthBounds-commandBuffer-parameter# @commandBuffer@--- /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle------ - #VUID-vkCmdSetDepthBounds-commandBuffer-recording# @commandBuffer@--- /must/ be in the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording state>------ - #VUID-vkCmdSetDepthBounds-commandBuffer-cmdpool# The--- 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was--- allocated from /must/ support graphics operations------ == Host Synchronization------ - Host access to @commandBuffer@ /must/ be externally synchronized------ - Host access to the 'Vulkan.Core10.Handles.CommandPool' that--- @commandBuffer@ was allocated from /must/ be externally synchronized------ == Command Properties------ \'------ +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | Primary | Both | Graphics |--- | Secondary | | |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,--- 'Vulkan.Core10.Handles.CommandBuffer'-cmdSetDepthBounds :: forall io- . (MonadIO io)- => -- | @commandBuffer@ is the command buffer into which the command will be- -- recorded.- CommandBuffer- -> -- | @minDepthBounds@ is the minimum depth bound.- ("minDepthBounds" ::: Float)- -> -- | @maxDepthBounds@ is the maximum depth bound.- ("maxDepthBounds" ::: Float)- -> io ()-cmdSetDepthBounds commandBuffer minDepthBounds maxDepthBounds = liftIO $ do- let vkCmdSetDepthBoundsPtr = pVkCmdSetDepthBounds (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)- unless (vkCmdSetDepthBoundsPtr /= nullFunPtr) $- throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetDepthBounds is null" Nothing Nothing- let vkCmdSetDepthBounds' = mkVkCmdSetDepthBounds vkCmdSetDepthBoundsPtr- traceAroundEvent "vkCmdSetDepthBounds" (vkCmdSetDepthBounds' (commandBufferHandle (commandBuffer)) (CFloat (minDepthBounds)) (CFloat (maxDepthBounds)))- pure $ ()---foreign import ccall-#if !defined(SAFE_FOREIGN_CALLS)- unsafe-#endif- "dynamic" mkVkCmdSetStencilCompareMask- :: FunPtr (Ptr CommandBuffer_T -> StencilFaceFlags -> Word32 -> IO ()) -> Ptr CommandBuffer_T -> StencilFaceFlags -> Word32 -> IO ()---- | vkCmdSetStencilCompareMask - Set stencil compare mask dynamically for a--- command buffer------ = Description------ This command sets the stencil compare mask for subsequent drawing--- commands when the graphics pipeline is created with--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_COMPARE_MASK'--- set in--- 'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@.--- Otherwise, this state is specified by the--- 'Vulkan.Core10.Pipeline.PipelineDepthStencilStateCreateInfo'::@compareMask@--- value used to create the currently active pipeline, for both front and--- back faces.------ == Valid Usage (Implicit)------ - #VUID-vkCmdSetStencilCompareMask-commandBuffer-parameter#--- @commandBuffer@ /must/ be a valid--- 'Vulkan.Core10.Handles.CommandBuffer' handle------ - #VUID-vkCmdSetStencilCompareMask-faceMask-parameter# @faceMask@--- /must/ be a valid combination of--- 'Vulkan.Core10.Enums.StencilFaceFlagBits.StencilFaceFlagBits' values------ - #VUID-vkCmdSetStencilCompareMask-faceMask-requiredbitmask#--- @faceMask@ /must/ not be @0@------ - #VUID-vkCmdSetStencilCompareMask-commandBuffer-recording#--- @commandBuffer@ /must/ be in the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording state>------ - #VUID-vkCmdSetStencilCompareMask-commandBuffer-cmdpool# The--- 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was--- allocated from /must/ support graphics operations------ == Host Synchronization------ - Host access to @commandBuffer@ /must/ be externally synchronized------ - Host access to the 'Vulkan.Core10.Handles.CommandPool' that--- @commandBuffer@ was allocated from /must/ be externally synchronized------ == Command Properties------ \'------ +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | Primary | Both | Graphics |--- | Secondary | | |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,--- 'Vulkan.Core10.Handles.CommandBuffer',--- 'Vulkan.Core10.Enums.StencilFaceFlagBits.StencilFaceFlags'-cmdSetStencilCompareMask :: forall io- . (MonadIO io)- => -- | @commandBuffer@ is the command buffer into which the command will be- -- recorded.- CommandBuffer- -> -- | @faceMask@ is a bitmask of- -- 'Vulkan.Core10.Enums.StencilFaceFlagBits.StencilFaceFlagBits' specifying- -- the set of stencil state for which to update the compare mask.- ("faceMask" ::: StencilFaceFlags)- -> -- | @compareMask@ is the new value to use as the stencil compare mask.- ("compareMask" ::: Word32)- -> io ()-cmdSetStencilCompareMask commandBuffer faceMask compareMask = liftIO $ do- let vkCmdSetStencilCompareMaskPtr = pVkCmdSetStencilCompareMask (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)- unless (vkCmdSetStencilCompareMaskPtr /= nullFunPtr) $- throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetStencilCompareMask is null" Nothing Nothing- let vkCmdSetStencilCompareMask' = mkVkCmdSetStencilCompareMask vkCmdSetStencilCompareMaskPtr- traceAroundEvent "vkCmdSetStencilCompareMask" (vkCmdSetStencilCompareMask' (commandBufferHandle (commandBuffer)) (faceMask) (compareMask))- pure $ ()---foreign import ccall-#if !defined(SAFE_FOREIGN_CALLS)- unsafe-#endif- "dynamic" mkVkCmdSetStencilWriteMask- :: FunPtr (Ptr CommandBuffer_T -> StencilFaceFlags -> Word32 -> IO ()) -> Ptr CommandBuffer_T -> StencilFaceFlags -> Word32 -> IO ()---- | vkCmdSetStencilWriteMask - Set stencil write mask dynamically for a--- command buffer------ = Description------ This command sets the stencil write mask for subsequent drawing commands--- when the graphics pipeline is created with--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_WRITE_MASK' set--- in--- 'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@.--- Otherwise, this state is specified by the--- 'Vulkan.Core10.Pipeline.PipelineDepthStencilStateCreateInfo'::@writeMask@--- value used to create the currently active pipeline, for both front and--- back faces.------ == Valid Usage (Implicit)------ - #VUID-vkCmdSetStencilWriteMask-commandBuffer-parameter#--- @commandBuffer@ /must/ be a valid--- 'Vulkan.Core10.Handles.CommandBuffer' handle------ - #VUID-vkCmdSetStencilWriteMask-faceMask-parameter# @faceMask@ /must/--- be a valid combination of--- 'Vulkan.Core10.Enums.StencilFaceFlagBits.StencilFaceFlagBits' values------ - #VUID-vkCmdSetStencilWriteMask-faceMask-requiredbitmask# @faceMask@--- /must/ not be @0@------ - #VUID-vkCmdSetStencilWriteMask-commandBuffer-recording#--- @commandBuffer@ /must/ be in the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording state>------ - #VUID-vkCmdSetStencilWriteMask-commandBuffer-cmdpool# The--- 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was--- allocated from /must/ support graphics operations------ == Host Synchronization------ - Host access to @commandBuffer@ /must/ be externally synchronized------ - Host access to the 'Vulkan.Core10.Handles.CommandPool' that--- @commandBuffer@ was allocated from /must/ be externally synchronized------ == Command Properties------ \'------ +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | Primary | Both | Graphics |--- | Secondary | | |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,--- 'Vulkan.Core10.Handles.CommandBuffer',--- 'Vulkan.Core10.Enums.StencilFaceFlagBits.StencilFaceFlags'-cmdSetStencilWriteMask :: forall io- . (MonadIO io)- => -- | @commandBuffer@ is the command buffer into which the command will be- -- recorded.- CommandBuffer- -> -- | @faceMask@ is a bitmask of- -- 'Vulkan.Core10.Enums.StencilFaceFlagBits.StencilFaceFlagBits' specifying- -- the set of stencil state for which to update the write mask, as- -- described above for 'cmdSetStencilCompareMask'.- ("faceMask" ::: StencilFaceFlags)- -> -- | @writeMask@ is the new value to use as the stencil write mask.- ("writeMask" ::: Word32)- -> io ()-cmdSetStencilWriteMask commandBuffer faceMask writeMask = liftIO $ do- let vkCmdSetStencilWriteMaskPtr = pVkCmdSetStencilWriteMask (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)- unless (vkCmdSetStencilWriteMaskPtr /= nullFunPtr) $- throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetStencilWriteMask is null" Nothing Nothing- let vkCmdSetStencilWriteMask' = mkVkCmdSetStencilWriteMask vkCmdSetStencilWriteMaskPtr- traceAroundEvent "vkCmdSetStencilWriteMask" (vkCmdSetStencilWriteMask' (commandBufferHandle (commandBuffer)) (faceMask) (writeMask))- pure $ ()---foreign import ccall-#if !defined(SAFE_FOREIGN_CALLS)- unsafe-#endif- "dynamic" mkVkCmdSetStencilReference- :: FunPtr (Ptr CommandBuffer_T -> StencilFaceFlags -> Word32 -> IO ()) -> Ptr CommandBuffer_T -> StencilFaceFlags -> Word32 -> IO ()---- | vkCmdSetStencilReference - Set stencil reference value dynamically for a--- command buffer------ = Description------ This command sets the stencil reference value for subsequent drawing--- commands when the graphics pipeline is created with--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_REFERENCE' set--- in--- 'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@.--- Otherwise, this state is specified by the--- 'Vulkan.Core10.Pipeline.PipelineDepthStencilStateCreateInfo'::@reference@--- value used to create the currently active pipeline, for both front and--- back faces.------ == Valid Usage (Implicit)------ - #VUID-vkCmdSetStencilReference-commandBuffer-parameter#--- @commandBuffer@ /must/ be a valid--- 'Vulkan.Core10.Handles.CommandBuffer' handle------ - #VUID-vkCmdSetStencilReference-faceMask-parameter# @faceMask@ /must/--- be a valid combination of--- 'Vulkan.Core10.Enums.StencilFaceFlagBits.StencilFaceFlagBits' values------ - #VUID-vkCmdSetStencilReference-faceMask-requiredbitmask# @faceMask@--- /must/ not be @0@------ - #VUID-vkCmdSetStencilReference-commandBuffer-recording#--- @commandBuffer@ /must/ be in the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording state>------ - #VUID-vkCmdSetStencilReference-commandBuffer-cmdpool# The--- 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was--- allocated from /must/ support graphics operations------ == Host Synchronization------ - Host access to @commandBuffer@ /must/ be externally synchronized------ - Host access to the 'Vulkan.Core10.Handles.CommandPool' that--- @commandBuffer@ was allocated from /must/ be externally synchronized------ == Command Properties------ \'------ +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | Primary | Both | Graphics |--- | Secondary | | |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,--- 'Vulkan.Core10.Handles.CommandBuffer',--- 'Vulkan.Core10.Enums.StencilFaceFlagBits.StencilFaceFlags'-cmdSetStencilReference :: forall io- . (MonadIO io)- => -- | @commandBuffer@ is the command buffer into which the command will be- -- recorded.- CommandBuffer- -> -- | @faceMask@ is a bitmask of- -- 'Vulkan.Core10.Enums.StencilFaceFlagBits.StencilFaceFlagBits' specifying- -- the set of stencil state for which to update the reference value, as- -- described above for 'cmdSetStencilCompareMask'.- ("faceMask" ::: StencilFaceFlags)- -> -- | @reference@ is the new value to use as the stencil reference value.- ("reference" ::: Word32)- -> io ()-cmdSetStencilReference commandBuffer faceMask reference = liftIO $ do- let vkCmdSetStencilReferencePtr = pVkCmdSetStencilReference (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)- unless (vkCmdSetStencilReferencePtr /= nullFunPtr) $- throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetStencilReference is null" Nothing Nothing- let vkCmdSetStencilReference' = mkVkCmdSetStencilReference vkCmdSetStencilReferencePtr- traceAroundEvent "vkCmdSetStencilReference" (vkCmdSetStencilReference' (commandBufferHandle (commandBuffer)) (faceMask) (reference))- pure $ ()---foreign import ccall-#if !defined(SAFE_FOREIGN_CALLS)- unsafe-#endif- "dynamic" mkVkCmdBindDescriptorSets- :: FunPtr (Ptr CommandBuffer_T -> PipelineBindPoint -> PipelineLayout -> Word32 -> Word32 -> Ptr DescriptorSet -> Word32 -> Ptr Word32 -> IO ()) -> Ptr CommandBuffer_T -> PipelineBindPoint -> PipelineLayout -> Word32 -> Word32 -> Ptr DescriptorSet -> Word32 -> Ptr Word32 -> IO ()---- | vkCmdBindDescriptorSets - Binds descriptor sets to a command buffer------ = Description------ 'cmdBindDescriptorSets' binds descriptor sets--- @pDescriptorSets@[0..@descriptorSetCount@-1] to set numbers--- [@firstSet@..@firstSet@+@descriptorSetCount@-1] for subsequent--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-bindpoint-commands bound pipeline commands>--- set by @pipelineBindPoint@. Any bindings that were previously applied--- via these sets are no longer valid.------ Once bound, a descriptor set affects rendering of subsequent commands--- that interact with the given pipeline type in the command buffer until--- either a different set is bound to the same set number, or the set is--- disturbed as described in--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-compatibility Pipeline Layout Compatibility>.------ A compatible descriptor set /must/ be bound for all set numbers that any--- shaders in a pipeline access, at the time that a drawing or dispatching--- command is recorded to execute using that pipeline. However, if none of--- the shaders in a pipeline statically use any bindings with a particular--- set number, then no descriptor set need be bound for that set number,--- even if the pipeline layout includes a non-trivial descriptor set layout--- for that set number.------ If any of the sets being bound include dynamic uniform or storage--- buffers, then @pDynamicOffsets@ includes one element for each array--- element in each dynamic descriptor type binding in each set. Values are--- taken from @pDynamicOffsets@ in an order such that all entries for set N--- come before set N+1; within a set, entries are ordered by the binding--- numbers in the descriptor set layouts; and within a binding array,--- elements are in order. @dynamicOffsetCount@ /must/ equal the total--- number of dynamic descriptors in the sets being bound.------ The effective offset used for dynamic uniform and storage buffer--- bindings is the sum of the relative offset taken from @pDynamicOffsets@,--- and the base address of the buffer plus base offset in the descriptor--- set. The range of the dynamic uniform and storage buffer bindings is the--- buffer range as specified in the descriptor set.------ Each of the @pDescriptorSets@ /must/ be compatible with the pipeline--- layout specified by @layout@. The layout used to program the bindings--- /must/ also be compatible with the pipeline used in subsequent--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-bindpoint-commands bound pipeline commands>--- with that pipeline type, as defined in the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-compatibility Pipeline Layout Compatibility>--- section.------ The descriptor set contents bound by a call to 'cmdBindDescriptorSets'--- /may/ be consumed at the following times:------ - For descriptor bindings created with the--- 'Vulkan.Core12.Enums.DescriptorBindingFlagBits.DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT'--- bit set, the contents /may/ be consumed when the command buffer is--- submitted to a queue, or during shader execution of the resulting--- draws and dispatches, or any time in between. Otherwise,------ - during host execution of the command, or during shader execution of--- the resulting draws and dispatches, or any time in between.------ Thus, the contents of a descriptor set binding /must/ not be altered--- (overwritten by an update command, or freed) between the first point in--- time that it /may/ be consumed, and when the command completes executing--- on the queue.------ The contents of @pDynamicOffsets@ are consumed immediately during--- execution of 'cmdBindDescriptorSets'. Once all pending uses have--- completed, it is legal to update and reuse a descriptor set.------ == Valid Usage------ - #VUID-vkCmdBindDescriptorSets-pDescriptorSets-00358# Each element of--- @pDescriptorSets@ /must/ have been allocated with a--- 'Vulkan.Core10.Handles.DescriptorSetLayout' that matches (is the--- same as, or identically defined as) the--- 'Vulkan.Core10.Handles.DescriptorSetLayout' at set /n/ in @layout@,--- where /n/ is the sum of @firstSet@ and the index into--- @pDescriptorSets@------ - #VUID-vkCmdBindDescriptorSets-dynamicOffsetCount-00359#--- @dynamicOffsetCount@ /must/ be equal to the total number of dynamic--- descriptors in @pDescriptorSets@------ - #VUID-vkCmdBindDescriptorSets-firstSet-00360# The sum of @firstSet@--- and @descriptorSetCount@ /must/ be less than or equal to--- 'Vulkan.Core10.PipelineLayout.PipelineLayoutCreateInfo'::@setLayoutCount@--- provided when @layout@ was created------ - #VUID-vkCmdBindDescriptorSets-pipelineBindPoint-00361#--- @pipelineBindPoint@ /must/ be supported by the @commandBuffer@’s--- parent 'Vulkan.Core10.Handles.CommandPool'’s queue family------ - #VUID-vkCmdBindDescriptorSets-pDynamicOffsets-01971# Each element of--- @pDynamicOffsets@ which corresponds to a descriptor binding with--- type--- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC'--- /must/ be a multiple of--- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@minUniformBufferOffsetAlignment@------ - #VUID-vkCmdBindDescriptorSets-pDynamicOffsets-01972# Each element of--- @pDynamicOffsets@ which corresponds to a descriptor binding with--- type--- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC'--- /must/ be a multiple of--- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@minStorageBufferOffsetAlignment@------ - #VUID-vkCmdBindDescriptorSets-pDescriptorSets-01979# For each--- dynamic uniform or storage buffer binding in @pDescriptorSets@, the--- sum of the effective offset, as defined above, and the range of the--- binding /must/ be less than or equal to the size of the buffer------ - #VUID-vkCmdBindDescriptorSets-pDescriptorSets-04616# Each element of--- @pDescriptorSets@ /must/ not have been allocated from a--- 'Vulkan.Core10.Handles.DescriptorPool' with the--- 'Vulkan.Core10.Enums.DescriptorPoolCreateFlagBits.DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_VALVE'--- flag set------ - #VUID-vkCmdBindDescriptorSets-layout-06564# If @layout@ was not--- created with--- 'Vulkan.Core10.Enums.PipelineLayoutCreateFlagBits.PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT',--- each element of @pDescriptorSets@ /must/ be a valid--- 'Vulkan.Core10.Handles.DescriptorSetLayout'------ == Valid Usage (Implicit)------ - #VUID-vkCmdBindDescriptorSets-commandBuffer-parameter#--- @commandBuffer@ /must/ be a valid--- 'Vulkan.Core10.Handles.CommandBuffer' handle------ - #VUID-vkCmdBindDescriptorSets-pipelineBindPoint-parameter#--- @pipelineBindPoint@ /must/ be a valid--- 'Vulkan.Core10.Enums.PipelineBindPoint.PipelineBindPoint' value------ - #VUID-vkCmdBindDescriptorSets-layout-parameter# @layout@ /must/ be a--- valid 'Vulkan.Core10.Handles.PipelineLayout' handle------ - #VUID-vkCmdBindDescriptorSets-pDescriptorSets-parameter#--- @pDescriptorSets@ /must/ be a valid pointer to an array of--- @descriptorSetCount@ valid or--- 'Vulkan.Core10.APIConstants.NULL_HANDLE'--- 'Vulkan.Core10.Handles.DescriptorSet' handles------ - #VUID-vkCmdBindDescriptorSets-pDynamicOffsets-parameter# If--- @dynamicOffsetCount@ is not @0@, @pDynamicOffsets@ /must/ be a valid--- pointer to an array of @dynamicOffsetCount@ @uint32_t@ values------ - #VUID-vkCmdBindDescriptorSets-commandBuffer-recording#--- @commandBuffer@ /must/ be in the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording state>------ - #VUID-vkCmdBindDescriptorSets-commandBuffer-cmdpool# The--- 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was--- allocated from /must/ support graphics, or compute operations------ - #VUID-vkCmdBindDescriptorSets-descriptorSetCount-arraylength#--- @descriptorSetCount@ /must/ be greater than @0@------ - #VUID-vkCmdBindDescriptorSets-commonparent# Each of @commandBuffer@,--- @layout@, and the elements of @pDescriptorSets@ that are valid--- handles of non-ignored parameters /must/ have been created,--- allocated, or retrieved from the same 'Vulkan.Core10.Handles.Device'------ == Host Synchronization------ - Host access to @commandBuffer@ /must/ be externally synchronized------ - Host access to the 'Vulkan.Core10.Handles.CommandPool' that--- @commandBuffer@ was allocated from /must/ be externally synchronized------ == Command Properties------ \'------ +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | Primary | Both | Graphics |--- | Secondary | | Compute |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,--- 'Vulkan.Core10.Handles.CommandBuffer',--- 'Vulkan.Core10.Handles.DescriptorSet',--- 'Vulkan.Core10.Enums.PipelineBindPoint.PipelineBindPoint',--- 'Vulkan.Core10.Handles.PipelineLayout'-cmdBindDescriptorSets :: forall io- . (MonadIO io)- => -- | @commandBuffer@ is the command buffer that the descriptor sets will be- -- bound to.- CommandBuffer- -> -- | @pipelineBindPoint@ is a- -- 'Vulkan.Core10.Enums.PipelineBindPoint.PipelineBindPoint' indicating the- -- type of the pipeline that will use the descriptors. There is a separate- -- set of bind points for each pipeline type, so binding one does not- -- disturb the others.- PipelineBindPoint- -> -- | @layout@ is a 'Vulkan.Core10.Handles.PipelineLayout' object used to- -- program the bindings.- PipelineLayout- -> -- | @firstSet@ is the set number of the first descriptor set to be bound.- ("firstSet" ::: Word32)- -> -- | @pDescriptorSets@ is a pointer to an array of handles to- -- 'Vulkan.Core10.Handles.DescriptorSet' objects describing the descriptor- -- sets to bind to.- ("descriptorSets" ::: Vector DescriptorSet)- -> -- | @pDynamicOffsets@ is a pointer to an array of @uint32_t@ values- -- specifying dynamic offsets.- ("dynamicOffsets" ::: Vector Word32)- -> io ()-cmdBindDescriptorSets commandBuffer pipelineBindPoint layout firstSet descriptorSets dynamicOffsets = liftIO . evalContT $ do- let vkCmdBindDescriptorSetsPtr = pVkCmdBindDescriptorSets (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)- lift $ unless (vkCmdBindDescriptorSetsPtr /= nullFunPtr) $- throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdBindDescriptorSets is null" Nothing Nothing- let vkCmdBindDescriptorSets' = mkVkCmdBindDescriptorSets vkCmdBindDescriptorSetsPtr- pPDescriptorSets <- ContT $ allocaBytes @DescriptorSet ((Data.Vector.length (descriptorSets)) * 8)- lift $ Data.Vector.imapM_ (\i e -> poke (pPDescriptorSets `plusPtr` (8 * (i)) :: Ptr DescriptorSet) (e)) (descriptorSets)- pPDynamicOffsets <- ContT $ allocaBytes @Word32 ((Data.Vector.length (dynamicOffsets)) * 4)- lift $ Data.Vector.imapM_ (\i e -> poke (pPDynamicOffsets `plusPtr` (4 * (i)) :: Ptr Word32) (e)) (dynamicOffsets)- lift $ traceAroundEvent "vkCmdBindDescriptorSets" (vkCmdBindDescriptorSets' (commandBufferHandle (commandBuffer)) (pipelineBindPoint) (layout) (firstSet) ((fromIntegral (Data.Vector.length $ (descriptorSets)) :: Word32)) (pPDescriptorSets) ((fromIntegral (Data.Vector.length $ (dynamicOffsets)) :: Word32)) (pPDynamicOffsets))- pure $ ()---foreign import ccall-#if !defined(SAFE_FOREIGN_CALLS)- unsafe-#endif- "dynamic" mkVkCmdBindIndexBuffer- :: FunPtr (Ptr CommandBuffer_T -> Buffer -> DeviceSize -> IndexType -> IO ()) -> Ptr CommandBuffer_T -> Buffer -> DeviceSize -> IndexType -> IO ()---- | vkCmdBindIndexBuffer - Bind an index buffer to a command buffer------ == Valid Usage------ - #VUID-vkCmdBindIndexBuffer-offset-00431# @offset@ /must/ be less--- than the size of @buffer@------ - #VUID-vkCmdBindIndexBuffer-offset-00432# The sum of @offset@ and the--- address of the range of 'Vulkan.Core10.Handles.DeviceMemory' object--- that is backing @buffer@, /must/ be a multiple of the type indicated--- by @indexType@------ - #VUID-vkCmdBindIndexBuffer-buffer-00433# @buffer@ /must/ have been--- created with the--- 'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_INDEX_BUFFER_BIT'--- flag------ - #VUID-vkCmdBindIndexBuffer-buffer-00434# If @buffer@ is non-sparse--- then it /must/ be bound completely and contiguously to a single--- 'Vulkan.Core10.Handles.DeviceMemory' object------ - #VUID-vkCmdBindIndexBuffer-indexType-02507# @indexType@ /must/ not--- be 'Vulkan.Core10.Enums.IndexType.INDEX_TYPE_NONE_KHR'------ - #VUID-vkCmdBindIndexBuffer-indexType-02765# If @indexType@ is--- 'Vulkan.Core10.Enums.IndexType.INDEX_TYPE_UINT8_EXT', the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-indexTypeUint8 indexTypeUint8>--- feature /must/ be enabled------ == Valid Usage (Implicit)------ - #VUID-vkCmdBindIndexBuffer-commandBuffer-parameter# @commandBuffer@--- /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle------ - #VUID-vkCmdBindIndexBuffer-buffer-parameter# @buffer@ /must/ be a--- valid 'Vulkan.Core10.Handles.Buffer' handle------ - #VUID-vkCmdBindIndexBuffer-indexType-parameter# @indexType@ /must/--- be a valid 'Vulkan.Core10.Enums.IndexType.IndexType' value------ - #VUID-vkCmdBindIndexBuffer-commandBuffer-recording# @commandBuffer@--- /must/ be in the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording state>------ - #VUID-vkCmdBindIndexBuffer-commandBuffer-cmdpool# The--- 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was--- allocated from /must/ support graphics operations------ - #VUID-vkCmdBindIndexBuffer-commonparent# Both of @buffer@, and--- @commandBuffer@ /must/ have been created, allocated, or retrieved--- from the same 'Vulkan.Core10.Handles.Device'------ == Host Synchronization------ - Host access to @commandBuffer@ /must/ be externally synchronized------ - Host access to the 'Vulkan.Core10.Handles.CommandPool' that--- @commandBuffer@ was allocated from /must/ be externally synchronized------ == Command Properties------ \'------ +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | Primary | Both | Graphics |--- | Secondary | | |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,--- 'Vulkan.Core10.Handles.Buffer', 'Vulkan.Core10.Handles.CommandBuffer',--- 'Vulkan.Core10.FundamentalTypes.DeviceSize',--- 'Vulkan.Core10.Enums.IndexType.IndexType'-cmdBindIndexBuffer :: forall io- . (MonadIO io)- => -- | @commandBuffer@ is the command buffer into which the command is- -- recorded.- CommandBuffer- -> -- | @buffer@ is the buffer being bound.- Buffer- -> -- | @offset@ is the starting offset in bytes within @buffer@ used in index- -- buffer address calculations.- ("offset" ::: DeviceSize)- -> -- | @indexType@ is a 'Vulkan.Core10.Enums.IndexType.IndexType' value- -- specifying the size of the indices.- IndexType- -> io ()-cmdBindIndexBuffer commandBuffer buffer offset indexType = liftIO $ do- let vkCmdBindIndexBufferPtr = pVkCmdBindIndexBuffer (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)- unless (vkCmdBindIndexBufferPtr /= nullFunPtr) $- throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdBindIndexBuffer is null" Nothing Nothing- let vkCmdBindIndexBuffer' = mkVkCmdBindIndexBuffer vkCmdBindIndexBufferPtr- traceAroundEvent "vkCmdBindIndexBuffer" (vkCmdBindIndexBuffer' (commandBufferHandle (commandBuffer)) (buffer) (offset) (indexType))- pure $ ()---foreign import ccall-#if !defined(SAFE_FOREIGN_CALLS)- unsafe-#endif- "dynamic" mkVkCmdBindVertexBuffers- :: FunPtr (Ptr CommandBuffer_T -> Word32 -> Word32 -> Ptr Buffer -> Ptr DeviceSize -> IO ()) -> Ptr CommandBuffer_T -> Word32 -> Word32 -> Ptr Buffer -> Ptr DeviceSize -> IO ()---- | vkCmdBindVertexBuffers - Bind vertex buffers to a command buffer------ = Description------ The values taken from elements i of @pBuffers@ and @pOffsets@ replace--- the current state for the vertex input binding @firstBinding@ + i, for i--- in [0, @bindingCount@). The vertex input binding is updated to start at--- the offset indicated by @pOffsets@[i] from the start of the buffer--- @pBuffers@[i]. All vertex input attributes that use each of these--- bindings will use these updated addresses in their address calculations--- for subsequent drawing commands. If the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-nullDescriptor nullDescriptor>--- feature is enabled, elements of @pBuffers@ /can/ be--- 'Vulkan.Core10.APIConstants.NULL_HANDLE', and /can/ be used by the--- vertex shader. If a vertex input attribute is bound to a vertex input--- binding that is 'Vulkan.Core10.APIConstants.NULL_HANDLE', the values--- taken from memory are considered to be zero, and missing G, B, or A--- components are--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fxvertex-input-extraction filled with (0,0,1)>.------ == Valid Usage------ - #VUID-vkCmdBindVertexBuffers-firstBinding-00624# @firstBinding@--- /must/ be less than--- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxVertexInputBindings@------ - #VUID-vkCmdBindVertexBuffers-firstBinding-00625# The sum of--- @firstBinding@ and @bindingCount@ /must/ be less than or equal to--- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxVertexInputBindings@------ - #VUID-vkCmdBindVertexBuffers-pOffsets-00626# All elements of--- @pOffsets@ /must/ be less than the size of the corresponding element--- in @pBuffers@------ - #VUID-vkCmdBindVertexBuffers-pBuffers-00627# All elements of--- @pBuffers@ /must/ have been created with the--- 'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_VERTEX_BUFFER_BIT'--- flag------ - #VUID-vkCmdBindVertexBuffers-pBuffers-00628# Each element of--- @pBuffers@ that is non-sparse /must/ be bound completely and--- contiguously to a single 'Vulkan.Core10.Handles.DeviceMemory' object------ - #VUID-vkCmdBindVertexBuffers-pBuffers-04001# If the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-nullDescriptor nullDescriptor>--- feature is not enabled, all elements of @pBuffers@ /must/ not be--- 'Vulkan.Core10.APIConstants.NULL_HANDLE'------ - #VUID-vkCmdBindVertexBuffers-pBuffers-04002# If an element of--- @pBuffers@ is 'Vulkan.Core10.APIConstants.NULL_HANDLE', then the--- corresponding element of @pOffsets@ /must/ be zero------ == Valid Usage (Implicit)------ - #VUID-vkCmdBindVertexBuffers-commandBuffer-parameter#--- @commandBuffer@ /must/ be a valid--- 'Vulkan.Core10.Handles.CommandBuffer' handle------ - #VUID-vkCmdBindVertexBuffers-pBuffers-parameter# @pBuffers@ /must/--- be a valid pointer to an array of @bindingCount@ valid or--- 'Vulkan.Core10.APIConstants.NULL_HANDLE'--- 'Vulkan.Core10.Handles.Buffer' handles------ - #VUID-vkCmdBindVertexBuffers-pOffsets-parameter# @pOffsets@ /must/--- be a valid pointer to an array of @bindingCount@--- 'Vulkan.Core10.FundamentalTypes.DeviceSize' values------ - #VUID-vkCmdBindVertexBuffers-commandBuffer-recording#--- @commandBuffer@ /must/ be in the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording state>------ - #VUID-vkCmdBindVertexBuffers-commandBuffer-cmdpool# The--- 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was--- allocated from /must/ support graphics operations------ - #VUID-vkCmdBindVertexBuffers-bindingCount-arraylength#--- @bindingCount@ /must/ be greater than @0@------ - #VUID-vkCmdBindVertexBuffers-commonparent# Both of @commandBuffer@,--- and the elements of @pBuffers@ that are valid handles of non-ignored--- parameters /must/ have been created, allocated, or retrieved from--- the same 'Vulkan.Core10.Handles.Device'------ == Host Synchronization------ - Host access to @commandBuffer@ /must/ be externally synchronized------ - Host access to the 'Vulkan.Core10.Handles.CommandPool' that--- @commandBuffer@ was allocated from /must/ be externally synchronized------ == Command Properties------ \'------ +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | Primary | Both | Graphics |--- | Secondary | | |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,--- 'Vulkan.Core10.Handles.Buffer', 'Vulkan.Core10.Handles.CommandBuffer',--- 'Vulkan.Core10.FundamentalTypes.DeviceSize'-cmdBindVertexBuffers :: forall io- . (MonadIO io)- => -- | @commandBuffer@ is the command buffer into which the command is- -- recorded.- CommandBuffer- -> -- | @firstBinding@ is the index of the first vertex input binding whose- -- state is updated by the command.- ("firstBinding" ::: Word32)- -> -- | @pBuffers@ is a pointer to an array of buffer handles.- ("buffers" ::: Vector Buffer)- -> -- | @pOffsets@ is a pointer to an array of buffer offsets.- ("offsets" ::: Vector DeviceSize)- -> io ()-cmdBindVertexBuffers commandBuffer firstBinding buffers offsets = liftIO . evalContT $ do- let vkCmdBindVertexBuffersPtr = pVkCmdBindVertexBuffers (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)- lift $ unless (vkCmdBindVertexBuffersPtr /= nullFunPtr) $- throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdBindVertexBuffers is null" Nothing Nothing- let vkCmdBindVertexBuffers' = mkVkCmdBindVertexBuffers vkCmdBindVertexBuffersPtr- let pBuffersLength = Data.Vector.length $ (buffers)- lift $ unless ((Data.Vector.length $ (offsets)) == pBuffersLength) $- throwIO $ IOError Nothing InvalidArgument "" "pOffsets and pBuffers must have the same length" Nothing Nothing- pPBuffers <- ContT $ allocaBytes @Buffer ((Data.Vector.length (buffers)) * 8)- lift $ Data.Vector.imapM_ (\i e -> poke (pPBuffers `plusPtr` (8 * (i)) :: Ptr Buffer) (e)) (buffers)- pPOffsets <- ContT $ allocaBytes @DeviceSize ((Data.Vector.length (offsets)) * 8)- lift $ Data.Vector.imapM_ (\i e -> poke (pPOffsets `plusPtr` (8 * (i)) :: Ptr DeviceSize) (e)) (offsets)- lift $ traceAroundEvent "vkCmdBindVertexBuffers" (vkCmdBindVertexBuffers' (commandBufferHandle (commandBuffer)) (firstBinding) ((fromIntegral pBuffersLength :: Word32)) (pPBuffers) (pPOffsets))- pure $ ()---foreign import ccall-#if !defined(SAFE_FOREIGN_CALLS)- unsafe-#endif- "dynamic" mkVkCmdDraw- :: FunPtr (Ptr CommandBuffer_T -> Word32 -> Word32 -> Word32 -> Word32 -> IO ()) -> Ptr CommandBuffer_T -> Word32 -> Word32 -> Word32 -> Word32 -> IO ()---- | vkCmdDraw - Draw primitives------ = Description------ When the command is executed, primitives are assembled using the current--- primitive topology and @vertexCount@ consecutive vertex indices with the--- first @vertexIndex@ value equal to @firstVertex@. The primitives are--- drawn @instanceCount@ times with @instanceIndex@ starting with--- @firstInstance@ and increasing sequentially for each instance. The--- assembled primitives execute the bound graphics pipeline.------ == Valid Usage------ - #VUID-vkCmdDraw-magFilter-04553# If a--- 'Vulkan.Core10.Handles.Sampler' created with @magFilter@ or--- @minFilter@ equal to 'Vulkan.Core10.Enums.Filter.FILTER_LINEAR' and--- @compareEnable@ equal to 'Vulkan.Core10.FundamentalTypes.FALSE' is--- used to sample a 'Vulkan.Core10.Handles.ImageView' as a result of--- this command, then the image view’s--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>--- /must/ contain--- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT'------ - #VUID-vkCmdDraw-mipmapMode-04770# If a--- 'Vulkan.Core10.Handles.Sampler' created with @mipmapMode@ equal to--- 'Vulkan.Core10.Enums.SamplerMipmapMode.SAMPLER_MIPMAP_MODE_LINEAR'--- and @compareEnable@ equal to 'Vulkan.Core10.FundamentalTypes.FALSE'--- is used to sample a 'Vulkan.Core10.Handles.ImageView' as a result of--- this command, then the image view’s--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>--- /must/ contain--- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT'------ - #VUID-vkCmdDraw-None-06479# If a 'Vulkan.Core10.Handles.ImageView'--- is sampled with--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-depth-compare-operation depth comparison>,--- the image view’s--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>--- /must/ contain--- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT'------ - #VUID-vkCmdDraw-None-02691# If a 'Vulkan.Core10.Handles.ImageView'--- is accessed using atomic operations as a result of this command,--- then the image view’s--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>--- /must/ contain--- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT'------ - #VUID-vkCmdDraw-None-02692# If a 'Vulkan.Core10.Handles.ImageView'--- is sampled with--- 'Vulkan.Extensions.VK_EXT_filter_cubic.FILTER_CUBIC_EXT' as a result--- of this command, then the image view’s--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>--- /must/ contain--- 'Vulkan.Extensions.VK_EXT_filter_cubic.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT'------ - #VUID-vkCmdDraw-filterCubic-02694# Any--- 'Vulkan.Core10.Handles.ImageView' being sampled with--- 'Vulkan.Extensions.VK_EXT_filter_cubic.FILTER_CUBIC_EXT' as a result--- of this command /must/ have a--- 'Vulkan.Core10.Enums.ImageViewType.ImageViewType' and format that--- supports cubic filtering, as specified by--- 'Vulkan.Extensions.VK_EXT_filter_cubic.FilterCubicImageViewImageFormatPropertiesEXT'::@filterCubic@--- returned by--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceImageFormatProperties2'------ - #VUID-vkCmdDraw-filterCubicMinmax-02695# Any--- 'Vulkan.Core10.Handles.ImageView' being sampled with--- 'Vulkan.Extensions.VK_EXT_filter_cubic.FILTER_CUBIC_EXT' with a--- reduction mode of either--- 'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MIN'--- or--- 'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MAX'--- as a result of this command /must/ have a--- 'Vulkan.Core10.Enums.ImageViewType.ImageViewType' and format that--- supports cubic filtering together with minmax filtering, as--- specified by--- 'Vulkan.Extensions.VK_EXT_filter_cubic.FilterCubicImageViewImageFormatPropertiesEXT'::@filterCubicMinmax@--- returned by--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceImageFormatProperties2'------ - #VUID-vkCmdDraw-flags-02696# Any 'Vulkan.Core10.Handles.Image'--- created with a 'Vulkan.Core10.Image.ImageCreateInfo'::@flags@--- containing--- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_CORNER_SAMPLED_BIT_NV'--- sampled as a result of this command /must/ only be sampled using a--- 'Vulkan.Core10.Enums.SamplerAddressMode.SamplerAddressMode' of--- 'Vulkan.Core10.Enums.SamplerAddressMode.SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE'------ - #VUID-vkCmdDraw-OpTypeImage-06423# Any--- 'Vulkan.Core10.Handles.ImageView' or--- 'Vulkan.Core10.Handles.BufferView' being written as a storage image--- or storage texel buffer where the image format field of the--- @OpTypeImage@ is @Unknown@ then the view’s format feature /must/--- contain--- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT'------ - #VUID-vkCmdDraw-OpTypeImage-06424# Any--- 'Vulkan.Core10.Handles.ImageView' or--- 'Vulkan.Core10.Handles.BufferView' being read as a storage image or--- storage texel buffer where the image format field of the--- @OpTypeImage@ is @Unknown@ then the view’s format feature /must/--- contain--- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT'------ - #VUID-vkCmdDraw-None-02697# For each set /n/ that is statically used--- by the 'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind--- point used by this command, a descriptor set /must/ have been bound--- to /n/ at the same pipeline bind point, with a--- 'Vulkan.Core10.Handles.PipelineLayout' that is compatible for set--- /n/, with the 'Vulkan.Core10.Handles.PipelineLayout' used to create--- the current 'Vulkan.Core10.Handles.Pipeline', as described in--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>------ - #VUID-vkCmdDraw-maintenance4-06425# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-maintenance4 maintenance4>--- feature is not enabled, then for each push constant that is--- statically used by the 'Vulkan.Core10.Handles.Pipeline' bound to the--- pipeline bind point used by this command, a push constant value--- /must/ have been set for the same pipeline bind point, with a--- 'Vulkan.Core10.Handles.PipelineLayout' that is compatible for push--- constants, with the 'Vulkan.Core10.Handles.PipelineLayout' used to--- create the current 'Vulkan.Core10.Handles.Pipeline', as described in--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>------ - #VUID-vkCmdDraw-None-02699# Descriptors in each bound descriptor--- set, specified via 'cmdBindDescriptorSets', /must/ be valid if they--- are statically used by the 'Vulkan.Core10.Handles.Pipeline' bound to--- the pipeline bind point used by this command------ - #VUID-vkCmdDraw-None-02700# A valid pipeline /must/ be bound to the--- pipeline bind point used by this command------ - #VUID-vkCmdDraw-commandBuffer-02701# If the--- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind--- point used by this command requires any dynamic state, that state--- /must/ have been set or inherited (if the--- @VK_NV_inherited_viewport_scissor@ extension is enabled) for--- @commandBuffer@, and done so after any previously bound pipeline--- with the corresponding state not specified as dynamic------ - #VUID-vkCmdDraw-None-02859# There /must/ not have been any calls to--- dynamic state setting commands for any state not specified as--- dynamic in the 'Vulkan.Core10.Handles.Pipeline' object bound to the--- pipeline bind point used by this command, since that pipeline was--- bound------ - #VUID-vkCmdDraw-None-02702# If the 'Vulkan.Core10.Handles.Pipeline'--- object bound to the pipeline bind point used by this command--- accesses a 'Vulkan.Core10.Handles.Sampler' object that uses--- unnormalized coordinates, that sampler /must/ not be used to sample--- from any 'Vulkan.Core10.Handles.Image' with a--- 'Vulkan.Core10.Handles.ImageView' of the type--- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_3D',--- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE',--- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_1D_ARRAY',--- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_2D_ARRAY' or--- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE_ARRAY', in--- any shader stage------ - #VUID-vkCmdDraw-None-02703# If the 'Vulkan.Core10.Handles.Pipeline'--- object bound to the pipeline bind point used by this command--- accesses a 'Vulkan.Core10.Handles.Sampler' object that uses--- unnormalized coordinates, that sampler /must/ not be used with any--- of the SPIR-V @OpImageSample*@ or @OpImageSparseSample*@--- instructions with @ImplicitLod@, @Dref@ or @Proj@ in their name, in--- any shader stage------ - #VUID-vkCmdDraw-None-02704# If the 'Vulkan.Core10.Handles.Pipeline'--- object bound to the pipeline bind point used by this command--- accesses a 'Vulkan.Core10.Handles.Sampler' object that uses--- unnormalized coordinates, that sampler /must/ not be used with any--- of the SPIR-V @OpImageSample*@ or @OpImageSparseSample*@--- instructions that includes a LOD bias or any offset values, in any--- shader stage------ - #VUID-vkCmdDraw-None-02705# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robust buffer access>--- feature is not enabled, and if the 'Vulkan.Core10.Handles.Pipeline'--- object bound to the pipeline bind point used by this command--- accesses a uniform buffer, it /must/ not access values outside of--- the range of the buffer as specified in the descriptor set bound to--- the same pipeline bind point------ - #VUID-vkCmdDraw-None-02706# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robust buffer access>--- feature is not enabled, and if the 'Vulkan.Core10.Handles.Pipeline'--- object bound to the pipeline bind point used by this command--- accesses a storage buffer, it /must/ not access values outside of--- the range of the buffer as specified in the descriptor set bound to--- the same pipeline bind point------ - #VUID-vkCmdDraw-commandBuffer-02707# If @commandBuffer@ is an--- unprotected command buffer and--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>--- is not supported, any resource accessed by the--- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind--- point used by this command /must/ not be a protected resource------ - #VUID-vkCmdDraw-None-06550# If the 'Vulkan.Core10.Handles.Pipeline'--- object bound to the pipeline bind point used by this command--- accesses a 'Vulkan.Core10.Handles.Sampler' or--- 'Vulkan.Core10.Handles.ImageView' object that enables--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion>,--- that object /must/ only be used with @OpImageSample*@ or--- @OpImageSparseSample*@ instructions------ - #VUID-vkCmdDraw-ConstOffset-06551# If the--- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind--- point used by this command accesses a--- 'Vulkan.Core10.Handles.Sampler' or 'Vulkan.Core10.Handles.ImageView'--- object that enables--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion>,--- that object /must/ not use the @ConstOffset@ and @Offset@ operands------ - #VUID-vkCmdDraw-None-04115# If a 'Vulkan.Core10.Handles.ImageView'--- is accessed using @OpImageWrite@ as a result of this command, then--- the @Type@ of the @Texel@ operand of that instruction /must/ have at--- least as many components as the image view’s format------ - #VUID-vkCmdDraw-OpImageWrite-04469# If a--- 'Vulkan.Core10.Handles.BufferView' is accessed using @OpImageWrite@--- as a result of this command, then the @Type@ of the @Texel@ operand--- of that instruction /must/ have at least as many components as the--- buffer view’s format------ - #VUID-vkCmdDraw-SampledType-04470# If a--- 'Vulkan.Core10.Handles.ImageView' with a--- 'Vulkan.Core10.Enums.Format.Format' that has a 64-bit component--- width is accessed as a result of this command, the @SampledType@ of--- the @OpTypeImage@ operand of that instruction /must/ have a @Width@--- of 64------ - #VUID-vkCmdDraw-SampledType-04471# If a--- 'Vulkan.Core10.Handles.ImageView' with a--- 'Vulkan.Core10.Enums.Format.Format' that has a component width less--- than 64-bit is accessed as a result of this command, the--- @SampledType@ of the @OpTypeImage@ operand of that instruction--- /must/ have a @Width@ of 32------ - #VUID-vkCmdDraw-SampledType-04472# If a--- 'Vulkan.Core10.Handles.BufferView' with a--- 'Vulkan.Core10.Enums.Format.Format' that has a 64-bit component--- width is accessed as a result of this command, the @SampledType@ of--- the @OpTypeImage@ operand of that instruction /must/ have a @Width@--- of 64------ - #VUID-vkCmdDraw-SampledType-04473# If a--- 'Vulkan.Core10.Handles.BufferView' with a--- 'Vulkan.Core10.Enums.Format.Format' that has a component width less--- than 64-bit is accessed as a result of this command, the--- @SampledType@ of the @OpTypeImage@ operand of that instruction--- /must/ have a @Width@ of 32------ - #VUID-vkCmdDraw-sparseImageInt64Atomics-04474# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-sparseImageInt64Atomics sparseImageInt64Atomics>--- feature is not enabled, 'Vulkan.Core10.Handles.Image' objects--- created with the--- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SPARSE_RESIDENCY_BIT'--- flag /must/ not be accessed by atomic instructions through an--- @OpTypeImage@ with a @SampledType@ with a @Width@ of 64 by this--- command------ - #VUID-vkCmdDraw-sparseImageInt64Atomics-04475# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-sparseImageInt64Atomics sparseImageInt64Atomics>--- feature is not enabled, 'Vulkan.Core10.Handles.Buffer' objects--- created with the--- 'Vulkan.Core10.Enums.BufferCreateFlagBits.BUFFER_CREATE_SPARSE_RESIDENCY_BIT'--- flag /must/ not be accessed by atomic instructions through an--- @OpTypeImage@ with a @SampledType@ with a @Width@ of 64 by this--- command------ - #VUID-vkCmdDraw-renderPass-02684# The current render pass /must/ be--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-compatibility compatible>--- with the @renderPass@ member of the--- 'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo' structure--- specified when creating the 'Vulkan.Core10.Handles.Pipeline' bound--- to--- 'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_GRAPHICS'------ - #VUID-vkCmdDraw-subpass-02685# The subpass index of the current--- render pass /must/ be equal to the @subpass@ member of the--- 'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo' structure--- specified when creating the 'Vulkan.Core10.Handles.Pipeline' bound--- to--- 'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_GRAPHICS'------ - #VUID-vkCmdDraw-None-02686# Every input attachment used by the--- current subpass /must/ be bound to the pipeline via a descriptor set------ - #VUID-vkCmdDraw-None-06537# Memory backing image subresources used--- as attachments in the current render pass /must/ not be written in--- any way other than as an attachment by this command------ - #VUID-vkCmdDraw-None-06538# If any recorded command in the current--- subpass will write to an image subresource as an attachment, this--- command /must/ not read from the memory backing that image--- subresource in any other way than as an attachment------ - #VUID-vkCmdDraw-None-06539# If any recorded command in the current--- subpass will read from an image subresource used as an attachment in--- any way other than as an attachment, this command /must/ not write--- to that image subresource as an attachment------ - #VUID-vkCmdDraw-maxMultiviewInstanceIndex-02688# If the draw is--- recorded in a render pass instance with multiview enabled, the--- maximum instance index /must/ be less than or equal to--- 'Vulkan.Core11.Promoted_From_VK_KHR_multiview.PhysicalDeviceMultiviewProperties'::@maxMultiviewInstanceIndex@------ - #VUID-vkCmdDraw-sampleLocationsEnable-02689# If the bound graphics--- pipeline was created with--- 'Vulkan.Extensions.VK_EXT_sample_locations.PipelineSampleLocationsStateCreateInfoEXT'::@sampleLocationsEnable@--- set to 'Vulkan.Core10.FundamentalTypes.TRUE' and the current subpass--- has a depth\/stencil attachment, then that attachment /must/ have--- been created with the--- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT'--- bit set------ - #VUID-vkCmdDraw-None-06666# If the bound graphics pipeline state was--- created with the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'--- dynamic state enabled then--- 'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT'--- /must/ have been called in the current command buffer prior to this--- drawing command------ - #VUID-vkCmdDraw-viewportCount-03417# If the bound graphics pipeline--- state was created with the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'--- dynamic state enabled, but not the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT'--- dynamic state enabled, then--- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'--- /must/ have been called in the current command buffer prior to this--- drawing command, and the @viewportCount@ parameter of--- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'--- /must/ match the--- 'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo'::@scissorCount@--- of the pipeline------ - #VUID-vkCmdDraw-scissorCount-03418# If the bound graphics pipeline--- state was created with the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT'--- dynamic state enabled, but not the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'--- dynamic state enabled, then--- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetScissorWithCount'--- /must/ have been called in the current command buffer prior to this--- drawing command, and the @scissorCount@ parameter of--- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetScissorWithCount'--- /must/ match the--- 'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo'::@viewportCount@--- of the pipeline------ - #VUID-vkCmdDraw-viewportCount-03419# If the bound graphics pipeline--- state was created with both the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT'--- and--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'--- dynamic states enabled then both--- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'--- and--- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetScissorWithCount'--- /must/ have been called in the current command buffer prior to this--- drawing command, and the @viewportCount@ parameter of--- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'--- /must/ match the @scissorCount@ parameter of--- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetScissorWithCount'------ - #VUID-vkCmdDraw-viewportCount-04137# If the bound graphics pipeline--- state was created with the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'--- dynamic state enabled, but not the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_W_SCALING_NV'--- dynamic state enabled, then the bound graphics pipeline /must/ have--- been created with--- 'Vulkan.Extensions.VK_NV_clip_space_w_scaling.PipelineViewportWScalingStateCreateInfoNV'::@viewportCount@--- greater or equal to the @viewportCount@ parameter in the last call--- to--- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'------ - #VUID-vkCmdDraw-viewportCount-04138# If the bound graphics pipeline--- state was created with the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'--- and--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_W_SCALING_NV'--- dynamic states enabled then the @viewportCount@ parameter in the--- last call to--- 'Vulkan.Extensions.VK_NV_clip_space_w_scaling.cmdSetViewportWScalingNV'--- /must/ be greater than or equal to the @viewportCount@ parameter in--- the last call to--- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'------ - #VUID-vkCmdDraw-viewportCount-04139# If the bound graphics pipeline--- state was created with the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'--- dynamic state enabled, but not the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV'--- dynamic state enabled, then the bound graphics pipeline /must/ have--- been created with--- 'Vulkan.Extensions.VK_NV_shading_rate_image.PipelineViewportShadingRateImageStateCreateInfoNV'::@viewportCount@--- greater or equal to the @viewportCount@ parameter in the last call--- to--- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'------ - #VUID-vkCmdDraw-viewportCount-04140# If the bound graphics pipeline--- state was created with the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'--- and--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV'--- dynamic states enabled then the @viewportCount@ parameter in the--- last call to--- 'Vulkan.Extensions.VK_NV_shading_rate_image.cmdSetViewportShadingRatePaletteNV'--- /must/ be greater than or equal to the @viewportCount@ parameter in--- the last call to--- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'------ - #VUID-vkCmdDraw-VkPipelineVieportCreateInfo-04141# If the bound--- graphics pipeline state was created with the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'--- dynamic state enabled and a--- 'Vulkan.Extensions.VK_NV_viewport_swizzle.PipelineViewportSwizzleStateCreateInfoNV'--- structure chained from @VkPipelineVieportCreateInfo@, then the bound--- graphics pipeline /must/ have been created with--- 'Vulkan.Extensions.VK_NV_viewport_swizzle.PipelineViewportSwizzleStateCreateInfoNV'::@viewportCount@--- greater or equal to the @viewportCount@ parameter in the last call--- to--- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'------ - #VUID-vkCmdDraw-VkPipelineVieportCreateInfo-04142# If the bound--- graphics pipeline state was created with the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'--- dynamic state enabled and a--- 'Vulkan.Extensions.VK_NV_scissor_exclusive.PipelineViewportExclusiveScissorStateCreateInfoNV'--- structure chained from @VkPipelineVieportCreateInfo@, then the bound--- graphics pipeline /must/ have been created with--- 'Vulkan.Extensions.VK_NV_scissor_exclusive.PipelineViewportExclusiveScissorStateCreateInfoNV'::@exclusiveScissorCount@--- greater or equal to the @viewportCount@ parameter in the last call--- to--- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'------ - #VUID-vkCmdDraw-None-04876# If the bound graphics pipeline state was--- created with the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE'--- dynamic state enabled then--- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'--- /must/ have been called in the current command buffer prior to this--- drawing command------ - #VUID-vkCmdDraw-None-04877# If the bound graphics pipeline state was--- created with the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BIAS_ENABLE'--- dynamic state enabled then--- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetDepthBiasEnable'--- /must/ have been called in the current command buffer prior to this--- drawing command------ - #VUID-vkCmdDraw-logicOp-04878# If the bound graphics pipeline state--- was created with the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LOGIC_OP_EXT'--- dynamic state enabled then--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetLogicOpEXT'--- /must/ have been called in the current command buffer prior to this--- drawing command and the @logicOp@ /must/ be a valid--- 'Vulkan.Core10.Enums.LogicOp.LogicOp' value------ - #VUID-vkCmdDraw-primitiveFragmentShadingRateWithMultipleViewports-04552#--- If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-primitiveFragmentShadingRateWithMultipleViewports primitiveFragmentShadingRateWithMultipleViewports>--- limit is not supported, the bound graphics pipeline was created with--- the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'--- dynamic state enabled, and any of the shader stages of the bound--- graphics pipeline write to the @PrimitiveShadingRateKHR@ built-in,--- then--- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'--- /must/ have been called in the current command buffer prior to this--- drawing command, and the @viewportCount@ parameter of--- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'--- /must/ be @1@------ - #VUID-vkCmdDraw-blendEnable-04727# If rasterization is not disabled--- in the bound graphics pipeline, then for each color attachment in--- the subpass, if the corresponding image view’s--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>--- do not contain--- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT',--- then the @blendEnable@ member of the corresponding element of the--- @pAttachments@ member of @pColorBlendState@ /must/ be--- 'Vulkan.Core10.FundamentalTypes.FALSE'------ - #VUID-vkCmdDraw-rasterizationSamples-04740# If rasterization is not--- disabled in the bound graphics pipeline, and neither the--- @VK_AMD_mixed_attachment_samples@ nor the--- @VK_NV_framebuffer_mixed_samples@ extensions are enabled, then--- 'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'::@rasterizationSamples@--- /must/ be the same as the current subpass color and\/or--- depth\/stencil attachments------ - #VUID-vkCmdDraw-imageView-06172# If the current render pass instance--- was begun with--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',--- the @imageView@ member of @pDepthAttachment@ is not--- 'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of--- @pDepthAttachment@ is--- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL',--- this command /must/ not write any values to the depth attachment------ - #VUID-vkCmdDraw-imageView-06173# If the current render pass instance--- was begun with--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',--- the @imageView@ member of @pStencilAttachment@ is not--- 'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of--- @pStencilAttachment@ is--- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL',--- this command /must/ not write any values to the stencil attachment------ - #VUID-vkCmdDraw-imageView-06174# If the current render pass instance--- was begun with--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',--- the @imageView@ member of @pDepthAttachment@ is not--- 'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of--- @pDepthAttachment@ is--- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL',--- this command /must/ not write any values to the depth attachment------ - #VUID-vkCmdDraw-imageView-06175# If the current render pass instance--- was begun with--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',--- the @imageView@ member of @pStencilAttachment@ is not--- 'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of--- @pStencilAttachment@ is--- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL',--- this command /must/ not write any values to the stencil attachment------ - #VUID-vkCmdDraw-imageView-06176# If the current render pass instance--- was begun with--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',--- the @imageView@ member of @pDepthAttachment@ is not--- 'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of--- @pDepthAttachment@ is--- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL',--- this command /must/ not write any values to the depth attachment------ - #VUID-vkCmdDraw-imageView-06177# If the current render pass instance--- was begun with--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',--- the @imageView@ member of @pStencilAttachment@ is not--- 'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of--- @pStencilAttachment@ is--- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL',--- this command /must/ not write any values to the stencil attachment------ - #VUID-vkCmdDraw-viewMask-06178# If the current render pass instance--- was begun with--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',--- the currently bound graphics pipeline /must/ have been created with--- a--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@viewMask@--- equal to--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@viewMask@------ - #VUID-vkCmdDraw-colorAttachmentCount-06179# If the current render--- pass instance was begun with--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',--- the currently bound graphics pipeline /must/ have been created with--- a--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@colorAttachmentCount@--- equal to--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@------ - #VUID-vkCmdDraw-colorAttachmentCount-06180# If the current render--- pass instance was begun with--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'--- and--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@--- greater than @0@, then each element of the--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@--- array with a @imageView@ not equal to--- 'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created--- with a 'Vulkan.Core10.Enums.Format.Format' equal to the--- corresponding element of--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@--- used to create the currently bound graphics pipeline------ - #VUID-vkCmdDraw-attachmentCount-06667# If the bound graphics--- pipeline state was created with the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT'--- dynamic state enabled then--- 'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'--- /must/ have been called in the current command buffer prior to this--- drawing command, and the @attachmentCount@ parameter of--- 'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'--- /must/ be equal to the--- 'Vulkan.Core10.Pipeline.PipelineColorBlendStateCreateInfo'::@attachmentCount@--- of the currently bound graphics pipeline------ - #VUID-vkCmdDraw-pDepthAttachment-06181# If the current render pass--- instance was begun with--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'--- and--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->pname@:imageView--- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@depthAttachmentFormat@--- used to create the currently bound graphics pipeline /must/ be equal--- to the 'Vulkan.Core10.Enums.Format.Format' used to create--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->pname@:imageView------ - #VUID-vkCmdDraw-pStencilAttachment-06182# If the current render pass--- instance was begun with--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'--- and--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->pname@:imageView--- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@stencilAttachmentFormat@--- used to create the currently bound graphics pipeline /must/ be equal--- to the 'Vulkan.Core10.Enums.Format.Format' used to create--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->pname@:imageView------ - #VUID-vkCmdDraw-imageView-06183# If the current render pass instance--- was begun with--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'--- and--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingFragmentShadingRateAttachmentInfoKHR'::@imageView@--- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the currently--- bound graphics pipeline /must/ have been created with--- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR'------ - #VUID-vkCmdDraw-imageView-06184# If the current render pass instance--- was begun with--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'--- and--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingFragmentDensityMapAttachmentInfoEXT'::@imageView@--- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the currently--- bound graphics pipeline /must/ have been created with--- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT'------ - #VUID-vkCmdDraw-colorAttachmentCount-06185# If the currently bound--- pipeline was created with a--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'--- or--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'--- structure, and the current render pass instance was begun with--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'--- with a--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@--- parameter greater than @0@, then each element of the--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@--- array with a @imageView@ not equal to--- 'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created--- with a sample count equal to the corresponding element of the--- @pColorAttachmentSamples@ member of--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'--- or--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'--- used to create the currently bound graphics pipeline------ - #VUID-vkCmdDraw-pDepthAttachment-06186# If the current render pass--- instance was begun with--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',--- the currently bound pipeline was created with a--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'--- or--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'--- structure, and--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->pname@:imageView--- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of the--- @depthStencilAttachmentSamples@ member of--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'--- or--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'--- used to create the currently bound graphics pipeline /must/ be equal--- to the sample count used to create--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->pname@:imageView------ - #VUID-vkCmdDraw-pStencilAttachment-06187# If the current render pass--- instance was begun with--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',--- the currently bound pipeline was created with a--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'--- or--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'--- structure, and--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->pname@:imageView--- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of the--- @depthStencilAttachmentSamples@ member of--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'--- or--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'--- used to create the currently bound graphics pipeline /must/ be equal--- to the sample count used to create--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->pname@:imageView------ - #VUID-vkCmdDraw-colorAttachmentCount-06188# If the currently bound--- pipeline was created without a--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'--- or--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'--- structure, and the current render pass instance was begun with--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'--- with a--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@--- parameter greater than @0@, then each element of the--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@--- array with a @imageView@ not equal to--- 'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created--- with a sample count equal to the value of--- 'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'::@rasterizationSamples@--- used to create the currently bound graphics pipeline------ - #VUID-vkCmdDraw-pDepthAttachment-06189# If the current render pass--- instance was begun with--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',--- the currently bound pipeline was created without a--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'--- or--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'--- structure, and--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->pname@:imageView--- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of--- 'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'::@rasterizationSamples@--- used to create the currently bound graphics pipeline /must/ be equal--- to the sample count used to create--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->pname@:imageView------ - #VUID-vkCmdDraw-pStencilAttachment-06190# If the current render pass--- instance was begun with--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',--- the currently bound pipeline was created without a--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'--- or--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'--- structure, and--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->pname@:imageView--- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of--- 'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'::@rasterizationSamples@--- used to create the currently bound graphics pipeline /must/ be equal--- to the sample count used to create--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->pname@:imageView------ - #VUID-vkCmdDraw-renderPass-06198# If the current render pass--- instance was begun with--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',--- the currently bound pipeline /must/ have been created with a--- 'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo'::@renderPass@--- equal to 'Vulkan.Core10.APIConstants.NULL_HANDLE'------ - #VUID-vkCmdDraw-primitivesGeneratedQueryWithRasterizerDiscard-06708#--- If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-primitivesGeneratedQueryWithRasterizerDiscard primitivesGeneratedQueryWithRasterizerDiscard>--- feature is not enabled and the--- 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PRIMITIVES_GENERATED_EXT'--- query is active,--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-discard rasterization discard>--- /must/ not be enabled.------ - #VUID-vkCmdDraw-primitivesGeneratedQueryWithNonZeroStreams-06709# If--- the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-primitivesGeneratedQueryWithNonZeroStreams primitivesGeneratedQueryWithNonZeroStreams>--- feature is not enabled and the--- 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PRIMITIVES_GENERATED_EXT'--- query is active, the bound graphics pipeline /must/ not have been--- created with a non-zero value in--- 'Vulkan.Extensions.VK_EXT_transform_feedback.PipelineRasterizationStateStreamCreateInfoEXT'::@rasterizationStream@.------ - #VUID-vkCmdDraw-commandBuffer-02712# If @commandBuffer@ is a--- protected command buffer and--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>--- is not supported, any resource written to by the--- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind--- point used by this command /must/ not be an unprotected resource------ - #VUID-vkCmdDraw-commandBuffer-02713# If @commandBuffer@ is a--- protected command buffer and--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>--- is not supported, pipeline stages other than the framebuffer-space--- and compute stages in the 'Vulkan.Core10.Handles.Pipeline' object--- bound to the pipeline bind point used by this command /must/ not--- write to any resource------ - #VUID-vkCmdDraw-commandBuffer-04617# If any of the shader stages of--- the 'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind--- point used by this command uses the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-RayQueryKHR RayQueryKHR>--- capability, then @commandBuffer@ /must/ not be a protected command--- buffer------ - #VUID-vkCmdDraw-None-04007# All vertex input bindings accessed via--- vertex input variables declared in the vertex shader entry point’s--- interface /must/ have either valid or--- 'Vulkan.Core10.APIConstants.NULL_HANDLE' buffers bound------ - #VUID-vkCmdDraw-None-04008# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-nullDescriptor nullDescriptor>--- feature is not enabled, all vertex input bindings accessed via--- vertex input variables declared in the vertex shader entry point’s--- interface /must/ not be 'Vulkan.Core10.APIConstants.NULL_HANDLE'------ - #VUID-vkCmdDraw-None-02721# For a given vertex buffer binding, any--- attribute data fetched /must/ be entirely contained within the--- corresponding vertex buffer binding, as described in--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fxvertex-input ???>------ - #VUID-vkCmdDraw-primitiveTopology-03420# If the bound graphics--- pipeline state was created with the--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT'--- dynamic state enabled then--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopologyEXT'--- /must/ have been called in the current command buffer prior to this--- drawing command, and the @primitiveTopology@ parameter of--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopologyEXT'--- /must/ be of the same--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#drawing-primitive-topology-class topology class>--- as the pipeline--- 'Vulkan.Core10.Pipeline.PipelineInputAssemblyStateCreateInfo'::@topology@--- state------ - #VUID-vkCmdDraw-None-04912# If the bound graphics pipeline was--- created with both the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'--- and--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT'--- dynamic states enabled, then--- 'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.cmdSetVertexInputEXT'--- /must/ have been called in the current command buffer prior to this--- draw command------ - #VUID-vkCmdDraw-pStrides-04913# If the bound graphics pipeline was--- created with the--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT'--- dynamic state enabled, but not the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'--- dynamic state enabled, then--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdBindVertexBuffers2EXT'--- /must/ have been called in the current command buffer prior to this--- draw command, and the @pStrides@ parameter of--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdBindVertexBuffers2EXT'--- /must/ not be @NULL@------ - #VUID-vkCmdDraw-None-04914# If the bound graphics pipeline state was--- created with the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'--- dynamic state enabled, then--- 'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.cmdSetVertexInputEXT'--- /must/ have been called in the current command buffer prior to this--- draw command------ - #VUID-vkCmdDraw-None-04875# If the bound graphics pipeline state was--- created with the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT'--- dynamic state enabled then--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetPatchControlPointsEXT'--- /must/ have been called in the current command buffer prior to this--- drawing command------ - #VUID-vkCmdDraw-None-04879# If the bound graphics pipeline state was--- created with the--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE_EXT'--- dynamic state enabled then--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetPrimitiveRestartEnableEXT'--- /must/ have been called in the current command buffer prior to this--- drawing command------ - #VUID-vkCmdDraw-stage-06481# The bound graphics pipeline /must/ not--- have been created with the--- 'Vulkan.Core10.Pipeline.PipelineShaderStageCreateInfo'::@stage@--- member of an element of--- 'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo'::@pStages@ set--- to--- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_NV'--- or--- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_NV'------ == Valid Usage (Implicit)------ - #VUID-vkCmdDraw-commandBuffer-parameter# @commandBuffer@ /must/ be a--- valid 'Vulkan.Core10.Handles.CommandBuffer' handle------ - #VUID-vkCmdDraw-commandBuffer-recording# @commandBuffer@ /must/ be--- in the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording state>------ - #VUID-vkCmdDraw-commandBuffer-cmdpool# The--- 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was--- allocated from /must/ support graphics operations------ - #VUID-vkCmdDraw-renderpass# This command /must/ only be called--- inside of a render pass instance------ == Host Synchronization------ - Host access to @commandBuffer@ /must/ be externally synchronized------ - Host access to the 'Vulkan.Core10.Handles.CommandPool' that--- @commandBuffer@ was allocated from /must/ be externally synchronized------ == Command Properties------ \'------ +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | Primary | Inside | Graphics |--- | Secondary | | |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,--- 'Vulkan.Core10.Handles.CommandBuffer'-cmdDraw :: forall io- . (MonadIO io)- => -- | @commandBuffer@ is the command buffer into which the command is- -- recorded.- CommandBuffer- -> -- | @vertexCount@ is the number of vertices to draw.- ("vertexCount" ::: Word32)- -> -- | @instanceCount@ is the number of instances to draw.- ("instanceCount" ::: Word32)- -> -- | @firstVertex@ is the index of the first vertex to draw.- ("firstVertex" ::: Word32)- -> -- | @firstInstance@ is the instance ID of the first instance to draw.- ("firstInstance" ::: Word32)- -> io ()-cmdDraw commandBuffer vertexCount instanceCount firstVertex firstInstance = liftIO $ do- let vkCmdDrawPtr = pVkCmdDraw (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)- unless (vkCmdDrawPtr /= nullFunPtr) $- throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdDraw is null" Nothing Nothing- let vkCmdDraw' = mkVkCmdDraw vkCmdDrawPtr- traceAroundEvent "vkCmdDraw" (vkCmdDraw' (commandBufferHandle (commandBuffer)) (vertexCount) (instanceCount) (firstVertex) (firstInstance))- pure $ ()---foreign import ccall-#if !defined(SAFE_FOREIGN_CALLS)- unsafe-#endif- "dynamic" mkVkCmdDrawIndexed- :: FunPtr (Ptr CommandBuffer_T -> Word32 -> Word32 -> Word32 -> Int32 -> Word32 -> IO ()) -> Ptr CommandBuffer_T -> Word32 -> Word32 -> Word32 -> Int32 -> Word32 -> IO ()---- | vkCmdDrawIndexed - Draw primitives with indexed vertices------ = Description------ When the command is executed, primitives are assembled using the current--- primitive topology and @indexCount@ vertices whose indices are retrieved--- from the index buffer. The index buffer is treated as an array of--- tightly packed unsigned integers of size defined by the--- 'cmdBindIndexBuffer'::@indexType@ parameter with which the buffer was--- bound.------ The first vertex index is at an offset of @firstIndex@ × @indexSize@ +--- @offset@ within the bound index buffer, where @offset@ is the offset--- specified by 'cmdBindIndexBuffer' and @indexSize@ is the byte size of--- the type specified by @indexType@. Subsequent index values are retrieved--- from consecutive locations in the index buffer. Indices are first--- compared to the primitive restart value, then zero extended to 32 bits--- (if the @indexType@ is--- 'Vulkan.Core10.Enums.IndexType.INDEX_TYPE_UINT8_EXT' or--- 'Vulkan.Core10.Enums.IndexType.INDEX_TYPE_UINT16') and have--- @vertexOffset@ added to them, before being supplied as the @vertexIndex@--- value.------ The primitives are drawn @instanceCount@ times with @instanceIndex@--- starting with @firstInstance@ and increasing sequentially for each--- instance. The assembled primitives execute the bound graphics pipeline.------ == Valid Usage------ - #VUID-vkCmdDrawIndexed-magFilter-04553# If a--- 'Vulkan.Core10.Handles.Sampler' created with @magFilter@ or--- @minFilter@ equal to 'Vulkan.Core10.Enums.Filter.FILTER_LINEAR' and--- @compareEnable@ equal to 'Vulkan.Core10.FundamentalTypes.FALSE' is--- used to sample a 'Vulkan.Core10.Handles.ImageView' as a result of--- this command, then the image view’s--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>--- /must/ contain--- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT'------ - #VUID-vkCmdDrawIndexed-mipmapMode-04770# If a--- 'Vulkan.Core10.Handles.Sampler' created with @mipmapMode@ equal to--- 'Vulkan.Core10.Enums.SamplerMipmapMode.SAMPLER_MIPMAP_MODE_LINEAR'--- and @compareEnable@ equal to 'Vulkan.Core10.FundamentalTypes.FALSE'--- is used to sample a 'Vulkan.Core10.Handles.ImageView' as a result of--- this command, then the image view’s--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>--- /must/ contain--- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT'------ - #VUID-vkCmdDrawIndexed-None-06479# If a--- 'Vulkan.Core10.Handles.ImageView' is sampled with--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-depth-compare-operation depth comparison>,--- the image view’s--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>--- /must/ contain--- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT'------ - #VUID-vkCmdDrawIndexed-None-02691# If a--- 'Vulkan.Core10.Handles.ImageView' is accessed using atomic--- operations as a result of this command, then the image view’s--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>--- /must/ contain--- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT'------ - #VUID-vkCmdDrawIndexed-None-02692# If a--- 'Vulkan.Core10.Handles.ImageView' is sampled with--- 'Vulkan.Extensions.VK_EXT_filter_cubic.FILTER_CUBIC_EXT' as a result--- of this command, then the image view’s--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>--- /must/ contain--- 'Vulkan.Extensions.VK_EXT_filter_cubic.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT'------ - #VUID-vkCmdDrawIndexed-filterCubic-02694# Any--- 'Vulkan.Core10.Handles.ImageView' being sampled with--- 'Vulkan.Extensions.VK_EXT_filter_cubic.FILTER_CUBIC_EXT' as a result--- of this command /must/ have a--- 'Vulkan.Core10.Enums.ImageViewType.ImageViewType' and format that--- supports cubic filtering, as specified by--- 'Vulkan.Extensions.VK_EXT_filter_cubic.FilterCubicImageViewImageFormatPropertiesEXT'::@filterCubic@--- returned by--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceImageFormatProperties2'------ - #VUID-vkCmdDrawIndexed-filterCubicMinmax-02695# Any--- 'Vulkan.Core10.Handles.ImageView' being sampled with--- 'Vulkan.Extensions.VK_EXT_filter_cubic.FILTER_CUBIC_EXT' with a--- reduction mode of either--- 'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MIN'--- or--- 'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MAX'--- as a result of this command /must/ have a--- 'Vulkan.Core10.Enums.ImageViewType.ImageViewType' and format that--- supports cubic filtering together with minmax filtering, as--- specified by--- 'Vulkan.Extensions.VK_EXT_filter_cubic.FilterCubicImageViewImageFormatPropertiesEXT'::@filterCubicMinmax@--- returned by--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceImageFormatProperties2'------ - #VUID-vkCmdDrawIndexed-flags-02696# Any--- 'Vulkan.Core10.Handles.Image' created with a--- 'Vulkan.Core10.Image.ImageCreateInfo'::@flags@ containing--- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_CORNER_SAMPLED_BIT_NV'--- sampled as a result of this command /must/ only be sampled using a--- 'Vulkan.Core10.Enums.SamplerAddressMode.SamplerAddressMode' of--- 'Vulkan.Core10.Enums.SamplerAddressMode.SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE'------ - #VUID-vkCmdDrawIndexed-OpTypeImage-06423# Any--- 'Vulkan.Core10.Handles.ImageView' or--- 'Vulkan.Core10.Handles.BufferView' being written as a storage image--- or storage texel buffer where the image format field of the--- @OpTypeImage@ is @Unknown@ then the view’s format feature /must/--- contain--- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT'------ - #VUID-vkCmdDrawIndexed-OpTypeImage-06424# Any--- 'Vulkan.Core10.Handles.ImageView' or--- 'Vulkan.Core10.Handles.BufferView' being read as a storage image or--- storage texel buffer where the image format field of the--- @OpTypeImage@ is @Unknown@ then the view’s format feature /must/--- contain--- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT'------ - #VUID-vkCmdDrawIndexed-None-02697# For each set /n/ that is--- statically used by the 'Vulkan.Core10.Handles.Pipeline' bound to the--- pipeline bind point used by this command, a descriptor set /must/--- have been bound to /n/ at the same pipeline bind point, with a--- 'Vulkan.Core10.Handles.PipelineLayout' that is compatible for set--- /n/, with the 'Vulkan.Core10.Handles.PipelineLayout' used to create--- the current 'Vulkan.Core10.Handles.Pipeline', as described in--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>------ - #VUID-vkCmdDrawIndexed-maintenance4-06425# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-maintenance4 maintenance4>--- feature is not enabled, then for each push constant that is--- statically used by the 'Vulkan.Core10.Handles.Pipeline' bound to the--- pipeline bind point used by this command, a push constant value--- /must/ have been set for the same pipeline bind point, with a--- 'Vulkan.Core10.Handles.PipelineLayout' that is compatible for push--- constants, with the 'Vulkan.Core10.Handles.PipelineLayout' used to--- create the current 'Vulkan.Core10.Handles.Pipeline', as described in--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>------ - #VUID-vkCmdDrawIndexed-None-02699# Descriptors in each bound--- descriptor set, specified via 'cmdBindDescriptorSets', /must/ be--- valid if they are statically used by the--- 'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind point--- used by this command------ - #VUID-vkCmdDrawIndexed-None-02700# A valid pipeline /must/ be bound--- to the pipeline bind point used by this command------ - #VUID-vkCmdDrawIndexed-commandBuffer-02701# If the--- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind--- point used by this command requires any dynamic state, that state--- /must/ have been set or inherited (if the--- @VK_NV_inherited_viewport_scissor@ extension is enabled) for--- @commandBuffer@, and done so after any previously bound pipeline--- with the corresponding state not specified as dynamic------ - #VUID-vkCmdDrawIndexed-None-02859# There /must/ not have been any--- calls to dynamic state setting commands for any state not specified--- as dynamic in the 'Vulkan.Core10.Handles.Pipeline' object bound to--- the pipeline bind point used by this command, since that pipeline--- was bound------ - #VUID-vkCmdDrawIndexed-None-02702# If the--- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind--- point used by this command accesses a--- 'Vulkan.Core10.Handles.Sampler' object that uses unnormalized--- coordinates, that sampler /must/ not be used to sample from any--- 'Vulkan.Core10.Handles.Image' with a--- 'Vulkan.Core10.Handles.ImageView' of the type--- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_3D',--- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE',--- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_1D_ARRAY',--- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_2D_ARRAY' or--- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE_ARRAY', in--- any shader stage------ - #VUID-vkCmdDrawIndexed-None-02703# If the--- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind--- point used by this command accesses a--- 'Vulkan.Core10.Handles.Sampler' object that uses unnormalized--- coordinates, that sampler /must/ not be used with any of the SPIR-V--- @OpImageSample*@ or @OpImageSparseSample*@ instructions with--- @ImplicitLod@, @Dref@ or @Proj@ in their name, in any shader stage------ - #VUID-vkCmdDrawIndexed-None-02704# If the--- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind--- point used by this command accesses a--- 'Vulkan.Core10.Handles.Sampler' object that uses unnormalized--- coordinates, that sampler /must/ not be used with any of the SPIR-V--- @OpImageSample*@ or @OpImageSparseSample*@ instructions that--- includes a LOD bias or any offset values, in any shader stage------ - #VUID-vkCmdDrawIndexed-None-02705# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robust buffer access>--- feature is not enabled, and if the 'Vulkan.Core10.Handles.Pipeline'--- object bound to the pipeline bind point used by this command--- accesses a uniform buffer, it /must/ not access values outside of--- the range of the buffer as specified in the descriptor set bound to--- the same pipeline bind point------ - #VUID-vkCmdDrawIndexed-None-02706# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robust buffer access>--- feature is not enabled, and if the 'Vulkan.Core10.Handles.Pipeline'--- object bound to the pipeline bind point used by this command--- accesses a storage buffer, it /must/ not access values outside of--- the range of the buffer as specified in the descriptor set bound to--- the same pipeline bind point------ - #VUID-vkCmdDrawIndexed-commandBuffer-02707# If @commandBuffer@ is an--- unprotected command buffer and--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>--- is not supported, any resource accessed by the--- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind--- point used by this command /must/ not be a protected resource------ - #VUID-vkCmdDrawIndexed-None-06550# If the--- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind--- point used by this command accesses a--- 'Vulkan.Core10.Handles.Sampler' or 'Vulkan.Core10.Handles.ImageView'--- object that enables--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion>,--- that object /must/ only be used with @OpImageSample*@ or--- @OpImageSparseSample*@ instructions------ - #VUID-vkCmdDrawIndexed-ConstOffset-06551# If the--- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind--- point used by this command accesses a--- 'Vulkan.Core10.Handles.Sampler' or 'Vulkan.Core10.Handles.ImageView'--- object that enables--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion>,--- that object /must/ not use the @ConstOffset@ and @Offset@ operands------ - #VUID-vkCmdDrawIndexed-None-04115# If a--- 'Vulkan.Core10.Handles.ImageView' is accessed using @OpImageWrite@--- as a result of this command, then the @Type@ of the @Texel@ operand--- of that instruction /must/ have at least as many components as the--- image view’s format------ - #VUID-vkCmdDrawIndexed-OpImageWrite-04469# If a--- 'Vulkan.Core10.Handles.BufferView' is accessed using @OpImageWrite@--- as a result of this command, then the @Type@ of the @Texel@ operand--- of that instruction /must/ have at least as many components as the--- buffer view’s format------ - #VUID-vkCmdDrawIndexed-SampledType-04470# If a--- 'Vulkan.Core10.Handles.ImageView' with a--- 'Vulkan.Core10.Enums.Format.Format' that has a 64-bit component--- width is accessed as a result of this command, the @SampledType@ of--- the @OpTypeImage@ operand of that instruction /must/ have a @Width@--- of 64------ - #VUID-vkCmdDrawIndexed-SampledType-04471# If a--- 'Vulkan.Core10.Handles.ImageView' with a--- 'Vulkan.Core10.Enums.Format.Format' that has a component width less--- than 64-bit is accessed as a result of this command, the--- @SampledType@ of the @OpTypeImage@ operand of that instruction--- /must/ have a @Width@ of 32------ - #VUID-vkCmdDrawIndexed-SampledType-04472# If a--- 'Vulkan.Core10.Handles.BufferView' with a--- 'Vulkan.Core10.Enums.Format.Format' that has a 64-bit component--- width is accessed as a result of this command, the @SampledType@ of--- the @OpTypeImage@ operand of that instruction /must/ have a @Width@--- of 64------ - #VUID-vkCmdDrawIndexed-SampledType-04473# If a--- 'Vulkan.Core10.Handles.BufferView' with a--- 'Vulkan.Core10.Enums.Format.Format' that has a component width less--- than 64-bit is accessed as a result of this command, the--- @SampledType@ of the @OpTypeImage@ operand of that instruction--- /must/ have a @Width@ of 32------ - #VUID-vkCmdDrawIndexed-sparseImageInt64Atomics-04474# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-sparseImageInt64Atomics sparseImageInt64Atomics>--- feature is not enabled, 'Vulkan.Core10.Handles.Image' objects--- created with the--- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SPARSE_RESIDENCY_BIT'--- flag /must/ not be accessed by atomic instructions through an--- @OpTypeImage@ with a @SampledType@ with a @Width@ of 64 by this--- command------ - #VUID-vkCmdDrawIndexed-sparseImageInt64Atomics-04475# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-sparseImageInt64Atomics sparseImageInt64Atomics>--- feature is not enabled, 'Vulkan.Core10.Handles.Buffer' objects--- created with the--- 'Vulkan.Core10.Enums.BufferCreateFlagBits.BUFFER_CREATE_SPARSE_RESIDENCY_BIT'--- flag /must/ not be accessed by atomic instructions through an--- @OpTypeImage@ with a @SampledType@ with a @Width@ of 64 by this--- command------ - #VUID-vkCmdDrawIndexed-renderPass-02684# The current render pass--- /must/ be--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-compatibility compatible>--- with the @renderPass@ member of the--- 'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo' structure--- specified when creating the 'Vulkan.Core10.Handles.Pipeline' bound--- to--- 'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_GRAPHICS'------ - #VUID-vkCmdDrawIndexed-subpass-02685# The subpass index of the--- current render pass /must/ be equal to the @subpass@ member of the--- 'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo' structure--- specified when creating the 'Vulkan.Core10.Handles.Pipeline' bound--- to--- 'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_GRAPHICS'------ - #VUID-vkCmdDrawIndexed-None-02686# Every input attachment used by--- the current subpass /must/ be bound to the pipeline via a descriptor--- set------ - #VUID-vkCmdDrawIndexed-None-06537# Memory backing image subresources--- used as attachments in the current render pass /must/ not be written--- in any way other than as an attachment by this command------ - #VUID-vkCmdDrawIndexed-None-06538# If any recorded command in the--- current subpass will write to an image subresource as an attachment,--- this command /must/ not read from the memory backing that image--- subresource in any other way than as an attachment------ - #VUID-vkCmdDrawIndexed-None-06539# If any recorded command in the--- current subpass will read from an image subresource used as an--- attachment in any way other than as an attachment, this command--- /must/ not write to that image subresource as an attachment------ - #VUID-vkCmdDrawIndexed-maxMultiviewInstanceIndex-02688# If the draw--- is recorded in a render pass instance with multiview enabled, the--- maximum instance index /must/ be less than or equal to--- 'Vulkan.Core11.Promoted_From_VK_KHR_multiview.PhysicalDeviceMultiviewProperties'::@maxMultiviewInstanceIndex@------ - #VUID-vkCmdDrawIndexed-sampleLocationsEnable-02689# If the bound--- graphics pipeline was created with--- 'Vulkan.Extensions.VK_EXT_sample_locations.PipelineSampleLocationsStateCreateInfoEXT'::@sampleLocationsEnable@--- set to 'Vulkan.Core10.FundamentalTypes.TRUE' and the current subpass--- has a depth\/stencil attachment, then that attachment /must/ have--- been created with the--- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT'--- bit set------ - #VUID-vkCmdDrawIndexed-None-06666# If the bound graphics pipeline--- state was created with the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'--- dynamic state enabled then--- 'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT'--- /must/ have been called in the current command buffer prior to this--- drawing command------ - #VUID-vkCmdDrawIndexed-viewportCount-03417# If the bound graphics--- pipeline state was created with the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'--- dynamic state enabled, but not the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT'--- dynamic state enabled, then--- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'--- /must/ have been called in the current command buffer prior to this--- drawing command, and the @viewportCount@ parameter of--- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'--- /must/ match the--- 'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo'::@scissorCount@--- of the pipeline------ - #VUID-vkCmdDrawIndexed-scissorCount-03418# If the bound graphics--- pipeline state was created with the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT'--- dynamic state enabled, but not the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'--- dynamic state enabled, then--- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetScissorWithCount'--- /must/ have been called in the current command buffer prior to this--- drawing command, and the @scissorCount@ parameter of--- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetScissorWithCount'--- /must/ match the--- 'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo'::@viewportCount@--- of the pipeline------ - #VUID-vkCmdDrawIndexed-viewportCount-03419# If the bound graphics--- pipeline state was created with both the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT'--- and--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'--- dynamic states enabled then both--- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'--- and--- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetScissorWithCount'--- /must/ have been called in the current command buffer prior to this--- drawing command, and the @viewportCount@ parameter of--- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'--- /must/ match the @scissorCount@ parameter of--- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetScissorWithCount'------ - #VUID-vkCmdDrawIndexed-viewportCount-04137# If the bound graphics--- pipeline state was created with the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'--- dynamic state enabled, but not the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_W_SCALING_NV'--- dynamic state enabled, then the bound graphics pipeline /must/ have--- been created with--- 'Vulkan.Extensions.VK_NV_clip_space_w_scaling.PipelineViewportWScalingStateCreateInfoNV'::@viewportCount@--- greater or equal to the @viewportCount@ parameter in the last call--- to--- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'------ - #VUID-vkCmdDrawIndexed-viewportCount-04138# If the bound graphics--- pipeline state was created with the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'--- and--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_W_SCALING_NV'--- dynamic states enabled then the @viewportCount@ parameter in the--- last call to--- 'Vulkan.Extensions.VK_NV_clip_space_w_scaling.cmdSetViewportWScalingNV'--- /must/ be greater than or equal to the @viewportCount@ parameter in--- the last call to--- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'------ - #VUID-vkCmdDrawIndexed-viewportCount-04139# If the bound graphics--- pipeline state was created with the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'--- dynamic state enabled, but not the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV'--- dynamic state enabled, then the bound graphics pipeline /must/ have--- been created with--- 'Vulkan.Extensions.VK_NV_shading_rate_image.PipelineViewportShadingRateImageStateCreateInfoNV'::@viewportCount@--- greater or equal to the @viewportCount@ parameter in the last call--- to--- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'------ - #VUID-vkCmdDrawIndexed-viewportCount-04140# If the bound graphics--- pipeline state was created with the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'--- and--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV'--- dynamic states enabled then the @viewportCount@ parameter in the--- last call to--- 'Vulkan.Extensions.VK_NV_shading_rate_image.cmdSetViewportShadingRatePaletteNV'--- /must/ be greater than or equal to the @viewportCount@ parameter in--- the last call to--- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'------ - #VUID-vkCmdDrawIndexed-VkPipelineVieportCreateInfo-04141# If the--- bound graphics pipeline state was created with the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'--- dynamic state enabled and a--- 'Vulkan.Extensions.VK_NV_viewport_swizzle.PipelineViewportSwizzleStateCreateInfoNV'--- structure chained from @VkPipelineVieportCreateInfo@, then the bound--- graphics pipeline /must/ have been created with--- 'Vulkan.Extensions.VK_NV_viewport_swizzle.PipelineViewportSwizzleStateCreateInfoNV'::@viewportCount@--- greater or equal to the @viewportCount@ parameter in the last call--- to--- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'------ - #VUID-vkCmdDrawIndexed-VkPipelineVieportCreateInfo-04142# If the--- bound graphics pipeline state was created with the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'--- dynamic state enabled and a--- 'Vulkan.Extensions.VK_NV_scissor_exclusive.PipelineViewportExclusiveScissorStateCreateInfoNV'--- structure chained from @VkPipelineVieportCreateInfo@, then the bound--- graphics pipeline /must/ have been created with--- 'Vulkan.Extensions.VK_NV_scissor_exclusive.PipelineViewportExclusiveScissorStateCreateInfoNV'::@exclusiveScissorCount@--- greater or equal to the @viewportCount@ parameter in the last call--- to--- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'------ - #VUID-vkCmdDrawIndexed-None-04876# If the bound graphics pipeline--- state was created with the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE'--- dynamic state enabled then--- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'--- /must/ have been called in the current command buffer prior to this--- drawing command------ - #VUID-vkCmdDrawIndexed-None-04877# If the bound graphics pipeline--- state was created with the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BIAS_ENABLE'--- dynamic state enabled then--- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetDepthBiasEnable'--- /must/ have been called in the current command buffer prior to this--- drawing command------ - #VUID-vkCmdDrawIndexed-logicOp-04878# If the bound graphics pipeline--- state was created with the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LOGIC_OP_EXT'--- dynamic state enabled then--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetLogicOpEXT'--- /must/ have been called in the current command buffer prior to this--- drawing command and the @logicOp@ /must/ be a valid--- 'Vulkan.Core10.Enums.LogicOp.LogicOp' value------ - #VUID-vkCmdDrawIndexed-primitiveFragmentShadingRateWithMultipleViewports-04552#--- If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-primitiveFragmentShadingRateWithMultipleViewports primitiveFragmentShadingRateWithMultipleViewports>--- limit is not supported, the bound graphics pipeline was created with--- the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'--- dynamic state enabled, and any of the shader stages of the bound--- graphics pipeline write to the @PrimitiveShadingRateKHR@ built-in,--- then--- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'--- /must/ have been called in the current command buffer prior to this--- drawing command, and the @viewportCount@ parameter of--- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'--- /must/ be @1@------ - #VUID-vkCmdDrawIndexed-blendEnable-04727# If rasterization is not--- disabled in the bound graphics pipeline, then for each color--- attachment in the subpass, if the corresponding image view’s--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>--- do not contain--- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT',--- then the @blendEnable@ member of the corresponding element of the--- @pAttachments@ member of @pColorBlendState@ /must/ be--- 'Vulkan.Core10.FundamentalTypes.FALSE'------ - #VUID-vkCmdDrawIndexed-rasterizationSamples-04740# If rasterization--- is not disabled in the bound graphics pipeline, and neither the--- @VK_AMD_mixed_attachment_samples@ nor the--- @VK_NV_framebuffer_mixed_samples@ extensions are enabled, then--- 'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'::@rasterizationSamples@--- /must/ be the same as the current subpass color and\/or--- depth\/stencil attachments------ - #VUID-vkCmdDrawIndexed-imageView-06172# If the current render pass--- instance was begun with--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',--- the @imageView@ member of @pDepthAttachment@ is not--- 'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of--- @pDepthAttachment@ is--- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL',--- this command /must/ not write any values to the depth attachment------ - #VUID-vkCmdDrawIndexed-imageView-06173# If the current render pass--- instance was begun with--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',--- the @imageView@ member of @pStencilAttachment@ is not--- 'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of--- @pStencilAttachment@ is--- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL',--- this command /must/ not write any values to the stencil attachment------ - #VUID-vkCmdDrawIndexed-imageView-06174# If the current render pass--- instance was begun with--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',--- the @imageView@ member of @pDepthAttachment@ is not--- 'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of--- @pDepthAttachment@ is--- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL',--- this command /must/ not write any values to the depth attachment------ - #VUID-vkCmdDrawIndexed-imageView-06175# If the current render pass--- instance was begun with--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',--- the @imageView@ member of @pStencilAttachment@ is not--- 'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of--- @pStencilAttachment@ is--- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL',--- this command /must/ not write any values to the stencil attachment------ - #VUID-vkCmdDrawIndexed-imageView-06176# If the current render pass--- instance was begun with--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',--- the @imageView@ member of @pDepthAttachment@ is not--- 'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of--- @pDepthAttachment@ is--- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL',--- this command /must/ not write any values to the depth attachment------ - #VUID-vkCmdDrawIndexed-imageView-06177# If the current render pass--- instance was begun with--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',--- the @imageView@ member of @pStencilAttachment@ is not--- 'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of--- @pStencilAttachment@ is--- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL',--- this command /must/ not write any values to the stencil attachment------ - #VUID-vkCmdDrawIndexed-viewMask-06178# If the current render pass--- instance was begun with--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',--- the currently bound graphics pipeline /must/ have been created with--- a--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@viewMask@--- equal to--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@viewMask@------ - #VUID-vkCmdDrawIndexed-colorAttachmentCount-06179# If the current--- render pass instance was begun with--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',--- the currently bound graphics pipeline /must/ have been created with--- a--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@colorAttachmentCount@--- equal to--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@------ - #VUID-vkCmdDrawIndexed-colorAttachmentCount-06180# If the current--- render pass instance was begun with--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'--- and--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@--- greater than @0@, then each element of the--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@--- array with a @imageView@ not equal to--- 'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created--- with a 'Vulkan.Core10.Enums.Format.Format' equal to the--- corresponding element of--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@--- used to create the currently bound graphics pipeline------ - #VUID-vkCmdDrawIndexed-attachmentCount-06667# If the bound graphics--- pipeline state was created with the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT'--- dynamic state enabled then--- 'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'--- /must/ have been called in the current command buffer prior to this--- drawing command, and the @attachmentCount@ parameter of--- 'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'--- /must/ be equal to the--- 'Vulkan.Core10.Pipeline.PipelineColorBlendStateCreateInfo'::@attachmentCount@--- of the currently bound graphics pipeline------ - #VUID-vkCmdDrawIndexed-pDepthAttachment-06181# If the current render--- pass instance was begun with--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'--- and--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->pname@:imageView--- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@depthAttachmentFormat@--- used to create the currently bound graphics pipeline /must/ be equal--- to the 'Vulkan.Core10.Enums.Format.Format' used to create--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->pname@:imageView------ - #VUID-vkCmdDrawIndexed-pStencilAttachment-06182# If the current--- render pass instance was begun with--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'--- and--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->pname@:imageView--- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@stencilAttachmentFormat@--- used to create the currently bound graphics pipeline /must/ be equal--- to the 'Vulkan.Core10.Enums.Format.Format' used to create--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->pname@:imageView------ - #VUID-vkCmdDrawIndexed-imageView-06183# If the current render pass--- instance was begun with--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'--- and--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingFragmentShadingRateAttachmentInfoKHR'::@imageView@--- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the currently--- bound graphics pipeline /must/ have been created with--- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR'------ - #VUID-vkCmdDrawIndexed-imageView-06184# If the current render pass--- instance was begun with--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'--- and--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingFragmentDensityMapAttachmentInfoEXT'::@imageView@--- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the currently--- bound graphics pipeline /must/ have been created with--- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT'------ - #VUID-vkCmdDrawIndexed-colorAttachmentCount-06185# If the currently--- bound pipeline was created with a--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'--- or--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'--- structure, and the current render pass instance was begun with--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'--- with a--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@--- parameter greater than @0@, then each element of the--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@--- array with a @imageView@ not equal to--- 'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created--- with a sample count equal to the corresponding element of the--- @pColorAttachmentSamples@ member of--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'--- or--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'--- used to create the currently bound graphics pipeline------ - #VUID-vkCmdDrawIndexed-pDepthAttachment-06186# If the current render--- pass instance was begun with--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',--- the currently bound pipeline was created with a--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'--- or--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'--- structure, and--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->pname@:imageView--- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of the--- @depthStencilAttachmentSamples@ member of--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'--- or--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'--- used to create the currently bound graphics pipeline /must/ be equal--- to the sample count used to create--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->pname@:imageView------ - #VUID-vkCmdDrawIndexed-pStencilAttachment-06187# If the current--- render pass instance was begun with--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',--- the currently bound pipeline was created with a--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'--- or--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'--- structure, and--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->pname@:imageView--- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of the--- @depthStencilAttachmentSamples@ member of--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'--- or--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'--- used to create the currently bound graphics pipeline /must/ be equal--- to the sample count used to create--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->pname@:imageView------ - #VUID-vkCmdDrawIndexed-colorAttachmentCount-06188# If the currently--- bound pipeline was created without a--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'--- or--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'--- structure, and the current render pass instance was begun with--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'--- with a--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@--- parameter greater than @0@, then each element of the--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@--- array with a @imageView@ not equal to--- 'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created--- with a sample count equal to the value of--- 'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'::@rasterizationSamples@--- used to create the currently bound graphics pipeline------ - #VUID-vkCmdDrawIndexed-pDepthAttachment-06189# If the current render--- pass instance was begun with--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',--- the currently bound pipeline was created without a--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'--- or--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'--- structure, and--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->pname@:imageView--- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of--- 'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'::@rasterizationSamples@--- used to create the currently bound graphics pipeline /must/ be equal--- to the sample count used to create--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->pname@:imageView------ - #VUID-vkCmdDrawIndexed-pStencilAttachment-06190# If the current--- render pass instance was begun with--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',--- the currently bound pipeline was created without a--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'--- or--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'--- structure, and--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->pname@:imageView--- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of--- 'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'::@rasterizationSamples@--- used to create the currently bound graphics pipeline /must/ be equal--- to the sample count used to create--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->pname@:imageView------ - #VUID-vkCmdDrawIndexed-renderPass-06198# If the current render pass--- instance was begun with--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',--- the currently bound pipeline /must/ have been created with a--- 'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo'::@renderPass@--- equal to 'Vulkan.Core10.APIConstants.NULL_HANDLE'------ - #VUID-vkCmdDrawIndexed-primitivesGeneratedQueryWithRasterizerDiscard-06708#--- If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-primitivesGeneratedQueryWithRasterizerDiscard primitivesGeneratedQueryWithRasterizerDiscard>--- feature is not enabled and the--- 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PRIMITIVES_GENERATED_EXT'--- query is active,--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-discard rasterization discard>--- /must/ not be enabled.------ - #VUID-vkCmdDrawIndexed-primitivesGeneratedQueryWithNonZeroStreams-06709#--- If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-primitivesGeneratedQueryWithNonZeroStreams primitivesGeneratedQueryWithNonZeroStreams>--- feature is not enabled and the--- 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PRIMITIVES_GENERATED_EXT'--- query is active, the bound graphics pipeline /must/ not have been--- created with a non-zero value in--- 'Vulkan.Extensions.VK_EXT_transform_feedback.PipelineRasterizationStateStreamCreateInfoEXT'::@rasterizationStream@.------ - #VUID-vkCmdDrawIndexed-commandBuffer-02712# If @commandBuffer@ is a--- protected command buffer and--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>--- is not supported, any resource written to by the--- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind--- point used by this command /must/ not be an unprotected resource------ - #VUID-vkCmdDrawIndexed-commandBuffer-02713# If @commandBuffer@ is a--- protected command buffer and--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>--- is not supported, pipeline stages other than the framebuffer-space--- and compute stages in the 'Vulkan.Core10.Handles.Pipeline' object--- bound to the pipeline bind point used by this command /must/ not--- write to any resource------ - #VUID-vkCmdDrawIndexed-commandBuffer-04617# If any of the shader--- stages of the 'Vulkan.Core10.Handles.Pipeline' bound to the pipeline--- bind point used by this command uses the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-RayQueryKHR RayQueryKHR>--- capability, then @commandBuffer@ /must/ not be a protected command--- buffer------ - #VUID-vkCmdDrawIndexed-None-04007# All vertex input bindings--- accessed via vertex input variables declared in the vertex shader--- entry point’s interface /must/ have either valid or--- 'Vulkan.Core10.APIConstants.NULL_HANDLE' buffers bound------ - #VUID-vkCmdDrawIndexed-None-04008# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-nullDescriptor nullDescriptor>--- feature is not enabled, all vertex input bindings accessed via--- vertex input variables declared in the vertex shader entry point’s--- interface /must/ not be 'Vulkan.Core10.APIConstants.NULL_HANDLE'------ - #VUID-vkCmdDrawIndexed-None-02721# For a given vertex buffer--- binding, any attribute data fetched /must/ be entirely contained--- within the corresponding vertex buffer binding, as described in--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fxvertex-input ???>------ - #VUID-vkCmdDrawIndexed-primitiveTopology-03420# If the bound--- graphics pipeline state was created with the--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT'--- dynamic state enabled then--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopologyEXT'--- /must/ have been called in the current command buffer prior to this--- drawing command, and the @primitiveTopology@ parameter of--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopologyEXT'--- /must/ be of the same--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#drawing-primitive-topology-class topology class>--- as the pipeline--- 'Vulkan.Core10.Pipeline.PipelineInputAssemblyStateCreateInfo'::@topology@--- state------ - #VUID-vkCmdDrawIndexed-None-04912# If the bound graphics pipeline--- was created with both the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'--- and--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT'--- dynamic states enabled, then--- 'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.cmdSetVertexInputEXT'--- /must/ have been called in the current command buffer prior to this--- draw command------ - #VUID-vkCmdDrawIndexed-pStrides-04913# If the bound graphics--- pipeline was created with the--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT'--- dynamic state enabled, but not the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'--- dynamic state enabled, then--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdBindVertexBuffers2EXT'--- /must/ have been called in the current command buffer prior to this--- draw command, and the @pStrides@ parameter of--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdBindVertexBuffers2EXT'--- /must/ not be @NULL@------ - #VUID-vkCmdDrawIndexed-None-04914# If the bound graphics pipeline--- state was created with the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'--- dynamic state enabled, then--- 'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.cmdSetVertexInputEXT'--- /must/ have been called in the current command buffer prior to this--- draw command------ - #VUID-vkCmdDrawIndexed-None-04875# If the bound graphics pipeline--- state was created with the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT'--- dynamic state enabled then--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetPatchControlPointsEXT'--- /must/ have been called in the current command buffer prior to this--- drawing command------ - #VUID-vkCmdDrawIndexed-None-04879# If the bound graphics pipeline--- state was created with the--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE_EXT'--- dynamic state enabled then--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetPrimitiveRestartEnableEXT'--- /must/ have been called in the current command buffer prior to this--- drawing command------ - #VUID-vkCmdDrawIndexed-stage-06481# The bound graphics pipeline--- /must/ not have been created with the--- 'Vulkan.Core10.Pipeline.PipelineShaderStageCreateInfo'::@stage@--- member of an element of--- 'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo'::@pStages@ set--- to--- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_NV'--- or--- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_NV'------ - #VUID-vkCmdDrawIndexed-firstIndex-04932# (@indexSize@ ×--- (@firstIndex@ + @indexCount@) + @offset@) /must/ be less than or--- equal to the size of the bound index buffer, with @indexSize@ being--- based on the type specified by @indexType@, where the index buffer,--- @indexType@, and @offset@ are specified via 'cmdBindIndexBuffer'------ == Valid Usage (Implicit)------ - #VUID-vkCmdDrawIndexed-commandBuffer-parameter# @commandBuffer@--- /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle------ - #VUID-vkCmdDrawIndexed-commandBuffer-recording# @commandBuffer@--- /must/ be in the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording state>------ - #VUID-vkCmdDrawIndexed-commandBuffer-cmdpool# The--- 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was--- allocated from /must/ support graphics operations------ - #VUID-vkCmdDrawIndexed-renderpass# This command /must/ only be--- called inside of a render pass instance------ == Host Synchronization------ - Host access to @commandBuffer@ /must/ be externally synchronized------ - Host access to the 'Vulkan.Core10.Handles.CommandPool' that--- @commandBuffer@ was allocated from /must/ be externally synchronized------ == Command Properties------ \'------ +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | Primary | Inside | Graphics |--- | Secondary | | |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,--- 'Vulkan.Core10.Handles.CommandBuffer'-cmdDrawIndexed :: forall io- . (MonadIO io)- => -- | @commandBuffer@ is the command buffer into which the command is- -- recorded.- CommandBuffer- -> -- | @indexCount@ is the number of vertices to draw.- ("indexCount" ::: Word32)- -> -- | @instanceCount@ is the number of instances to draw.- ("instanceCount" ::: Word32)- -> -- | @firstIndex@ is the base index within the index buffer.- ("firstIndex" ::: Word32)- -> -- | @vertexOffset@ is the value added to the vertex index before indexing- -- into the vertex buffer.- ("vertexOffset" ::: Int32)- -> -- | @firstInstance@ is the instance ID of the first instance to draw.- ("firstInstance" ::: Word32)- -> io ()-cmdDrawIndexed commandBuffer indexCount instanceCount firstIndex vertexOffset firstInstance = liftIO $ do- let vkCmdDrawIndexedPtr = pVkCmdDrawIndexed (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)- unless (vkCmdDrawIndexedPtr /= nullFunPtr) $- throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdDrawIndexed is null" Nothing Nothing- let vkCmdDrawIndexed' = mkVkCmdDrawIndexed vkCmdDrawIndexedPtr- traceAroundEvent "vkCmdDrawIndexed" (vkCmdDrawIndexed' (commandBufferHandle (commandBuffer)) (indexCount) (instanceCount) (firstIndex) (vertexOffset) (firstInstance))- pure $ ()---foreign import ccall-#if !defined(SAFE_FOREIGN_CALLS)- unsafe-#endif- "dynamic" mkVkCmdDrawIndirect- :: FunPtr (Ptr CommandBuffer_T -> Buffer -> DeviceSize -> Word32 -> Word32 -> IO ()) -> Ptr CommandBuffer_T -> Buffer -> DeviceSize -> Word32 -> Word32 -> IO ()---- | vkCmdDrawIndirect - Draw primitives with indirect parameters------ = Description------ 'cmdDrawIndirect' behaves similarly to 'cmdDraw' except that the--- parameters are read by the device from a buffer during execution.--- @drawCount@ draws are executed by the command, with parameters taken--- from @buffer@ starting at @offset@ and increasing by @stride@ bytes for--- each successive draw. The parameters of each draw are encoded in an--- array of 'Vulkan.Core10.OtherTypes.DrawIndirectCommand' structures. If--- @drawCount@ is less than or equal to one, @stride@ is ignored.------ == Valid Usage------ - #VUID-vkCmdDrawIndirect-magFilter-04553# If a--- 'Vulkan.Core10.Handles.Sampler' created with @magFilter@ or--- @minFilter@ equal to 'Vulkan.Core10.Enums.Filter.FILTER_LINEAR' and--- @compareEnable@ equal to 'Vulkan.Core10.FundamentalTypes.FALSE' is--- used to sample a 'Vulkan.Core10.Handles.ImageView' as a result of--- this command, then the image view’s--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>--- /must/ contain--- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT'------ - #VUID-vkCmdDrawIndirect-mipmapMode-04770# If a--- 'Vulkan.Core10.Handles.Sampler' created with @mipmapMode@ equal to--- 'Vulkan.Core10.Enums.SamplerMipmapMode.SAMPLER_MIPMAP_MODE_LINEAR'--- and @compareEnable@ equal to 'Vulkan.Core10.FundamentalTypes.FALSE'--- is used to sample a 'Vulkan.Core10.Handles.ImageView' as a result of--- this command, then the image view’s--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>--- /must/ contain--- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT'------ - #VUID-vkCmdDrawIndirect-None-06479# If a--- 'Vulkan.Core10.Handles.ImageView' is sampled with--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-depth-compare-operation depth comparison>,--- the image view’s--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>--- /must/ contain--- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT'------ - #VUID-vkCmdDrawIndirect-None-02691# If a--- 'Vulkan.Core10.Handles.ImageView' is accessed using atomic--- operations as a result of this command, then the image view’s--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>--- /must/ contain--- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT'------ - #VUID-vkCmdDrawIndirect-None-02692# If a--- 'Vulkan.Core10.Handles.ImageView' is sampled with--- 'Vulkan.Extensions.VK_EXT_filter_cubic.FILTER_CUBIC_EXT' as a result--- of this command, then the image view’s--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>--- /must/ contain--- 'Vulkan.Extensions.VK_EXT_filter_cubic.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT'------ - #VUID-vkCmdDrawIndirect-filterCubic-02694# Any--- 'Vulkan.Core10.Handles.ImageView' being sampled with--- 'Vulkan.Extensions.VK_EXT_filter_cubic.FILTER_CUBIC_EXT' as a result--- of this command /must/ have a--- 'Vulkan.Core10.Enums.ImageViewType.ImageViewType' and format that--- supports cubic filtering, as specified by--- 'Vulkan.Extensions.VK_EXT_filter_cubic.FilterCubicImageViewImageFormatPropertiesEXT'::@filterCubic@--- returned by--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceImageFormatProperties2'------ - #VUID-vkCmdDrawIndirect-filterCubicMinmax-02695# Any--- 'Vulkan.Core10.Handles.ImageView' being sampled with--- 'Vulkan.Extensions.VK_EXT_filter_cubic.FILTER_CUBIC_EXT' with a--- reduction mode of either--- 'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MIN'--- or--- 'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MAX'--- as a result of this command /must/ have a--- 'Vulkan.Core10.Enums.ImageViewType.ImageViewType' and format that--- supports cubic filtering together with minmax filtering, as--- specified by--- 'Vulkan.Extensions.VK_EXT_filter_cubic.FilterCubicImageViewImageFormatPropertiesEXT'::@filterCubicMinmax@--- returned by--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceImageFormatProperties2'------ - #VUID-vkCmdDrawIndirect-flags-02696# Any--- 'Vulkan.Core10.Handles.Image' created with a--- 'Vulkan.Core10.Image.ImageCreateInfo'::@flags@ containing--- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_CORNER_SAMPLED_BIT_NV'--- sampled as a result of this command /must/ only be sampled using a--- 'Vulkan.Core10.Enums.SamplerAddressMode.SamplerAddressMode' of--- 'Vulkan.Core10.Enums.SamplerAddressMode.SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE'------ - #VUID-vkCmdDrawIndirect-OpTypeImage-06423# Any--- 'Vulkan.Core10.Handles.ImageView' or--- 'Vulkan.Core10.Handles.BufferView' being written as a storage image--- or storage texel buffer where the image format field of the--- @OpTypeImage@ is @Unknown@ then the view’s format feature /must/--- contain--- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT'------ - #VUID-vkCmdDrawIndirect-OpTypeImage-06424# Any--- 'Vulkan.Core10.Handles.ImageView' or--- 'Vulkan.Core10.Handles.BufferView' being read as a storage image or--- storage texel buffer where the image format field of the--- @OpTypeImage@ is @Unknown@ then the view’s format feature /must/--- contain--- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT'------ - #VUID-vkCmdDrawIndirect-None-02697# For each set /n/ that is--- statically used by the 'Vulkan.Core10.Handles.Pipeline' bound to the--- pipeline bind point used by this command, a descriptor set /must/--- have been bound to /n/ at the same pipeline bind point, with a--- 'Vulkan.Core10.Handles.PipelineLayout' that is compatible for set--- /n/, with the 'Vulkan.Core10.Handles.PipelineLayout' used to create--- the current 'Vulkan.Core10.Handles.Pipeline', as described in--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>------ - #VUID-vkCmdDrawIndirect-maintenance4-06425# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-maintenance4 maintenance4>--- feature is not enabled, then for each push constant that is--- statically used by the 'Vulkan.Core10.Handles.Pipeline' bound to the--- pipeline bind point used by this command, a push constant value--- /must/ have been set for the same pipeline bind point, with a--- 'Vulkan.Core10.Handles.PipelineLayout' that is compatible for push--- constants, with the 'Vulkan.Core10.Handles.PipelineLayout' used to--- create the current 'Vulkan.Core10.Handles.Pipeline', as described in--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>------ - #VUID-vkCmdDrawIndirect-None-02699# Descriptors in each bound--- descriptor set, specified via 'cmdBindDescriptorSets', /must/ be--- valid if they are statically used by the--- 'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind point--- used by this command------ - #VUID-vkCmdDrawIndirect-None-02700# A valid pipeline /must/ be bound--- to the pipeline bind point used by this command------ - #VUID-vkCmdDrawIndirect-commandBuffer-02701# If the--- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind--- point used by this command requires any dynamic state, that state--- /must/ have been set or inherited (if the--- @VK_NV_inherited_viewport_scissor@ extension is enabled) for--- @commandBuffer@, and done so after any previously bound pipeline--- with the corresponding state not specified as dynamic------ - #VUID-vkCmdDrawIndirect-None-02859# There /must/ not have been any--- calls to dynamic state setting commands for any state not specified--- as dynamic in the 'Vulkan.Core10.Handles.Pipeline' object bound to--- the pipeline bind point used by this command, since that pipeline--- was bound------ - #VUID-vkCmdDrawIndirect-None-02702# If the--- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind--- point used by this command accesses a--- 'Vulkan.Core10.Handles.Sampler' object that uses unnormalized--- coordinates, that sampler /must/ not be used to sample from any--- 'Vulkan.Core10.Handles.Image' with a--- 'Vulkan.Core10.Handles.ImageView' of the type--- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_3D',--- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE',--- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_1D_ARRAY',--- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_2D_ARRAY' or--- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE_ARRAY', in--- any shader stage------ - #VUID-vkCmdDrawIndirect-None-02703# If the--- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind--- point used by this command accesses a--- 'Vulkan.Core10.Handles.Sampler' object that uses unnormalized--- coordinates, that sampler /must/ not be used with any of the SPIR-V--- @OpImageSample*@ or @OpImageSparseSample*@ instructions with--- @ImplicitLod@, @Dref@ or @Proj@ in their name, in any shader stage------ - #VUID-vkCmdDrawIndirect-None-02704# If the--- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind--- point used by this command accesses a--- 'Vulkan.Core10.Handles.Sampler' object that uses unnormalized--- coordinates, that sampler /must/ not be used with any of the SPIR-V--- @OpImageSample*@ or @OpImageSparseSample*@ instructions that--- includes a LOD bias or any offset values, in any shader stage------ - #VUID-vkCmdDrawIndirect-None-02705# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robust buffer access>--- feature is not enabled, and if the 'Vulkan.Core10.Handles.Pipeline'--- object bound to the pipeline bind point used by this command--- accesses a uniform buffer, it /must/ not access values outside of--- the range of the buffer as specified in the descriptor set bound to--- the same pipeline bind point------ - #VUID-vkCmdDrawIndirect-None-02706# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robust buffer access>--- feature is not enabled, and if the 'Vulkan.Core10.Handles.Pipeline'--- object bound to the pipeline bind point used by this command--- accesses a storage buffer, it /must/ not access values outside of--- the range of the buffer as specified in the descriptor set bound to--- the same pipeline bind point------ - #VUID-vkCmdDrawIndirect-commandBuffer-02707# If @commandBuffer@ is--- an unprotected command buffer and--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>--- is not supported, any resource accessed by the--- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind--- point used by this command /must/ not be a protected resource------ - #VUID-vkCmdDrawIndirect-None-06550# If the--- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind--- point used by this command accesses a--- 'Vulkan.Core10.Handles.Sampler' or 'Vulkan.Core10.Handles.ImageView'--- object that enables--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion>,--- that object /must/ only be used with @OpImageSample*@ or--- @OpImageSparseSample*@ instructions------ - #VUID-vkCmdDrawIndirect-ConstOffset-06551# If the--- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind--- point used by this command accesses a--- 'Vulkan.Core10.Handles.Sampler' or 'Vulkan.Core10.Handles.ImageView'--- object that enables--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion>,--- that object /must/ not use the @ConstOffset@ and @Offset@ operands------ - #VUID-vkCmdDrawIndirect-None-04115# If a--- 'Vulkan.Core10.Handles.ImageView' is accessed using @OpImageWrite@--- as a result of this command, then the @Type@ of the @Texel@ operand--- of that instruction /must/ have at least as many components as the--- image view’s format------ - #VUID-vkCmdDrawIndirect-OpImageWrite-04469# If a--- 'Vulkan.Core10.Handles.BufferView' is accessed using @OpImageWrite@--- as a result of this command, then the @Type@ of the @Texel@ operand--- of that instruction /must/ have at least as many components as the--- buffer view’s format------ - #VUID-vkCmdDrawIndirect-SampledType-04470# If a--- 'Vulkan.Core10.Handles.ImageView' with a--- 'Vulkan.Core10.Enums.Format.Format' that has a 64-bit component--- width is accessed as a result of this command, the @SampledType@ of--- the @OpTypeImage@ operand of that instruction /must/ have a @Width@--- of 64------ - #VUID-vkCmdDrawIndirect-SampledType-04471# If a--- 'Vulkan.Core10.Handles.ImageView' with a--- 'Vulkan.Core10.Enums.Format.Format' that has a component width less--- than 64-bit is accessed as a result of this command, the--- @SampledType@ of the @OpTypeImage@ operand of that instruction--- /must/ have a @Width@ of 32------ - #VUID-vkCmdDrawIndirect-SampledType-04472# If a--- 'Vulkan.Core10.Handles.BufferView' with a--- 'Vulkan.Core10.Enums.Format.Format' that has a 64-bit component--- width is accessed as a result of this command, the @SampledType@ of--- the @OpTypeImage@ operand of that instruction /must/ have a @Width@--- of 64------ - #VUID-vkCmdDrawIndirect-SampledType-04473# If a--- 'Vulkan.Core10.Handles.BufferView' with a--- 'Vulkan.Core10.Enums.Format.Format' that has a component width less--- than 64-bit is accessed as a result of this command, the--- @SampledType@ of the @OpTypeImage@ operand of that instruction--- /must/ have a @Width@ of 32------ - #VUID-vkCmdDrawIndirect-sparseImageInt64Atomics-04474# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-sparseImageInt64Atomics sparseImageInt64Atomics>--- feature is not enabled, 'Vulkan.Core10.Handles.Image' objects--- created with the--- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SPARSE_RESIDENCY_BIT'--- flag /must/ not be accessed by atomic instructions through an--- @OpTypeImage@ with a @SampledType@ with a @Width@ of 64 by this--- command------ - #VUID-vkCmdDrawIndirect-sparseImageInt64Atomics-04475# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-sparseImageInt64Atomics sparseImageInt64Atomics>--- feature is not enabled, 'Vulkan.Core10.Handles.Buffer' objects--- created with the--- 'Vulkan.Core10.Enums.BufferCreateFlagBits.BUFFER_CREATE_SPARSE_RESIDENCY_BIT'--- flag /must/ not be accessed by atomic instructions through an--- @OpTypeImage@ with a @SampledType@ with a @Width@ of 64 by this--- command------ - #VUID-vkCmdDrawIndirect-renderPass-02684# The current render pass--- /must/ be--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-compatibility compatible>--- with the @renderPass@ member of the--- 'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo' structure--- specified when creating the 'Vulkan.Core10.Handles.Pipeline' bound--- to--- 'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_GRAPHICS'------ - #VUID-vkCmdDrawIndirect-subpass-02685# The subpass index of the--- current render pass /must/ be equal to the @subpass@ member of the--- 'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo' structure--- specified when creating the 'Vulkan.Core10.Handles.Pipeline' bound--- to--- 'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_GRAPHICS'------ - #VUID-vkCmdDrawIndirect-None-02686# Every input attachment used by--- the current subpass /must/ be bound to the pipeline via a descriptor--- set------ - #VUID-vkCmdDrawIndirect-None-06537# Memory backing image--- subresources used as attachments in the current render pass /must/--- not be written in any way other than as an attachment by this--- command------ - #VUID-vkCmdDrawIndirect-None-06538# If any recorded command in the--- current subpass will write to an image subresource as an attachment,--- this command /must/ not read from the memory backing that image--- subresource in any other way than as an attachment------ - #VUID-vkCmdDrawIndirect-None-06539# If any recorded command in the--- current subpass will read from an image subresource used as an--- attachment in any way other than as an attachment, this command--- /must/ not write to that image subresource as an attachment------ - #VUID-vkCmdDrawIndirect-maxMultiviewInstanceIndex-02688# If the draw--- is recorded in a render pass instance with multiview enabled, the--- maximum instance index /must/ be less than or equal to--- 'Vulkan.Core11.Promoted_From_VK_KHR_multiview.PhysicalDeviceMultiviewProperties'::@maxMultiviewInstanceIndex@------ - #VUID-vkCmdDrawIndirect-sampleLocationsEnable-02689# If the bound--- graphics pipeline was created with--- 'Vulkan.Extensions.VK_EXT_sample_locations.PipelineSampleLocationsStateCreateInfoEXT'::@sampleLocationsEnable@--- set to 'Vulkan.Core10.FundamentalTypes.TRUE' and the current subpass--- has a depth\/stencil attachment, then that attachment /must/ have--- been created with the--- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT'--- bit set------ - #VUID-vkCmdDrawIndirect-None-06666# If the bound graphics pipeline--- state was created with the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'--- dynamic state enabled then--- 'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT'--- /must/ have been called in the current command buffer prior to this--- drawing command------ - #VUID-vkCmdDrawIndirect-viewportCount-03417# If the bound graphics--- pipeline state was created with the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'--- dynamic state enabled, but not the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT'--- dynamic state enabled, then--- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'--- /must/ have been called in the current command buffer prior to this--- drawing command, and the @viewportCount@ parameter of--- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'--- /must/ match the--- 'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo'::@scissorCount@--- of the pipeline------ - #VUID-vkCmdDrawIndirect-scissorCount-03418# If the bound graphics--- pipeline state was created with the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT'--- dynamic state enabled, but not the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'--- dynamic state enabled, then--- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetScissorWithCount'--- /must/ have been called in the current command buffer prior to this--- drawing command, and the @scissorCount@ parameter of--- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetScissorWithCount'--- /must/ match the--- 'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo'::@viewportCount@--- of the pipeline------ - #VUID-vkCmdDrawIndirect-viewportCount-03419# If the bound graphics--- pipeline state was created with both the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT'--- and--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'--- dynamic states enabled then both--- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'--- and--- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetScissorWithCount'--- /must/ have been called in the current command buffer prior to this--- drawing command, and the @viewportCount@ parameter of--- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'--- /must/ match the @scissorCount@ parameter of--- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetScissorWithCount'------ - #VUID-vkCmdDrawIndirect-viewportCount-04137# If the bound graphics--- pipeline state was created with the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'--- dynamic state enabled, but not the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_W_SCALING_NV'--- dynamic state enabled, then the bound graphics pipeline /must/ have--- been created with--- 'Vulkan.Extensions.VK_NV_clip_space_w_scaling.PipelineViewportWScalingStateCreateInfoNV'::@viewportCount@--- greater or equal to the @viewportCount@ parameter in the last call--- to--- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'------ - #VUID-vkCmdDrawIndirect-viewportCount-04138# If the bound graphics--- pipeline state was created with the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'--- and--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_W_SCALING_NV'--- dynamic states enabled then the @viewportCount@ parameter in the--- last call to--- 'Vulkan.Extensions.VK_NV_clip_space_w_scaling.cmdSetViewportWScalingNV'--- /must/ be greater than or equal to the @viewportCount@ parameter in--- the last call to--- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'------ - #VUID-vkCmdDrawIndirect-viewportCount-04139# If the bound graphics--- pipeline state was created with the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'--- dynamic state enabled, but not the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV'--- dynamic state enabled, then the bound graphics pipeline /must/ have--- been created with--- 'Vulkan.Extensions.VK_NV_shading_rate_image.PipelineViewportShadingRateImageStateCreateInfoNV'::@viewportCount@--- greater or equal to the @viewportCount@ parameter in the last call--- to--- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'------ - #VUID-vkCmdDrawIndirect-viewportCount-04140# If the bound graphics--- pipeline state was created with the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'--- and--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV'--- dynamic states enabled then the @viewportCount@ parameter in the--- last call to--- 'Vulkan.Extensions.VK_NV_shading_rate_image.cmdSetViewportShadingRatePaletteNV'--- /must/ be greater than or equal to the @viewportCount@ parameter in--- the last call to--- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'------ - #VUID-vkCmdDrawIndirect-VkPipelineVieportCreateInfo-04141# If the--- bound graphics pipeline state was created with the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'--- dynamic state enabled and a--- 'Vulkan.Extensions.VK_NV_viewport_swizzle.PipelineViewportSwizzleStateCreateInfoNV'--- structure chained from @VkPipelineVieportCreateInfo@, then the bound--- graphics pipeline /must/ have been created with--- 'Vulkan.Extensions.VK_NV_viewport_swizzle.PipelineViewportSwizzleStateCreateInfoNV'::@viewportCount@--- greater or equal to the @viewportCount@ parameter in the last call--- to--- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'------ - #VUID-vkCmdDrawIndirect-VkPipelineVieportCreateInfo-04142# If the--- bound graphics pipeline state was created with the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'--- dynamic state enabled and a--- 'Vulkan.Extensions.VK_NV_scissor_exclusive.PipelineViewportExclusiveScissorStateCreateInfoNV'--- structure chained from @VkPipelineVieportCreateInfo@, then the bound--- graphics pipeline /must/ have been created with--- 'Vulkan.Extensions.VK_NV_scissor_exclusive.PipelineViewportExclusiveScissorStateCreateInfoNV'::@exclusiveScissorCount@--- greater or equal to the @viewportCount@ parameter in the last call--- to--- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'------ - #VUID-vkCmdDrawIndirect-None-04876# If the bound graphics pipeline--- state was created with the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE'--- dynamic state enabled then--- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'--- /must/ have been called in the current command buffer prior to this--- drawing command------ - #VUID-vkCmdDrawIndirect-None-04877# If the bound graphics pipeline--- state was created with the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BIAS_ENABLE'--- dynamic state enabled then--- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetDepthBiasEnable'--- /must/ have been called in the current command buffer prior to this--- drawing command------ - #VUID-vkCmdDrawIndirect-logicOp-04878# If the bound graphics--- pipeline state was created with the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LOGIC_OP_EXT'--- dynamic state enabled then--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetLogicOpEXT'--- /must/ have been called in the current command buffer prior to this--- drawing command and the @logicOp@ /must/ be a valid--- 'Vulkan.Core10.Enums.LogicOp.LogicOp' value------ - #VUID-vkCmdDrawIndirect-primitiveFragmentShadingRateWithMultipleViewports-04552#--- If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-primitiveFragmentShadingRateWithMultipleViewports primitiveFragmentShadingRateWithMultipleViewports>--- limit is not supported, the bound graphics pipeline was created with--- the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'--- dynamic state enabled, and any of the shader stages of the bound--- graphics pipeline write to the @PrimitiveShadingRateKHR@ built-in,--- then--- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'--- /must/ have been called in the current command buffer prior to this--- drawing command, and the @viewportCount@ parameter of--- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'--- /must/ be @1@------ - #VUID-vkCmdDrawIndirect-blendEnable-04727# If rasterization is not--- disabled in the bound graphics pipeline, then for each color--- attachment in the subpass, if the corresponding image view’s--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>--- do not contain--- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT',--- then the @blendEnable@ member of the corresponding element of the--- @pAttachments@ member of @pColorBlendState@ /must/ be--- 'Vulkan.Core10.FundamentalTypes.FALSE'------ - #VUID-vkCmdDrawIndirect-rasterizationSamples-04740# If rasterization--- is not disabled in the bound graphics pipeline, and neither the--- @VK_AMD_mixed_attachment_samples@ nor the--- @VK_NV_framebuffer_mixed_samples@ extensions are enabled, then--- 'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'::@rasterizationSamples@--- /must/ be the same as the current subpass color and\/or--- depth\/stencil attachments------ - #VUID-vkCmdDrawIndirect-imageView-06172# If the current render pass--- instance was begun with--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',--- the @imageView@ member of @pDepthAttachment@ is not--- 'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of--- @pDepthAttachment@ is--- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL',--- this command /must/ not write any values to the depth attachment------ - #VUID-vkCmdDrawIndirect-imageView-06173# If the current render pass--- instance was begun with--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',--- the @imageView@ member of @pStencilAttachment@ is not--- 'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of--- @pStencilAttachment@ is--- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL',--- this command /must/ not write any values to the stencil attachment------ - #VUID-vkCmdDrawIndirect-imageView-06174# If the current render pass--- instance was begun with--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',--- the @imageView@ member of @pDepthAttachment@ is not--- 'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of--- @pDepthAttachment@ is--- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL',--- this command /must/ not write any values to the depth attachment------ - #VUID-vkCmdDrawIndirect-imageView-06175# If the current render pass--- instance was begun with--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',--- the @imageView@ member of @pStencilAttachment@ is not--- 'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of--- @pStencilAttachment@ is--- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL',--- this command /must/ not write any values to the stencil attachment------ - #VUID-vkCmdDrawIndirect-imageView-06176# If the current render pass--- instance was begun with--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',--- the @imageView@ member of @pDepthAttachment@ is not--- 'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of--- @pDepthAttachment@ is--- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL',--- this command /must/ not write any values to the depth attachment------ - #VUID-vkCmdDrawIndirect-imageView-06177# If the current render pass--- instance was begun with--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',--- the @imageView@ member of @pStencilAttachment@ is not--- 'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of--- @pStencilAttachment@ is--- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL',--- this command /must/ not write any values to the stencil attachment------ - #VUID-vkCmdDrawIndirect-viewMask-06178# If the current render pass--- instance was begun with--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',--- the currently bound graphics pipeline /must/ have been created with--- a--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@viewMask@--- equal to--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@viewMask@------ - #VUID-vkCmdDrawIndirect-colorAttachmentCount-06179# If the current--- render pass instance was begun with--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',--- the currently bound graphics pipeline /must/ have been created with--- a--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@colorAttachmentCount@--- equal to--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@------ - #VUID-vkCmdDrawIndirect-colorAttachmentCount-06180# If the current--- render pass instance was begun with--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'--- and--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@--- greater than @0@, then each element of the--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@--- array with a @imageView@ not equal to--- 'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created--- with a 'Vulkan.Core10.Enums.Format.Format' equal to the--- corresponding element of--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@--- used to create the currently bound graphics pipeline------ - #VUID-vkCmdDrawIndirect-attachmentCount-06667# If the bound graphics--- pipeline state was created with the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT'--- dynamic state enabled then--- 'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'--- /must/ have been called in the current command buffer prior to this--- drawing command, and the @attachmentCount@ parameter of--- 'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'--- /must/ be equal to the--- 'Vulkan.Core10.Pipeline.PipelineColorBlendStateCreateInfo'::@attachmentCount@--- of the currently bound graphics pipeline------ - #VUID-vkCmdDrawIndirect-pDepthAttachment-06181# If the current--- render pass instance was begun with--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'--- and--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->pname@:imageView--- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@depthAttachmentFormat@--- used to create the currently bound graphics pipeline /must/ be equal--- to the 'Vulkan.Core10.Enums.Format.Format' used to create--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->pname@:imageView------ - #VUID-vkCmdDrawIndirect-pStencilAttachment-06182# If the current--- render pass instance was begun with--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'--- and--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->pname@:imageView--- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@stencilAttachmentFormat@--- used to create the currently bound graphics pipeline /must/ be equal--- to the 'Vulkan.Core10.Enums.Format.Format' used to create--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->pname@:imageView------ - #VUID-vkCmdDrawIndirect-imageView-06183# If the current render pass--- instance was begun with--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'--- and--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingFragmentShadingRateAttachmentInfoKHR'::@imageView@--- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the currently--- bound graphics pipeline /must/ have been created with--- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR'------ - #VUID-vkCmdDrawIndirect-imageView-06184# If the current render pass--- instance was begun with--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'--- and--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingFragmentDensityMapAttachmentInfoEXT'::@imageView@--- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the currently--- bound graphics pipeline /must/ have been created with--- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT'------ - #VUID-vkCmdDrawIndirect-colorAttachmentCount-06185# If the currently--- bound pipeline was created with a--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'--- or--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'--- structure, and the current render pass instance was begun with--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'--- with a--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@--- parameter greater than @0@, then each element of the--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@--- array with a @imageView@ not equal to--- 'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created--- with a sample count equal to the corresponding element of the--- @pColorAttachmentSamples@ member of--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'--- or--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'--- used to create the currently bound graphics pipeline------ - #VUID-vkCmdDrawIndirect-pDepthAttachment-06186# If the current--- render pass instance was begun with--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',--- the currently bound pipeline was created with a--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'--- or--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'--- structure, and--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->pname@:imageView--- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of the--- @depthStencilAttachmentSamples@ member of--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'--- or--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'--- used to create the currently bound graphics pipeline /must/ be equal--- to the sample count used to create--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->pname@:imageView------ - #VUID-vkCmdDrawIndirect-pStencilAttachment-06187# If the current--- render pass instance was begun with--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',--- the currently bound pipeline was created with a--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'--- or--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'--- structure, and--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->pname@:imageView--- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of the--- @depthStencilAttachmentSamples@ member of--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'--- or--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'--- used to create the currently bound graphics pipeline /must/ be equal--- to the sample count used to create--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->pname@:imageView------ - #VUID-vkCmdDrawIndirect-colorAttachmentCount-06188# If the currently--- bound pipeline was created without a--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'--- or--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'--- structure, and the current render pass instance was begun with--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'--- with a--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@--- parameter greater than @0@, then each element of the--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@--- array with a @imageView@ not equal to--- 'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created--- with a sample count equal to the value of--- 'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'::@rasterizationSamples@--- used to create the currently bound graphics pipeline------ - #VUID-vkCmdDrawIndirect-pDepthAttachment-06189# If the current--- render pass instance was begun with--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',--- the currently bound pipeline was created without a--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'--- or--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'--- structure, and--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->pname@:imageView--- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of--- 'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'::@rasterizationSamples@--- used to create the currently bound graphics pipeline /must/ be equal--- to the sample count used to create--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->pname@:imageView------ - #VUID-vkCmdDrawIndirect-pStencilAttachment-06190# If the current--- render pass instance was begun with--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',--- the currently bound pipeline was created without a--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'--- or--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'--- structure, and--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->pname@:imageView--- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of--- 'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'::@rasterizationSamples@--- used to create the currently bound graphics pipeline /must/ be equal--- to the sample count used to create--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->pname@:imageView------ - #VUID-vkCmdDrawIndirect-renderPass-06198# If the current render pass--- instance was begun with--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',--- the currently bound pipeline /must/ have been created with a--- 'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo'::@renderPass@--- equal to 'Vulkan.Core10.APIConstants.NULL_HANDLE'------ - #VUID-vkCmdDrawIndirect-primitivesGeneratedQueryWithRasterizerDiscard-06708#--- If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-primitivesGeneratedQueryWithRasterizerDiscard primitivesGeneratedQueryWithRasterizerDiscard>--- feature is not enabled and the--- 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PRIMITIVES_GENERATED_EXT'--- query is active,--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-discard rasterization discard>--- /must/ not be enabled.------ - #VUID-vkCmdDrawIndirect-primitivesGeneratedQueryWithNonZeroStreams-06709#--- If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-primitivesGeneratedQueryWithNonZeroStreams primitivesGeneratedQueryWithNonZeroStreams>--- feature is not enabled and the--- 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PRIMITIVES_GENERATED_EXT'--- query is active, the bound graphics pipeline /must/ not have been--- created with a non-zero value in--- 'Vulkan.Extensions.VK_EXT_transform_feedback.PipelineRasterizationStateStreamCreateInfoEXT'::@rasterizationStream@.------ - #VUID-vkCmdDrawIndirect-None-04007# All vertex input bindings--- accessed via vertex input variables declared in the vertex shader--- entry point’s interface /must/ have either valid or--- 'Vulkan.Core10.APIConstants.NULL_HANDLE' buffers bound------ - #VUID-vkCmdDrawIndirect-None-04008# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-nullDescriptor nullDescriptor>--- feature is not enabled, all vertex input bindings accessed via--- vertex input variables declared in the vertex shader entry point’s--- interface /must/ not be 'Vulkan.Core10.APIConstants.NULL_HANDLE'------ - #VUID-vkCmdDrawIndirect-None-02721# For a given vertex buffer--- binding, any attribute data fetched /must/ be entirely contained--- within the corresponding vertex buffer binding, as described in--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fxvertex-input ???>------ - #VUID-vkCmdDrawIndirect-primitiveTopology-03420# If the bound--- graphics pipeline state was created with the--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT'--- dynamic state enabled then--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopologyEXT'--- /must/ have been called in the current command buffer prior to this--- drawing command, and the @primitiveTopology@ parameter of--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopologyEXT'--- /must/ be of the same--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#drawing-primitive-topology-class topology class>--- as the pipeline--- 'Vulkan.Core10.Pipeline.PipelineInputAssemblyStateCreateInfo'::@topology@--- state------ - #VUID-vkCmdDrawIndirect-None-04912# If the bound graphics pipeline--- was created with both the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'--- and--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT'--- dynamic states enabled, then--- 'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.cmdSetVertexInputEXT'--- /must/ have been called in the current command buffer prior to this--- draw command------ - #VUID-vkCmdDrawIndirect-pStrides-04913# If the bound graphics--- pipeline was created with the--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT'--- dynamic state enabled, but not the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'--- dynamic state enabled, then--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdBindVertexBuffers2EXT'--- /must/ have been called in the current command buffer prior to this--- draw command, and the @pStrides@ parameter of--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdBindVertexBuffers2EXT'--- /must/ not be @NULL@------ - #VUID-vkCmdDrawIndirect-None-04914# If the bound graphics pipeline--- state was created with the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'--- dynamic state enabled, then--- 'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.cmdSetVertexInputEXT'--- /must/ have been called in the current command buffer prior to this--- draw command------ - #VUID-vkCmdDrawIndirect-None-04875# If the bound graphics pipeline--- state was created with the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT'--- dynamic state enabled then--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetPatchControlPointsEXT'--- /must/ have been called in the current command buffer prior to this--- drawing command------ - #VUID-vkCmdDrawIndirect-None-04879# If the bound graphics pipeline--- state was created with the--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE_EXT'--- dynamic state enabled then--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetPrimitiveRestartEnableEXT'--- /must/ have been called in the current command buffer prior to this--- drawing command------ - #VUID-vkCmdDrawIndirect-stage-06481# The bound graphics pipeline--- /must/ not have been created with the--- 'Vulkan.Core10.Pipeline.PipelineShaderStageCreateInfo'::@stage@--- member of an element of--- 'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo'::@pStages@ set--- to--- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_NV'--- or--- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_NV'------ - #VUID-vkCmdDrawIndirect-buffer-02708# If @buffer@ is non-sparse then--- it /must/ be bound completely and contiguously to a single--- 'Vulkan.Core10.Handles.DeviceMemory' object------ - #VUID-vkCmdDrawIndirect-buffer-02709# @buffer@ /must/ have been--- created with the--- 'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_INDIRECT_BUFFER_BIT'--- bit set------ - #VUID-vkCmdDrawIndirect-offset-02710# @offset@ /must/ be a multiple--- of @4@------ - #VUID-vkCmdDrawIndirect-commandBuffer-02711# @commandBuffer@ /must/--- not be a protected command buffer------ - #VUID-vkCmdDrawIndirect-drawCount-02718# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multiDrawIndirect multi-draw indirect>--- feature is not enabled, @drawCount@ /must/ be @0@ or @1@------ - #VUID-vkCmdDrawIndirect-drawCount-02719# @drawCount@ /must/ be less--- than or equal to--- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxDrawIndirectCount@------ - #VUID-vkCmdDrawIndirect-firstInstance-00478# If the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-drawIndirectFirstInstance drawIndirectFirstInstance>--- feature is not enabled, all the @firstInstance@ members of the--- 'Vulkan.Core10.OtherTypes.DrawIndirectCommand' structures accessed--- by this command /must/ be @0@------ - #VUID-vkCmdDrawIndirect-drawCount-00476# If @drawCount@ is greater--- than @1@, @stride@ /must/ be a multiple of @4@ and /must/ be greater--- than or equal to--- @sizeof@('Vulkan.Core10.OtherTypes.DrawIndirectCommand')------ - #VUID-vkCmdDrawIndirect-drawCount-00487# If @drawCount@ is equal to--- @1@, (@offset@ +--- @sizeof@('Vulkan.Core10.OtherTypes.DrawIndirectCommand')) /must/ be--- less than or equal to the size of @buffer@------ - #VUID-vkCmdDrawIndirect-drawCount-00488# If @drawCount@ is greater--- than @1@, (@stride@ × (@drawCount@ - 1) + @offset@ +--- @sizeof@('Vulkan.Core10.OtherTypes.DrawIndirectCommand')) /must/ be--- less than or equal to the size of @buffer@------ == Valid Usage (Implicit)------ - #VUID-vkCmdDrawIndirect-commandBuffer-parameter# @commandBuffer@--- /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle------ - #VUID-vkCmdDrawIndirect-buffer-parameter# @buffer@ /must/ be a valid--- 'Vulkan.Core10.Handles.Buffer' handle------ - #VUID-vkCmdDrawIndirect-commandBuffer-recording# @commandBuffer@--- /must/ be in the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording state>------ - #VUID-vkCmdDrawIndirect-commandBuffer-cmdpool# The--- 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was--- allocated from /must/ support graphics operations------ - #VUID-vkCmdDrawIndirect-renderpass# This command /must/ only be--- called inside of a render pass instance------ - #VUID-vkCmdDrawIndirect-commonparent# Both of @buffer@, and--- @commandBuffer@ /must/ have been created, allocated, or retrieved--- from the same 'Vulkan.Core10.Handles.Device'------ == Host Synchronization------ - Host access to @commandBuffer@ /must/ be externally synchronized------ - Host access to the 'Vulkan.Core10.Handles.CommandPool' that--- @commandBuffer@ was allocated from /must/ be externally synchronized------ == Command Properties------ \'------ +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | Primary | Inside | Graphics |--- | Secondary | | |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,--- 'Vulkan.Core10.Handles.Buffer', 'Vulkan.Core10.Handles.CommandBuffer',--- 'Vulkan.Core10.FundamentalTypes.DeviceSize'-cmdDrawIndirect :: forall io- . (MonadIO io)- => -- | @commandBuffer@ is the command buffer into which the command is- -- recorded.- CommandBuffer- -> -- | @buffer@ is the buffer containing draw parameters.- Buffer- -> -- | @offset@ is the byte offset into @buffer@ where parameters begin.- ("offset" ::: DeviceSize)- -> -- | @drawCount@ is the number of draws to execute, and /can/ be zero.- ("drawCount" ::: Word32)- -> -- | @stride@ is the byte stride between successive sets of draw parameters.- ("stride" ::: Word32)- -> io ()-cmdDrawIndirect commandBuffer buffer offset drawCount stride = liftIO $ do- let vkCmdDrawIndirectPtr = pVkCmdDrawIndirect (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)- unless (vkCmdDrawIndirectPtr /= nullFunPtr) $- throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdDrawIndirect is null" Nothing Nothing- let vkCmdDrawIndirect' = mkVkCmdDrawIndirect vkCmdDrawIndirectPtr- traceAroundEvent "vkCmdDrawIndirect" (vkCmdDrawIndirect' (commandBufferHandle (commandBuffer)) (buffer) (offset) (drawCount) (stride))- pure $ ()---foreign import ccall-#if !defined(SAFE_FOREIGN_CALLS)- unsafe-#endif- "dynamic" mkVkCmdDrawIndexedIndirect- :: FunPtr (Ptr CommandBuffer_T -> Buffer -> DeviceSize -> Word32 -> Word32 -> IO ()) -> Ptr CommandBuffer_T -> Buffer -> DeviceSize -> Word32 -> Word32 -> IO ()---- | vkCmdDrawIndexedIndirect - Draw primitives with indirect parameters and--- indexed vertices------ = Description------ 'cmdDrawIndexedIndirect' behaves similarly to 'cmdDrawIndexed' except--- that the parameters are read by the device from a buffer during--- execution. @drawCount@ draws are executed by the command, with--- parameters taken from @buffer@ starting at @offset@ and increasing by--- @stride@ bytes for each successive draw. The parameters of each draw are--- encoded in an array of--- 'Vulkan.Core10.OtherTypes.DrawIndexedIndirectCommand' structures. If--- @drawCount@ is less than or equal to one, @stride@ is ignored.------ == Valid Usage------ - #VUID-vkCmdDrawIndexedIndirect-magFilter-04553# If a--- 'Vulkan.Core10.Handles.Sampler' created with @magFilter@ or--- @minFilter@ equal to 'Vulkan.Core10.Enums.Filter.FILTER_LINEAR' and--- @compareEnable@ equal to 'Vulkan.Core10.FundamentalTypes.FALSE' is--- used to sample a 'Vulkan.Core10.Handles.ImageView' as a result of--- this command, then the image view’s--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>--- /must/ contain--- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT'------ - #VUID-vkCmdDrawIndexedIndirect-mipmapMode-04770# If a--- 'Vulkan.Core10.Handles.Sampler' created with @mipmapMode@ equal to--- 'Vulkan.Core10.Enums.SamplerMipmapMode.SAMPLER_MIPMAP_MODE_LINEAR'--- and @compareEnable@ equal to 'Vulkan.Core10.FundamentalTypes.FALSE'--- is used to sample a 'Vulkan.Core10.Handles.ImageView' as a result of--- this command, then the image view’s--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>--- /must/ contain--- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT'------ - #VUID-vkCmdDrawIndexedIndirect-None-06479# If a--- 'Vulkan.Core10.Handles.ImageView' is sampled with--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-depth-compare-operation depth comparison>,--- the image view’s--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>--- /must/ contain--- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT'------ - #VUID-vkCmdDrawIndexedIndirect-None-02691# If a--- 'Vulkan.Core10.Handles.ImageView' is accessed using atomic--- operations as a result of this command, then the image view’s--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>--- /must/ contain--- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT'------ - #VUID-vkCmdDrawIndexedIndirect-None-02692# If a--- 'Vulkan.Core10.Handles.ImageView' is sampled with--- 'Vulkan.Extensions.VK_EXT_filter_cubic.FILTER_CUBIC_EXT' as a result--- of this command, then the image view’s--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>--- /must/ contain--- 'Vulkan.Extensions.VK_EXT_filter_cubic.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT'------ - #VUID-vkCmdDrawIndexedIndirect-filterCubic-02694# Any--- 'Vulkan.Core10.Handles.ImageView' being sampled with--- 'Vulkan.Extensions.VK_EXT_filter_cubic.FILTER_CUBIC_EXT' as a result--- of this command /must/ have a--- 'Vulkan.Core10.Enums.ImageViewType.ImageViewType' and format that--- supports cubic filtering, as specified by--- 'Vulkan.Extensions.VK_EXT_filter_cubic.FilterCubicImageViewImageFormatPropertiesEXT'::@filterCubic@--- returned by--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceImageFormatProperties2'------ - #VUID-vkCmdDrawIndexedIndirect-filterCubicMinmax-02695# Any--- 'Vulkan.Core10.Handles.ImageView' being sampled with--- 'Vulkan.Extensions.VK_EXT_filter_cubic.FILTER_CUBIC_EXT' with a--- reduction mode of either--- 'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MIN'--- or--- 'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MAX'--- as a result of this command /must/ have a--- 'Vulkan.Core10.Enums.ImageViewType.ImageViewType' and format that--- supports cubic filtering together with minmax filtering, as--- specified by--- 'Vulkan.Extensions.VK_EXT_filter_cubic.FilterCubicImageViewImageFormatPropertiesEXT'::@filterCubicMinmax@--- returned by--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceImageFormatProperties2'------ - #VUID-vkCmdDrawIndexedIndirect-flags-02696# Any--- 'Vulkan.Core10.Handles.Image' created with a--- 'Vulkan.Core10.Image.ImageCreateInfo'::@flags@ containing--- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_CORNER_SAMPLED_BIT_NV'--- sampled as a result of this command /must/ only be sampled using a--- 'Vulkan.Core10.Enums.SamplerAddressMode.SamplerAddressMode' of--- 'Vulkan.Core10.Enums.SamplerAddressMode.SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE'------ - #VUID-vkCmdDrawIndexedIndirect-OpTypeImage-06423# Any--- 'Vulkan.Core10.Handles.ImageView' or--- 'Vulkan.Core10.Handles.BufferView' being written as a storage image--- or storage texel buffer where the image format field of the--- @OpTypeImage@ is @Unknown@ then the view’s format feature /must/--- contain--- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT'------ - #VUID-vkCmdDrawIndexedIndirect-OpTypeImage-06424# Any--- 'Vulkan.Core10.Handles.ImageView' or--- 'Vulkan.Core10.Handles.BufferView' being read as a storage image or--- storage texel buffer where the image format field of the--- @OpTypeImage@ is @Unknown@ then the view’s format feature /must/--- contain--- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT'------ - #VUID-vkCmdDrawIndexedIndirect-None-02697# For each set /n/ that is--- statically used by the 'Vulkan.Core10.Handles.Pipeline' bound to the--- pipeline bind point used by this command, a descriptor set /must/--- have been bound to /n/ at the same pipeline bind point, with a--- 'Vulkan.Core10.Handles.PipelineLayout' that is compatible for set--- /n/, with the 'Vulkan.Core10.Handles.PipelineLayout' used to create--- the current 'Vulkan.Core10.Handles.Pipeline', as described in--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>------ - #VUID-vkCmdDrawIndexedIndirect-maintenance4-06425# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-maintenance4 maintenance4>--- feature is not enabled, then for each push constant that is--- statically used by the 'Vulkan.Core10.Handles.Pipeline' bound to the--- pipeline bind point used by this command, a push constant value--- /must/ have been set for the same pipeline bind point, with a--- 'Vulkan.Core10.Handles.PipelineLayout' that is compatible for push--- constants, with the 'Vulkan.Core10.Handles.PipelineLayout' used to--- create the current 'Vulkan.Core10.Handles.Pipeline', as described in--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>------ - #VUID-vkCmdDrawIndexedIndirect-None-02699# Descriptors in each bound--- descriptor set, specified via 'cmdBindDescriptorSets', /must/ be--- valid if they are statically used by the--- 'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind point--- used by this command------ - #VUID-vkCmdDrawIndexedIndirect-None-02700# A valid pipeline /must/--- be bound to the pipeline bind point used by this command------ - #VUID-vkCmdDrawIndexedIndirect-commandBuffer-02701# If the--- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind--- point used by this command requires any dynamic state, that state--- /must/ have been set or inherited (if the--- @VK_NV_inherited_viewport_scissor@ extension is enabled) for--- @commandBuffer@, and done so after any previously bound pipeline--- with the corresponding state not specified as dynamic------ - #VUID-vkCmdDrawIndexedIndirect-None-02859# There /must/ not have--- been any calls to dynamic state setting commands for any state not--- specified as dynamic in the 'Vulkan.Core10.Handles.Pipeline' object--- bound to the pipeline bind point used by this command, since that--- pipeline was bound------ - #VUID-vkCmdDrawIndexedIndirect-None-02702# If the--- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind--- point used by this command accesses a--- 'Vulkan.Core10.Handles.Sampler' object that uses unnormalized--- coordinates, that sampler /must/ not be used to sample from any--- 'Vulkan.Core10.Handles.Image' with a--- 'Vulkan.Core10.Handles.ImageView' of the type--- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_3D',--- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE',--- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_1D_ARRAY',--- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_2D_ARRAY' or--- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE_ARRAY', in--- any shader stage------ - #VUID-vkCmdDrawIndexedIndirect-None-02703# If the--- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind--- point used by this command accesses a--- 'Vulkan.Core10.Handles.Sampler' object that uses unnormalized--- coordinates, that sampler /must/ not be used with any of the SPIR-V--- @OpImageSample*@ or @OpImageSparseSample*@ instructions with--- @ImplicitLod@, @Dref@ or @Proj@ in their name, in any shader stage------ - #VUID-vkCmdDrawIndexedIndirect-None-02704# If the--- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind--- point used by this command accesses a--- 'Vulkan.Core10.Handles.Sampler' object that uses unnormalized--- coordinates, that sampler /must/ not be used with any of the SPIR-V--- @OpImageSample*@ or @OpImageSparseSample*@ instructions that--- includes a LOD bias or any offset values, in any shader stage------ - #VUID-vkCmdDrawIndexedIndirect-None-02705# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robust buffer access>--- feature is not enabled, and if the 'Vulkan.Core10.Handles.Pipeline'--- object bound to the pipeline bind point used by this command--- accesses a uniform buffer, it /must/ not access values outside of--- the range of the buffer as specified in the descriptor set bound to--- the same pipeline bind point------ - #VUID-vkCmdDrawIndexedIndirect-None-02706# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robust buffer access>--- feature is not enabled, and if the 'Vulkan.Core10.Handles.Pipeline'--- object bound to the pipeline bind point used by this command--- accesses a storage buffer, it /must/ not access values outside of--- the range of the buffer as specified in the descriptor set bound to--- the same pipeline bind point------ - #VUID-vkCmdDrawIndexedIndirect-commandBuffer-02707# If--- @commandBuffer@ is an unprotected command buffer and--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>--- is not supported, any resource accessed by the--- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind--- point used by this command /must/ not be a protected resource------ - #VUID-vkCmdDrawIndexedIndirect-None-06550# If the--- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind--- point used by this command accesses a--- 'Vulkan.Core10.Handles.Sampler' or 'Vulkan.Core10.Handles.ImageView'--- object that enables--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion>,--- that object /must/ only be used with @OpImageSample*@ or--- @OpImageSparseSample*@ instructions------ - #VUID-vkCmdDrawIndexedIndirect-ConstOffset-06551# If the--- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind--- point used by this command accesses a--- 'Vulkan.Core10.Handles.Sampler' or 'Vulkan.Core10.Handles.ImageView'--- object that enables--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion>,--- that object /must/ not use the @ConstOffset@ and @Offset@ operands------ - #VUID-vkCmdDrawIndexedIndirect-None-04115# If a--- 'Vulkan.Core10.Handles.ImageView' is accessed using @OpImageWrite@--- as a result of this command, then the @Type@ of the @Texel@ operand--- of that instruction /must/ have at least as many components as the--- image view’s format------ - #VUID-vkCmdDrawIndexedIndirect-OpImageWrite-04469# If a--- 'Vulkan.Core10.Handles.BufferView' is accessed using @OpImageWrite@--- as a result of this command, then the @Type@ of the @Texel@ operand--- of that instruction /must/ have at least as many components as the--- buffer view’s format------ - #VUID-vkCmdDrawIndexedIndirect-SampledType-04470# If a--- 'Vulkan.Core10.Handles.ImageView' with a--- 'Vulkan.Core10.Enums.Format.Format' that has a 64-bit component--- width is accessed as a result of this command, the @SampledType@ of--- the @OpTypeImage@ operand of that instruction /must/ have a @Width@--- of 64------ - #VUID-vkCmdDrawIndexedIndirect-SampledType-04471# If a--- 'Vulkan.Core10.Handles.ImageView' with a--- 'Vulkan.Core10.Enums.Format.Format' that has a component width less--- than 64-bit is accessed as a result of this command, the--- @SampledType@ of the @OpTypeImage@ operand of that instruction--- /must/ have a @Width@ of 32------ - #VUID-vkCmdDrawIndexedIndirect-SampledType-04472# If a--- 'Vulkan.Core10.Handles.BufferView' with a--- 'Vulkan.Core10.Enums.Format.Format' that has a 64-bit component--- width is accessed as a result of this command, the @SampledType@ of--- the @OpTypeImage@ operand of that instruction /must/ have a @Width@--- of 64------ - #VUID-vkCmdDrawIndexedIndirect-SampledType-04473# If a--- 'Vulkan.Core10.Handles.BufferView' with a--- 'Vulkan.Core10.Enums.Format.Format' that has a component width less--- than 64-bit is accessed as a result of this command, the--- @SampledType@ of the @OpTypeImage@ operand of that instruction--- /must/ have a @Width@ of 32------ - #VUID-vkCmdDrawIndexedIndirect-sparseImageInt64Atomics-04474# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-sparseImageInt64Atomics sparseImageInt64Atomics>--- feature is not enabled, 'Vulkan.Core10.Handles.Image' objects--- created with the--- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SPARSE_RESIDENCY_BIT'--- flag /must/ not be accessed by atomic instructions through an--- @OpTypeImage@ with a @SampledType@ with a @Width@ of 64 by this--- command------ - #VUID-vkCmdDrawIndexedIndirect-sparseImageInt64Atomics-04475# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-sparseImageInt64Atomics sparseImageInt64Atomics>--- feature is not enabled, 'Vulkan.Core10.Handles.Buffer' objects--- created with the--- 'Vulkan.Core10.Enums.BufferCreateFlagBits.BUFFER_CREATE_SPARSE_RESIDENCY_BIT'--- flag /must/ not be accessed by atomic instructions through an--- @OpTypeImage@ with a @SampledType@ with a @Width@ of 64 by this--- command------ - #VUID-vkCmdDrawIndexedIndirect-renderPass-02684# The current render--- pass /must/ be--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-compatibility compatible>--- with the @renderPass@ member of the--- 'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo' structure--- specified when creating the 'Vulkan.Core10.Handles.Pipeline' bound--- to--- 'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_GRAPHICS'------ - #VUID-vkCmdDrawIndexedIndirect-subpass-02685# The subpass index of--- the current render pass /must/ be equal to the @subpass@ member of--- the 'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo' structure--- specified when creating the 'Vulkan.Core10.Handles.Pipeline' bound--- to--- 'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_GRAPHICS'------ - #VUID-vkCmdDrawIndexedIndirect-None-02686# Every input attachment--- used by the current subpass /must/ be bound to the pipeline via a--- descriptor set------ - #VUID-vkCmdDrawIndexedIndirect-None-06537# Memory backing image--- subresources used as attachments in the current render pass /must/--- not be written in any way other than as an attachment by this--- command------ - #VUID-vkCmdDrawIndexedIndirect-None-06538# If any recorded command--- in the current subpass will write to an image subresource as an--- attachment, this command /must/ not read from the memory backing--- that image subresource in any other way than as an attachment------ - #VUID-vkCmdDrawIndexedIndirect-None-06539# If any recorded command--- in the current subpass will read from an image subresource used as--- an attachment in any way other than as an attachment, this command--- /must/ not write to that image subresource as an attachment------ - #VUID-vkCmdDrawIndexedIndirect-maxMultiviewInstanceIndex-02688# If--- the draw is recorded in a render pass instance with multiview--- enabled, the maximum instance index /must/ be less than or equal to--- 'Vulkan.Core11.Promoted_From_VK_KHR_multiview.PhysicalDeviceMultiviewProperties'::@maxMultiviewInstanceIndex@------ - #VUID-vkCmdDrawIndexedIndirect-sampleLocationsEnable-02689# If the--- bound graphics pipeline was created with--- 'Vulkan.Extensions.VK_EXT_sample_locations.PipelineSampleLocationsStateCreateInfoEXT'::@sampleLocationsEnable@--- set to 'Vulkan.Core10.FundamentalTypes.TRUE' and the current subpass--- has a depth\/stencil attachment, then that attachment /must/ have--- been created with the--- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT'--- bit set------ - #VUID-vkCmdDrawIndexedIndirect-None-06666# If the bound graphics--- pipeline state was created with the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'--- dynamic state enabled then--- 'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT'--- /must/ have been called in the current command buffer prior to this--- drawing command------ - #VUID-vkCmdDrawIndexedIndirect-viewportCount-03417# If the bound--- graphics pipeline state was created with the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'--- dynamic state enabled, but not the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT'--- dynamic state enabled, then--- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'--- /must/ have been called in the current command buffer prior to this--- drawing command, and the @viewportCount@ parameter of--- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'--- /must/ match the--- 'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo'::@scissorCount@--- of the pipeline------ - #VUID-vkCmdDrawIndexedIndirect-scissorCount-03418# If the bound--- graphics pipeline state was created with the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT'--- dynamic state enabled, but not the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'--- dynamic state enabled, then--- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetScissorWithCount'--- /must/ have been called in the current command buffer prior to this--- drawing command, and the @scissorCount@ parameter of--- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetScissorWithCount'--- /must/ match the--- 'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo'::@viewportCount@--- of the pipeline------ - #VUID-vkCmdDrawIndexedIndirect-viewportCount-03419# If the bound--- graphics pipeline state was created with both the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT'--- and--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'--- dynamic states enabled then both--- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'--- and--- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetScissorWithCount'--- /must/ have been called in the current command buffer prior to this--- drawing command, and the @viewportCount@ parameter of--- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'--- /must/ match the @scissorCount@ parameter of--- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetScissorWithCount'------ - #VUID-vkCmdDrawIndexedIndirect-viewportCount-04137# If the bound--- graphics pipeline state was created with the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'--- dynamic state enabled, but not the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_W_SCALING_NV'--- dynamic state enabled, then the bound graphics pipeline /must/ have--- been created with--- 'Vulkan.Extensions.VK_NV_clip_space_w_scaling.PipelineViewportWScalingStateCreateInfoNV'::@viewportCount@--- greater or equal to the @viewportCount@ parameter in the last call--- to--- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'------ - #VUID-vkCmdDrawIndexedIndirect-viewportCount-04138# If the bound--- graphics pipeline state was created with the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'--- and--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_W_SCALING_NV'--- dynamic states enabled then the @viewportCount@ parameter in the--- last call to--- 'Vulkan.Extensions.VK_NV_clip_space_w_scaling.cmdSetViewportWScalingNV'--- /must/ be greater than or equal to the @viewportCount@ parameter in--- the last call to--- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'------ - #VUID-vkCmdDrawIndexedIndirect-viewportCount-04139# If the bound--- graphics pipeline state was created with the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'--- dynamic state enabled, but not the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV'--- dynamic state enabled, then the bound graphics pipeline /must/ have--- been created with--- 'Vulkan.Extensions.VK_NV_shading_rate_image.PipelineViewportShadingRateImageStateCreateInfoNV'::@viewportCount@--- greater or equal to the @viewportCount@ parameter in the last call--- to--- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'------ - #VUID-vkCmdDrawIndexedIndirect-viewportCount-04140# If the bound--- graphics pipeline state was created with the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'--- and--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV'--- dynamic states enabled then the @viewportCount@ parameter in the--- last call to--- 'Vulkan.Extensions.VK_NV_shading_rate_image.cmdSetViewportShadingRatePaletteNV'--- /must/ be greater than or equal to the @viewportCount@ parameter in--- the last call to--- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'------ - #VUID-vkCmdDrawIndexedIndirect-VkPipelineVieportCreateInfo-04141# If--- the bound graphics pipeline state was created with the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'--- dynamic state enabled and a--- 'Vulkan.Extensions.VK_NV_viewport_swizzle.PipelineViewportSwizzleStateCreateInfoNV'--- structure chained from @VkPipelineVieportCreateInfo@, then the bound--- graphics pipeline /must/ have been created with--- 'Vulkan.Extensions.VK_NV_viewport_swizzle.PipelineViewportSwizzleStateCreateInfoNV'::@viewportCount@--- greater or equal to the @viewportCount@ parameter in the last call--- to--- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'------ - #VUID-vkCmdDrawIndexedIndirect-VkPipelineVieportCreateInfo-04142# If--- the bound graphics pipeline state was created with the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'--- dynamic state enabled and a--- 'Vulkan.Extensions.VK_NV_scissor_exclusive.PipelineViewportExclusiveScissorStateCreateInfoNV'--- structure chained from @VkPipelineVieportCreateInfo@, then the bound--- graphics pipeline /must/ have been created with--- 'Vulkan.Extensions.VK_NV_scissor_exclusive.PipelineViewportExclusiveScissorStateCreateInfoNV'::@exclusiveScissorCount@--- greater or equal to the @viewportCount@ parameter in the last call--- to--- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'------ - #VUID-vkCmdDrawIndexedIndirect-None-04876# If the bound graphics--- pipeline state was created with the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE'--- dynamic state enabled then--- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'--- /must/ have been called in the current command buffer prior to this--- drawing command------ - #VUID-vkCmdDrawIndexedIndirect-None-04877# If the bound graphics--- pipeline state was created with the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BIAS_ENABLE'--- dynamic state enabled then--- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetDepthBiasEnable'--- /must/ have been called in the current command buffer prior to this--- drawing command------ - #VUID-vkCmdDrawIndexedIndirect-logicOp-04878# If the bound graphics--- pipeline state was created with the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LOGIC_OP_EXT'--- dynamic state enabled then--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetLogicOpEXT'--- /must/ have been called in the current command buffer prior to this--- drawing command and the @logicOp@ /must/ be a valid--- 'Vulkan.Core10.Enums.LogicOp.LogicOp' value------ - #VUID-vkCmdDrawIndexedIndirect-primitiveFragmentShadingRateWithMultipleViewports-04552#--- If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-primitiveFragmentShadingRateWithMultipleViewports primitiveFragmentShadingRateWithMultipleViewports>--- limit is not supported, the bound graphics pipeline was created with--- the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'--- dynamic state enabled, and any of the shader stages of the bound--- graphics pipeline write to the @PrimitiveShadingRateKHR@ built-in,--- then--- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'--- /must/ have been called in the current command buffer prior to this--- drawing command, and the @viewportCount@ parameter of--- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'--- /must/ be @1@------ - #VUID-vkCmdDrawIndexedIndirect-blendEnable-04727# If rasterization--- is not disabled in the bound graphics pipeline, then for each color--- attachment in the subpass, if the corresponding image view’s--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>--- do not contain--- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT',--- then the @blendEnable@ member of the corresponding element of the--- @pAttachments@ member of @pColorBlendState@ /must/ be--- 'Vulkan.Core10.FundamentalTypes.FALSE'------ - #VUID-vkCmdDrawIndexedIndirect-rasterizationSamples-04740# If--- rasterization is not disabled in the bound graphics pipeline, and--- neither the @VK_AMD_mixed_attachment_samples@ nor the--- @VK_NV_framebuffer_mixed_samples@ extensions are enabled, then--- 'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'::@rasterizationSamples@--- /must/ be the same as the current subpass color and\/or--- depth\/stencil attachments------ - #VUID-vkCmdDrawIndexedIndirect-imageView-06172# If the current--- render pass instance was begun with--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',--- the @imageView@ member of @pDepthAttachment@ is not--- 'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of--- @pDepthAttachment@ is--- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL',--- this command /must/ not write any values to the depth attachment------ - #VUID-vkCmdDrawIndexedIndirect-imageView-06173# If the current--- render pass instance was begun with--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',--- the @imageView@ member of @pStencilAttachment@ is not--- 'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of--- @pStencilAttachment@ is--- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL',--- this command /must/ not write any values to the stencil attachment------ - #VUID-vkCmdDrawIndexedIndirect-imageView-06174# If the current--- render pass instance was begun with--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',--- the @imageView@ member of @pDepthAttachment@ is not--- 'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of--- @pDepthAttachment@ is--- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL',--- this command /must/ not write any values to the depth attachment------ - #VUID-vkCmdDrawIndexedIndirect-imageView-06175# If the current--- render pass instance was begun with--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',--- the @imageView@ member of @pStencilAttachment@ is not--- 'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of--- @pStencilAttachment@ is--- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL',--- this command /must/ not write any values to the stencil attachment------ - #VUID-vkCmdDrawIndexedIndirect-imageView-06176# If the current--- render pass instance was begun with--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',--- the @imageView@ member of @pDepthAttachment@ is not--- 'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of--- @pDepthAttachment@ is--- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL',--- this command /must/ not write any values to the depth attachment------ - #VUID-vkCmdDrawIndexedIndirect-imageView-06177# If the current--- render pass instance was begun with--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',--- the @imageView@ member of @pStencilAttachment@ is not--- 'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of--- @pStencilAttachment@ is--- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL',--- this command /must/ not write any values to the stencil attachment------ - #VUID-vkCmdDrawIndexedIndirect-viewMask-06178# If the current render--- pass instance was begun with--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',--- the currently bound graphics pipeline /must/ have been created with--- a--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@viewMask@--- equal to--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@viewMask@------ - #VUID-vkCmdDrawIndexedIndirect-colorAttachmentCount-06179# If the--- current render pass instance was begun with--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',--- the currently bound graphics pipeline /must/ have been created with--- a--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@colorAttachmentCount@--- equal to--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@------ - #VUID-vkCmdDrawIndexedIndirect-colorAttachmentCount-06180# If the--- current render pass instance was begun with--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'--- and--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@--- greater than @0@, then each element of the--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@--- array with a @imageView@ not equal to--- 'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created--- with a 'Vulkan.Core10.Enums.Format.Format' equal to the--- corresponding element of--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@--- used to create the currently bound graphics pipeline------ - #VUID-vkCmdDrawIndexedIndirect-attachmentCount-06667# If the bound--- graphics pipeline state was created with the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT'--- dynamic state enabled then--- 'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'--- /must/ have been called in the current command buffer prior to this--- drawing command, and the @attachmentCount@ parameter of--- 'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'--- /must/ be equal to the--- 'Vulkan.Core10.Pipeline.PipelineColorBlendStateCreateInfo'::@attachmentCount@--- of the currently bound graphics pipeline------ - #VUID-vkCmdDrawIndexedIndirect-pDepthAttachment-06181# If the--- current render pass instance was begun with--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'--- and--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->pname@:imageView--- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@depthAttachmentFormat@--- used to create the currently bound graphics pipeline /must/ be equal--- to the 'Vulkan.Core10.Enums.Format.Format' used to create--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->pname@:imageView------ - #VUID-vkCmdDrawIndexedIndirect-pStencilAttachment-06182# If the--- current render pass instance was begun with--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'--- and--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->pname@:imageView--- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@stencilAttachmentFormat@--- used to create the currently bound graphics pipeline /must/ be equal--- to the 'Vulkan.Core10.Enums.Format.Format' used to create--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->pname@:imageView------ - #VUID-vkCmdDrawIndexedIndirect-imageView-06183# If the current--- render pass instance was begun with--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'--- and--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingFragmentShadingRateAttachmentInfoKHR'::@imageView@--- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the currently--- bound graphics pipeline /must/ have been created with--- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR'------ - #VUID-vkCmdDrawIndexedIndirect-imageView-06184# If the current--- render pass instance was begun with--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'--- and--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingFragmentDensityMapAttachmentInfoEXT'::@imageView@--- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the currently--- bound graphics pipeline /must/ have been created with--- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT'------ - #VUID-vkCmdDrawIndexedIndirect-colorAttachmentCount-06185# If the--- currently bound pipeline was created with a--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'--- or--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'--- structure, and the current render pass instance was begun with--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'--- with a--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@--- parameter greater than @0@, then each element of the--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@--- array with a @imageView@ not equal to--- 'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created--- with a sample count equal to the corresponding element of the--- @pColorAttachmentSamples@ member of--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'--- or--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'--- used to create the currently bound graphics pipeline------ - #VUID-vkCmdDrawIndexedIndirect-pDepthAttachment-06186# If the--- current render pass instance was begun with--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',--- the currently bound pipeline was created with a--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'--- or--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'--- structure, and--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->pname@:imageView--- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of the--- @depthStencilAttachmentSamples@ member of--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'--- or--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'--- used to create the currently bound graphics pipeline /must/ be equal--- to the sample count used to create--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->pname@:imageView------ - #VUID-vkCmdDrawIndexedIndirect-pStencilAttachment-06187# If the--- current render pass instance was begun with--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',--- the currently bound pipeline was created with a--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'--- or--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'--- structure, and--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->pname@:imageView--- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of the--- @depthStencilAttachmentSamples@ member of--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'--- or--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'--- used to create the currently bound graphics pipeline /must/ be equal--- to the sample count used to create--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->pname@:imageView------ - #VUID-vkCmdDrawIndexedIndirect-colorAttachmentCount-06188# If the--- currently bound pipeline was created without a--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'--- or--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'--- structure, and the current render pass instance was begun with--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'--- with a--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@--- parameter greater than @0@, then each element of the--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@--- array with a @imageView@ not equal to--- 'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created--- with a sample count equal to the value of--- 'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'::@rasterizationSamples@--- used to create the currently bound graphics pipeline------ - #VUID-vkCmdDrawIndexedIndirect-pDepthAttachment-06189# If the--- current render pass instance was begun with--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',--- the currently bound pipeline was created without a--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'--- or--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'--- structure, and--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->pname@:imageView--- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of--- 'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'::@rasterizationSamples@--- used to create the currently bound graphics pipeline /must/ be equal--- to the sample count used to create--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->pname@:imageView------ - #VUID-vkCmdDrawIndexedIndirect-pStencilAttachment-06190# If the--- current render pass instance was begun with--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',--- the currently bound pipeline was created without a--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'--- or--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'--- structure, and--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->pname@:imageView--- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of--- 'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'::@rasterizationSamples@--- used to create the currently bound graphics pipeline /must/ be equal--- to the sample count used to create--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->pname@:imageView------ - #VUID-vkCmdDrawIndexedIndirect-renderPass-06198# If the current--- render pass instance was begun with--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',--- the currently bound pipeline /must/ have been created with a--- 'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo'::@renderPass@--- equal to 'Vulkan.Core10.APIConstants.NULL_HANDLE'------ - #VUID-vkCmdDrawIndexedIndirect-primitivesGeneratedQueryWithRasterizerDiscard-06708#--- If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-primitivesGeneratedQueryWithRasterizerDiscard primitivesGeneratedQueryWithRasterizerDiscard>--- feature is not enabled and the--- 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PRIMITIVES_GENERATED_EXT'--- query is active,--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-discard rasterization discard>--- /must/ not be enabled.------ - #VUID-vkCmdDrawIndexedIndirect-primitivesGeneratedQueryWithNonZeroStreams-06709#--- If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-primitivesGeneratedQueryWithNonZeroStreams primitivesGeneratedQueryWithNonZeroStreams>--- feature is not enabled and the--- 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PRIMITIVES_GENERATED_EXT'--- query is active, the bound graphics pipeline /must/ not have been--- created with a non-zero value in--- 'Vulkan.Extensions.VK_EXT_transform_feedback.PipelineRasterizationStateStreamCreateInfoEXT'::@rasterizationStream@.------ - #VUID-vkCmdDrawIndexedIndirect-None-04007# All vertex input bindings--- accessed via vertex input variables declared in the vertex shader--- entry point’s interface /must/ have either valid or--- 'Vulkan.Core10.APIConstants.NULL_HANDLE' buffers bound------ - #VUID-vkCmdDrawIndexedIndirect-None-04008# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-nullDescriptor nullDescriptor>--- feature is not enabled, all vertex input bindings accessed via--- vertex input variables declared in the vertex shader entry point’s--- interface /must/ not be 'Vulkan.Core10.APIConstants.NULL_HANDLE'------ - #VUID-vkCmdDrawIndexedIndirect-None-02721# For a given vertex buffer--- binding, any attribute data fetched /must/ be entirely contained--- within the corresponding vertex buffer binding, as described in--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fxvertex-input ???>------ - #VUID-vkCmdDrawIndexedIndirect-primitiveTopology-03420# If the bound--- graphics pipeline state was created with the--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT'--- dynamic state enabled then--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopologyEXT'--- /must/ have been called in the current command buffer prior to this--- drawing command, and the @primitiveTopology@ parameter of--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopologyEXT'--- /must/ be of the same--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#drawing-primitive-topology-class topology class>--- as the pipeline--- 'Vulkan.Core10.Pipeline.PipelineInputAssemblyStateCreateInfo'::@topology@--- state------ - #VUID-vkCmdDrawIndexedIndirect-None-04912# If the bound graphics--- pipeline was created with both the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'--- and--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT'--- dynamic states enabled, then--- 'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.cmdSetVertexInputEXT'--- /must/ have been called in the current command buffer prior to this--- draw command------ - #VUID-vkCmdDrawIndexedIndirect-pStrides-04913# If the bound graphics--- pipeline was created with the--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT'--- dynamic state enabled, but not the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'--- dynamic state enabled, then--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdBindVertexBuffers2EXT'--- /must/ have been called in the current command buffer prior to this--- draw command, and the @pStrides@ parameter of--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdBindVertexBuffers2EXT'--- /must/ not be @NULL@------ - #VUID-vkCmdDrawIndexedIndirect-None-04914# If the bound graphics--- pipeline state was created with the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'--- dynamic state enabled, then--- 'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.cmdSetVertexInputEXT'--- /must/ have been called in the current command buffer prior to this--- draw command------ - #VUID-vkCmdDrawIndexedIndirect-None-04875# If the bound graphics--- pipeline state was created with the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT'--- dynamic state enabled then--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetPatchControlPointsEXT'--- /must/ have been called in the current command buffer prior to this--- drawing command------ - #VUID-vkCmdDrawIndexedIndirect-None-04879# If the bound graphics--- pipeline state was created with the--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE_EXT'--- dynamic state enabled then--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetPrimitiveRestartEnableEXT'--- /must/ have been called in the current command buffer prior to this--- drawing command------ - #VUID-vkCmdDrawIndexedIndirect-stage-06481# The bound graphics--- pipeline /must/ not have been created with the--- 'Vulkan.Core10.Pipeline.PipelineShaderStageCreateInfo'::@stage@--- member of an element of--- 'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo'::@pStages@ set--- to--- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_NV'--- or--- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_NV'------ - #VUID-vkCmdDrawIndexedIndirect-buffer-02708# If @buffer@ is--- non-sparse then it /must/ be bound completely and contiguously to a--- single 'Vulkan.Core10.Handles.DeviceMemory' object------ - #VUID-vkCmdDrawIndexedIndirect-buffer-02709# @buffer@ /must/ have--- been created with the--- 'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_INDIRECT_BUFFER_BIT'--- bit set------ - #VUID-vkCmdDrawIndexedIndirect-offset-02710# @offset@ /must/ be a--- multiple of @4@------ - #VUID-vkCmdDrawIndexedIndirect-commandBuffer-02711# @commandBuffer@--- /must/ not be a protected command buffer------ - #VUID-vkCmdDrawIndexedIndirect-drawCount-02718# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multiDrawIndirect multi-draw indirect>--- feature is not enabled, @drawCount@ /must/ be @0@ or @1@------ - #VUID-vkCmdDrawIndexedIndirect-drawCount-02719# @drawCount@ /must/--- be less than or equal to--- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxDrawIndirectCount@------ - #VUID-vkCmdDrawIndexedIndirect-drawCount-00528# If @drawCount@ is--- greater than @1@, @stride@ /must/ be a multiple of @4@ and /must/ be--- greater than or equal to--- @sizeof@('Vulkan.Core10.OtherTypes.DrawIndexedIndirectCommand')------ - #VUID-vkCmdDrawIndexedIndirect-firstInstance-00530# If the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-drawIndirectFirstInstance drawIndirectFirstInstance>--- feature is not enabled, all the @firstInstance@ members of the--- 'Vulkan.Core10.OtherTypes.DrawIndexedIndirectCommand' structures--- accessed by this command /must/ be @0@------ - #VUID-vkCmdDrawIndexedIndirect-drawCount-00539# If @drawCount@ is--- equal to @1@, (@offset@ +--- @sizeof@('Vulkan.Core10.OtherTypes.DrawIndexedIndirectCommand'))--- /must/ be less than or equal to the size of @buffer@------ - #VUID-vkCmdDrawIndexedIndirect-drawCount-00540# If @drawCount@ is--- greater than @1@, (@stride@ × (@drawCount@ - 1) + @offset@ +--- @sizeof@('Vulkan.Core10.OtherTypes.DrawIndexedIndirectCommand'))--- /must/ be less than or equal to the size of @buffer@------ == Valid Usage (Implicit)------ - #VUID-vkCmdDrawIndexedIndirect-commandBuffer-parameter#--- @commandBuffer@ /must/ be a valid--- 'Vulkan.Core10.Handles.CommandBuffer' handle------ - #VUID-vkCmdDrawIndexedIndirect-buffer-parameter# @buffer@ /must/ be--- a valid 'Vulkan.Core10.Handles.Buffer' handle------ - #VUID-vkCmdDrawIndexedIndirect-commandBuffer-recording#--- @commandBuffer@ /must/ be in the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording state>------ - #VUID-vkCmdDrawIndexedIndirect-commandBuffer-cmdpool# The--- 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was--- allocated from /must/ support graphics operations------ - #VUID-vkCmdDrawIndexedIndirect-renderpass# This command /must/ only--- be called inside of a render pass instance------ - #VUID-vkCmdDrawIndexedIndirect-commonparent# Both of @buffer@, and--- @commandBuffer@ /must/ have been created, allocated, or retrieved--- from the same 'Vulkan.Core10.Handles.Device'------ == Host Synchronization------ - Host access to @commandBuffer@ /must/ be externally synchronized------ - Host access to the 'Vulkan.Core10.Handles.CommandPool' that--- @commandBuffer@ was allocated from /must/ be externally synchronized------ == Command Properties------ \'------ +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | Primary | Inside | Graphics |--- | Secondary | | |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,--- 'Vulkan.Core10.Handles.Buffer', 'Vulkan.Core10.Handles.CommandBuffer',--- 'Vulkan.Core10.FundamentalTypes.DeviceSize'-cmdDrawIndexedIndirect :: forall io- . (MonadIO io)- => -- | @commandBuffer@ is the command buffer into which the command is- -- recorded.- CommandBuffer- -> -- | @buffer@ is the buffer containing draw parameters.- Buffer- -> -- | @offset@ is the byte offset into @buffer@ where parameters begin.- ("offset" ::: DeviceSize)- -> -- | @drawCount@ is the number of draws to execute, and /can/ be zero.- ("drawCount" ::: Word32)- -> -- | @stride@ is the byte stride between successive sets of draw parameters.- ("stride" ::: Word32)- -> io ()-cmdDrawIndexedIndirect commandBuffer buffer offset drawCount stride = liftIO $ do- let vkCmdDrawIndexedIndirectPtr = pVkCmdDrawIndexedIndirect (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)- unless (vkCmdDrawIndexedIndirectPtr /= nullFunPtr) $- throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdDrawIndexedIndirect is null" Nothing Nothing- let vkCmdDrawIndexedIndirect' = mkVkCmdDrawIndexedIndirect vkCmdDrawIndexedIndirectPtr- traceAroundEvent "vkCmdDrawIndexedIndirect" (vkCmdDrawIndexedIndirect' (commandBufferHandle (commandBuffer)) (buffer) (offset) (drawCount) (stride))- pure $ ()---foreign import ccall-#if !defined(SAFE_FOREIGN_CALLS)- unsafe-#endif- "dynamic" mkVkCmdDispatch- :: FunPtr (Ptr CommandBuffer_T -> Word32 -> Word32 -> Word32 -> IO ()) -> Ptr CommandBuffer_T -> Word32 -> Word32 -> Word32 -> IO ()---- | vkCmdDispatch - Dispatch compute work items------ = Description------ When the command is executed, a global workgroup consisting of--- @groupCountX@ × @groupCountY@ × @groupCountZ@ local workgroups is--- assembled.------ == Valid Usage------ - #VUID-vkCmdDispatch-magFilter-04553# If a--- 'Vulkan.Core10.Handles.Sampler' created with @magFilter@ or--- @minFilter@ equal to 'Vulkan.Core10.Enums.Filter.FILTER_LINEAR' and--- @compareEnable@ equal to 'Vulkan.Core10.FundamentalTypes.FALSE' is--- used to sample a 'Vulkan.Core10.Handles.ImageView' as a result of--- this command, then the image view’s--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>--- /must/ contain--- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT'------ - #VUID-vkCmdDispatch-mipmapMode-04770# If a--- 'Vulkan.Core10.Handles.Sampler' created with @mipmapMode@ equal to--- 'Vulkan.Core10.Enums.SamplerMipmapMode.SAMPLER_MIPMAP_MODE_LINEAR'--- and @compareEnable@ equal to 'Vulkan.Core10.FundamentalTypes.FALSE'--- is used to sample a 'Vulkan.Core10.Handles.ImageView' as a result of--- this command, then the image view’s--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>--- /must/ contain--- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT'------ - #VUID-vkCmdDispatch-None-06479# If a--- 'Vulkan.Core10.Handles.ImageView' is sampled with--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-depth-compare-operation depth comparison>,--- the image view’s--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>--- /must/ contain--- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT'------ - #VUID-vkCmdDispatch-None-02691# If a--- 'Vulkan.Core10.Handles.ImageView' is accessed using atomic--- operations as a result of this command, then the image view’s--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>--- /must/ contain--- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT'------ - #VUID-vkCmdDispatch-None-02692# If a--- 'Vulkan.Core10.Handles.ImageView' is sampled with--- 'Vulkan.Extensions.VK_EXT_filter_cubic.FILTER_CUBIC_EXT' as a result--- of this command, then the image view’s--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>--- /must/ contain--- 'Vulkan.Extensions.VK_EXT_filter_cubic.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT'------ - #VUID-vkCmdDispatch-filterCubic-02694# Any--- 'Vulkan.Core10.Handles.ImageView' being sampled with--- 'Vulkan.Extensions.VK_EXT_filter_cubic.FILTER_CUBIC_EXT' as a result--- of this command /must/ have a--- 'Vulkan.Core10.Enums.ImageViewType.ImageViewType' and format that--- supports cubic filtering, as specified by--- 'Vulkan.Extensions.VK_EXT_filter_cubic.FilterCubicImageViewImageFormatPropertiesEXT'::@filterCubic@--- returned by--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceImageFormatProperties2'------ - #VUID-vkCmdDispatch-filterCubicMinmax-02695# Any--- 'Vulkan.Core10.Handles.ImageView' being sampled with--- 'Vulkan.Extensions.VK_EXT_filter_cubic.FILTER_CUBIC_EXT' with a--- reduction mode of either--- 'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MIN'--- or--- 'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MAX'--- as a result of this command /must/ have a--- 'Vulkan.Core10.Enums.ImageViewType.ImageViewType' and format that--- supports cubic filtering together with minmax filtering, as--- specified by--- 'Vulkan.Extensions.VK_EXT_filter_cubic.FilterCubicImageViewImageFormatPropertiesEXT'::@filterCubicMinmax@--- returned by--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceImageFormatProperties2'------ - #VUID-vkCmdDispatch-flags-02696# Any 'Vulkan.Core10.Handles.Image'--- created with a 'Vulkan.Core10.Image.ImageCreateInfo'::@flags@--- containing--- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_CORNER_SAMPLED_BIT_NV'--- sampled as a result of this command /must/ only be sampled using a--- 'Vulkan.Core10.Enums.SamplerAddressMode.SamplerAddressMode' of--- 'Vulkan.Core10.Enums.SamplerAddressMode.SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE'------ - #VUID-vkCmdDispatch-OpTypeImage-06423# Any--- 'Vulkan.Core10.Handles.ImageView' or--- 'Vulkan.Core10.Handles.BufferView' being written as a storage image--- or storage texel buffer where the image format field of the--- @OpTypeImage@ is @Unknown@ then the view’s format feature /must/--- contain--- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT'------ - #VUID-vkCmdDispatch-OpTypeImage-06424# Any--- 'Vulkan.Core10.Handles.ImageView' or--- 'Vulkan.Core10.Handles.BufferView' being read as a storage image or--- storage texel buffer where the image format field of the--- @OpTypeImage@ is @Unknown@ then the view’s format feature /must/--- contain--- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT'------ - #VUID-vkCmdDispatch-None-02697# For each set /n/ that is statically--- used by the 'Vulkan.Core10.Handles.Pipeline' bound to the pipeline--- bind point used by this command, a descriptor set /must/ have been--- bound to /n/ at the same pipeline bind point, with a--- 'Vulkan.Core10.Handles.PipelineLayout' that is compatible for set--- /n/, with the 'Vulkan.Core10.Handles.PipelineLayout' used to create--- the current 'Vulkan.Core10.Handles.Pipeline', as described in--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>------ - #VUID-vkCmdDispatch-maintenance4-06425# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-maintenance4 maintenance4>--- feature is not enabled, then for each push constant that is--- statically used by the 'Vulkan.Core10.Handles.Pipeline' bound to the--- pipeline bind point used by this command, a push constant value--- /must/ have been set for the same pipeline bind point, with a--- 'Vulkan.Core10.Handles.PipelineLayout' that is compatible for push--- constants, with the 'Vulkan.Core10.Handles.PipelineLayout' used to--- create the current 'Vulkan.Core10.Handles.Pipeline', as described in--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>------ - #VUID-vkCmdDispatch-None-02699# Descriptors in each bound descriptor--- set, specified via 'cmdBindDescriptorSets', /must/ be valid if they--- are statically used by the 'Vulkan.Core10.Handles.Pipeline' bound to--- the pipeline bind point used by this command------ - #VUID-vkCmdDispatch-None-02700# A valid pipeline /must/ be bound to--- the pipeline bind point used by this command------ - #VUID-vkCmdDispatch-commandBuffer-02701# If the--- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind--- point used by this command requires any dynamic state, that state--- /must/ have been set or inherited (if the--- @VK_NV_inherited_viewport_scissor@ extension is enabled) for--- @commandBuffer@, and done so after any previously bound pipeline--- with the corresponding state not specified as dynamic------ - #VUID-vkCmdDispatch-None-02859# There /must/ not have been any calls--- to dynamic state setting commands for any state not specified as--- dynamic in the 'Vulkan.Core10.Handles.Pipeline' object bound to the--- pipeline bind point used by this command, since that pipeline was--- bound------ - #VUID-vkCmdDispatch-None-02702# If the--- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind--- point used by this command accesses a--- 'Vulkan.Core10.Handles.Sampler' object that uses unnormalized--- coordinates, that sampler /must/ not be used to sample from any--- 'Vulkan.Core10.Handles.Image' with a--- 'Vulkan.Core10.Handles.ImageView' of the type--- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_3D',--- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE',--- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_1D_ARRAY',--- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_2D_ARRAY' or--- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE_ARRAY', in--- any shader stage------ - #VUID-vkCmdDispatch-None-02703# If the--- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind--- point used by this command accesses a--- 'Vulkan.Core10.Handles.Sampler' object that uses unnormalized--- coordinates, that sampler /must/ not be used with any of the SPIR-V--- @OpImageSample*@ or @OpImageSparseSample*@ instructions with--- @ImplicitLod@, @Dref@ or @Proj@ in their name, in any shader stage------ - #VUID-vkCmdDispatch-None-02704# If the--- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind--- point used by this command accesses a--- 'Vulkan.Core10.Handles.Sampler' object that uses unnormalized--- coordinates, that sampler /must/ not be used with any of the SPIR-V--- @OpImageSample*@ or @OpImageSparseSample*@ instructions that--- includes a LOD bias or any offset values, in any shader stage------ - #VUID-vkCmdDispatch-None-02705# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robust buffer access>--- feature is not enabled, and if the 'Vulkan.Core10.Handles.Pipeline'--- object bound to the pipeline bind point used by this command--- accesses a uniform buffer, it /must/ not access values outside of--- the range of the buffer as specified in the descriptor set bound to--- the same pipeline bind point------ - #VUID-vkCmdDispatch-None-02706# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robust buffer access>--- feature is not enabled, and if the 'Vulkan.Core10.Handles.Pipeline'--- object bound to the pipeline bind point used by this command--- accesses a storage buffer, it /must/ not access values outside of--- the range of the buffer as specified in the descriptor set bound to--- the same pipeline bind point------ - #VUID-vkCmdDispatch-commandBuffer-02707# If @commandBuffer@ is an--- unprotected command buffer and--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>--- is not supported, any resource accessed by the--- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind--- point used by this command /must/ not be a protected resource------ - #VUID-vkCmdDispatch-None-06550# If the--- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind--- point used by this command accesses a--- 'Vulkan.Core10.Handles.Sampler' or 'Vulkan.Core10.Handles.ImageView'--- object that enables--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion>,--- that object /must/ only be used with @OpImageSample*@ or--- @OpImageSparseSample*@ instructions------ - #VUID-vkCmdDispatch-ConstOffset-06551# If the--- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind--- point used by this command accesses a--- 'Vulkan.Core10.Handles.Sampler' or 'Vulkan.Core10.Handles.ImageView'--- object that enables--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion>,--- that object /must/ not use the @ConstOffset@ and @Offset@ operands------ - #VUID-vkCmdDispatch-None-04115# If a--- 'Vulkan.Core10.Handles.ImageView' is accessed using @OpImageWrite@--- as a result of this command, then the @Type@ of the @Texel@ operand--- of that instruction /must/ have at least as many components as the--- image view’s format------ - #VUID-vkCmdDispatch-OpImageWrite-04469# If a--- 'Vulkan.Core10.Handles.BufferView' is accessed using @OpImageWrite@--- as a result of this command, then the @Type@ of the @Texel@ operand--- of that instruction /must/ have at least as many components as the--- buffer view’s format------ - #VUID-vkCmdDispatch-SampledType-04470# If a--- 'Vulkan.Core10.Handles.ImageView' with a--- 'Vulkan.Core10.Enums.Format.Format' that has a 64-bit component--- width is accessed as a result of this command, the @SampledType@ of--- the @OpTypeImage@ operand of that instruction /must/ have a @Width@--- of 64------ - #VUID-vkCmdDispatch-SampledType-04471# If a--- 'Vulkan.Core10.Handles.ImageView' with a--- 'Vulkan.Core10.Enums.Format.Format' that has a component width less--- than 64-bit is accessed as a result of this command, the--- @SampledType@ of the @OpTypeImage@ operand of that instruction--- /must/ have a @Width@ of 32------ - #VUID-vkCmdDispatch-SampledType-04472# If a--- 'Vulkan.Core10.Handles.BufferView' with a--- 'Vulkan.Core10.Enums.Format.Format' that has a 64-bit component--- width is accessed as a result of this command, the @SampledType@ of--- the @OpTypeImage@ operand of that instruction /must/ have a @Width@--- of 64------ - #VUID-vkCmdDispatch-SampledType-04473# If a--- 'Vulkan.Core10.Handles.BufferView' with a--- 'Vulkan.Core10.Enums.Format.Format' that has a component width less--- than 64-bit is accessed as a result of this command, the--- @SampledType@ of the @OpTypeImage@ operand of that instruction--- /must/ have a @Width@ of 32------ - #VUID-vkCmdDispatch-sparseImageInt64Atomics-04474# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-sparseImageInt64Atomics sparseImageInt64Atomics>--- feature is not enabled, 'Vulkan.Core10.Handles.Image' objects--- created with the--- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SPARSE_RESIDENCY_BIT'--- flag /must/ not be accessed by atomic instructions through an--- @OpTypeImage@ with a @SampledType@ with a @Width@ of 64 by this--- command------ - #VUID-vkCmdDispatch-sparseImageInt64Atomics-04475# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-sparseImageInt64Atomics sparseImageInt64Atomics>--- feature is not enabled, 'Vulkan.Core10.Handles.Buffer' objects--- created with the--- 'Vulkan.Core10.Enums.BufferCreateFlagBits.BUFFER_CREATE_SPARSE_RESIDENCY_BIT'--- flag /must/ not be accessed by atomic instructions through an--- @OpTypeImage@ with a @SampledType@ with a @Width@ of 64 by this--- command------ - #VUID-vkCmdDispatch-commandBuffer-02712# If @commandBuffer@ is a--- protected command buffer and--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>--- is not supported, any resource written to by the--- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind--- point used by this command /must/ not be an unprotected resource------ - #VUID-vkCmdDispatch-commandBuffer-02713# If @commandBuffer@ is a--- protected command buffer and--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>--- is not supported, pipeline stages other than the framebuffer-space--- and compute stages in the 'Vulkan.Core10.Handles.Pipeline' object--- bound to the pipeline bind point used by this command /must/ not--- write to any resource------ - #VUID-vkCmdDispatch-commandBuffer-04617# If any of the shader stages--- of the 'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind--- point used by this command uses the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-RayQueryKHR RayQueryKHR>--- capability, then @commandBuffer@ /must/ not be a protected command--- buffer------ - #VUID-vkCmdDispatch-groupCountX-00386# @groupCountX@ /must/ be less--- than or equal to--- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxComputeWorkGroupCount@[0]------ - #VUID-vkCmdDispatch-groupCountY-00387# @groupCountY@ /must/ be less--- than or equal to--- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxComputeWorkGroupCount@[1]------ - #VUID-vkCmdDispatch-groupCountZ-00388# @groupCountZ@ /must/ be less--- than or equal to--- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxComputeWorkGroupCount@[2]------ == Valid Usage (Implicit)------ - #VUID-vkCmdDispatch-commandBuffer-parameter# @commandBuffer@ /must/--- be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle------ - #VUID-vkCmdDispatch-commandBuffer-recording# @commandBuffer@ /must/--- be in the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording state>------ - #VUID-vkCmdDispatch-commandBuffer-cmdpool# The--- 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was--- allocated from /must/ support compute operations------ - #VUID-vkCmdDispatch-renderpass# This command /must/ only be called--- outside of a render pass instance------ == Host Synchronization------ - Host access to @commandBuffer@ /must/ be externally synchronized------ - Host access to the 'Vulkan.Core10.Handles.CommandPool' that--- @commandBuffer@ was allocated from /must/ be externally synchronized------ == Command Properties------ \'------ +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | Primary | Outside | Compute |--- | Secondary | | |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,--- 'Vulkan.Core10.Handles.CommandBuffer'-cmdDispatch :: forall io- . (MonadIO io)- => -- | @commandBuffer@ is the command buffer into which the command will be- -- recorded.- CommandBuffer- -> -- | @groupCountX@ is the number of local workgroups to dispatch in the X- -- dimension.- ("groupCountX" ::: Word32)- -> -- | @groupCountY@ is the number of local workgroups to dispatch in the Y- -- dimension.- ("groupCountY" ::: Word32)- -> -- | @groupCountZ@ is the number of local workgroups to dispatch in the Z- -- dimension.- ("groupCountZ" ::: Word32)- -> io ()-cmdDispatch commandBuffer groupCountX groupCountY groupCountZ = liftIO $ do- let vkCmdDispatchPtr = pVkCmdDispatch (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)- unless (vkCmdDispatchPtr /= nullFunPtr) $- throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdDispatch is null" Nothing Nothing- let vkCmdDispatch' = mkVkCmdDispatch vkCmdDispatchPtr- traceAroundEvent "vkCmdDispatch" (vkCmdDispatch' (commandBufferHandle (commandBuffer)) (groupCountX) (groupCountY) (groupCountZ))- pure $ ()---foreign import ccall-#if !defined(SAFE_FOREIGN_CALLS)- unsafe-#endif- "dynamic" mkVkCmdDispatchIndirect- :: FunPtr (Ptr CommandBuffer_T -> Buffer -> DeviceSize -> IO ()) -> Ptr CommandBuffer_T -> Buffer -> DeviceSize -> IO ()---- | vkCmdDispatchIndirect - Dispatch compute work items with indirect--- parameters------ = Description------ 'cmdDispatchIndirect' behaves similarly to 'cmdDispatch' except that the--- parameters are read by the device from a buffer during execution. The--- parameters of the dispatch are encoded in a--- 'Vulkan.Core10.OtherTypes.DispatchIndirectCommand' structure taken from--- @buffer@ starting at @offset@.------ == Valid Usage------ - #VUID-vkCmdDispatchIndirect-magFilter-04553# If a--- 'Vulkan.Core10.Handles.Sampler' created with @magFilter@ or--- @minFilter@ equal to 'Vulkan.Core10.Enums.Filter.FILTER_LINEAR' and--- @compareEnable@ equal to 'Vulkan.Core10.FundamentalTypes.FALSE' is--- used to sample a 'Vulkan.Core10.Handles.ImageView' as a result of--- this command, then the image view’s--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>--- /must/ contain--- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT'------ - #VUID-vkCmdDispatchIndirect-mipmapMode-04770# If a--- 'Vulkan.Core10.Handles.Sampler' created with @mipmapMode@ equal to--- 'Vulkan.Core10.Enums.SamplerMipmapMode.SAMPLER_MIPMAP_MODE_LINEAR'--- and @compareEnable@ equal to 'Vulkan.Core10.FundamentalTypes.FALSE'--- is used to sample a 'Vulkan.Core10.Handles.ImageView' as a result of--- this command, then the image view’s--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>--- /must/ contain--- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT'------ - #VUID-vkCmdDispatchIndirect-None-06479# If a--- 'Vulkan.Core10.Handles.ImageView' is sampled with--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-depth-compare-operation depth comparison>,--- the image view’s--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>--- /must/ contain--- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT'------ - #VUID-vkCmdDispatchIndirect-None-02691# If a--- 'Vulkan.Core10.Handles.ImageView' is accessed using atomic--- operations as a result of this command, then the image view’s--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>--- /must/ contain--- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT'------ - #VUID-vkCmdDispatchIndirect-None-02692# If a--- 'Vulkan.Core10.Handles.ImageView' is sampled with--- 'Vulkan.Extensions.VK_EXT_filter_cubic.FILTER_CUBIC_EXT' as a result--- of this command, then the image view’s--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>--- /must/ contain--- 'Vulkan.Extensions.VK_EXT_filter_cubic.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT'------ - #VUID-vkCmdDispatchIndirect-filterCubic-02694# Any--- 'Vulkan.Core10.Handles.ImageView' being sampled with--- 'Vulkan.Extensions.VK_EXT_filter_cubic.FILTER_CUBIC_EXT' as a result--- of this command /must/ have a--- 'Vulkan.Core10.Enums.ImageViewType.ImageViewType' and format that--- supports cubic filtering, as specified by--- 'Vulkan.Extensions.VK_EXT_filter_cubic.FilterCubicImageViewImageFormatPropertiesEXT'::@filterCubic@--- returned by--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceImageFormatProperties2'------ - #VUID-vkCmdDispatchIndirect-filterCubicMinmax-02695# Any--- 'Vulkan.Core10.Handles.ImageView' being sampled with--- 'Vulkan.Extensions.VK_EXT_filter_cubic.FILTER_CUBIC_EXT' with a--- reduction mode of either--- 'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MIN'--- or--- 'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MAX'--- as a result of this command /must/ have a--- 'Vulkan.Core10.Enums.ImageViewType.ImageViewType' and format that--- supports cubic filtering together with minmax filtering, as--- specified by--- 'Vulkan.Extensions.VK_EXT_filter_cubic.FilterCubicImageViewImageFormatPropertiesEXT'::@filterCubicMinmax@--- returned by--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceImageFormatProperties2'------ - #VUID-vkCmdDispatchIndirect-flags-02696# Any--- 'Vulkan.Core10.Handles.Image' created with a--- 'Vulkan.Core10.Image.ImageCreateInfo'::@flags@ containing--- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_CORNER_SAMPLED_BIT_NV'--- sampled as a result of this command /must/ only be sampled using a--- 'Vulkan.Core10.Enums.SamplerAddressMode.SamplerAddressMode' of--- 'Vulkan.Core10.Enums.SamplerAddressMode.SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE'------ - #VUID-vkCmdDispatchIndirect-OpTypeImage-06423# Any--- 'Vulkan.Core10.Handles.ImageView' or--- 'Vulkan.Core10.Handles.BufferView' being written as a storage image--- or storage texel buffer where the image format field of the--- @OpTypeImage@ is @Unknown@ then the view’s format feature /must/--- contain--- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT'------ - #VUID-vkCmdDispatchIndirect-OpTypeImage-06424# Any--- 'Vulkan.Core10.Handles.ImageView' or--- 'Vulkan.Core10.Handles.BufferView' being read as a storage image or--- storage texel buffer where the image format field of the--- @OpTypeImage@ is @Unknown@ then the view’s format feature /must/--- contain--- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT'------ - #VUID-vkCmdDispatchIndirect-None-02697# For each set /n/ that is--- statically used by the 'Vulkan.Core10.Handles.Pipeline' bound to the--- pipeline bind point used by this command, a descriptor set /must/--- have been bound to /n/ at the same pipeline bind point, with a--- 'Vulkan.Core10.Handles.PipelineLayout' that is compatible for set--- /n/, with the 'Vulkan.Core10.Handles.PipelineLayout' used to create--- the current 'Vulkan.Core10.Handles.Pipeline', as described in--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>------ - #VUID-vkCmdDispatchIndirect-maintenance4-06425# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-maintenance4 maintenance4>--- feature is not enabled, then for each push constant that is--- statically used by the 'Vulkan.Core10.Handles.Pipeline' bound to the--- pipeline bind point used by this command, a push constant value--- /must/ have been set for the same pipeline bind point, with a--- 'Vulkan.Core10.Handles.PipelineLayout' that is compatible for push--- constants, with the 'Vulkan.Core10.Handles.PipelineLayout' used to--- create the current 'Vulkan.Core10.Handles.Pipeline', as described in--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>------ - #VUID-vkCmdDispatchIndirect-None-02699# Descriptors in each bound--- descriptor set, specified via 'cmdBindDescriptorSets', /must/ be--- valid if they are statically used by the--- 'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind point--- used by this command------ - #VUID-vkCmdDispatchIndirect-None-02700# A valid pipeline /must/ be--- bound to the pipeline bind point used by this command------ - #VUID-vkCmdDispatchIndirect-commandBuffer-02701# If the--- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind--- point used by this command requires any dynamic state, that state--- /must/ have been set or inherited (if the--- @VK_NV_inherited_viewport_scissor@ extension is enabled) for--- @commandBuffer@, and done so after any previously bound pipeline--- with the corresponding state not specified as dynamic------ - #VUID-vkCmdDispatchIndirect-None-02859# There /must/ not have been--- any calls to dynamic state setting commands for any state not--- specified as dynamic in the 'Vulkan.Core10.Handles.Pipeline' object--- bound to the pipeline bind point used by this command, since that--- pipeline was bound------ - #VUID-vkCmdDispatchIndirect-None-02702# If the--- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind--- point used by this command accesses a--- 'Vulkan.Core10.Handles.Sampler' object that uses unnormalized--- coordinates, that sampler /must/ not be used to sample from any--- 'Vulkan.Core10.Handles.Image' with a--- 'Vulkan.Core10.Handles.ImageView' of the type--- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_3D',--- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE',--- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_1D_ARRAY',--- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_2D_ARRAY' or--- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE_ARRAY', in--- any shader stage------ - #VUID-vkCmdDispatchIndirect-None-02703# If the--- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind--- point used by this command accesses a--- 'Vulkan.Core10.Handles.Sampler' object that uses unnormalized--- coordinates, that sampler /must/ not be used with any of the SPIR-V--- @OpImageSample*@ or @OpImageSparseSample*@ instructions with--- @ImplicitLod@, @Dref@ or @Proj@ in their name, in any shader stage------ - #VUID-vkCmdDispatchIndirect-None-02704# If the--- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind--- point used by this command accesses a--- 'Vulkan.Core10.Handles.Sampler' object that uses unnormalized--- coordinates, that sampler /must/ not be used with any of the SPIR-V--- @OpImageSample*@ or @OpImageSparseSample*@ instructions that--- includes a LOD bias or any offset values, in any shader stage------ - #VUID-vkCmdDispatchIndirect-None-02705# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robust buffer access>--- feature is not enabled, and if the 'Vulkan.Core10.Handles.Pipeline'--- object bound to the pipeline bind point used by this command--- accesses a uniform buffer, it /must/ not access values outside of--- the range of the buffer as specified in the descriptor set bound to--- the same pipeline bind point------ - #VUID-vkCmdDispatchIndirect-None-02706# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robust buffer access>--- feature is not enabled, and if the 'Vulkan.Core10.Handles.Pipeline'--- object bound to the pipeline bind point used by this command--- accesses a storage buffer, it /must/ not access values outside of--- the range of the buffer as specified in the descriptor set bound to--- the same pipeline bind point------ - #VUID-vkCmdDispatchIndirect-commandBuffer-02707# If @commandBuffer@--- is an unprotected command buffer and--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>--- is not supported, any resource accessed by the--- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind--- point used by this command /must/ not be a protected resource------ - #VUID-vkCmdDispatchIndirect-None-06550# If the--- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind--- point used by this command accesses a--- 'Vulkan.Core10.Handles.Sampler' or 'Vulkan.Core10.Handles.ImageView'--- object that enables--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion>,--- that object /must/ only be used with @OpImageSample*@ or--- @OpImageSparseSample*@ instructions------ - #VUID-vkCmdDispatchIndirect-ConstOffset-06551# If the--- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind--- point used by this command accesses a--- 'Vulkan.Core10.Handles.Sampler' or 'Vulkan.Core10.Handles.ImageView'--- object that enables--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion>,--- that object /must/ not use the @ConstOffset@ and @Offset@ operands------ - #VUID-vkCmdDispatchIndirect-None-04115# If a--- 'Vulkan.Core10.Handles.ImageView' is accessed using @OpImageWrite@--- as a result of this command, then the @Type@ of the @Texel@ operand--- of that instruction /must/ have at least as many components as the--- image view’s format------ - #VUID-vkCmdDispatchIndirect-OpImageWrite-04469# If a--- 'Vulkan.Core10.Handles.BufferView' is accessed using @OpImageWrite@--- as a result of this command, then the @Type@ of the @Texel@ operand--- of that instruction /must/ have at least as many components as the--- buffer view’s format------ - #VUID-vkCmdDispatchIndirect-SampledType-04470# If a--- 'Vulkan.Core10.Handles.ImageView' with a--- 'Vulkan.Core10.Enums.Format.Format' that has a 64-bit component--- width is accessed as a result of this command, the @SampledType@ of--- the @OpTypeImage@ operand of that instruction /must/ have a @Width@--- of 64------ - #VUID-vkCmdDispatchIndirect-SampledType-04471# If a--- 'Vulkan.Core10.Handles.ImageView' with a--- 'Vulkan.Core10.Enums.Format.Format' that has a component width less--- than 64-bit is accessed as a result of this command, the--- @SampledType@ of the @OpTypeImage@ operand of that instruction--- /must/ have a @Width@ of 32------ - #VUID-vkCmdDispatchIndirect-SampledType-04472# If a--- 'Vulkan.Core10.Handles.BufferView' with a--- 'Vulkan.Core10.Enums.Format.Format' that has a 64-bit component--- width is accessed as a result of this command, the @SampledType@ of--- the @OpTypeImage@ operand of that instruction /must/ have a @Width@--- of 64------ - #VUID-vkCmdDispatchIndirect-SampledType-04473# If a--- 'Vulkan.Core10.Handles.BufferView' with a--- 'Vulkan.Core10.Enums.Format.Format' that has a component width less--- than 64-bit is accessed as a result of this command, the--- @SampledType@ of the @OpTypeImage@ operand of that instruction--- /must/ have a @Width@ of 32------ - #VUID-vkCmdDispatchIndirect-sparseImageInt64Atomics-04474# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-sparseImageInt64Atomics sparseImageInt64Atomics>--- feature is not enabled, 'Vulkan.Core10.Handles.Image' objects--- created with the--- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SPARSE_RESIDENCY_BIT'--- flag /must/ not be accessed by atomic instructions through an--- @OpTypeImage@ with a @SampledType@ with a @Width@ of 64 by this--- command------ - #VUID-vkCmdDispatchIndirect-sparseImageInt64Atomics-04475# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-sparseImageInt64Atomics sparseImageInt64Atomics>--- feature is not enabled, 'Vulkan.Core10.Handles.Buffer' objects--- created with the--- 'Vulkan.Core10.Enums.BufferCreateFlagBits.BUFFER_CREATE_SPARSE_RESIDENCY_BIT'--- flag /must/ not be accessed by atomic instructions through an--- @OpTypeImage@ with a @SampledType@ with a @Width@ of 64 by this--- command------ - #VUID-vkCmdDispatchIndirect-buffer-02708# If @buffer@ is non-sparse--- then it /must/ be bound completely and contiguously to a single--- 'Vulkan.Core10.Handles.DeviceMemory' object------ - #VUID-vkCmdDispatchIndirect-buffer-02709# @buffer@ /must/ have been--- created with the--- 'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_INDIRECT_BUFFER_BIT'--- bit set------ - #VUID-vkCmdDispatchIndirect-offset-02710# @offset@ /must/ be a--- multiple of @4@------ - #VUID-vkCmdDispatchIndirect-commandBuffer-02711# @commandBuffer@--- /must/ not be a protected command buffer------ - #VUID-vkCmdDispatchIndirect-offset-00407# The sum of @offset@ and--- the size of 'Vulkan.Core10.OtherTypes.DispatchIndirectCommand'--- /must/ be less than or equal to the size of @buffer@------ == Valid Usage (Implicit)------ - #VUID-vkCmdDispatchIndirect-commandBuffer-parameter# @commandBuffer@--- /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle------ - #VUID-vkCmdDispatchIndirect-buffer-parameter# @buffer@ /must/ be a--- valid 'Vulkan.Core10.Handles.Buffer' handle------ - #VUID-vkCmdDispatchIndirect-commandBuffer-recording# @commandBuffer@--- /must/ be in the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording state>------ - #VUID-vkCmdDispatchIndirect-commandBuffer-cmdpool# The--- 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was--- allocated from /must/ support compute operations------ - #VUID-vkCmdDispatchIndirect-renderpass# This command /must/ only be--- called outside of a render pass instance------ - #VUID-vkCmdDispatchIndirect-commonparent# Both of @buffer@, and--- @commandBuffer@ /must/ have been created, allocated, or retrieved--- from the same 'Vulkan.Core10.Handles.Device'------ == Host Synchronization------ - Host access to @commandBuffer@ /must/ be externally synchronized------ - Host access to the 'Vulkan.Core10.Handles.CommandPool' that--- @commandBuffer@ was allocated from /must/ be externally synchronized------ == Command Properties------ \'------ +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | Primary | Outside | Compute |--- | Secondary | | |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,--- 'Vulkan.Core10.Handles.Buffer', 'Vulkan.Core10.Handles.CommandBuffer',--- 'Vulkan.Core10.FundamentalTypes.DeviceSize'-cmdDispatchIndirect :: forall io- . (MonadIO io)- => -- | @commandBuffer@ is the command buffer into which the command will be- -- recorded.- CommandBuffer- -> -- | @buffer@ is the buffer containing dispatch parameters.- Buffer- -> -- | @offset@ is the byte offset into @buffer@ where parameters begin.- ("offset" ::: DeviceSize)- -> io ()-cmdDispatchIndirect commandBuffer buffer offset = liftIO $ do- let vkCmdDispatchIndirectPtr = pVkCmdDispatchIndirect (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)- unless (vkCmdDispatchIndirectPtr /= nullFunPtr) $- throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdDispatchIndirect is null" Nothing Nothing- let vkCmdDispatchIndirect' = mkVkCmdDispatchIndirect vkCmdDispatchIndirectPtr- traceAroundEvent "vkCmdDispatchIndirect" (vkCmdDispatchIndirect' (commandBufferHandle (commandBuffer)) (buffer) (offset))- pure $ ()---foreign import ccall-#if !defined(SAFE_FOREIGN_CALLS)- unsafe-#endif- "dynamic" mkVkCmdCopyBuffer- :: FunPtr (Ptr CommandBuffer_T -> Buffer -> Buffer -> Word32 -> Ptr BufferCopy -> IO ()) -> Ptr CommandBuffer_T -> Buffer -> Buffer -> Word32 -> Ptr BufferCopy -> IO ()---- | vkCmdCopyBuffer - Copy data between buffer regions------ = Description------ Each region in @pRegions@ is copied from the source buffer to the same--- region of the destination buffer. @srcBuffer@ and @dstBuffer@ /can/ be--- the same buffer or alias the same memory, but the resulting values are--- undefined if the copy regions overlap in memory.------ == Valid Usage------ - #VUID-vkCmdCopyBuffer-commandBuffer-01822# If @commandBuffer@ is an--- unprotected command buffer and--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>--- is not supported, @srcBuffer@ /must/ not be a protected buffer------ - #VUID-vkCmdCopyBuffer-commandBuffer-01823# If @commandBuffer@ is an--- unprotected command buffer and--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>--- is not supported, @dstBuffer@ /must/ not be a protected buffer------ - #VUID-vkCmdCopyBuffer-commandBuffer-01824# If @commandBuffer@ is a--- protected command buffer and--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>--- is not supported, @dstBuffer@ /must/ not be an unprotected buffer------ - #VUID-vkCmdCopyBuffer-srcOffset-00113# The @srcOffset@ member of--- each element of @pRegions@ /must/ be less than the size of--- @srcBuffer@------ - #VUID-vkCmdCopyBuffer-dstOffset-00114# The @dstOffset@ member of--- each element of @pRegions@ /must/ be less than the size of--- @dstBuffer@------ - #VUID-vkCmdCopyBuffer-size-00115# The @size@ member of each element--- of @pRegions@ /must/ be less than or equal to the size of--- @srcBuffer@ minus @srcOffset@------ - #VUID-vkCmdCopyBuffer-size-00116# The @size@ member of each element--- of @pRegions@ /must/ be less than or equal to the size of--- @dstBuffer@ minus @dstOffset@------ - #VUID-vkCmdCopyBuffer-pRegions-00117# The union of the source--- regions, and the union of the destination regions, specified by the--- elements of @pRegions@, /must/ not overlap in memory------ - #VUID-vkCmdCopyBuffer-srcBuffer-00118# @srcBuffer@ /must/ have been--- created with--- 'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_TRANSFER_SRC_BIT'--- usage flag------ - #VUID-vkCmdCopyBuffer-srcBuffer-00119# If @srcBuffer@ is non-sparse--- then it /must/ be bound completely and contiguously to a single--- 'Vulkan.Core10.Handles.DeviceMemory' object------ - #VUID-vkCmdCopyBuffer-dstBuffer-00120# @dstBuffer@ /must/ have been--- created with--- 'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_TRANSFER_DST_BIT'--- usage flag------ - #VUID-vkCmdCopyBuffer-dstBuffer-00121# If @dstBuffer@ is non-sparse--- then it /must/ be bound completely and contiguously to a single--- 'Vulkan.Core10.Handles.DeviceMemory' object------ == Valid Usage (Implicit)------ - #VUID-vkCmdCopyBuffer-commandBuffer-parameter# @commandBuffer@--- /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle------ - #VUID-vkCmdCopyBuffer-srcBuffer-parameter# @srcBuffer@ /must/ be a--- valid 'Vulkan.Core10.Handles.Buffer' handle------ - #VUID-vkCmdCopyBuffer-dstBuffer-parameter# @dstBuffer@ /must/ be a--- valid 'Vulkan.Core10.Handles.Buffer' handle------ - #VUID-vkCmdCopyBuffer-pRegions-parameter# @pRegions@ /must/ be a--- valid pointer to an array of @regionCount@ valid 'BufferCopy'--- structures------ - #VUID-vkCmdCopyBuffer-commandBuffer-recording# @commandBuffer@--- /must/ be in the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording state>------ - #VUID-vkCmdCopyBuffer-commandBuffer-cmdpool# The--- 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was--- allocated from /must/ support transfer, graphics, or compute--- operations------ - #VUID-vkCmdCopyBuffer-renderpass# This command /must/ only be called--- outside of a render pass instance------ - #VUID-vkCmdCopyBuffer-regionCount-arraylength# @regionCount@ /must/--- be greater than @0@------ - #VUID-vkCmdCopyBuffer-commonparent# Each of @commandBuffer@,--- @dstBuffer@, and @srcBuffer@ /must/ have been created, allocated, or--- retrieved from the same 'Vulkan.Core10.Handles.Device'------ == Host Synchronization------ - Host access to @commandBuffer@ /must/ be externally synchronized------ - Host access to the 'Vulkan.Core10.Handles.CommandPool' that--- @commandBuffer@ was allocated from /must/ be externally synchronized------ == Command Properties------ \'------ +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | Primary | Outside | Transfer |--- | Secondary | | Graphics |--- | | | Compute |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,--- 'Vulkan.Core10.Handles.Buffer', 'BufferCopy',--- 'Vulkan.Core10.Handles.CommandBuffer'-cmdCopyBuffer :: forall io- . (MonadIO io)- => -- | @commandBuffer@ is the command buffer into which the command will be- -- recorded.- CommandBuffer- -> -- | @srcBuffer@ is the source buffer.- ("srcBuffer" ::: Buffer)- -> -- | @dstBuffer@ is the destination buffer.- ("dstBuffer" ::: Buffer)- -> -- | @pRegions@ is a pointer to an array of 'BufferCopy' structures- -- specifying the regions to copy.- ("regions" ::: Vector BufferCopy)- -> io ()-cmdCopyBuffer commandBuffer srcBuffer dstBuffer regions = liftIO . evalContT $ do- let vkCmdCopyBufferPtr = pVkCmdCopyBuffer (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)- lift $ unless (vkCmdCopyBufferPtr /= nullFunPtr) $- throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdCopyBuffer is null" Nothing Nothing- let vkCmdCopyBuffer' = mkVkCmdCopyBuffer vkCmdCopyBufferPtr- pPRegions <- ContT $ allocaBytes @BufferCopy ((Data.Vector.length (regions)) * 24)- lift $ Data.Vector.imapM_ (\i e -> poke (pPRegions `plusPtr` (24 * (i)) :: Ptr BufferCopy) (e)) (regions)- lift $ traceAroundEvent "vkCmdCopyBuffer" (vkCmdCopyBuffer' (commandBufferHandle (commandBuffer)) (srcBuffer) (dstBuffer) ((fromIntegral (Data.Vector.length $ (regions)) :: Word32)) (pPRegions))- pure $ ()---foreign import ccall-#if !defined(SAFE_FOREIGN_CALLS)- unsafe-#endif- "dynamic" mkVkCmdCopyImage- :: FunPtr (Ptr CommandBuffer_T -> Image -> ImageLayout -> Image -> ImageLayout -> Word32 -> Ptr ImageCopy -> IO ()) -> Ptr CommandBuffer_T -> Image -> ImageLayout -> Image -> ImageLayout -> Word32 -> Ptr ImageCopy -> IO ()---- | vkCmdCopyImage - Copy data between images------ = Description------ Each region in @pRegions@ is copied from the source image to the same--- region of the destination image. @srcImage@ and @dstImage@ /can/ be the--- same image or alias the same memory.------ The formats of @srcImage@ and @dstImage@ /must/ be compatible. Formats--- are compatible if they share the same class, as shown in the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#formats-compatibility Compatible Formats>--- table. Depth\/stencil formats /must/ match exactly.------ If either @srcImage@ or @dstImage@ has a--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar format>,--- regions of each plane to be copied /must/ be specified separately using--- the @srcSubresource@ and @dstSubresource@ members of the 'ImageCopy'--- structure. In this case, the @aspectMask@ of the @srcSubresource@ or--- @dstSubresource@ that refers to the multi-planar image /must/ be--- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_0_BIT',--- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_1_BIT', or--- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_2_BIT'. For--- the purposes of 'cmdCopyImage', each plane of a multi-planar image is--- treated as having the format listed in--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#formats-compatible-planes>--- for the plane identified by the @aspectMask@ of the corresponding--- subresource. This applies both to 'Vulkan.Core10.Enums.Format.Format'--- and to coordinates used in the copy, which correspond to texels in the--- /plane/ rather than how these texels map to coordinates in the image as--- a whole.------ Note------ For example, the--- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_1_BIT' plane--- of a 'Vulkan.Core10.Enums.Format.FORMAT_G8_B8R8_2PLANE_420_UNORM' image--- is compatible with an image of format--- 'Vulkan.Core10.Enums.Format.FORMAT_R8G8_UNORM' and (less usefully) with--- the 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_0_BIT'--- plane of an image of format--- 'Vulkan.Core10.Enums.Format.FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16',--- as each texel is 2 bytes in size.------ 'cmdCopyImage' allows copying between /size-compatible/ compressed and--- uncompressed internal formats. Formats are size-compatible if the texel--- block size of the uncompressed format is equal to the texel block size--- of the compressed format. Such a copy does not perform on-the-fly--- compression or decompression. When copying from an uncompressed format--- to a compressed format, each texel of uncompressed data of the source--- image is copied as a raw value to the corresponding compressed texel--- block of the destination image. When copying from a compressed format to--- an uncompressed format, each compressed texel block of the source image--- is copied as a raw value to the corresponding texel of uncompressed data--- in the destination image. Thus, for example, it is legal to copy between--- a 128-bit uncompressed format and a compressed format which has a--- 128-bit sized compressed texel block representing 4×4 texels (using 8--- bits per texel), or between a 64-bit uncompressed format and a--- compressed format which has a 64-bit sized compressed texel block--- representing 4×4 texels (using 4 bits per texel).------ When copying between compressed and uncompressed formats the @extent@--- members represent the texel dimensions of the source image and not the--- destination. When copying from a compressed image to an uncompressed--- image the image texel dimensions written to the uncompressed image will--- be source extent divided by the compressed texel block dimensions. When--- copying from an uncompressed image to a compressed image the image texel--- dimensions written to the compressed image will be the source extent--- multiplied by the compressed texel block dimensions. In both cases the--- number of bytes read and the number of bytes written will be identical.------ Copying to or from block-compressed images is typically done in--- multiples of the compressed texel block size. For this reason the--- @extent@ /must/ be a multiple of the compressed texel block dimension.--- There is one exception to this rule which is /required/ to handle--- compressed images created with dimensions that are not a multiple of the--- compressed texel block dimensions: if the @srcImage@ is compressed,--- then:------ - If @extent.width@ is not a multiple of the compressed texel block--- width, then (@extent.width@ + @srcOffset.x@) /must/ equal the image--- subresource width.------ - If @extent.height@ is not a multiple of the compressed texel block--- height, then (@extent.height@ + @srcOffset.y@) /must/ equal the--- image subresource height.------ - If @extent.depth@ is not a multiple of the compressed texel block--- depth, then (@extent.depth@ + @srcOffset.z@) /must/ equal the image--- subresource depth.------ Similarly, if the @dstImage@ is compressed, then:------ - If @extent.width@ is not a multiple of the compressed texel block--- width, then (@extent.width@ + @dstOffset.x@) /must/ equal the image--- subresource width.------ - If @extent.height@ is not a multiple of the compressed texel block--- height, then (@extent.height@ + @dstOffset.y@) /must/ equal the--- image subresource height.------ - If @extent.depth@ is not a multiple of the compressed texel block--- depth, then (@extent.depth@ + @dstOffset.z@) /must/ equal the image--- subresource depth.------ This allows the last compressed texel block of the image in each--- non-multiple dimension to be included as a source or destination of the--- copy.------ “@_422@” image formats that are not--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar>--- are treated as having a 2×1 compressed texel block for the purposes of--- these rules.------ 'cmdCopyImage' /can/ be used to copy image data between multisample--- images, but both images /must/ have the same number of samples.------ == Valid Usage------ - #VUID-vkCmdCopyImage-commandBuffer-01825# If @commandBuffer@ is an--- unprotected command buffer and--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>--- is not supported, @srcImage@ /must/ not be a protected image------ - #VUID-vkCmdCopyImage-commandBuffer-01826# If @commandBuffer@ is an--- unprotected command buffer and--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>--- is not supported, @dstImage@ /must/ not be a protected image------ - #VUID-vkCmdCopyImage-commandBuffer-01827# If @commandBuffer@ is a--- protected command buffer and--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>--- is not supported, @dstImage@ /must/ not be an unprotected image------ - #VUID-vkCmdCopyImage-pRegions-00124# The union of all source--- regions, and the union of all destination regions, specified by the--- elements of @pRegions@, /must/ not overlap in memory------ - #VUID-vkCmdCopyImage-srcImage-01995# The--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-format-features format features>--- of @srcImage@ /must/ contain--- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_TRANSFER_SRC_BIT'------ - #VUID-vkCmdCopyImage-srcImage-01546# If @srcImage@ is non-sparse--- then the image or /disjoint/ plane to be copied /must/ be bound--- completely and contiguously to a single--- 'Vulkan.Core10.Handles.DeviceMemory' object------ - #VUID-vkCmdCopyImage-srcImageLayout-00128# @srcImageLayout@ /must/--- specify the layout of the image subresources of @srcImage@ specified--- in @pRegions@ at the time this command is executed on a--- 'Vulkan.Core10.Handles.Device'------ - #VUID-vkCmdCopyImage-srcImageLayout-01917# @srcImageLayout@ /must/--- be--- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL',--- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_GENERAL', or--- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_SHARED_PRESENT_KHR'------ - #VUID-vkCmdCopyImage-dstImage-01996# The--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-format-features format features>--- of @dstImage@ /must/ contain--- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_TRANSFER_DST_BIT'------ - #VUID-vkCmdCopyImage-dstImage-01547# If @dstImage@ is non-sparse--- then the image or /disjoint/ plane that is the destination of the--- copy /must/ be bound completely and contiguously to a single--- 'Vulkan.Core10.Handles.DeviceMemory' object------ - #VUID-vkCmdCopyImage-dstImageLayout-00133# @dstImageLayout@ /must/--- specify the layout of the image subresources of @dstImage@ specified--- in @pRegions@ at the time this command is executed on a--- 'Vulkan.Core10.Handles.Device'------ - #VUID-vkCmdCopyImage-dstImageLayout-01395# @dstImageLayout@ /must/--- be--- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL',--- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_GENERAL', or--- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_SHARED_PRESENT_KHR'------ - #VUID-vkCmdCopyImage-srcImage-01548# If the--- 'Vulkan.Core10.Enums.Format.Format' of each of @srcImage@ and--- @dstImage@ is not a--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar format>,--- the 'Vulkan.Core10.Enums.Format.Format' of each of @srcImage@ and--- @dstImage@ /must/ be compatible, as defined--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#copies-images-format-compatibility above>------ - #VUID-vkCmdCopyImage-None-01549# In a copy to or from a plane of a--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar image>,--- the 'Vulkan.Core10.Enums.Format.Format' of the image and plane--- /must/ be compatible according to--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatible-planes the description of compatible planes>--- for the plane being copied------ - #VUID-vkCmdCopyImage-srcImage-00136# The sample count of @srcImage@--- and @dstImage@ /must/ match------ - #VUID-vkCmdCopyImage-srcSubresource-01696# The--- @srcSubresource.mipLevel@ member of each element of @pRegions@--- /must/ be less than the @mipLevels@ specified in--- 'Vulkan.Core10.Image.ImageCreateInfo' when @srcImage@ was created------ - #VUID-vkCmdCopyImage-dstSubresource-01697# The--- @dstSubresource.mipLevel@ member of each element of @pRegions@--- /must/ be less than the @mipLevels@ specified in--- 'Vulkan.Core10.Image.ImageCreateInfo' when @dstImage@ was created------ - #VUID-vkCmdCopyImage-srcSubresource-01698# The--- @srcSubresource.baseArrayLayer@ + @srcSubresource.layerCount@ of--- each element of @pRegions@ /must/ be less than or equal to the--- @arrayLayers@ specified in 'Vulkan.Core10.Image.ImageCreateInfo'--- when @srcImage@ was created------ - #VUID-vkCmdCopyImage-dstSubresource-01699# The--- @dstSubresource.baseArrayLayer@ + @dstSubresource.layerCount@ of--- each element of @pRegions@ /must/ be less than or equal to the--- @arrayLayers@ specified in 'Vulkan.Core10.Image.ImageCreateInfo'--- when @dstImage@ was created------ - #VUID-vkCmdCopyImage-srcOffset-01783# The @srcOffset@ and @extent@--- members of each element of @pRegions@ /must/ respect the image--- transfer granularity requirements of @commandBuffer@’s command--- pool’s queue family, as described in--- 'Vulkan.Core10.DeviceInitialization.QueueFamilyProperties'------ - #VUID-vkCmdCopyImage-dstOffset-01784# The @dstOffset@ and @extent@--- members of each element of @pRegions@ /must/ respect the image--- transfer granularity requirements of @commandBuffer@’s command--- pool’s queue family, as described in--- 'Vulkan.Core10.DeviceInitialization.QueueFamilyProperties'------ - #VUID-vkCmdCopyImage-dstImage-02542# @dstImage@ and @srcImage@--- /must/ not have been created with @flags@ containing--- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SUBSAMPLED_BIT_EXT'------ - #VUID-vkCmdCopyImage-srcImage-01551# If neither @srcImage@ nor--- @dstImage@ has a--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar image format>--- then for each element of @pRegions@, @srcSubresource.aspectMask@ and--- @dstSubresource.aspectMask@ /must/ match------ - #VUID-vkCmdCopyImage-srcImage-01552# If @srcImage@ has a--- 'Vulkan.Core10.Enums.Format.Format' with--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion two planes>--- then for each element of @pRegions@, @srcSubresource.aspectMask@--- /must/ be--- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_0_BIT'--- or--- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_1_BIT'------ - #VUID-vkCmdCopyImage-srcImage-01553# If @srcImage@ has a--- 'Vulkan.Core10.Enums.Format.Format' with--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion three planes>--- then for each element of @pRegions@, @srcSubresource.aspectMask@--- /must/ be--- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_0_BIT',--- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_1_BIT',--- or--- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_2_BIT'------ - #VUID-vkCmdCopyImage-dstImage-01554# If @dstImage@ has a--- 'Vulkan.Core10.Enums.Format.Format' with--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion two planes>--- then for each element of @pRegions@, @dstSubresource.aspectMask@--- /must/ be--- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_0_BIT'--- or--- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_1_BIT'------ - #VUID-vkCmdCopyImage-dstImage-01555# If @dstImage@ has a--- 'Vulkan.Core10.Enums.Format.Format' with--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion three planes>--- then for each element of @pRegions@, @dstSubresource.aspectMask@--- /must/ be--- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_0_BIT',--- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_1_BIT',--- or--- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_2_BIT'------ - #VUID-vkCmdCopyImage-srcImage-01556# If @srcImage@ has a--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar image format>--- and the @dstImage@ does not have a multi-planar image format, then--- for each element of @pRegions@, @dstSubresource.aspectMask@ /must/--- be 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_COLOR_BIT'------ - #VUID-vkCmdCopyImage-dstImage-01557# If @dstImage@ has a--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar image format>--- and the @srcImage@ does not have a multi-planar image format, then--- for each element of @pRegions@, @srcSubresource.aspectMask@ /must/--- be 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_COLOR_BIT'------ - #VUID-vkCmdCopyImage-srcImage-04443# If @srcImage@ is of type--- 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_3D', then for each element--- of @pRegions@, @srcSubresource.baseArrayLayer@ /must/ be @0@ and--- @srcSubresource.layerCount@ /must/ be @1@------ - #VUID-vkCmdCopyImage-dstImage-04444# If @dstImage@ is of type--- 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_3D', then for each element--- of @pRegions@, @dstSubresource.baseArrayLayer@ /must/ be @0@ and--- @dstSubresource.layerCount@ /must/ be @1@------ - #VUID-vkCmdCopyImage-aspectMask-00142# For each element of--- @pRegions@, @srcSubresource.aspectMask@ /must/ specify aspects--- present in @srcImage@------ - #VUID-vkCmdCopyImage-aspectMask-00143# For each element of--- @pRegions@, @dstSubresource.aspectMask@ /must/ specify aspects--- present in @dstImage@------ - #VUID-vkCmdCopyImage-srcOffset-00144# For each element of--- @pRegions@, @srcOffset.x@ and (@extent.width@ + @srcOffset.x@)--- /must/ both be greater than or equal to @0@ and less than or equal--- to the width of the specified @srcSubresource@ of @srcImage@------ - #VUID-vkCmdCopyImage-srcOffset-00145# For each element of--- @pRegions@, @srcOffset.y@ and (@extent.height@ + @srcOffset.y@)--- /must/ both be greater than or equal to @0@ and less than or equal--- to the height of the specified @srcSubresource@ of @srcImage@------ - #VUID-vkCmdCopyImage-srcImage-00146# If @srcImage@ is of type--- 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_1D', then for each element--- of @pRegions@, @srcOffset.y@ /must/ be @0@ and @extent.height@--- /must/ be @1@------ - #VUID-vkCmdCopyImage-srcOffset-00147# For each element of--- @pRegions@, @srcOffset.z@ and (@extent.depth@ + @srcOffset.z@)--- /must/ both be greater than or equal to @0@ and less than or equal--- to the depth of the specified @srcSubresource@ of @srcImage@------ - #VUID-vkCmdCopyImage-srcImage-01785# If @srcImage@ is of type--- 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_1D', then for each element--- of @pRegions@, @srcOffset.z@ /must/ be @0@ and @extent.depth@ /must/--- be @1@------ - #VUID-vkCmdCopyImage-dstImage-01786# If @dstImage@ is of type--- 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_1D', then for each element--- of @pRegions@, @dstOffset.z@ /must/ be @0@ and @extent.depth@ /must/--- be @1@------ - #VUID-vkCmdCopyImage-srcImage-01787# If @srcImage@ is of type--- 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D', then for each element--- of @pRegions@, @srcOffset.z@ /must/ be @0@------ - #VUID-vkCmdCopyImage-dstImage-01788# If @dstImage@ is of type--- 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D', then for each element--- of @pRegions@, @dstOffset.z@ /must/ be @0@------ - #VUID-vkCmdCopyImage-srcImage-01790# If @srcImage@ and @dstImage@--- are both of type 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D', then--- for each element of @pRegions@, @extent.depth@ /must/ be @1@------ - #VUID-vkCmdCopyImage-srcImage-01791# If @srcImage@ is of type--- 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D', and @dstImage@ is of--- type 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_3D', then for each--- element of @pRegions@, @extent.depth@ /must/ equal--- @srcSubresource.layerCount@------ - #VUID-vkCmdCopyImage-dstImage-01792# If @dstImage@ is of type--- 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D', and @srcImage@ is of--- type 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_3D', then for each--- element of @pRegions@, @extent.depth@ /must/ equal--- @dstSubresource.layerCount@------ - #VUID-vkCmdCopyImage-dstOffset-00150# For each element of--- @pRegions@, @dstOffset.x@ and (@extent.width@ + @dstOffset.x@)--- /must/ both be greater than or equal to @0@ and less than or equal--- to the width of the specified @dstSubresource@ of @dstImage@------ - #VUID-vkCmdCopyImage-dstOffset-00151# For each element of--- @pRegions@, @dstOffset.y@ and (@extent.height@ + @dstOffset.y@)--- /must/ both be greater than or equal to @0@ and less than or equal--- to the height of the specified @dstSubresource@ of @dstImage@------ - #VUID-vkCmdCopyImage-dstImage-00152# If @dstImage@ is of type--- 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_1D', then for each element--- of @pRegions@, @dstOffset.y@ /must/ be @0@ and @extent.height@--- /must/ be @1@------ - #VUID-vkCmdCopyImage-dstOffset-00153# For each element of--- @pRegions@, @dstOffset.z@ and (@extent.depth@ + @dstOffset.z@)--- /must/ both be greater than or equal to @0@ and less than or equal--- to the depth of the specified @dstSubresource@ of @dstImage@------ - #VUID-vkCmdCopyImage-srcImage-01727# If @srcImage@ is a--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#blocked-image blocked image>,--- then for each element of @pRegions@, all members of @srcOffset@--- /must/ be a multiple of the corresponding dimensions of the--- compressed texel block------ - #VUID-vkCmdCopyImage-srcImage-01728# If @srcImage@ is a--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#blocked-image blocked image>,--- then for each element of @pRegions@, @extent.width@ /must/ be a--- multiple of the compressed texel block width or (@extent.width@ +--- @srcOffset.x@) /must/ equal the width of the specified--- @srcSubresource@ of @srcImage@------ - #VUID-vkCmdCopyImage-srcImage-01729# If @srcImage@ is a--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#blocked-image blocked image>,--- then for each element of @pRegions@, @extent.height@ /must/ be a--- multiple of the compressed texel block height or (@extent.height@ +--- @srcOffset.y@) /must/ equal the height of the specified--- @srcSubresource@ of @srcImage@------ - #VUID-vkCmdCopyImage-srcImage-01730# If @srcImage@ is a--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#blocked-image blocked image>,--- then for each element of @pRegions@, @extent.depth@ /must/ be a--- multiple of the compressed texel block depth or (@extent.depth@ +--- @srcOffset.z@) /must/ equal the depth of the specified--- @srcSubresource@ of @srcImage@------ - #VUID-vkCmdCopyImage-dstImage-01731# If @dstImage@ is a--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#blocked-image blocked image>,--- then for each element of @pRegions@, all members of @dstOffset@--- /must/ be a multiple of the corresponding dimensions of the--- compressed texel block------ - #VUID-vkCmdCopyImage-dstImage-01732# If @dstImage@ is a--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#blocked-image blocked image>,--- then for each element of @pRegions@, @extent.width@ /must/ be a--- multiple of the compressed texel block width or (@extent.width@ +--- @dstOffset.x@) /must/ equal the width of the specified--- @dstSubresource@ of @dstImage@------ - #VUID-vkCmdCopyImage-dstImage-01733# If @dstImage@ is a--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#blocked-image blocked image>,--- then for each element of @pRegions@, @extent.height@ /must/ be a--- multiple of the compressed texel block height or (@extent.height@ +--- @dstOffset.y@) /must/ equal the height of the specified--- @dstSubresource@ of @dstImage@------ - #VUID-vkCmdCopyImage-dstImage-01734# If @dstImage@ is a--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#blocked-image blocked image>,--- then for each element of @pRegions@, @extent.depth@ /must/ be a--- multiple of the compressed texel block depth or (@extent.depth@ +--- @dstOffset.z@) /must/ equal the depth of the specified--- @dstSubresource@ of @dstImage@------ - #VUID-vkCmdCopyImage-aspect-06662# If the @aspect@ member of any--- element of @pRegions@ includes any flag other than--- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_STENCIL_BIT'--- or @srcImage@ was not created with--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkImageStencilUsageCreateInfo separate stencil usage>,--- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_TRANSFER_SRC_BIT'--- /must/ have been included in the--- 'Vulkan.Core10.Image.ImageCreateInfo'::@usage@ used to create--- @srcImage@------ - #VUID-vkCmdCopyImage-aspect-06663# If the @aspect@ member of any--- element of @pRegions@ includes any flag other than--- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_STENCIL_BIT'--- or @dstImage@ was not created with--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkImageStencilUsageCreateInfo separate stencil usage>,--- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_TRANSFER_DST_BIT'--- /must/ have been included in the--- 'Vulkan.Core10.Image.ImageCreateInfo'::@usage@ used to create--- @dstImage@------ - #VUID-vkCmdCopyImage-aspect-06664# If the @aspect@ member of any--- element of @pRegions@ includes--- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_STENCIL_BIT',--- and @srcImage@ was created with--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkImageStencilUsageCreateInfo separate stencil usage>,--- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_TRANSFER_SRC_BIT'--- /must/ have been included in the--- 'Vulkan.Core12.Promoted_From_VK_EXT_separate_stencil_usage.ImageStencilUsageCreateInfo'::@stencilUsage@--- used to create @srcImage@------ - #VUID-vkCmdCopyImage-aspect-06665# If the @aspect@ member of any--- element of @pRegions@ includes--- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_STENCIL_BIT',--- and @dstImage@ was created with--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkImageStencilUsageCreateInfo separate stencil usage>,--- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_TRANSFER_DST_BIT'--- /must/ have been included in the--- 'Vulkan.Core12.Promoted_From_VK_EXT_separate_stencil_usage.ImageStencilUsageCreateInfo'::@stencilUsage@--- used to create @dstImage@------ == Valid Usage (Implicit)------ - #VUID-vkCmdCopyImage-commandBuffer-parameter# @commandBuffer@ /must/--- be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle------ - #VUID-vkCmdCopyImage-srcImage-parameter# @srcImage@ /must/ be a--- valid 'Vulkan.Core10.Handles.Image' handle------ - #VUID-vkCmdCopyImage-srcImageLayout-parameter# @srcImageLayout@--- /must/ be a valid 'Vulkan.Core10.Enums.ImageLayout.ImageLayout'--- value------ - #VUID-vkCmdCopyImage-dstImage-parameter# @dstImage@ /must/ be a--- valid 'Vulkan.Core10.Handles.Image' handle------ - #VUID-vkCmdCopyImage-dstImageLayout-parameter# @dstImageLayout@--- /must/ be a valid 'Vulkan.Core10.Enums.ImageLayout.ImageLayout'--- value------ - #VUID-vkCmdCopyImage-pRegions-parameter# @pRegions@ /must/ be a--- valid pointer to an array of @regionCount@ valid 'ImageCopy'--- structures------ - #VUID-vkCmdCopyImage-commandBuffer-recording# @commandBuffer@ /must/--- be in the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording state>------ - #VUID-vkCmdCopyImage-commandBuffer-cmdpool# The--- 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was--- allocated from /must/ support transfer, graphics, or compute--- operations------ - #VUID-vkCmdCopyImage-renderpass# This command /must/ only be called--- outside of a render pass instance------ - #VUID-vkCmdCopyImage-regionCount-arraylength# @regionCount@ /must/--- be greater than @0@------ - #VUID-vkCmdCopyImage-commonparent# Each of @commandBuffer@,--- @dstImage@, and @srcImage@ /must/ have been created, allocated, or--- retrieved from the same 'Vulkan.Core10.Handles.Device'------ == Host Synchronization------ - Host access to @commandBuffer@ /must/ be externally synchronized------ - Host access to the 'Vulkan.Core10.Handles.CommandPool' that--- @commandBuffer@ was allocated from /must/ be externally synchronized------ == Command Properties------ \'------ +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | Primary | Outside | Transfer |--- | Secondary | | Graphics |--- | | | Compute |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,--- 'Vulkan.Core10.Handles.CommandBuffer', 'Vulkan.Core10.Handles.Image',--- 'ImageCopy', 'Vulkan.Core10.Enums.ImageLayout.ImageLayout'-cmdCopyImage :: forall io- . (MonadIO io)- => -- | @commandBuffer@ is the command buffer into which the command will be- -- recorded.- CommandBuffer- -> -- | @srcImage@ is the source image.- ("srcImage" ::: Image)- -> -- | @srcImageLayout@ is the current layout of the source image subresource.- ("srcImageLayout" ::: ImageLayout)- -> -- | @dstImage@ is the destination image.- ("dstImage" ::: Image)- -> -- | @dstImageLayout@ is the current layout of the destination image- -- subresource.- ("dstImageLayout" ::: ImageLayout)- -> -- | @pRegions@ is a pointer to an array of 'ImageCopy' structures specifying- -- the regions to copy.- ("regions" ::: Vector ImageCopy)- -> io ()-cmdCopyImage commandBuffer srcImage srcImageLayout dstImage dstImageLayout regions = liftIO . evalContT $ do- let vkCmdCopyImagePtr = pVkCmdCopyImage (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)- lift $ unless (vkCmdCopyImagePtr /= nullFunPtr) $- throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdCopyImage is null" Nothing Nothing- let vkCmdCopyImage' = mkVkCmdCopyImage vkCmdCopyImagePtr- pPRegions <- ContT $ allocaBytes @ImageCopy ((Data.Vector.length (regions)) * 68)- lift $ Data.Vector.imapM_ (\i e -> poke (pPRegions `plusPtr` (68 * (i)) :: Ptr ImageCopy) (e)) (regions)- lift $ traceAroundEvent "vkCmdCopyImage" (vkCmdCopyImage' (commandBufferHandle (commandBuffer)) (srcImage) (srcImageLayout) (dstImage) (dstImageLayout) ((fromIntegral (Data.Vector.length $ (regions)) :: Word32)) (pPRegions))- pure $ ()---foreign import ccall-#if !defined(SAFE_FOREIGN_CALLS)- unsafe-#endif- "dynamic" mkVkCmdBlitImage- :: FunPtr (Ptr CommandBuffer_T -> Image -> ImageLayout -> Image -> ImageLayout -> Word32 -> Ptr ImageBlit -> Filter -> IO ()) -> Ptr CommandBuffer_T -> Image -> ImageLayout -> Image -> ImageLayout -> Word32 -> Ptr ImageBlit -> Filter -> IO ()---- | vkCmdBlitImage - Copy regions of an image, potentially performing format--- conversion,------ = Description------ 'cmdBlitImage' /must/ not be used for multisampled source or destination--- images. Use 'cmdResolveImage' for this purpose.------ As the sizes of the source and destination extents /can/ differ in any--- dimension, texels in the source extent are scaled and filtered to the--- destination extent. Scaling occurs via the following operations:------ - For each destination texel, the integer coordinate of that texel is--- converted to an unnormalized texture coordinate, using the effective--- inverse of the equations described in--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#textures-unnormalized-to-integer unnormalized to integer conversion>:------ - ubase = i + ½------ - vbase = j + ½------ - wbase = k + ½------ - These base coordinates are then offset by the first destination--- offset:------ - uoffset = ubase - xdst0------ - voffset = vbase - ydst0------ - woffset = wbase - zdst0------ - aoffset = a - @baseArrayCount@dst------ - The scale is determined from the source and destination regions, and--- applied to the offset coordinates:------ - scaleu = (xsrc1 - xsrc0) \/ (xdst1 - xdst0)------ - scalev = (ysrc1 - ysrc0) \/ (ydst1 - ydst0)------ - scalew = (zsrc1 - zsrc0) \/ (zdst1 - zdst0)------ - uscaled = uoffset × scaleu------ - vscaled = voffset × scalev------ - wscaled = woffset × scalew------ - Finally the source offset is added to the scaled coordinates, to--- determine the final unnormalized coordinates used to sample from--- @srcImage@:------ - u = uscaled + xsrc0------ - v = vscaled + ysrc0------ - w = wscaled + zsrc0------ - q = @mipLevel@------ - a = aoffset + @baseArrayCount@src------ These coordinates are used to sample from the source image, as described--- in--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#textures Image Operations chapter>,--- with the filter mode equal to that of @filter@, a mipmap mode of--- 'Vulkan.Core10.Enums.SamplerMipmapMode.SAMPLER_MIPMAP_MODE_NEAREST' and--- an address mode of--- 'Vulkan.Core10.Enums.SamplerAddressMode.SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE'.--- Implementations /must/ clamp at the edge of the source image, and /may/--- additionally clamp to the edge of the source region.------ Note------ Due to allowable rounding errors in the generation of the source texture--- coordinates, it is not always possible to guarantee exactly which source--- texels will be sampled for a given blit. As rounding errors are--- implementation-dependent, the exact results of a blitting operation are--- also implementation-dependent.------ Blits are done layer by layer starting with the @baseArrayLayer@ member--- of @srcSubresource@ for the source and @dstSubresource@ for the--- destination. @layerCount@ layers are blitted to the destination image.------ When blitting 3D textures, slices in the destination region bounded by--- @dstOffsets@[0].z and @dstOffsets@[1].z are sampled from slices in the--- source region bounded by @srcOffsets@[0].z and @srcOffsets@[1].z. If the--- @filter@ parameter is 'Vulkan.Core10.Enums.Filter.FILTER_LINEAR' then--- the value sampled from the source image is taken by doing linear--- filtering using the interpolated __z__ coordinate represented by __w__--- in the previous equations. If the @filter@ parameter is--- 'Vulkan.Core10.Enums.Filter.FILTER_NEAREST' then the value sampled from--- the source image is taken from the single nearest slice, with an--- implementation-dependent arithmetic rounding mode.------ The following filtering and conversion rules apply:------ - Integer formats /can/ only be converted to other integer formats--- with the same signedness.------ - No format conversion is supported between depth\/stencil images. The--- formats /must/ match.------ - Format conversions on unorm, snorm, scaled and packed float formats--- of the copied aspect of the image are performed by first converting--- the pixels to float values.------ - For sRGB source formats, nonlinear RGB values are converted to--- linear representation prior to filtering.------ - After filtering, the float values are first clamped and then cast to--- the destination image format. In case of sRGB destination format,--- linear RGB values are converted to nonlinear representation before--- writing the pixel to the image.------ Signed and unsigned integers are converted by first clamping to the--- representable range of the destination format, then casting the value.------ == Valid Usage------ - #VUID-vkCmdBlitImage-commandBuffer-01834# If @commandBuffer@ is an--- unprotected command buffer and--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>--- is not supported, @srcImage@ /must/ not be a protected image------ - #VUID-vkCmdBlitImage-commandBuffer-01835# If @commandBuffer@ is an--- unprotected command buffer and--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>--- is not supported, @dstImage@ /must/ not be a protected image------ - #VUID-vkCmdBlitImage-commandBuffer-01836# If @commandBuffer@ is a--- protected command buffer and--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>--- is not supported, @dstImage@ /must/ not be an unprotected image------ - #VUID-vkCmdBlitImage-pRegions-00215# The source region specified by--- each element of @pRegions@ /must/ be a region that is contained--- within @srcImage@------ - #VUID-vkCmdBlitImage-pRegions-00216# The destination region--- specified by each element of @pRegions@ /must/ be a region that is--- contained within @dstImage@------ - #VUID-vkCmdBlitImage-pRegions-00217# The union of all destination--- regions, specified by the elements of @pRegions@, /must/ not overlap--- in memory with any texel that /may/ be sampled during the blit--- operation------ - #VUID-vkCmdBlitImage-srcImage-01999# The--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-format-features format features>--- of @srcImage@ /must/ contain--- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_BLIT_SRC_BIT'------ - #VUID-vkCmdBlitImage-srcImage-06421# @srcImage@ /must/ not use a--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion format that requires a sampler Y′CBCR conversion>------ - #VUID-vkCmdBlitImage-srcImage-00219# @srcImage@ /must/ have been--- created with--- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_TRANSFER_SRC_BIT'--- usage flag------ - #VUID-vkCmdBlitImage-srcImage-00220# If @srcImage@ is non-sparse--- then it /must/ be bound completely and contiguously to a single--- 'Vulkan.Core10.Handles.DeviceMemory' object------ - #VUID-vkCmdBlitImage-srcImageLayout-00221# @srcImageLayout@ /must/--- specify the layout of the image subresources of @srcImage@ specified--- in @pRegions@ at the time this command is executed on a--- 'Vulkan.Core10.Handles.Device'------ - #VUID-vkCmdBlitImage-srcImageLayout-01398# @srcImageLayout@ /must/--- be--- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_SHARED_PRESENT_KHR',--- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL'--- or 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_GENERAL'------ - #VUID-vkCmdBlitImage-dstImage-02000# The--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-format-features format features>--- of @dstImage@ /must/ contain--- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_BLIT_DST_BIT'------ - #VUID-vkCmdBlitImage-dstImage-06422# @dstImage@ /must/ not use a--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion format that requires a sampler Y′CBCR conversion>------ - #VUID-vkCmdBlitImage-dstImage-00224# @dstImage@ /must/ have been--- created with--- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_TRANSFER_DST_BIT'--- usage flag------ - #VUID-vkCmdBlitImage-dstImage-00225# If @dstImage@ is non-sparse--- then it /must/ be bound completely and contiguously to a single--- 'Vulkan.Core10.Handles.DeviceMemory' object------ - #VUID-vkCmdBlitImage-dstImageLayout-00226# @dstImageLayout@ /must/--- specify the layout of the image subresources of @dstImage@ specified--- in @pRegions@ at the time this command is executed on a--- 'Vulkan.Core10.Handles.Device'------ - #VUID-vkCmdBlitImage-dstImageLayout-01399# @dstImageLayout@ /must/--- be--- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_SHARED_PRESENT_KHR',--- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL'--- or 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_GENERAL'------ - #VUID-vkCmdBlitImage-srcImage-00229# If either of @srcImage@ or--- @dstImage@ was created with a signed integer--- 'Vulkan.Core10.Enums.Format.Format', the other /must/ also have been--- created with a signed integer 'Vulkan.Core10.Enums.Format.Format'------ - #VUID-vkCmdBlitImage-srcImage-00230# If either of @srcImage@ or--- @dstImage@ was created with an unsigned integer--- 'Vulkan.Core10.Enums.Format.Format', the other /must/ also have been--- created with an unsigned integer 'Vulkan.Core10.Enums.Format.Format'------ - #VUID-vkCmdBlitImage-srcImage-00231# If either of @srcImage@ or--- @dstImage@ was created with a depth\/stencil format, the other--- /must/ have exactly the same format------ - #VUID-vkCmdBlitImage-srcImage-00232# If @srcImage@ was created with--- a depth\/stencil format, @filter@ /must/ be--- 'Vulkan.Core10.Enums.Filter.FILTER_NEAREST'------ - #VUID-vkCmdBlitImage-srcImage-00233# @srcImage@ /must/ have been--- created with a @samples@ value of--- 'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT'------ - #VUID-vkCmdBlitImage-dstImage-00234# @dstImage@ /must/ have been--- created with a @samples@ value of--- 'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT'------ - #VUID-vkCmdBlitImage-filter-02001# If @filter@ is--- 'Vulkan.Core10.Enums.Filter.FILTER_LINEAR', then the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-format-features format features>--- of @srcImage@ /must/ contain--- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT'------ - #VUID-vkCmdBlitImage-filter-02002# If @filter@ is--- 'Vulkan.Extensions.VK_EXT_filter_cubic.FILTER_CUBIC_EXT', then the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-format-features format features>--- of @srcImage@ /must/ contain--- 'Vulkan.Extensions.VK_EXT_filter_cubic.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT'------ - #VUID-vkCmdBlitImage-filter-00237# If @filter@ is--- 'Vulkan.Extensions.VK_EXT_filter_cubic.FILTER_CUBIC_EXT', @srcImage@--- /must/ be of type 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D'------ - #VUID-vkCmdBlitImage-srcSubresource-01705# The--- @srcSubresource.mipLevel@ member of each element of @pRegions@--- /must/ be less than the @mipLevels@ specified in--- 'Vulkan.Core10.Image.ImageCreateInfo' when @srcImage@ was created------ - #VUID-vkCmdBlitImage-dstSubresource-01706# The--- @dstSubresource.mipLevel@ member of each element of @pRegions@--- /must/ be less than the @mipLevels@ specified in--- 'Vulkan.Core10.Image.ImageCreateInfo' when @dstImage@ was created------ - #VUID-vkCmdBlitImage-srcSubresource-01707# The--- @srcSubresource.baseArrayLayer@ + @srcSubresource.layerCount@ of--- each element of @pRegions@ /must/ be less than or equal to the--- @arrayLayers@ specified in 'Vulkan.Core10.Image.ImageCreateInfo'--- when @srcImage@ was created------ - #VUID-vkCmdBlitImage-dstSubresource-01708# The--- @dstSubresource.baseArrayLayer@ + @dstSubresource.layerCount@ of--- each element of @pRegions@ /must/ be less than or equal to the--- @arrayLayers@ specified in 'Vulkan.Core10.Image.ImageCreateInfo'--- when @dstImage@ was created------ - #VUID-vkCmdBlitImage-dstImage-02545# @dstImage@ and @srcImage@--- /must/ not have been created with @flags@ containing--- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SUBSAMPLED_BIT_EXT'------ - #VUID-vkCmdBlitImage-srcImage-00240# If either @srcImage@ or--- @dstImage@ is of type 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_3D',--- then for each element of @pRegions@, @srcSubresource.baseArrayLayer@--- and @dstSubresource.baseArrayLayer@ /must/ each be @0@, and--- @srcSubresource.layerCount@ and @dstSubresource.layerCount@ /must/--- each be @1@------ - #VUID-vkCmdBlitImage-aspectMask-00241# For each element of--- @pRegions@, @srcSubresource.aspectMask@ /must/ specify aspects--- present in @srcImage@------ - #VUID-vkCmdBlitImage-aspectMask-00242# For each element of--- @pRegions@, @dstSubresource.aspectMask@ /must/ specify aspects--- present in @dstImage@------ - #VUID-vkCmdBlitImage-srcOffset-00243# For each element of--- @pRegions@, @srcOffsets@[0].x and @srcOffsets@[1].x /must/ both be--- greater than or equal to @0@ and less than or equal to the width of--- the specified @srcSubresource@ of @srcImage@------ - #VUID-vkCmdBlitImage-srcOffset-00244# For each element of--- @pRegions@, @srcOffsets@[0].y and @srcOffsets@[1].y /must/ both be--- greater than or equal to @0@ and less than or equal to the height of--- the specified @srcSubresource@ of @srcImage@------ - #VUID-vkCmdBlitImage-srcImage-00245# If @srcImage@ is of type--- 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_1D', then for each element--- of @pRegions@, @srcOffsets@[0].y /must/ be @0@ and @srcOffsets@[1].y--- /must/ be @1@------ - #VUID-vkCmdBlitImage-srcOffset-00246# For each element of--- @pRegions@, @srcOffsets@[0].z and @srcOffsets@[1].z /must/ both be--- greater than or equal to @0@ and less than or equal to the depth of--- the specified @srcSubresource@ of @srcImage@------ - #VUID-vkCmdBlitImage-srcImage-00247# If @srcImage@ is of type--- 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_1D' or--- 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D', then for each element--- of @pRegions@, @srcOffsets@[0].z /must/ be @0@ and @srcOffsets@[1].z--- /must/ be @1@------ - #VUID-vkCmdBlitImage-dstOffset-00248# For each element of--- @pRegions@, @dstOffsets@[0].x and @dstOffsets@[1].x /must/ both be--- greater than or equal to @0@ and less than or equal to the width of--- the specified @dstSubresource@ of @dstImage@------ - #VUID-vkCmdBlitImage-dstOffset-00249# For each element of--- @pRegions@, @dstOffsets@[0].y and @dstOffsets@[1].y /must/ both be--- greater than or equal to @0@ and less than or equal to the height of--- the specified @dstSubresource@ of @dstImage@------ - #VUID-vkCmdBlitImage-dstImage-00250# If @dstImage@ is of type--- 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_1D', then for each element--- of @pRegions@, @dstOffsets@[0].y /must/ be @0@ and @dstOffsets@[1].y--- /must/ be @1@------ - #VUID-vkCmdBlitImage-dstOffset-00251# For each element of--- @pRegions@, @dstOffsets@[0].z and @dstOffsets@[1].z /must/ both be--- greater than or equal to @0@ and less than or equal to the depth of--- the specified @dstSubresource@ of @dstImage@------ - #VUID-vkCmdBlitImage-dstImage-00252# If @dstImage@ is of type--- 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_1D' or--- 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D', then for each element--- of @pRegions@, @dstOffsets@[0].z /must/ be @0@ and @dstOffsets@[1].z--- /must/ be @1@------ == Valid Usage (Implicit)------ - #VUID-vkCmdBlitImage-commandBuffer-parameter# @commandBuffer@ /must/--- be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle------ - #VUID-vkCmdBlitImage-srcImage-parameter# @srcImage@ /must/ be a--- valid 'Vulkan.Core10.Handles.Image' handle------ - #VUID-vkCmdBlitImage-srcImageLayout-parameter# @srcImageLayout@--- /must/ be a valid 'Vulkan.Core10.Enums.ImageLayout.ImageLayout'--- value------ - #VUID-vkCmdBlitImage-dstImage-parameter# @dstImage@ /must/ be a--- valid 'Vulkan.Core10.Handles.Image' handle------ - #VUID-vkCmdBlitImage-dstImageLayout-parameter# @dstImageLayout@--- /must/ be a valid 'Vulkan.Core10.Enums.ImageLayout.ImageLayout'--- value------ - #VUID-vkCmdBlitImage-pRegions-parameter# @pRegions@ /must/ be a--- valid pointer to an array of @regionCount@ valid 'ImageBlit'--- structures------ - #VUID-vkCmdBlitImage-filter-parameter# @filter@ /must/ be a valid--- 'Vulkan.Core10.Enums.Filter.Filter' value------ - #VUID-vkCmdBlitImage-commandBuffer-recording# @commandBuffer@ /must/--- be in the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording state>------ - #VUID-vkCmdBlitImage-commandBuffer-cmdpool# The--- 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was--- allocated from /must/ support graphics operations------ - #VUID-vkCmdBlitImage-renderpass# This command /must/ only be called--- outside of a render pass instance------ - #VUID-vkCmdBlitImage-regionCount-arraylength# @regionCount@ /must/--- be greater than @0@------ - #VUID-vkCmdBlitImage-commonparent# Each of @commandBuffer@,--- @dstImage@, and @srcImage@ /must/ have been created, allocated, or--- retrieved from the same 'Vulkan.Core10.Handles.Device'------ == Host Synchronization------ - Host access to @commandBuffer@ /must/ be externally synchronized------ - Host access to the 'Vulkan.Core10.Handles.CommandPool' that--- @commandBuffer@ was allocated from /must/ be externally synchronized------ == Command Properties------ \'------ +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | Primary | Outside | Graphics |--- | Secondary | | |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,--- 'Vulkan.Core10.Handles.CommandBuffer',--- 'Vulkan.Core10.Enums.Filter.Filter', 'Vulkan.Core10.Handles.Image',--- 'ImageBlit', 'Vulkan.Core10.Enums.ImageLayout.ImageLayout'-cmdBlitImage :: forall io- . (MonadIO io)- => -- | @commandBuffer@ is the command buffer into which the command will be- -- recorded.- CommandBuffer- -> -- | @srcImage@ is the source image.- ("srcImage" ::: Image)- -> -- | @srcImageLayout@ is the layout of the source image subresources for the- -- blit.- ("srcImageLayout" ::: ImageLayout)- -> -- | @dstImage@ is the destination image.- ("dstImage" ::: Image)- -> -- | @dstImageLayout@ is the layout of the destination image subresources for- -- the blit.- ("dstImageLayout" ::: ImageLayout)- -> -- | @pRegions@ is a pointer to an array of 'ImageBlit' structures specifying- -- the regions to blit.- ("regions" ::: Vector ImageBlit)- -> -- | @filter@ is a 'Vulkan.Core10.Enums.Filter.Filter' specifying the filter- -- to apply if the blits require scaling.- Filter- -> io ()-cmdBlitImage commandBuffer srcImage srcImageLayout dstImage dstImageLayout regions filter' = liftIO . evalContT $ do- let vkCmdBlitImagePtr = pVkCmdBlitImage (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)- lift $ unless (vkCmdBlitImagePtr /= nullFunPtr) $- throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdBlitImage is null" Nothing Nothing- let vkCmdBlitImage' = mkVkCmdBlitImage vkCmdBlitImagePtr- pPRegions <- ContT $ allocaBytes @ImageBlit ((Data.Vector.length (regions)) * 80)- lift $ Data.Vector.imapM_ (\i e -> poke (pPRegions `plusPtr` (80 * (i)) :: Ptr ImageBlit) (e)) (regions)- lift $ traceAroundEvent "vkCmdBlitImage" (vkCmdBlitImage' (commandBufferHandle (commandBuffer)) (srcImage) (srcImageLayout) (dstImage) (dstImageLayout) ((fromIntegral (Data.Vector.length $ (regions)) :: Word32)) (pPRegions) (filter'))- pure $ ()---foreign import ccall-#if !defined(SAFE_FOREIGN_CALLS)- unsafe-#endif- "dynamic" mkVkCmdCopyBufferToImage- :: FunPtr (Ptr CommandBuffer_T -> Buffer -> Image -> ImageLayout -> Word32 -> Ptr BufferImageCopy -> IO ()) -> Ptr CommandBuffer_T -> Buffer -> Image -> ImageLayout -> Word32 -> Ptr BufferImageCopy -> IO ()---- | vkCmdCopyBufferToImage - Copy data from a buffer into an image------ = Description------ Each region in @pRegions@ is copied from the specified region of the--- source buffer to the specified region of the destination image.------ If @dstImage@ has a--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar format>,--- regions of each plane to be a target of a copy /must/ be specified--- separately using the @pRegions@ member of the 'BufferImageCopy'--- structure. In this case, the @aspectMask@ of @imageSubresource@ /must/--- be 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_0_BIT',--- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_1_BIT', or--- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_2_BIT'. For--- the purposes of 'cmdCopyBufferToImage', each plane of a multi-planar--- image is treated as having the format listed in--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#formats-compatible-planes>--- for the plane identified by the @aspectMask@ of the corresponding--- subresource. This applies both to 'Vulkan.Core10.Enums.Format.Format'--- and to coordinates used in the copy, which correspond to texels in the--- /plane/ rather than how these texels map to coordinates in the image as--- a whole.------ == Valid Usage------ - #VUID-vkCmdCopyBufferToImage-commandBuffer-01828# If @commandBuffer@--- is an unprotected command buffer and--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>--- is not supported, @srcBuffer@ /must/ not be a protected buffer------ - #VUID-vkCmdCopyBufferToImage-commandBuffer-01829# If @commandBuffer@--- is an unprotected command buffer and--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>--- is not supported, @dstImage@ /must/ not be a protected image------ - #VUID-vkCmdCopyBufferToImage-commandBuffer-01830# If @commandBuffer@--- is a protected command buffer and--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>--- is not supported, @dstImage@ /must/ not be an unprotected image------ - #VUID-vkCmdCopyBufferToImage-pRegions-06217# The image region--- specified by each element of @pRegions@ /must/ be contained within--- the specified @imageSubresource@ of @dstImage@------ - #VUID-vkCmdCopyBufferToImage-pRegions-00171# @srcBuffer@ /must/ be--- large enough to contain all buffer locations that are accessed--- according to--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#copies-buffers-images-addressing Buffer and Image Addressing>,--- for each element of @pRegions@------ - #VUID-vkCmdCopyBufferToImage-pRegions-00173# The union of all source--- regions, and the union of all destination regions, specified by the--- elements of @pRegions@, /must/ not overlap in memory------ - #VUID-vkCmdCopyBufferToImage-srcBuffer-00174# @srcBuffer@ /must/--- have been created with--- 'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_TRANSFER_SRC_BIT'--- usage flag------ - #VUID-vkCmdCopyBufferToImage-dstImage-01997# The--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-format-features format features>--- of @dstImage@ /must/ contain--- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_TRANSFER_DST_BIT'------ - #VUID-vkCmdCopyBufferToImage-srcBuffer-00176# If @srcBuffer@ is--- non-sparse then it /must/ be bound completely and contiguously to a--- single 'Vulkan.Core10.Handles.DeviceMemory' object------ - #VUID-vkCmdCopyBufferToImage-dstImage-00177# @dstImage@ /must/ have--- been created with--- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_TRANSFER_DST_BIT'--- usage flag------ - #VUID-vkCmdCopyBufferToImage-dstImage-00178# If @dstImage@ is--- non-sparse then it /must/ be bound completely and contiguously to a--- single 'Vulkan.Core10.Handles.DeviceMemory' object------ - #VUID-vkCmdCopyBufferToImage-dstImage-00179# @dstImage@ /must/ have--- a sample count equal to--- 'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT'------ - #VUID-vkCmdCopyBufferToImage-dstImageLayout-00180# @dstImageLayout@--- /must/ specify the layout of the image subresources of @dstImage@--- specified in @pRegions@ at the time this command is executed on a--- 'Vulkan.Core10.Handles.Device'------ - #VUID-vkCmdCopyBufferToImage-dstImageLayout-01396# @dstImageLayout@--- /must/ be--- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL',--- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_GENERAL', or--- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_SHARED_PRESENT_KHR'------ - #VUID-vkCmdCopyBufferToImage-imageSubresource-01701# The--- @imageSubresource.mipLevel@ member of each element of @pRegions@--- /must/ be less than the @mipLevels@ specified in--- 'Vulkan.Core10.Image.ImageCreateInfo' when @dstImage@ was created------ - #VUID-vkCmdCopyBufferToImage-imageSubresource-01702# The--- @imageSubresource.baseArrayLayer@ + @imageSubresource.layerCount@ of--- each element of @pRegions@ /must/ be less than or equal to the--- @arrayLayers@ specified in 'Vulkan.Core10.Image.ImageCreateInfo'--- when @dstImage@ was created------ - #VUID-vkCmdCopyBufferToImage-imageOffset-01793# The @imageOffset@--- and @imageExtent@ members of each element of @pRegions@ /must/--- respect the image transfer granularity requirements of--- @commandBuffer@’s command pool’s queue family, as described in--- 'Vulkan.Core10.DeviceInitialization.QueueFamilyProperties'------ - #VUID-vkCmdCopyBufferToImage-dstImage-02543# @dstImage@ /must/ not--- have been created with @flags@ containing--- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SUBSAMPLED_BIT_EXT'------ - #VUID-vkCmdCopyBufferToImage-commandBuffer-04477# If the queue--- family used to create the 'Vulkan.Core10.Handles.CommandPool' which--- @commandBuffer@ was allocated from does not support--- 'Vulkan.Core10.Enums.QueueFlagBits.QUEUE_GRAPHICS_BIT', for each--- element of @pRegions@, the @aspectMask@ member of @imageSubresource@--- /must/ not be--- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_DEPTH_BIT' or--- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_STENCIL_BIT'------ - #VUID-vkCmdCopyBufferToImage-pRegions-06218# For each element of--- @pRegions@, @imageOffset.x@ and (@imageExtent.width@ +--- @imageOffset.x@) /must/ both be greater than or equal to @0@ and--- less than or equal to the width of the specified @imageSubresource@--- of @dstImage@------ - #VUID-vkCmdCopyBufferToImage-pRegions-06219# For each element of--- @pRegions@, @imageOffset.y@ and (@imageExtent.height@ +--- @imageOffset.y@) /must/ both be greater than or equal to @0@ and--- less than or equal to the height of the specified @imageSubresource@--- of @dstImage@------ - #VUID-vkCmdCopyBufferToImage-bufferOffset-01558# If @dstImage@ does--- not have either a depth\/stencil or a--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar format>,--- then for each element of @pRegions@, @bufferOffset@ /must/ be a--- multiple of the format’s texel block size------ - #VUID-vkCmdCopyBufferToImage-bufferOffset-01559# If @dstImage@ has a--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar format>,--- then for each element of @pRegions@, @bufferOffset@ /must/ be a--- multiple of the element size of the compatible format for the format--- and the @aspectMask@ of the @imageSubresource@ as defined in--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatible-planes ???>------ - #VUID-vkCmdCopyBufferToImage-srcImage-00199# If @dstImage@ is of--- type 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_1D', then for each--- element of @pRegions@, @imageOffset.y@ /must/ be @0@ and--- @imageExtent.height@ /must/ be @1@------ - #VUID-vkCmdCopyBufferToImage-imageOffset-00200# For each element of--- @pRegions@, @imageOffset.z@ and (@imageExtent.depth@ +--- @imageOffset.z@) /must/ both be greater than or equal to @0@ and--- less than or equal to the depth of the specified @imageSubresource@--- of @dstImage@------ - #VUID-vkCmdCopyBufferToImage-srcImage-00201# If @dstImage@ is of--- type 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_1D' or--- 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D', then for each element--- of @pRegions@, @imageOffset.z@ /must/ be @0@ and @imageExtent.depth@--- /must/ be @1@------ - #VUID-vkCmdCopyBufferToImage-bufferRowLength-00203# If @dstImage@ is--- a--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#blocked-image blocked image>,--- for each element of @pRegions@, @bufferRowLength@ /must/ be a--- multiple of the compressed texel block width------ - #VUID-vkCmdCopyBufferToImage-bufferImageHeight-00204# If @dstImage@--- is a--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#blocked-image blocked image>,--- for each element of @pRegions@, @bufferImageHeight@ /must/ be a--- multiple of the compressed texel block height------ - #VUID-vkCmdCopyBufferToImage-imageOffset-00205# If @dstImage@ is a--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#blocked-image blocked image>,--- for each element of @pRegions@, all members of @imageOffset@ /must/--- be a multiple of the corresponding dimensions of the compressed--- texel block------ - #VUID-vkCmdCopyBufferToImage-bufferOffset-00206# If @dstImage@ is a--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#blocked-image blocked image>,--- for each element of @pRegions@, @bufferOffset@ /must/ be a multiple--- of the compressed texel block size in bytes------ - #VUID-vkCmdCopyBufferToImage-imageExtent-00207# If @dstImage@ is a--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#blocked-image blocked image>,--- for each element of @pRegions@, @imageExtent.width@ /must/ be a--- multiple of the compressed texel block width or (@imageExtent.width@--- + @imageOffset.x@) /must/ equal the width of the specified--- @imageSubresource@ of @dstImage@------ - #VUID-vkCmdCopyBufferToImage-imageExtent-00208# If @dstImage@ is a--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#blocked-image blocked image>,--- for each element of @pRegions@, @imageExtent.height@ /must/ be a--- multiple of the compressed texel block height or--- (@imageExtent.height@ + @imageOffset.y@) /must/ equal the height of--- the specified @imageSubresource@ of @dstImage@------ - #VUID-vkCmdCopyBufferToImage-imageExtent-00209# If @dstImage@ is a--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#blocked-image blocked image>,--- for each element of @pRegions@, @imageExtent.depth@ /must/ be a--- multiple of the compressed texel block depth or (@imageExtent.depth@--- + @imageOffset.z@) /must/ equal the depth of the specified--- @imageSubresource@ of @dstImage@------ - #VUID-vkCmdCopyBufferToImage-aspectMask-00211# For each element of--- @pRegions@, @imageSubresource.aspectMask@ /must/ specify aspects--- present in @dstImage@------ - #VUID-vkCmdCopyBufferToImage-aspectMask-01560# If @dstImage@ has a--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar format>,--- then for each element of @pRegions@, @imageSubresource.aspectMask@--- /must/ be--- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_0_BIT',--- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_1_BIT',--- or--- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_2_BIT'--- (with--- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_2_BIT'--- valid only for image formats with three planes)------ - #VUID-vkCmdCopyBufferToImage-baseArrayLayer-00213# If @dstImage@ is--- of type 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_3D', for each--- element of @pRegions@, @imageSubresource.baseArrayLayer@ /must/ be--- @0@ and @imageSubresource.layerCount@ /must/ be @1@------ - #VUID-vkCmdCopyBufferToImage-pRegions-04725# If @dstImage@ is not a--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#blocked-image blocked image>,--- for each element of @pRegions@, @bufferRowLength@ multiplied by the--- texel block size of @dstImage@ /must/ be less than or equal to 231-1------ - #VUID-vkCmdCopyBufferToImage-pRegions-04726# If @dstImage@ is a--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#blocked-image blocked image>,--- for each element of @pRegions@, @bufferRowLength@ divided by the--- compressed texel block width and then multiplied by the texel block--- size of @dstImage@ /must/ be less than or equal to 231-1------ - #VUID-vkCmdCopyBufferToImage-commandBuffer-04052# If the queue--- family used to create the 'Vulkan.Core10.Handles.CommandPool' which--- @commandBuffer@ was allocated from does not support--- 'Vulkan.Core10.Enums.QueueFlagBits.QUEUE_GRAPHICS_BIT' or--- 'Vulkan.Core10.Enums.QueueFlagBits.QUEUE_COMPUTE_BIT', the--- @bufferOffset@ member of any element of @pRegions@ /must/ be a--- multiple of @4@------ - #VUID-vkCmdCopyBufferToImage-srcImage-04053# If @dstImage@ has a--- depth\/stencil format, the @bufferOffset@ member of any element of--- @pRegions@ /must/ be a multiple of @4@------ == Valid Usage (Implicit)------ - #VUID-vkCmdCopyBufferToImage-commandBuffer-parameter#--- @commandBuffer@ /must/ be a valid--- 'Vulkan.Core10.Handles.CommandBuffer' handle------ - #VUID-vkCmdCopyBufferToImage-srcBuffer-parameter# @srcBuffer@ /must/--- be a valid 'Vulkan.Core10.Handles.Buffer' handle------ - #VUID-vkCmdCopyBufferToImage-dstImage-parameter# @dstImage@ /must/--- be a valid 'Vulkan.Core10.Handles.Image' handle------ - #VUID-vkCmdCopyBufferToImage-dstImageLayout-parameter#--- @dstImageLayout@ /must/ be a valid--- 'Vulkan.Core10.Enums.ImageLayout.ImageLayout' value------ - #VUID-vkCmdCopyBufferToImage-pRegions-parameter# @pRegions@ /must/--- be a valid pointer to an array of @regionCount@ valid--- 'BufferImageCopy' structures------ - #VUID-vkCmdCopyBufferToImage-commandBuffer-recording#--- @commandBuffer@ /must/ be in the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording state>------ - #VUID-vkCmdCopyBufferToImage-commandBuffer-cmdpool# The--- 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was--- allocated from /must/ support transfer, graphics, or compute--- operations------ - #VUID-vkCmdCopyBufferToImage-renderpass# This command /must/ only be--- called outside of a render pass instance------ - #VUID-vkCmdCopyBufferToImage-regionCount-arraylength# @regionCount@--- /must/ be greater than @0@------ - #VUID-vkCmdCopyBufferToImage-commonparent# Each of @commandBuffer@,--- @dstImage@, and @srcBuffer@ /must/ have been created, allocated, or--- retrieved from the same 'Vulkan.Core10.Handles.Device'------ == Host Synchronization------ - Host access to @commandBuffer@ /must/ be externally synchronized------ - Host access to the 'Vulkan.Core10.Handles.CommandPool' that--- @commandBuffer@ was allocated from /must/ be externally synchronized------ == Command Properties------ \'------ +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | Primary | Outside | Transfer |--- | Secondary | | Graphics |--- | | | Compute |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,--- 'Vulkan.Core10.Handles.Buffer', 'BufferImageCopy',--- 'Vulkan.Core10.Handles.CommandBuffer', 'Vulkan.Core10.Handles.Image',--- 'Vulkan.Core10.Enums.ImageLayout.ImageLayout'-cmdCopyBufferToImage :: forall io- . (MonadIO io)- => -- | @commandBuffer@ is the command buffer into which the command will be- -- recorded.- CommandBuffer- -> -- | @srcBuffer@ is the source buffer.- ("srcBuffer" ::: Buffer)- -> -- | @dstImage@ is the destination image.- ("dstImage" ::: Image)- -> -- | @dstImageLayout@ is the layout of the destination image subresources for- -- the copy.- ("dstImageLayout" ::: ImageLayout)- -> -- | @pRegions@ is a pointer to an array of 'BufferImageCopy' structures- -- specifying the regions to copy.- ("regions" ::: Vector BufferImageCopy)- -> io ()-cmdCopyBufferToImage commandBuffer srcBuffer dstImage dstImageLayout regions = liftIO . evalContT $ do- let vkCmdCopyBufferToImagePtr = pVkCmdCopyBufferToImage (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)- lift $ unless (vkCmdCopyBufferToImagePtr /= nullFunPtr) $- throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdCopyBufferToImage is null" Nothing Nothing- let vkCmdCopyBufferToImage' = mkVkCmdCopyBufferToImage vkCmdCopyBufferToImagePtr- pPRegions <- ContT $ allocaBytes @BufferImageCopy ((Data.Vector.length (regions)) * 56)- lift $ Data.Vector.imapM_ (\i e -> poke (pPRegions `plusPtr` (56 * (i)) :: Ptr BufferImageCopy) (e)) (regions)- lift $ traceAroundEvent "vkCmdCopyBufferToImage" (vkCmdCopyBufferToImage' (commandBufferHandle (commandBuffer)) (srcBuffer) (dstImage) (dstImageLayout) ((fromIntegral (Data.Vector.length $ (regions)) :: Word32)) (pPRegions))- pure $ ()---foreign import ccall-#if !defined(SAFE_FOREIGN_CALLS)- unsafe-#endif- "dynamic" mkVkCmdCopyImageToBuffer- :: FunPtr (Ptr CommandBuffer_T -> Image -> ImageLayout -> Buffer -> Word32 -> Ptr BufferImageCopy -> IO ()) -> Ptr CommandBuffer_T -> Image -> ImageLayout -> Buffer -> Word32 -> Ptr BufferImageCopy -> IO ()---- | vkCmdCopyImageToBuffer - Copy image data into a buffer------ = Description------ Each region in @pRegions@ is copied from the specified region of the--- source image to the specified region of the destination buffer.------ If @srcImage@ has a--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar format>,--- regions of each plane to be a source of a copy /must/ be specified--- separately using the @pRegions@ member of the 'BufferImageCopy'--- structure. In this case, the @aspectMask@ of @imageSubresource@ /must/--- be 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_0_BIT',--- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_1_BIT', or--- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_2_BIT'. For--- the purposes of 'cmdCopyBufferToImage', each plane of a multi-planar--- image is treated as having the format listed in--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#formats-compatible-planes>--- for the plane identified by the @aspectMask@ of the corresponding--- subresource. This applies both to 'Vulkan.Core10.Enums.Format.Format'--- and to coordinates used in the copy, which correspond to texels in the--- /plane/ rather than how these texels map to coordinates in the image as--- a whole.------ == Valid Usage------ - #VUID-vkCmdCopyImageToBuffer-commandBuffer-01831# If @commandBuffer@--- is an unprotected command buffer and--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>--- is not supported, @srcImage@ /must/ not be a protected image------ - #VUID-vkCmdCopyImageToBuffer-commandBuffer-01832# If @commandBuffer@--- is an unprotected command buffer and--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>--- is not supported, @dstBuffer@ /must/ not be a protected buffer------ - #VUID-vkCmdCopyImageToBuffer-commandBuffer-01833# If @commandBuffer@--- is a protected command buffer and--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>--- is not supported, @dstBuffer@ /must/ not be an unprotected buffer------ - #VUID-vkCmdCopyImageToBuffer-pRegions-06220# The image region--- specified by each element of @pRegions@ /must/ be contained within--- the specified @imageSubresource@ of @srcImage@------ - #VUID-vkCmdCopyImageToBuffer-pRegions-00183# @dstBuffer@ /must/ be--- large enough to contain all buffer locations that are accessed--- according to--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#copies-buffers-images-addressing Buffer and Image Addressing>,--- for each element of @pRegions@------ - #VUID-vkCmdCopyImageToBuffer-pRegions-00184# The union of all source--- regions, and the union of all destination regions, specified by the--- elements of @pRegions@, /must/ not overlap in memory------ - #VUID-vkCmdCopyImageToBuffer-srcImage-00186# @srcImage@ /must/ have--- been created with--- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_TRANSFER_SRC_BIT'--- usage flag------ - #VUID-vkCmdCopyImageToBuffer-srcImage-01998# The--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-format-features format features>--- of @srcImage@ /must/ contain--- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_TRANSFER_SRC_BIT'------ - #VUID-vkCmdCopyImageToBuffer-srcImage-00187# If @srcImage@ is--- non-sparse then it /must/ be bound completely and contiguously to a--- single 'Vulkan.Core10.Handles.DeviceMemory' object------ - #VUID-vkCmdCopyImageToBuffer-dstBuffer-00191# @dstBuffer@ /must/--- have been created with--- 'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_TRANSFER_DST_BIT'--- usage flag------ - #VUID-vkCmdCopyImageToBuffer-dstBuffer-00192# If @dstBuffer@ is--- non-sparse then it /must/ be bound completely and contiguously to a--- single 'Vulkan.Core10.Handles.DeviceMemory' object------ - #VUID-vkCmdCopyImageToBuffer-srcImage-00188# @srcImage@ /must/ have--- a sample count equal to--- 'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT'------ - #VUID-vkCmdCopyImageToBuffer-srcImageLayout-00189# @srcImageLayout@--- /must/ specify the layout of the image subresources of @srcImage@--- specified in @pRegions@ at the time this command is executed on a--- 'Vulkan.Core10.Handles.Device'------ - #VUID-vkCmdCopyImageToBuffer-srcImageLayout-01397# @srcImageLayout@--- /must/ be--- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL',--- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_GENERAL', or--- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_SHARED_PRESENT_KHR'------ - #VUID-vkCmdCopyImageToBuffer-imageSubresource-01703# The--- @imageSubresource.mipLevel@ member of each element of @pRegions@--- /must/ be less than the @mipLevels@ specified in--- 'Vulkan.Core10.Image.ImageCreateInfo' when @srcImage@ was created------ - #VUID-vkCmdCopyImageToBuffer-imageSubresource-01704# The--- @imageSubresource.baseArrayLayer@ + @imageSubresource.layerCount@ of--- each element of @pRegions@ /must/ be less than or equal to the--- @arrayLayers@ specified in 'Vulkan.Core10.Image.ImageCreateInfo'--- when @srcImage@ was created------ - #VUID-vkCmdCopyImageToBuffer-imageOffset-01794# The @imageOffset@--- and @imageExtent@ members of each element of @pRegions@ /must/--- respect the image transfer granularity requirements of--- @commandBuffer@’s command pool’s queue family, as described in--- 'Vulkan.Core10.DeviceInitialization.QueueFamilyProperties'------ - #VUID-vkCmdCopyImageToBuffer-srcImage-02544# @srcImage@ /must/ not--- have been created with @flags@ containing--- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SUBSAMPLED_BIT_EXT'------ - #VUID-vkCmdCopyImageToBuffer-pRegions-06221# For each element of--- @pRegions@, @imageOffset.x@ and (@imageExtent.width@ +--- @imageOffset.x@) /must/ both be greater than or equal to @0@ and--- less than or equal to the width of the specified @imageSubresource@--- of @srcImage@------ - #VUID-vkCmdCopyImageToBuffer-pRegions-06222# For each element of--- @pRegions@, @imageOffset.y@ and (imageExtent.height +--- @imageOffset.y@) /must/ both be greater than or equal to @0@ and--- less than or equal to the height of the specified @imageSubresource@--- of @srcImage@------ - #VUID-vkCmdCopyImageToBuffer-bufferOffset-01558# If @srcImage@ does--- not have either a depth\/stencil or a--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar format>,--- then for each element of @pRegions@, @bufferOffset@ /must/ be a--- multiple of the format’s texel block size------ - #VUID-vkCmdCopyImageToBuffer-bufferOffset-01559# If @srcImage@ has a--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar format>,--- then for each element of @pRegions@, @bufferOffset@ /must/ be a--- multiple of the element size of the compatible format for the format--- and the @aspectMask@ of the @imageSubresource@ as defined in--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatible-planes ???>------ - #VUID-vkCmdCopyImageToBuffer-srcImage-00199# If @srcImage@ is of--- type 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_1D', then for each--- element of @pRegions@, @imageOffset.y@ /must/ be @0@ and--- @imageExtent.height@ /must/ be @1@------ - #VUID-vkCmdCopyImageToBuffer-imageOffset-00200# For each element of--- @pRegions@, @imageOffset.z@ and (@imageExtent.depth@ +--- @imageOffset.z@) /must/ both be greater than or equal to @0@ and--- less than or equal to the depth of the specified @imageSubresource@--- of @srcImage@------ - #VUID-vkCmdCopyImageToBuffer-srcImage-00201# If @srcImage@ is of--- type 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_1D' or--- 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D', then for each element--- of @pRegions@, @imageOffset.z@ /must/ be @0@ and @imageExtent.depth@--- /must/ be @1@------ - #VUID-vkCmdCopyImageToBuffer-bufferRowLength-00203# If @srcImage@ is--- a--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#blocked-image blocked image>,--- for each element of @pRegions@, @bufferRowLength@ /must/ be a--- multiple of the compressed texel block width------ - #VUID-vkCmdCopyImageToBuffer-bufferImageHeight-00204# If @srcImage@--- is a--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#blocked-image blocked image>,--- for each element of @pRegions@, @bufferImageHeight@ /must/ be a--- multiple of the compressed texel block height------ - #VUID-vkCmdCopyImageToBuffer-imageOffset-00205# If @srcImage@ is a--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#blocked-image blocked image>,--- for each element of @pRegions@, all members of @imageOffset@ /must/--- be a multiple of the corresponding dimensions of the compressed--- texel block------ - #VUID-vkCmdCopyImageToBuffer-bufferOffset-00206# If @srcImage@ is a--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#blocked-image blocked image>,--- for each element of @pRegions@, @bufferOffset@ /must/ be a multiple--- of the compressed texel block size in bytes------ - #VUID-vkCmdCopyImageToBuffer-imageExtent-00207# If @srcImage@ is a--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#blocked-image blocked image>,--- for each element of @pRegions@, @imageExtent.width@ /must/ be a--- multiple of the compressed texel block width or (@imageExtent.width@--- + @imageOffset.x@) /must/ equal the width of the specified--- @imageSubresource@ of @srcImage@------ - #VUID-vkCmdCopyImageToBuffer-imageExtent-00208# If @srcImage@ is a--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#blocked-image blocked image>,--- for each element of @pRegions@, @imageExtent.height@ /must/ be a--- multiple of the compressed texel block height or--- (@imageExtent.height@ + @imageOffset.y@) /must/ equal the height of--- the specified @imageSubresource@ of @srcImage@------ - #VUID-vkCmdCopyImageToBuffer-imageExtent-00209# If @srcImage@ is a--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#blocked-image blocked image>,--- for each element of @pRegions@, @imageExtent.depth@ /must/ be a--- multiple of the compressed texel block depth or (@imageExtent.depth@--- + @imageOffset.z@) /must/ equal the depth of the specified--- @imageSubresource@ of @srcImage@------ - #VUID-vkCmdCopyImageToBuffer-aspectMask-00211# For each element of--- @pRegions@, @imageSubresource.aspectMask@ /must/ specify aspects--- present in @srcImage@------ - #VUID-vkCmdCopyImageToBuffer-aspectMask-01560# If @srcImage@ has a--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar format>,--- then for each element of @pRegions@, @imageSubresource.aspectMask@--- /must/ be--- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_0_BIT',--- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_1_BIT',--- or--- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_2_BIT'--- (with--- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_2_BIT'--- valid only for image formats with three planes)------ - #VUID-vkCmdCopyImageToBuffer-baseArrayLayer-00213# If @srcImage@ is--- of type 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_3D', for each--- element of @pRegions@, @imageSubresource.baseArrayLayer@ /must/ be--- @0@ and @imageSubresource.layerCount@ /must/ be @1@------ - #VUID-vkCmdCopyImageToBuffer-pRegions-04725# If @srcImage@ is not a--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#blocked-image blocked image>,--- for each element of @pRegions@, @bufferRowLength@ multiplied by the--- texel block size of @srcImage@ /must/ be less than or equal to 231-1------ - #VUID-vkCmdCopyImageToBuffer-pRegions-04726# If @srcImage@ is a--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#blocked-image blocked image>,--- for each element of @pRegions@, @bufferRowLength@ divided by the--- compressed texel block width and then multiplied by the texel block--- size of @srcImage@ /must/ be less than or equal to 231-1------ - #VUID-vkCmdCopyImageToBuffer-commandBuffer-04052# If the queue--- family used to create the 'Vulkan.Core10.Handles.CommandPool' which--- @commandBuffer@ was allocated from does not support--- 'Vulkan.Core10.Enums.QueueFlagBits.QUEUE_GRAPHICS_BIT' or--- 'Vulkan.Core10.Enums.QueueFlagBits.QUEUE_COMPUTE_BIT', the--- @bufferOffset@ member of any element of @pRegions@ /must/ be a--- multiple of @4@------ - #VUID-vkCmdCopyImageToBuffer-srcImage-04053# If @srcImage@ has a--- depth\/stencil format, the @bufferOffset@ member of any element of--- @pRegions@ /must/ be a multiple of @4@------ == Valid Usage (Implicit)------ - #VUID-vkCmdCopyImageToBuffer-commandBuffer-parameter#--- @commandBuffer@ /must/ be a valid--- 'Vulkan.Core10.Handles.CommandBuffer' handle------ - #VUID-vkCmdCopyImageToBuffer-srcImage-parameter# @srcImage@ /must/--- be a valid 'Vulkan.Core10.Handles.Image' handle------ - #VUID-vkCmdCopyImageToBuffer-srcImageLayout-parameter#--- @srcImageLayout@ /must/ be a valid--- 'Vulkan.Core10.Enums.ImageLayout.ImageLayout' value------ - #VUID-vkCmdCopyImageToBuffer-dstBuffer-parameter# @dstBuffer@ /must/--- be a valid 'Vulkan.Core10.Handles.Buffer' handle------ - #VUID-vkCmdCopyImageToBuffer-pRegions-parameter# @pRegions@ /must/--- be a valid pointer to an array of @regionCount@ valid--- 'BufferImageCopy' structures------ - #VUID-vkCmdCopyImageToBuffer-commandBuffer-recording#--- @commandBuffer@ /must/ be in the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording state>------ - #VUID-vkCmdCopyImageToBuffer-commandBuffer-cmdpool# The--- 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was--- allocated from /must/ support transfer, graphics, or compute--- operations------ - #VUID-vkCmdCopyImageToBuffer-renderpass# This command /must/ only be--- called outside of a render pass instance------ - #VUID-vkCmdCopyImageToBuffer-regionCount-arraylength# @regionCount@--- /must/ be greater than @0@------ - #VUID-vkCmdCopyImageToBuffer-commonparent# Each of @commandBuffer@,--- @dstBuffer@, and @srcImage@ /must/ have been created, allocated, or--- retrieved from the same 'Vulkan.Core10.Handles.Device'------ == Host Synchronization------ - Host access to @commandBuffer@ /must/ be externally synchronized------ - Host access to the 'Vulkan.Core10.Handles.CommandPool' that--- @commandBuffer@ was allocated from /must/ be externally synchronized------ == Command Properties------ \'------ +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | Primary | Outside | Transfer |--- | Secondary | | Graphics |--- | | | Compute |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,--- 'Vulkan.Core10.Handles.Buffer', 'BufferImageCopy',--- 'Vulkan.Core10.Handles.CommandBuffer', 'Vulkan.Core10.Handles.Image',--- 'Vulkan.Core10.Enums.ImageLayout.ImageLayout'-cmdCopyImageToBuffer :: forall io- . (MonadIO io)- => -- | @commandBuffer@ is the command buffer into which the command will be- -- recorded.- CommandBuffer- -> -- | @srcImage@ is the source image.- ("srcImage" ::: Image)- -> -- | @srcImageLayout@ is the layout of the source image subresources for the- -- copy.- ("srcImageLayout" ::: ImageLayout)- -> -- | @dstBuffer@ is the destination buffer.- ("dstBuffer" ::: Buffer)- -> -- | @pRegions@ is a pointer to an array of 'BufferImageCopy' structures- -- specifying the regions to copy.- ("regions" ::: Vector BufferImageCopy)- -> io ()-cmdCopyImageToBuffer commandBuffer srcImage srcImageLayout dstBuffer regions = liftIO . evalContT $ do- let vkCmdCopyImageToBufferPtr = pVkCmdCopyImageToBuffer (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)- lift $ unless (vkCmdCopyImageToBufferPtr /= nullFunPtr) $- throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdCopyImageToBuffer is null" Nothing Nothing- let vkCmdCopyImageToBuffer' = mkVkCmdCopyImageToBuffer vkCmdCopyImageToBufferPtr- pPRegions <- ContT $ allocaBytes @BufferImageCopy ((Data.Vector.length (regions)) * 56)- lift $ Data.Vector.imapM_ (\i e -> poke (pPRegions `plusPtr` (56 * (i)) :: Ptr BufferImageCopy) (e)) (regions)- lift $ traceAroundEvent "vkCmdCopyImageToBuffer" (vkCmdCopyImageToBuffer' (commandBufferHandle (commandBuffer)) (srcImage) (srcImageLayout) (dstBuffer) ((fromIntegral (Data.Vector.length $ (regions)) :: Word32)) (pPRegions))- pure $ ()---foreign import ccall-#if !defined(SAFE_FOREIGN_CALLS)- unsafe-#endif- "dynamic" mkVkCmdUpdateBuffer- :: FunPtr (Ptr CommandBuffer_T -> Buffer -> DeviceSize -> DeviceSize -> Ptr () -> IO ()) -> Ptr CommandBuffer_T -> Buffer -> DeviceSize -> DeviceSize -> Ptr () -> IO ()---- | vkCmdUpdateBuffer - Update a buffer’s contents from host memory------ = Description------ @dataSize@ /must/ be less than or equal to 65536 bytes. For larger--- updates, applications /can/ use buffer to buffer--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#copies-buffers copies>.------ Note------ Buffer updates performed with 'cmdUpdateBuffer' first copy the data into--- command buffer memory when the command is recorded (which requires--- additional storage and may incur an additional allocation), and then--- copy the data from the command buffer into @dstBuffer@ when the command--- is executed on a device.------ The additional cost of this functionality compared to--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#copies-buffers buffer to buffer copies>--- means it is only recommended for very small amounts of data, and is why--- it is limited to only 65536 bytes.------ Applications /can/ work around this by issuing multiple--- 'cmdUpdateBuffer' commands to different ranges of the same buffer, but--- it is strongly recommended that they /should/ not.------ The source data is copied from the user pointer to the command buffer--- when the command is called.------ 'cmdUpdateBuffer' is only allowed outside of a render pass. This command--- is treated as a “transfer” operation for the purposes of synchronization--- barriers. The--- 'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_TRANSFER_DST_BIT'--- /must/ be specified in @usage@ of--- 'Vulkan.Core10.Buffer.BufferCreateInfo' in order for the buffer to be--- compatible with 'cmdUpdateBuffer'.------ == Valid Usage------ - #VUID-vkCmdUpdateBuffer-dstOffset-00032# @dstOffset@ /must/ be less--- than the size of @dstBuffer@------ - #VUID-vkCmdUpdateBuffer-dataSize-00033# @dataSize@ /must/ be less--- than or equal to the size of @dstBuffer@ minus @dstOffset@------ - #VUID-vkCmdUpdateBuffer-dstBuffer-00034# @dstBuffer@ /must/ have--- been created with--- 'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_TRANSFER_DST_BIT'--- usage flag------ - #VUID-vkCmdUpdateBuffer-dstBuffer-00035# If @dstBuffer@ is--- non-sparse then it /must/ be bound completely and contiguously to a--- single 'Vulkan.Core10.Handles.DeviceMemory' object------ - #VUID-vkCmdUpdateBuffer-dstOffset-00036# @dstOffset@ /must/ be a--- multiple of @4@------ - #VUID-vkCmdUpdateBuffer-dataSize-00037# @dataSize@ /must/ be less--- than or equal to @65536@------ - #VUID-vkCmdUpdateBuffer-dataSize-00038# @dataSize@ /must/ be a--- multiple of @4@------ - #VUID-vkCmdUpdateBuffer-commandBuffer-01813# If @commandBuffer@ is--- an unprotected command buffer and--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>--- is not supported, @dstBuffer@ /must/ not be a protected buffer------ - #VUID-vkCmdUpdateBuffer-commandBuffer-01814# If @commandBuffer@ is a--- protected command buffer and--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>--- is not supported, @dstBuffer@ /must/ not be an unprotected buffer------ == Valid Usage (Implicit)------ - #VUID-vkCmdUpdateBuffer-commandBuffer-parameter# @commandBuffer@--- /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle------ - #VUID-vkCmdUpdateBuffer-dstBuffer-parameter# @dstBuffer@ /must/ be a--- valid 'Vulkan.Core10.Handles.Buffer' handle------ - #VUID-vkCmdUpdateBuffer-pData-parameter# @pData@ /must/ be a valid--- pointer to an array of @dataSize@ bytes------ - #VUID-vkCmdUpdateBuffer-commandBuffer-recording# @commandBuffer@--- /must/ be in the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording state>------ - #VUID-vkCmdUpdateBuffer-commandBuffer-cmdpool# The--- 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was--- allocated from /must/ support transfer, graphics, or compute--- operations------ - #VUID-vkCmdUpdateBuffer-renderpass# This command /must/ only be--- called outside of a render pass instance------ - #VUID-vkCmdUpdateBuffer-dataSize-arraylength# @dataSize@ /must/ be--- greater than @0@------ - #VUID-vkCmdUpdateBuffer-commonparent# Both of @commandBuffer@, and--- @dstBuffer@ /must/ have been created, allocated, or retrieved from--- the same 'Vulkan.Core10.Handles.Device'------ == Host Synchronization------ - Host access to @commandBuffer@ /must/ be externally synchronized------ - Host access to the 'Vulkan.Core10.Handles.CommandPool' that--- @commandBuffer@ was allocated from /must/ be externally synchronized------ == Command Properties------ \'------ +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | Primary | Outside | Transfer |--- | Secondary | | Graphics |--- | | | Compute |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,--- 'Vulkan.Core10.Handles.Buffer', 'Vulkan.Core10.Handles.CommandBuffer',--- 'Vulkan.Core10.FundamentalTypes.DeviceSize'-cmdUpdateBuffer :: forall io- . (MonadIO io)- => -- | @commandBuffer@ is the command buffer into which the command will be- -- recorded.- CommandBuffer- -> -- | @dstBuffer@ is a handle to the buffer to be updated.- ("dstBuffer" ::: Buffer)- -> -- | @dstOffset@ is the byte offset into the buffer to start updating, and- -- /must/ be a multiple of 4.- ("dstOffset" ::: DeviceSize)- -> -- | @dataSize@ is the number of bytes to update, and /must/ be a multiple of- -- 4.- ("dataSize" ::: DeviceSize)- -> -- | @pData@ is a pointer to the source data for the buffer update, and- -- /must/ be at least @dataSize@ bytes in size.- ("data" ::: Ptr ())- -> io ()-cmdUpdateBuffer commandBuffer dstBuffer dstOffset dataSize data' = liftIO $ do- let vkCmdUpdateBufferPtr = pVkCmdUpdateBuffer (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)- unless (vkCmdUpdateBufferPtr /= nullFunPtr) $- throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdUpdateBuffer is null" Nothing Nothing- let vkCmdUpdateBuffer' = mkVkCmdUpdateBuffer vkCmdUpdateBufferPtr- traceAroundEvent "vkCmdUpdateBuffer" (vkCmdUpdateBuffer' (commandBufferHandle (commandBuffer)) (dstBuffer) (dstOffset) (dataSize) (data'))- pure $ ()---foreign import ccall-#if !defined(SAFE_FOREIGN_CALLS)- unsafe-#endif- "dynamic" mkVkCmdFillBuffer- :: FunPtr (Ptr CommandBuffer_T -> Buffer -> DeviceSize -> DeviceSize -> Word32 -> IO ()) -> Ptr CommandBuffer_T -> Buffer -> DeviceSize -> DeviceSize -> Word32 -> IO ()---- | vkCmdFillBuffer - Fill a region of a buffer with a fixed value------ = Description------ 'cmdFillBuffer' is treated as a “transfer” operation for the purposes of--- synchronization barriers. The--- 'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_TRANSFER_DST_BIT'--- /must/ be specified in @usage@ of--- 'Vulkan.Core10.Buffer.BufferCreateInfo' in order for the buffer to be--- compatible with 'cmdFillBuffer'.------ == Valid Usage------ - #VUID-vkCmdFillBuffer-dstOffset-00024# @dstOffset@ /must/ be less--- than the size of @dstBuffer@------ - #VUID-vkCmdFillBuffer-dstOffset-00025# @dstOffset@ /must/ be a--- multiple of @4@------ - #VUID-vkCmdFillBuffer-size-00026# If @size@ is not equal to--- 'Vulkan.Core10.APIConstants.WHOLE_SIZE', @size@ /must/ be greater--- than @0@------ - #VUID-vkCmdFillBuffer-size-00027# If @size@ is not equal to--- 'Vulkan.Core10.APIConstants.WHOLE_SIZE', @size@ /must/ be less than--- or equal to the size of @dstBuffer@ minus @dstOffset@------ - #VUID-vkCmdFillBuffer-size-00028# If @size@ is not equal to--- 'Vulkan.Core10.APIConstants.WHOLE_SIZE', @size@ /must/ be a multiple--- of @4@------ - #VUID-vkCmdFillBuffer-dstBuffer-00029# @dstBuffer@ /must/ have been--- created with--- 'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_TRANSFER_DST_BIT'--- usage flag------ - #VUID-vkCmdFillBuffer-dstBuffer-00031# If @dstBuffer@ is non-sparse--- then it /must/ be bound completely and contiguously to a single--- 'Vulkan.Core10.Handles.DeviceMemory' object------ - #VUID-vkCmdFillBuffer-commandBuffer-01811# If @commandBuffer@ is an--- unprotected command buffer and--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>--- is not supported, @dstBuffer@ /must/ not be a protected buffer------ - #VUID-vkCmdFillBuffer-commandBuffer-01812# If @commandBuffer@ is a--- protected command buffer and--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>--- is not supported, @dstBuffer@ /must/ not be an unprotected buffer------ == Valid Usage (Implicit)------ - #VUID-vkCmdFillBuffer-commandBuffer-parameter# @commandBuffer@--- /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle------ - #VUID-vkCmdFillBuffer-dstBuffer-parameter# @dstBuffer@ /must/ be a--- valid 'Vulkan.Core10.Handles.Buffer' handle------ - #VUID-vkCmdFillBuffer-commandBuffer-recording# @commandBuffer@--- /must/ be in the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording state>------ - #VUID-vkCmdFillBuffer-commandBuffer-cmdpool# The--- 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was--- allocated from /must/ support transfer, graphics or compute--- operations------ - #VUID-vkCmdFillBuffer-renderpass# This command /must/ only be called--- outside of a render pass instance------ - #VUID-vkCmdFillBuffer-commonparent# Both of @commandBuffer@, and--- @dstBuffer@ /must/ have been created, allocated, or retrieved from--- the same 'Vulkan.Core10.Handles.Device'------ == Host Synchronization------ - Host access to @commandBuffer@ /must/ be externally synchronized------ - Host access to the 'Vulkan.Core10.Handles.CommandPool' that--- @commandBuffer@ was allocated from /must/ be externally synchronized------ == Command Properties------ \'------ +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | Primary | Outside | Transfer |--- | Secondary | | Graphics |--- | | | Compute |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,--- 'Vulkan.Core10.Handles.Buffer', 'Vulkan.Core10.Handles.CommandBuffer',--- 'Vulkan.Core10.FundamentalTypes.DeviceSize'-cmdFillBuffer :: forall io- . (MonadIO io)- => -- | @commandBuffer@ is the command buffer into which the command will be- -- recorded.- CommandBuffer- -> -- | @dstBuffer@ is the buffer to be filled.- ("dstBuffer" ::: Buffer)- -> -- | @dstOffset@ is the byte offset into the buffer at which to start- -- filling, and /must/ be a multiple of 4.- ("dstOffset" ::: DeviceSize)- -> -- | @size@ is the number of bytes to fill, and /must/ be either a multiple- -- of 4, or 'Vulkan.Core10.APIConstants.WHOLE_SIZE' to fill the range from- -- @offset@ to the end of the buffer. If- -- 'Vulkan.Core10.APIConstants.WHOLE_SIZE' is used and the remaining size- -- of the buffer is not a multiple of 4, then the nearest smaller multiple- -- is used.- DeviceSize- -> -- | @data@ is the 4-byte word written repeatedly to the buffer to fill- -- @size@ bytes of data. The data word is written to memory according to- -- the host endianness.- ("data" ::: Word32)- -> io ()-cmdFillBuffer commandBuffer dstBuffer dstOffset size data' = liftIO $ do- let vkCmdFillBufferPtr = pVkCmdFillBuffer (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)- unless (vkCmdFillBufferPtr /= nullFunPtr) $- throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdFillBuffer is null" Nothing Nothing- let vkCmdFillBuffer' = mkVkCmdFillBuffer vkCmdFillBufferPtr- traceAroundEvent "vkCmdFillBuffer" (vkCmdFillBuffer' (commandBufferHandle (commandBuffer)) (dstBuffer) (dstOffset) (size) (data'))- pure $ ()---foreign import ccall-#if !defined(SAFE_FOREIGN_CALLS)- unsafe-#endif- "dynamic" mkVkCmdClearColorImage- :: FunPtr (Ptr CommandBuffer_T -> Image -> ImageLayout -> Ptr ClearColorValue -> Word32 -> Ptr ImageSubresourceRange -> IO ()) -> Ptr CommandBuffer_T -> Image -> ImageLayout -> Ptr ClearColorValue -> Word32 -> Ptr ImageSubresourceRange -> IO ()---- | vkCmdClearColorImage - Clear regions of a color image------ = Description------ Each specified range in @pRanges@ is cleared to the value specified by--- @pColor@.------ == Valid Usage------ - #VUID-vkCmdClearColorImage-image-01993# The--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-format-features format features>--- of @image@ /must/ contain--- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_TRANSFER_DST_BIT'------ - #VUID-vkCmdClearColorImage-image-00002# @image@ /must/ have been--- created with--- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_TRANSFER_DST_BIT'--- usage flag------ - #VUID-vkCmdClearColorImage-image-01545# @image@ /must/ not use any--- of the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion formats that require a sampler Y′CBCR conversion>------ - #VUID-vkCmdClearColorImage-image-00003# If @image@ is non-sparse--- then it /must/ be bound completely and contiguously to a single--- 'Vulkan.Core10.Handles.DeviceMemory' object------ - #VUID-vkCmdClearColorImage-imageLayout-00004# @imageLayout@ /must/--- specify the layout of the image subresource ranges of @image@--- specified in @pRanges@ at the time this command is executed on a--- 'Vulkan.Core10.Handles.Device'------ - #VUID-vkCmdClearColorImage-imageLayout-01394# @imageLayout@ /must/--- be--- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL',--- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_GENERAL', or--- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_SHARED_PRESENT_KHR'------ - #VUID-vkCmdClearColorImage-aspectMask-02498# The--- 'Vulkan.Core10.ImageView.ImageSubresourceRange'::@aspectMask@--- members of the elements of the @pRanges@ array /must/ each only--- include--- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_COLOR_BIT'------ - #VUID-vkCmdClearColorImage-baseMipLevel-01470# The--- 'Vulkan.Core10.ImageView.ImageSubresourceRange'::@baseMipLevel@--- members of the elements of the @pRanges@ array /must/ each be less--- than the @mipLevels@ specified in--- 'Vulkan.Core10.Image.ImageCreateInfo' when @image@ was created------ - #VUID-vkCmdClearColorImage-pRanges-01692# For each--- 'Vulkan.Core10.ImageView.ImageSubresourceRange' element of--- @pRanges@, if the @levelCount@ member is not--- 'Vulkan.Core10.APIConstants.REMAINING_MIP_LEVELS', then--- @baseMipLevel@ + @levelCount@ /must/ be less than the @mipLevels@--- specified in 'Vulkan.Core10.Image.ImageCreateInfo' when @image@ was--- created------ - #VUID-vkCmdClearColorImage-baseArrayLayer-01472# The--- 'Vulkan.Core10.ImageView.ImageSubresourceRange'::@baseArrayLayer@--- members of the elements of the @pRanges@ array /must/ each be less--- than the @arrayLayers@ specified in--- 'Vulkan.Core10.Image.ImageCreateInfo' when @image@ was created------ - #VUID-vkCmdClearColorImage-pRanges-01693# For each--- 'Vulkan.Core10.ImageView.ImageSubresourceRange' element of--- @pRanges@, if the @layerCount@ member is not--- 'Vulkan.Core10.APIConstants.REMAINING_ARRAY_LAYERS', then--- @baseArrayLayer@ + @layerCount@ /must/ be less than the--- @arrayLayers@ specified in 'Vulkan.Core10.Image.ImageCreateInfo'--- when @image@ was created------ - #VUID-vkCmdClearColorImage-image-00007# @image@ /must/ not have a--- compressed or depth\/stencil format------ - #VUID-vkCmdClearColorImage-pColor-04961# @pColor@ /must/ be a valid--- pointer to a 'ClearColorValue' union------ - #VUID-vkCmdClearColorImage-commandBuffer-01805# If @commandBuffer@--- is an unprotected command buffer and--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>--- is not supported, @image@ /must/ not be a protected image------ - #VUID-vkCmdClearColorImage-commandBuffer-01806# If @commandBuffer@--- is a protected command buffer and--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>--- is not supported, /must/ not be an unprotected image------ == Valid Usage (Implicit)------ - #VUID-vkCmdClearColorImage-commandBuffer-parameter# @commandBuffer@--- /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle------ - #VUID-vkCmdClearColorImage-image-parameter# @image@ /must/ be a--- valid 'Vulkan.Core10.Handles.Image' handle------ - #VUID-vkCmdClearColorImage-imageLayout-parameter# @imageLayout@--- /must/ be a valid 'Vulkan.Core10.Enums.ImageLayout.ImageLayout'--- value------ - #VUID-vkCmdClearColorImage-pRanges-parameter# @pRanges@ /must/ be a--- valid pointer to an array of @rangeCount@ valid--- 'Vulkan.Core10.ImageView.ImageSubresourceRange' structures------ - #VUID-vkCmdClearColorImage-commandBuffer-recording# @commandBuffer@--- /must/ be in the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording state>------ - #VUID-vkCmdClearColorImage-commandBuffer-cmdpool# The--- 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was--- allocated from /must/ support graphics, or compute operations------ - #VUID-vkCmdClearColorImage-renderpass# This command /must/ only be--- called outside of a render pass instance------ - #VUID-vkCmdClearColorImage-rangeCount-arraylength# @rangeCount@--- /must/ be greater than @0@------ - #VUID-vkCmdClearColorImage-commonparent# Both of @commandBuffer@,--- and @image@ /must/ have been created, allocated, or retrieved from--- the same 'Vulkan.Core10.Handles.Device'------ == Host Synchronization------ - Host access to @commandBuffer@ /must/ be externally synchronized------ - Host access to the 'Vulkan.Core10.Handles.CommandPool' that--- @commandBuffer@ was allocated from /must/ be externally synchronized------ == Command Properties------ \'------ +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | Primary | Outside | Graphics |--- | Secondary | | Compute |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,--- 'ClearColorValue', 'Vulkan.Core10.Handles.CommandBuffer',--- 'Vulkan.Core10.Handles.Image',--- 'Vulkan.Core10.Enums.ImageLayout.ImageLayout',--- 'Vulkan.Core10.ImageView.ImageSubresourceRange'-cmdClearColorImage :: forall io- . (MonadIO io)- => -- | @commandBuffer@ is the command buffer into which the command will be- -- recorded.- CommandBuffer- -> -- | @image@ is the image to be cleared.- Image- -> -- | @imageLayout@ specifies the current layout of the image subresource- -- ranges to be cleared, and /must/ be- -- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_SHARED_PRESENT_KHR',- -- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_GENERAL' or- -- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL'.- ImageLayout- -> -- | @pColor@ is a pointer to a 'ClearColorValue' structure containing the- -- values that the image subresource ranges will be cleared to (see- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#clears-values>- -- below).- ClearColorValue- -> -- | @pRanges@ is a pointer to an array of- -- 'Vulkan.Core10.ImageView.ImageSubresourceRange' structures describing a- -- range of mipmap levels, array layers, and aspects to be cleared, as- -- described in- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-views Image Views>.- ("ranges" ::: Vector ImageSubresourceRange)- -> io ()-cmdClearColorImage commandBuffer image imageLayout color ranges = liftIO . evalContT $ do- let vkCmdClearColorImagePtr = pVkCmdClearColorImage (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)- lift $ unless (vkCmdClearColorImagePtr /= nullFunPtr) $- throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdClearColorImage is null" Nothing Nothing- let vkCmdClearColorImage' = mkVkCmdClearColorImage vkCmdClearColorImagePtr- pColor <- ContT $ withCStruct (color)- pPRanges <- ContT $ allocaBytes @ImageSubresourceRange ((Data.Vector.length (ranges)) * 20)- lift $ Data.Vector.imapM_ (\i e -> poke (pPRanges `plusPtr` (20 * (i)) :: Ptr ImageSubresourceRange) (e)) (ranges)- lift $ traceAroundEvent "vkCmdClearColorImage" (vkCmdClearColorImage' (commandBufferHandle (commandBuffer)) (image) (imageLayout) pColor ((fromIntegral (Data.Vector.length $ (ranges)) :: Word32)) (pPRanges))- pure $ ()---foreign import ccall-#if !defined(SAFE_FOREIGN_CALLS)- unsafe-#endif- "dynamic" mkVkCmdClearDepthStencilImage- :: FunPtr (Ptr CommandBuffer_T -> Image -> ImageLayout -> Ptr ClearDepthStencilValue -> Word32 -> Ptr ImageSubresourceRange -> IO ()) -> Ptr CommandBuffer_T -> Image -> ImageLayout -> Ptr ClearDepthStencilValue -> Word32 -> Ptr ImageSubresourceRange -> IO ()---- | vkCmdClearDepthStencilImage - Fill regions of a combined depth\/stencil--- image------ == Valid Usage------ - #VUID-vkCmdClearDepthStencilImage-image-01994# The--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-format-features format features>--- of @image@ /must/ contain--- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_TRANSFER_DST_BIT'------ - #VUID-vkCmdClearDepthStencilImage-pRanges-02658# If the @aspect@--- member of any element of @pRanges@ includes--- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_STENCIL_BIT',--- and @image@ was created with--- <VkImageStencilUsageCreateInfo.html separate stencil usage>,--- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_TRANSFER_DST_BIT'--- /must/ have been included in the--- 'Vulkan.Core12.Promoted_From_VK_EXT_separate_stencil_usage.ImageStencilUsageCreateInfo'::@stencilUsage@--- used to create @image@------ - #VUID-vkCmdClearDepthStencilImage-pRanges-02659# If the @aspect@--- member of any element of @pRanges@ includes--- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_STENCIL_BIT',--- and @image@ was not created with--- <VkImageStencilUsageCreateInfo.html separate stencil usage>,--- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_TRANSFER_DST_BIT'--- /must/ have been included in the--- 'Vulkan.Core10.Image.ImageCreateInfo'::@usage@ used to create--- @image@------ - #VUID-vkCmdClearDepthStencilImage-pRanges-02660# If the @aspect@--- member of any element of @pRanges@ includes--- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_DEPTH_BIT',--- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_TRANSFER_DST_BIT'--- /must/ have been included in the--- 'Vulkan.Core10.Image.ImageCreateInfo'::@usage@ used to create--- @image@------ - #VUID-vkCmdClearDepthStencilImage-image-00010# If @image@ is--- non-sparse then it /must/ be bound completely and contiguously to a--- single 'Vulkan.Core10.Handles.DeviceMemory' object------ - #VUID-vkCmdClearDepthStencilImage-imageLayout-00011# @imageLayout@--- /must/ specify the layout of the image subresource ranges of @image@--- specified in @pRanges@ at the time this command is executed on a--- 'Vulkan.Core10.Handles.Device'------ - #VUID-vkCmdClearDepthStencilImage-imageLayout-00012# @imageLayout@--- /must/ be either of--- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL'--- or 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_GENERAL'------ - #VUID-vkCmdClearDepthStencilImage-aspectMask-02824# The--- 'Vulkan.Core10.ImageView.ImageSubresourceRange'::@aspectMask@ member--- of each element of the @pRanges@ array /must/ not include bits other--- than--- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_DEPTH_BIT' or--- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_STENCIL_BIT'------ - #VUID-vkCmdClearDepthStencilImage-image-02825# If the @image@’s--- format does not have a stencil component, then the--- 'Vulkan.Core10.ImageView.ImageSubresourceRange'::@aspectMask@ member--- of each element of the @pRanges@ array /must/ not include the--- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_STENCIL_BIT'--- bit------ - #VUID-vkCmdClearDepthStencilImage-image-02826# If the @image@’s--- format does not have a depth component, then the--- 'Vulkan.Core10.ImageView.ImageSubresourceRange'::@aspectMask@ member--- of each element of the @pRanges@ array /must/ not include the--- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_DEPTH_BIT' bit------ - #VUID-vkCmdClearDepthStencilImage-baseMipLevel-01474# The--- 'Vulkan.Core10.ImageView.ImageSubresourceRange'::@baseMipLevel@--- members of the elements of the @pRanges@ array /must/ each be less--- than the @mipLevels@ specified in--- 'Vulkan.Core10.Image.ImageCreateInfo' when @image@ was created------ - #VUID-vkCmdClearDepthStencilImage-pRanges-01694# For each--- 'Vulkan.Core10.ImageView.ImageSubresourceRange' element of--- @pRanges@, if the @levelCount@ member is not--- 'Vulkan.Core10.APIConstants.REMAINING_MIP_LEVELS', then--- @baseMipLevel@ + @levelCount@ /must/ be less than the @mipLevels@--- specified in 'Vulkan.Core10.Image.ImageCreateInfo' when @image@ was--- created------ - #VUID-vkCmdClearDepthStencilImage-baseArrayLayer-01476# The--- 'Vulkan.Core10.ImageView.ImageSubresourceRange'::@baseArrayLayer@--- members of the elements of the @pRanges@ array /must/ each be less--- than the @arrayLayers@ specified in--- 'Vulkan.Core10.Image.ImageCreateInfo' when @image@ was created------ - #VUID-vkCmdClearDepthStencilImage-pRanges-01695# For each--- 'Vulkan.Core10.ImageView.ImageSubresourceRange' element of--- @pRanges@, if the @layerCount@ member is not--- 'Vulkan.Core10.APIConstants.REMAINING_ARRAY_LAYERS', then--- @baseArrayLayer@ + @layerCount@ /must/ be less than the--- @arrayLayers@ specified in 'Vulkan.Core10.Image.ImageCreateInfo'--- when @image@ was created------ - #VUID-vkCmdClearDepthStencilImage-image-00014# @image@ /must/ have a--- depth\/stencil format------ - #VUID-vkCmdClearDepthStencilImage-commandBuffer-01807# If--- @commandBuffer@ is an unprotected command buffer and--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>--- is not supported, @image@ /must/ not be a protected image------ - #VUID-vkCmdClearDepthStencilImage-commandBuffer-01808# If--- @commandBuffer@ is a protected command buffer and--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>--- is not supported, @image@ /must/ not be an unprotected image------ == Valid Usage (Implicit)------ - #VUID-vkCmdClearDepthStencilImage-commandBuffer-parameter#--- @commandBuffer@ /must/ be a valid--- 'Vulkan.Core10.Handles.CommandBuffer' handle------ - #VUID-vkCmdClearDepthStencilImage-image-parameter# @image@ /must/ be--- a valid 'Vulkan.Core10.Handles.Image' handle------ - #VUID-vkCmdClearDepthStencilImage-imageLayout-parameter#--- @imageLayout@ /must/ be a valid--- 'Vulkan.Core10.Enums.ImageLayout.ImageLayout' value------ - #VUID-vkCmdClearDepthStencilImage-pDepthStencil-parameter#--- @pDepthStencil@ /must/ be a valid pointer to a valid--- 'ClearDepthStencilValue' structure------ - #VUID-vkCmdClearDepthStencilImage-pRanges-parameter# @pRanges@--- /must/ be a valid pointer to an array of @rangeCount@ valid--- 'Vulkan.Core10.ImageView.ImageSubresourceRange' structures------ - #VUID-vkCmdClearDepthStencilImage-commandBuffer-recording#--- @commandBuffer@ /must/ be in the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording state>------ - #VUID-vkCmdClearDepthStencilImage-commandBuffer-cmdpool# The--- 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was--- allocated from /must/ support graphics operations------ - #VUID-vkCmdClearDepthStencilImage-renderpass# This command /must/--- only be called outside of a render pass instance------ - #VUID-vkCmdClearDepthStencilImage-rangeCount-arraylength#--- @rangeCount@ /must/ be greater than @0@------ - #VUID-vkCmdClearDepthStencilImage-commonparent# Both of--- @commandBuffer@, and @image@ /must/ have been created, allocated, or--- retrieved from the same 'Vulkan.Core10.Handles.Device'------ == Host Synchronization------ - Host access to @commandBuffer@ /must/ be externally synchronized------ - Host access to the 'Vulkan.Core10.Handles.CommandPool' that--- @commandBuffer@ was allocated from /must/ be externally synchronized------ == Command Properties------ \'------ +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | Primary | Outside | Graphics |--- | Secondary | | |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,--- 'ClearDepthStencilValue', 'Vulkan.Core10.Handles.CommandBuffer',--- 'Vulkan.Core10.Handles.Image',--- 'Vulkan.Core10.Enums.ImageLayout.ImageLayout',--- 'Vulkan.Core10.ImageView.ImageSubresourceRange'-cmdClearDepthStencilImage :: forall io- . (MonadIO io)- => -- | @commandBuffer@ is the command buffer into which the command will be- -- recorded.- CommandBuffer- -> -- | @image@ is the image to be cleared.- Image- -> -- | @imageLayout@ specifies the current layout of the image subresource- -- ranges to be cleared, and /must/ be- -- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_GENERAL' or- -- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL'.- ImageLayout- -> -- | @pDepthStencil@ is a pointer to a 'ClearDepthStencilValue' structure- -- containing the values that the depth and stencil image subresource- -- ranges will be cleared to (see- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#clears-values>- -- below).- ClearDepthStencilValue- -> -- | @pRanges@ is a pointer to an array of- -- 'Vulkan.Core10.ImageView.ImageSubresourceRange' structures describing a- -- range of mipmap levels, array layers, and aspects to be cleared, as- -- described in- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-views Image Views>.- ("ranges" ::: Vector ImageSubresourceRange)- -> io ()-cmdClearDepthStencilImage commandBuffer image imageLayout depthStencil ranges = liftIO . evalContT $ do- let vkCmdClearDepthStencilImagePtr = pVkCmdClearDepthStencilImage (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)- lift $ unless (vkCmdClearDepthStencilImagePtr /= nullFunPtr) $- throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdClearDepthStencilImage is null" Nothing Nothing- let vkCmdClearDepthStencilImage' = mkVkCmdClearDepthStencilImage vkCmdClearDepthStencilImagePtr- pDepthStencil <- ContT $ withCStruct (depthStencil)- pPRanges <- ContT $ allocaBytes @ImageSubresourceRange ((Data.Vector.length (ranges)) * 20)- lift $ Data.Vector.imapM_ (\i e -> poke (pPRanges `plusPtr` (20 * (i)) :: Ptr ImageSubresourceRange) (e)) (ranges)- lift $ traceAroundEvent "vkCmdClearDepthStencilImage" (vkCmdClearDepthStencilImage' (commandBufferHandle (commandBuffer)) (image) (imageLayout) pDepthStencil ((fromIntegral (Data.Vector.length $ (ranges)) :: Word32)) (pPRanges))- pure $ ()---foreign import ccall-#if !defined(SAFE_FOREIGN_CALLS)- unsafe-#endif- "dynamic" mkVkCmdClearAttachments- :: FunPtr (Ptr CommandBuffer_T -> Word32 -> Ptr ClearAttachment -> Word32 -> Ptr ClearRect -> IO ()) -> Ptr CommandBuffer_T -> Word32 -> Ptr ClearAttachment -> Word32 -> Ptr ClearRect -> IO ()---- | vkCmdClearAttachments - Clear regions within bound framebuffer--- attachments------ = Description------ If the render pass has a--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-fragmentdensitymapattachment fragment density map attachment>,--- clears follow the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#fragmentdensitymapops operations of fragment density maps>--- as if each clear region was a primitive which generates fragments. The--- clear color is applied to all pixels inside each fragment’s area--- regardless if the pixels lie outside of the clear region. Clears /may/--- have a different set of supported fragment areas than draws.------ Unlike other--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#clears clear commands>,--- 'cmdClearAttachments' executes as a drawing command, rather than a--- transfer command, with writes performed by it executing in--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-order rasterization order>.--- Clears to color attachments are executed as color attachment writes, by--- the--- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT'--- stage. Clears to depth\/stencil attachments are executed as--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#fragops-depth depth writes>--- and--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#fragops-stencil writes>--- by the--- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT'--- and--- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT'--- stages.------ 'cmdClearAttachments' is not affected by the bound pipeline state.------ Note------ It is generally preferable to clear attachments by using the--- 'Vulkan.Core10.Enums.AttachmentLoadOp.ATTACHMENT_LOAD_OP_CLEAR' load--- operation at the start of rendering, as it is more efficient on some--- implementations.------ == Valid Usage------ - #VUID-vkCmdClearAttachments-aspectMask-02501# If the @aspectMask@--- member of any element of @pAttachments@ contains--- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_COLOR_BIT',--- then the @colorAttachment@ member of that element /must/ either--- refer to a color attachment which is--- 'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED', or /must/ be a valid--- color attachment------ - #VUID-vkCmdClearAttachments-aspectMask-02502# If the @aspectMask@--- member of any element of @pAttachments@ contains--- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_DEPTH_BIT',--- then the current subpass\' depth\/stencil attachment /must/ either--- be 'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED', or /must/ have a--- depth component------ - #VUID-vkCmdClearAttachments-aspectMask-02503# If the @aspectMask@--- member of any element of @pAttachments@ contains--- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_STENCIL_BIT',--- then the current subpass\' depth\/stencil attachment /must/ either--- be 'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED', or /must/ have a--- stencil component------ - #VUID-vkCmdClearAttachments-rect-02682# The @rect@ member of each--- element of @pRects@ /must/ have an @extent.width@ greater than @0@------ - #VUID-vkCmdClearAttachments-rect-02683# The @rect@ member of each--- element of @pRects@ /must/ have an @extent.height@ greater than @0@------ - #VUID-vkCmdClearAttachments-pRects-00016# The rectangular region--- specified by each element of @pRects@ /must/ be contained within the--- render area of the current render pass instance------ - #VUID-vkCmdClearAttachments-pRects-00017# The layers specified by--- each element of @pRects@ /must/ be contained within every attachment--- that @pAttachments@ refers to------ - #VUID-vkCmdClearAttachments-layerCount-01934# The @layerCount@--- member of each element of @pRects@ /must/ not be @0@------ - #VUID-vkCmdClearAttachments-commandBuffer-02504# If @commandBuffer@--- is an unprotected command buffer and--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>--- is not supported, each attachment to be cleared /must/ not be a--- protected image------ - #VUID-vkCmdClearAttachments-commandBuffer-02505# If @commandBuffer@--- is a protected command buffer and--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>--- is not supported, each attachment to be cleared /must/ not be an--- unprotected image------ - #VUID-vkCmdClearAttachments-baseArrayLayer-00018# If the render pass--- instance this is recorded in uses multiview, then @baseArrayLayer@--- /must/ be zero and @layerCount@ /must/ be one------ == Valid Usage (Implicit)------ - #VUID-vkCmdClearAttachments-commandBuffer-parameter# @commandBuffer@--- /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle------ - #VUID-vkCmdClearAttachments-pAttachments-parameter# @pAttachments@--- /must/ be a valid pointer to an array of @attachmentCount@ valid--- 'ClearAttachment' structures------ - #VUID-vkCmdClearAttachments-pRects-parameter# @pRects@ /must/ be a--- valid pointer to an array of @rectCount@ 'ClearRect' structures------ - #VUID-vkCmdClearAttachments-commandBuffer-recording# @commandBuffer@--- /must/ be in the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording state>------ - #VUID-vkCmdClearAttachments-commandBuffer-cmdpool# The--- 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was--- allocated from /must/ support graphics operations------ - #VUID-vkCmdClearAttachments-renderpass# This command /must/ only be--- called inside of a render pass instance------ - #VUID-vkCmdClearAttachments-attachmentCount-arraylength#--- @attachmentCount@ /must/ be greater than @0@------ - #VUID-vkCmdClearAttachments-rectCount-arraylength# @rectCount@--- /must/ be greater than @0@------ == Host Synchronization------ - Host access to @commandBuffer@ /must/ be externally synchronized------ - Host access to the 'Vulkan.Core10.Handles.CommandPool' that--- @commandBuffer@ was allocated from /must/ be externally synchronized------ == Command Properties------ \'------ +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | Primary | Inside | Graphics |--- | Secondary | | |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,--- 'ClearAttachment', 'ClearRect', 'Vulkan.Core10.Handles.CommandBuffer'-cmdClearAttachments :: forall io- . (MonadIO io)- => -- | @commandBuffer@ is the command buffer into which the command will be- -- recorded.- CommandBuffer- -> -- | @pAttachments@ is a pointer to an array of 'ClearAttachment' structures- -- defining the attachments to clear and the clear values to use. If any- -- attachment index to be cleared is not backed by an image view, then the- -- clear has no effect.- ("attachments" ::: Vector ClearAttachment)- -> -- | @pRects@ is a pointer to an array of 'ClearRect' structures defining- -- regions within each selected attachment to clear.- ("rects" ::: Vector ClearRect)- -> io ()-cmdClearAttachments commandBuffer attachments rects = liftIO . evalContT $ do- let vkCmdClearAttachmentsPtr = pVkCmdClearAttachments (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)- lift $ unless (vkCmdClearAttachmentsPtr /= nullFunPtr) $- throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdClearAttachments is null" Nothing Nothing- let vkCmdClearAttachments' = mkVkCmdClearAttachments vkCmdClearAttachmentsPtr- pPAttachments <- ContT $ allocaBytes @ClearAttachment ((Data.Vector.length (attachments)) * 24)- Data.Vector.imapM_ (\i e -> ContT $ pokeCStruct (pPAttachments `plusPtr` (24 * (i)) :: Ptr ClearAttachment) (e) . ($ ())) (attachments)- pPRects <- ContT $ allocaBytes @ClearRect ((Data.Vector.length (rects)) * 24)- lift $ Data.Vector.imapM_ (\i e -> poke (pPRects `plusPtr` (24 * (i)) :: Ptr ClearRect) (e)) (rects)- lift $ traceAroundEvent "vkCmdClearAttachments" (vkCmdClearAttachments' (commandBufferHandle (commandBuffer)) ((fromIntegral (Data.Vector.length $ (attachments)) :: Word32)) (pPAttachments) ((fromIntegral (Data.Vector.length $ (rects)) :: Word32)) (pPRects))- pure $ ()---foreign import ccall-#if !defined(SAFE_FOREIGN_CALLS)- unsafe-#endif- "dynamic" mkVkCmdResolveImage- :: FunPtr (Ptr CommandBuffer_T -> Image -> ImageLayout -> Image -> ImageLayout -> Word32 -> Ptr ImageResolve -> IO ()) -> Ptr CommandBuffer_T -> Image -> ImageLayout -> Image -> ImageLayout -> Word32 -> Ptr ImageResolve -> IO ()---- | vkCmdResolveImage - Resolve regions of an image------ = Description------ During the resolve the samples corresponding to each pixel location in--- the source are converted to a single sample before being written to the--- destination. If the source formats are floating-point or normalized--- types, the sample values for each pixel are resolved in an--- implementation-dependent manner. If the source formats are integer--- types, a single sample’s value is selected for each pixel.------ @srcOffset@ and @dstOffset@ select the initial @x@, @y@, and @z@ offsets--- in texels of the sub-regions of the source and destination image data.--- @extent@ is the size in texels of the source image to resolve in--- @width@, @height@ and @depth@. Each element of @pRegions@ /must/ be a--- region that is contained within its corresponding image.------ Resolves are done layer by layer starting with @baseArrayLayer@ member--- of @srcSubresource@ for the source and @dstSubresource@ for the--- destination. @layerCount@ layers are resolved to the destination image.------ == Valid Usage------ - #VUID-vkCmdResolveImage-commandBuffer-01837# If @commandBuffer@ is--- an unprotected command buffer and--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>--- is not supported, @srcImage@ /must/ not be a protected image------ - #VUID-vkCmdResolveImage-commandBuffer-01838# If @commandBuffer@ is--- an unprotected command buffer and--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>--- is not supported, @dstImage@ /must/ not be a protected image------ - #VUID-vkCmdResolveImage-commandBuffer-01839# If @commandBuffer@ is a--- protected command buffer and--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>--- is not supported, @dstImage@ /must/ not be an unprotected image------ - #VUID-vkCmdResolveImage-pRegions-00255# The union of all source--- regions, and the union of all destination regions, specified by the--- elements of @pRegions@, /must/ not overlap in memory------ - #VUID-vkCmdResolveImage-srcImage-00256# If @srcImage@ is non-sparse--- then it /must/ be bound completely and contiguously to a single--- 'Vulkan.Core10.Handles.DeviceMemory' object------ - #VUID-vkCmdResolveImage-srcImage-00257# @srcImage@ /must/ have a--- sample count equal to any valid sample count value other than--- 'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT'------ - #VUID-vkCmdResolveImage-dstImage-00258# If @dstImage@ is non-sparse--- then it /must/ be bound completely and contiguously to a single--- 'Vulkan.Core10.Handles.DeviceMemory' object------ - #VUID-vkCmdResolveImage-dstImage-00259# @dstImage@ /must/ have a--- sample count equal to--- 'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT'------ - #VUID-vkCmdResolveImage-srcImageLayout-00260# @srcImageLayout@--- /must/ specify the layout of the image subresources of @srcImage@--- specified in @pRegions@ at the time this command is executed on a--- 'Vulkan.Core10.Handles.Device'------ - #VUID-vkCmdResolveImage-srcImageLayout-01400# @srcImageLayout@--- /must/ be--- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_SHARED_PRESENT_KHR',--- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL'--- or 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_GENERAL'------ - #VUID-vkCmdResolveImage-dstImageLayout-00262# @dstImageLayout@--- /must/ specify the layout of the image subresources of @dstImage@--- specified in @pRegions@ at the time this command is executed on a--- 'Vulkan.Core10.Handles.Device'------ - #VUID-vkCmdResolveImage-dstImageLayout-01401# @dstImageLayout@--- /must/ be--- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_SHARED_PRESENT_KHR',--- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL'--- or 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_GENERAL'------ - #VUID-vkCmdResolveImage-dstImage-02003# The--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-format-features format features>--- of @dstImage@ /must/ contain--- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_COLOR_ATTACHMENT_BIT'------ - #VUID-vkCmdResolveImage-linearColorAttachment-06519# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-linearColorAttachment linearColorAttachment>--- feature is enabled and the image is created with--- 'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_LINEAR', the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-format-features format features>--- of @dstImage@ /must/ contain--- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV'------ - #VUID-vkCmdResolveImage-srcImage-01386# @srcImage@ and @dstImage@--- /must/ have been created with the same image format------ - #VUID-vkCmdResolveImage-srcSubresource-01709# The--- @srcSubresource.mipLevel@ member of each element of @pRegions@--- /must/ be less than the @mipLevels@ specified in--- 'Vulkan.Core10.Image.ImageCreateInfo' when @srcImage@ was created------ - #VUID-vkCmdResolveImage-dstSubresource-01710# The--- @dstSubresource.mipLevel@ member of each element of @pRegions@--- /must/ be less than the @mipLevels@ specified in--- 'Vulkan.Core10.Image.ImageCreateInfo' when @dstImage@ was created------ - #VUID-vkCmdResolveImage-srcSubresource-01711# The--- @srcSubresource.baseArrayLayer@ + @srcSubresource.layerCount@ of--- each element of @pRegions@ /must/ be less than or equal to the--- @arrayLayers@ specified in 'Vulkan.Core10.Image.ImageCreateInfo'--- when @srcImage@ was created------ - #VUID-vkCmdResolveImage-dstSubresource-01712# The--- @dstSubresource.baseArrayLayer@ + @dstSubresource.layerCount@ of--- each element of @pRegions@ /must/ be less than or equal to the--- @arrayLayers@ specified in 'Vulkan.Core10.Image.ImageCreateInfo'--- when @dstImage@ was created------ - #VUID-vkCmdResolveImage-dstImage-02546# @dstImage@ and @srcImage@--- /must/ not have been created with @flags@ containing--- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SUBSAMPLED_BIT_EXT'------ - #VUID-vkCmdResolveImage-srcImage-04446# If either @srcImage@ or--- @dstImage@ are of type--- 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_3D', then for each element--- of @pRegions@, @srcSubresource.baseArrayLayer@ /must/ be @0@ and--- @srcSubresource.layerCount@ /must/ be @1@------ - #VUID-vkCmdResolveImage-srcImage-04447# If either @srcImage@ or--- @dstImage@ are of type--- 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_3D', then for each element--- of @pRegions@, @dstSubresource.baseArrayLayer@ /must/ be @0@ and--- @dstSubresource.layerCount@ /must/ be @1@------ - #VUID-vkCmdResolveImage-srcOffset-00269# For each element of--- @pRegions@, @srcOffset.x@ and (@extent.width@ + @srcOffset.x@)--- /must/ both be greater than or equal to @0@ and less than or equal--- to the width of the specified @srcSubresource@ of @srcImage@------ - #VUID-vkCmdResolveImage-srcOffset-00270# For each element of--- @pRegions@, @srcOffset.y@ and (@extent.height@ + @srcOffset.y@)--- /must/ both be greater than or equal to @0@ and less than or equal--- to the height of the specified @srcSubresource@ of @srcImage@------ - #VUID-vkCmdResolveImage-srcImage-00271# If @srcImage@ is of type--- 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_1D', then for each element--- of @pRegions@, @srcOffset.y@ /must/ be @0@ and @extent.height@--- /must/ be @1@------ - #VUID-vkCmdResolveImage-srcOffset-00272# For each element of--- @pRegions@, @srcOffset.z@ and (@extent.depth@ + @srcOffset.z@)--- /must/ both be greater than or equal to @0@ and less than or equal--- to the depth of the specified @srcSubresource@ of @srcImage@------ - #VUID-vkCmdResolveImage-srcImage-00273# If @srcImage@ is of type--- 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_1D' or--- 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D', then for each element--- of @pRegions@, @srcOffset.z@ /must/ be @0@ and @extent.depth@ /must/--- be @1@------ - #VUID-vkCmdResolveImage-dstOffset-00274# For each element of--- @pRegions@, @dstOffset.x@ and (@extent.width@ + @dstOffset.x@)--- /must/ both be greater than or equal to @0@ and less than or equal--- to the width of the specified @dstSubresource@ of @dstImage@------ - #VUID-vkCmdResolveImage-dstOffset-00275# For each element of--- @pRegions@, @dstOffset.y@ and (@extent.height@ + @dstOffset.y@)--- /must/ both be greater than or equal to @0@ and less than or equal--- to the height of the specified @dstSubresource@ of @dstImage@------ - #VUID-vkCmdResolveImage-dstImage-00276# If @dstImage@ is of type--- 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_1D', then for each element--- of @pRegions@, @dstOffset.y@ /must/ be @0@ and @extent.height@--- /must/ be @1@------ - #VUID-vkCmdResolveImage-dstOffset-00277# For each element of--- @pRegions@, @dstOffset.z@ and (@extent.depth@ + @dstOffset.z@)--- /must/ both be greater than or equal to @0@ and less than or equal--- to the depth of the specified @dstSubresource@ of @dstImage@------ - #VUID-vkCmdResolveImage-dstImage-00278# If @dstImage@ is of type--- 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_1D' or--- 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D', then for each element--- of @pRegions@, @dstOffset.z@ /must/ be @0@ and @extent.depth@ /must/--- be @1@------ == Valid Usage (Implicit)------ - #VUID-vkCmdResolveImage-commandBuffer-parameter# @commandBuffer@--- /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle------ - #VUID-vkCmdResolveImage-srcImage-parameter# @srcImage@ /must/ be a--- valid 'Vulkan.Core10.Handles.Image' handle------ - #VUID-vkCmdResolveImage-srcImageLayout-parameter# @srcImageLayout@--- /must/ be a valid 'Vulkan.Core10.Enums.ImageLayout.ImageLayout'--- value------ - #VUID-vkCmdResolveImage-dstImage-parameter# @dstImage@ /must/ be a--- valid 'Vulkan.Core10.Handles.Image' handle------ - #VUID-vkCmdResolveImage-dstImageLayout-parameter# @dstImageLayout@--- /must/ be a valid 'Vulkan.Core10.Enums.ImageLayout.ImageLayout'--- value------ - #VUID-vkCmdResolveImage-pRegions-parameter# @pRegions@ /must/ be a--- valid pointer to an array of @regionCount@ valid 'ImageResolve'--- structures------ - #VUID-vkCmdResolveImage-commandBuffer-recording# @commandBuffer@--- /must/ be in the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording state>------ - #VUID-vkCmdResolveImage-commandBuffer-cmdpool# The--- 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was--- allocated from /must/ support graphics operations------ - #VUID-vkCmdResolveImage-renderpass# This command /must/ only be--- called outside of a render pass instance------ - #VUID-vkCmdResolveImage-regionCount-arraylength# @regionCount@--- /must/ be greater than @0@------ - #VUID-vkCmdResolveImage-commonparent# Each of @commandBuffer@,--- @dstImage@, and @srcImage@ /must/ have been created, allocated, or--- retrieved from the same 'Vulkan.Core10.Handles.Device'------ == Host Synchronization------ - Host access to @commandBuffer@ /must/ be externally synchronized------ - Host access to the 'Vulkan.Core10.Handles.CommandPool' that--- @commandBuffer@ was allocated from /must/ be externally synchronized------ == Command Properties------ \'------ +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | Primary | Outside | Graphics |--- | Secondary | | |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,--- 'Vulkan.Core10.Handles.CommandBuffer', 'Vulkan.Core10.Handles.Image',--- 'Vulkan.Core10.Enums.ImageLayout.ImageLayout', 'ImageResolve'-cmdResolveImage :: forall io- . (MonadIO io)- => -- | @commandBuffer@ is the command buffer into which the command will be- -- recorded.- CommandBuffer- -> -- | @srcImage@ is the source image.- ("srcImage" ::: Image)- -> -- | @srcImageLayout@ is the layout of the source image subresources for the- -- resolve.- ("srcImageLayout" ::: ImageLayout)- -> -- | @dstImage@ is the destination image.- ("dstImage" ::: Image)- -> -- | @dstImageLayout@ is the layout of the destination image subresources for- -- the resolve.- ("dstImageLayout" ::: ImageLayout)- -> -- | @pRegions@ is a pointer to an array of 'ImageResolve' structures- -- specifying the regions to resolve.- ("regions" ::: Vector ImageResolve)- -> io ()-cmdResolveImage commandBuffer srcImage srcImageLayout dstImage dstImageLayout regions = liftIO . evalContT $ do- let vkCmdResolveImagePtr = pVkCmdResolveImage (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)- lift $ unless (vkCmdResolveImagePtr /= nullFunPtr) $- throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdResolveImage is null" Nothing Nothing- let vkCmdResolveImage' = mkVkCmdResolveImage vkCmdResolveImagePtr- pPRegions <- ContT $ allocaBytes @ImageResolve ((Data.Vector.length (regions)) * 68)- lift $ Data.Vector.imapM_ (\i e -> poke (pPRegions `plusPtr` (68 * (i)) :: Ptr ImageResolve) (e)) (regions)- lift $ traceAroundEvent "vkCmdResolveImage" (vkCmdResolveImage' (commandBufferHandle (commandBuffer)) (srcImage) (srcImageLayout) (dstImage) (dstImageLayout) ((fromIntegral (Data.Vector.length $ (regions)) :: Word32)) (pPRegions))- pure $ ()---foreign import ccall-#if !defined(SAFE_FOREIGN_CALLS)- unsafe-#endif- "dynamic" mkVkCmdSetEvent- :: FunPtr (Ptr CommandBuffer_T -> Event -> PipelineStageFlags -> IO ()) -> Ptr CommandBuffer_T -> Event -> PipelineStageFlags -> IO ()---- | vkCmdSetEvent - Set an event object to signaled state------ = Description------ 'cmdSetEvent' behaves identically to--- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.cmdSetEvent2',--- except that it does not define an access scope, and /must/ only be used--- with 'cmdWaitEvents', not--- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.cmdWaitEvents2'.------ == Valid Usage------ - #VUID-vkCmdSetEvent-stageMask-04090# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryShader geometry shaders>--- feature is not enabled, @stageMask@ /must/ not contain--- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_GEOMETRY_SHADER_BIT'------ - #VUID-vkCmdSetEvent-stageMask-04091# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShader tessellation shaders>--- feature is not enabled, @stageMask@ /must/ not contain--- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT'--- or--- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT'------ - #VUID-vkCmdSetEvent-stageMask-04092# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-conditionalRendering conditional rendering>--- feature is not enabled, @stageMask@ /must/ not contain--- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT'------ - #VUID-vkCmdSetEvent-stageMask-04093# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-fragmentDensityMap fragment density map>--- feature is not enabled, @stageMask@ /must/ not contain--- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT'------ - #VUID-vkCmdSetEvent-stageMask-04094# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-transformFeedback transform feedback>--- feature is not enabled, @stageMask@ /must/ not contain--- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT'------ - #VUID-vkCmdSetEvent-stageMask-04095# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader mesh shaders>--- feature is not enabled, @stageMask@ /must/ not contain--- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_MESH_SHADER_BIT_NV'------ - #VUID-vkCmdSetEvent-stageMask-04096# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader task shaders>--- feature is not enabled, @stageMask@ /must/ not contain--- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TASK_SHADER_BIT_NV'------ - #VUID-vkCmdSetEvent-stageMask-04097# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shading rate image>--- feature is not enabled, @stageMask@ /must/ not contain--- 'Vulkan.Extensions.VK_NV_shading_rate_image.PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV'------ - #VUID-vkCmdSetEvent-stageMask-03937# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-synchronization2 synchronization2>--- feature is not enabled, @stageMask@ /must/ not be @0@------ - #VUID-vkCmdSetEvent-stageMask-06457# Any pipeline stage included in--- @stageMask@ /must/ be supported by the capabilities of the queue--- family specified by the @queueFamilyIndex@ member of the--- 'Vulkan.Core10.CommandPool.CommandPoolCreateInfo' structure that was--- used to create the 'Vulkan.Core10.Handles.CommandPool' that--- @commandBuffer@ was allocated from, as specified in the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages-supported table of supported pipeline stages>------ - #VUID-vkCmdSetEvent-stageMask-01149# @stageMask@ /must/ not include--- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_HOST_BIT'------ - #VUID-vkCmdSetEvent-commandBuffer-01152# @commandBuffer@’s current--- device mask /must/ include exactly one physical device------ == Valid Usage (Implicit)------ - #VUID-vkCmdSetEvent-commandBuffer-parameter# @commandBuffer@ /must/--- be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle------ - #VUID-vkCmdSetEvent-event-parameter# @event@ /must/ be a valid--- 'Vulkan.Core10.Handles.Event' handle------ - #VUID-vkCmdSetEvent-stageMask-parameter# @stageMask@ /must/ be a--- valid combination of--- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlagBits'--- values------ - #VUID-vkCmdSetEvent-commandBuffer-recording# @commandBuffer@ /must/--- be in the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording state>------ - #VUID-vkCmdSetEvent-commandBuffer-cmdpool# The--- 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was--- allocated from /must/ support graphics, or compute operations------ - #VUID-vkCmdSetEvent-renderpass# This command /must/ only be called--- outside of a render pass instance------ - #VUID-vkCmdSetEvent-commonparent# Both of @commandBuffer@, and--- @event@ /must/ have been created, allocated, or retrieved from the--- same 'Vulkan.Core10.Handles.Device'------ == Host Synchronization------ - Host access to @commandBuffer@ /must/ be externally synchronized------ - Host access to the 'Vulkan.Core10.Handles.CommandPool' that--- @commandBuffer@ was allocated from /must/ be externally synchronized------ == Command Properties------ \'------ +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | Primary | Outside | Graphics |--- | Secondary | | Compute |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,--- 'Vulkan.Core10.Handles.CommandBuffer', 'Vulkan.Core10.Handles.Event',--- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlags'-cmdSetEvent :: forall io- . (MonadIO io)- => -- | @commandBuffer@ is the command buffer into which the command is- -- recorded.- CommandBuffer- -> -- | @event@ is the event that will be signaled.- Event- -> -- | @stageMask@ specifies the- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages source stage mask>- -- used to determine the first- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>.- ("stageMask" ::: PipelineStageFlags)- -> io ()-cmdSetEvent commandBuffer event stageMask = liftIO $ do- let vkCmdSetEventPtr = pVkCmdSetEvent (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)- unless (vkCmdSetEventPtr /= nullFunPtr) $- throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetEvent is null" Nothing Nothing- let vkCmdSetEvent' = mkVkCmdSetEvent vkCmdSetEventPtr- traceAroundEvent "vkCmdSetEvent" (vkCmdSetEvent' (commandBufferHandle (commandBuffer)) (event) (stageMask))- pure $ ()---foreign import ccall-#if !defined(SAFE_FOREIGN_CALLS)- unsafe-#endif- "dynamic" mkVkCmdResetEvent- :: FunPtr (Ptr CommandBuffer_T -> Event -> PipelineStageFlags -> IO ()) -> Ptr CommandBuffer_T -> Event -> PipelineStageFlags -> IO ()---- | vkCmdResetEvent - Reset an event object to non-signaled state------ = Description------ 'cmdResetEvent' behaves identically to--- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.cmdResetEvent2'.------ == Valid Usage------ - #VUID-vkCmdResetEvent-stageMask-04090# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryShader geometry shaders>--- feature is not enabled, @stageMask@ /must/ not contain--- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_GEOMETRY_SHADER_BIT'------ - #VUID-vkCmdResetEvent-stageMask-04091# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShader tessellation shaders>--- feature is not enabled, @stageMask@ /must/ not contain--- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT'--- or--- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT'------ - #VUID-vkCmdResetEvent-stageMask-04092# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-conditionalRendering conditional rendering>--- feature is not enabled, @stageMask@ /must/ not contain--- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT'------ - #VUID-vkCmdResetEvent-stageMask-04093# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-fragmentDensityMap fragment density map>--- feature is not enabled, @stageMask@ /must/ not contain--- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT'------ - #VUID-vkCmdResetEvent-stageMask-04094# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-transformFeedback transform feedback>--- feature is not enabled, @stageMask@ /must/ not contain--- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT'------ - #VUID-vkCmdResetEvent-stageMask-04095# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader mesh shaders>--- feature is not enabled, @stageMask@ /must/ not contain--- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_MESH_SHADER_BIT_NV'------ - #VUID-vkCmdResetEvent-stageMask-04096# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader task shaders>--- feature is not enabled, @stageMask@ /must/ not contain--- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TASK_SHADER_BIT_NV'------ - #VUID-vkCmdResetEvent-stageMask-04097# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shading rate image>--- feature is not enabled, @stageMask@ /must/ not contain--- 'Vulkan.Extensions.VK_NV_shading_rate_image.PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV'------ - #VUID-vkCmdResetEvent-stageMask-03937# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-synchronization2 synchronization2>--- feature is not enabled, @stageMask@ /must/ not be @0@------ - #VUID-vkCmdResetEvent-stageMask-06458# Any pipeline stage included--- in @stageMask@ /must/ be supported by the capabilities of the queue--- family specified by the @queueFamilyIndex@ member of the--- 'Vulkan.Core10.CommandPool.CommandPoolCreateInfo' structure that was--- used to create the 'Vulkan.Core10.Handles.CommandPool' that--- @commandBuffer@ was allocated from, as specified in the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages-supported table of supported pipeline stages>------ - #VUID-vkCmdResetEvent-stageMask-01153# @stageMask@ /must/ not--- include--- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_HOST_BIT'------ - #VUID-vkCmdResetEvent-event-03834# There /must/ be an execution--- dependency between 'cmdResetEvent' and the execution of any--- 'cmdWaitEvents' that includes @event@ in its @pEvents@ parameter------ - #VUID-vkCmdResetEvent-event-03835# There /must/ be an execution--- dependency between 'cmdResetEvent' and the execution of any--- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.cmdWaitEvents2'--- that includes @event@ in its @pEvents@ parameter------ - #VUID-vkCmdResetEvent-commandBuffer-01157# @commandBuffer@’s current--- device mask /must/ include exactly one physical device------ == Valid Usage (Implicit)------ - #VUID-vkCmdResetEvent-commandBuffer-parameter# @commandBuffer@--- /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle------ - #VUID-vkCmdResetEvent-event-parameter# @event@ /must/ be a valid--- 'Vulkan.Core10.Handles.Event' handle------ - #VUID-vkCmdResetEvent-stageMask-parameter# @stageMask@ /must/ be a--- valid combination of--- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlagBits'--- values------ - #VUID-vkCmdResetEvent-commandBuffer-recording# @commandBuffer@--- /must/ be in the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording state>------ - #VUID-vkCmdResetEvent-commandBuffer-cmdpool# The--- 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was--- allocated from /must/ support graphics, or compute operations------ - #VUID-vkCmdResetEvent-renderpass# This command /must/ only be called--- outside of a render pass instance------ - #VUID-vkCmdResetEvent-commonparent# Both of @commandBuffer@, and--- @event@ /must/ have been created, allocated, or retrieved from the--- same 'Vulkan.Core10.Handles.Device'------ == Host Synchronization------ - Host access to @commandBuffer@ /must/ be externally synchronized------ - Host access to the 'Vulkan.Core10.Handles.CommandPool' that--- @commandBuffer@ was allocated from /must/ be externally synchronized------ == Command Properties------ \'------ +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | Primary | Outside | Graphics |--- | Secondary | | Compute |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,--- 'Vulkan.Core10.Handles.CommandBuffer', 'Vulkan.Core10.Handles.Event',--- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlags'-cmdResetEvent :: forall io- . (MonadIO io)- => -- | @commandBuffer@ is the command buffer into which the command is- -- recorded.- CommandBuffer- -> -- | @event@ is the event that will be unsignaled.- Event- -> -- | @stageMask@ is a bitmask of- -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlagBits'- -- specifying the- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages source stage mask>- -- used to determine when the @event@ is unsignaled.- ("stageMask" ::: PipelineStageFlags)- -> io ()-cmdResetEvent commandBuffer event stageMask = liftIO $ do- let vkCmdResetEventPtr = pVkCmdResetEvent (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)- unless (vkCmdResetEventPtr /= nullFunPtr) $- throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdResetEvent is null" Nothing Nothing- let vkCmdResetEvent' = mkVkCmdResetEvent vkCmdResetEventPtr- traceAroundEvent "vkCmdResetEvent" (vkCmdResetEvent' (commandBufferHandle (commandBuffer)) (event) (stageMask))- pure $ ()---foreign import ccall-#if !defined(SAFE_FOREIGN_CALLS)- unsafe-#endif- "dynamic" mkVkCmdWaitEventsUnsafe- :: FunPtr (Ptr CommandBuffer_T -> Word32 -> Ptr Event -> PipelineStageFlags -> PipelineStageFlags -> Word32 -> Ptr MemoryBarrier -> Word32 -> Ptr BufferMemoryBarrier -> Word32 -> Ptr (SomeStruct ImageMemoryBarrier) -> IO ()) -> Ptr CommandBuffer_T -> Word32 -> Ptr Event -> PipelineStageFlags -> PipelineStageFlags -> Word32 -> Ptr MemoryBarrier -> Word32 -> Ptr BufferMemoryBarrier -> Word32 -> Ptr (SomeStruct ImageMemoryBarrier) -> IO ()--foreign import ccall- "dynamic" mkVkCmdWaitEventsSafe- :: FunPtr (Ptr CommandBuffer_T -> Word32 -> Ptr Event -> PipelineStageFlags -> PipelineStageFlags -> Word32 -> Ptr MemoryBarrier -> Word32 -> Ptr BufferMemoryBarrier -> Word32 -> Ptr (SomeStruct ImageMemoryBarrier) -> IO ()) -> Ptr CommandBuffer_T -> Word32 -> Ptr Event -> PipelineStageFlags -> PipelineStageFlags -> Word32 -> Ptr MemoryBarrier -> Word32 -> Ptr BufferMemoryBarrier -> Word32 -> Ptr (SomeStruct ImageMemoryBarrier) -> IO ()---- | cmdWaitEvents with selectable safeness-cmdWaitEventsSafeOrUnsafe :: forall io- . (MonadIO io)- => (FunPtr (Ptr CommandBuffer_T -> Word32 -> Ptr Event -> PipelineStageFlags -> PipelineStageFlags -> Word32 -> Ptr MemoryBarrier -> Word32 -> Ptr BufferMemoryBarrier -> Word32 -> Ptr (SomeStruct ImageMemoryBarrier) -> IO ()) -> Ptr CommandBuffer_T -> Word32 -> Ptr Event -> PipelineStageFlags -> PipelineStageFlags -> Word32 -> Ptr MemoryBarrier -> Word32 -> Ptr BufferMemoryBarrier -> Word32 -> Ptr (SomeStruct ImageMemoryBarrier) -> IO ())- -> -- | @commandBuffer@ is the command buffer into which the command is- -- recorded.- CommandBuffer- -> -- | @pEvents@ is a pointer to an array of event object handles to wait on.- ("events" ::: Vector Event)- -> -- | @srcStageMask@ is a bitmask of- -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlagBits'- -- specifying the- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages source stage mask>.- ("srcStageMask" ::: PipelineStageFlags)- -> -- | @dstStageMask@ is a bitmask of- -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlagBits'- -- specifying the- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages destination stage mask>.- ("dstStageMask" ::: PipelineStageFlags)- -> -- | @pMemoryBarriers@ is a pointer to an array of- -- 'Vulkan.Core10.OtherTypes.MemoryBarrier' structures.- ("memoryBarriers" ::: Vector MemoryBarrier)- -> -- | @pBufferMemoryBarriers@ is a pointer to an array of- -- 'Vulkan.Core10.OtherTypes.BufferMemoryBarrier' structures.- ("bufferMemoryBarriers" ::: Vector BufferMemoryBarrier)- -> -- | @pImageMemoryBarriers@ is a pointer to an array of- -- 'Vulkan.Core10.OtherTypes.ImageMemoryBarrier' structures.- ("imageMemoryBarriers" ::: Vector (SomeStruct ImageMemoryBarrier))- -> io ()-cmdWaitEventsSafeOrUnsafe mkVkCmdWaitEvents commandBuffer events srcStageMask dstStageMask memoryBarriers bufferMemoryBarriers imageMemoryBarriers = liftIO . evalContT $ do- let vkCmdWaitEventsPtr = pVkCmdWaitEvents (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)- lift $ unless (vkCmdWaitEventsPtr /= nullFunPtr) $- throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdWaitEvents is null" Nothing Nothing- let vkCmdWaitEvents' = mkVkCmdWaitEvents vkCmdWaitEventsPtr- pPEvents <- ContT $ allocaBytes @Event ((Data.Vector.length (events)) * 8)- lift $ Data.Vector.imapM_ (\i e -> poke (pPEvents `plusPtr` (8 * (i)) :: Ptr Event) (e)) (events)- pPMemoryBarriers <- ContT $ allocaBytes @MemoryBarrier ((Data.Vector.length (memoryBarriers)) * 24)- lift $ Data.Vector.imapM_ (\i e -> poke (pPMemoryBarriers `plusPtr` (24 * (i)) :: Ptr MemoryBarrier) (e)) (memoryBarriers)- pPBufferMemoryBarriers <- ContT $ allocaBytes @BufferMemoryBarrier ((Data.Vector.length (bufferMemoryBarriers)) * 56)- lift $ Data.Vector.imapM_ (\i e -> poke (pPBufferMemoryBarriers `plusPtr` (56 * (i)) :: Ptr BufferMemoryBarrier) (e)) (bufferMemoryBarriers)- pPImageMemoryBarriers <- ContT $ allocaBytes @(ImageMemoryBarrier _) ((Data.Vector.length (imageMemoryBarriers)) * 72)- Data.Vector.imapM_ (\i e -> ContT $ pokeSomeCStruct (forgetExtensions (pPImageMemoryBarriers `plusPtr` (72 * (i)) :: Ptr (ImageMemoryBarrier _))) (e) . ($ ())) (imageMemoryBarriers)- lift $ traceAroundEvent "vkCmdWaitEvents" (vkCmdWaitEvents' (commandBufferHandle (commandBuffer)) ((fromIntegral (Data.Vector.length $ (events)) :: Word32)) (pPEvents) (srcStageMask) (dstStageMask) ((fromIntegral (Data.Vector.length $ (memoryBarriers)) :: Word32)) (pPMemoryBarriers) ((fromIntegral (Data.Vector.length $ (bufferMemoryBarriers)) :: Word32)) (pPBufferMemoryBarriers) ((fromIntegral (Data.Vector.length $ (imageMemoryBarriers)) :: Word32)) (forgetExtensions (pPImageMemoryBarriers)))- pure $ ()---- | vkCmdWaitEvents - Wait for one or more events and insert a set of memory------ = Description------ 'cmdWaitEvents' is largely similar to--- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.cmdWaitEvents2',--- but /can/ only wait on signal operations defined by 'cmdSetEvent'. As--- 'cmdSetEvent' does not define any access scopes, 'cmdWaitEvents' defines--- the first access scope for each event signal operation in addition to--- its own access scopes.------ Note------ Since 'cmdSetEvent' does not have any dependency information beyond a--- stage mask, implementations do not have the same opportunity to perform--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-available-and-visible availability and visibility operations>--- or--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-image-layout-transitions image layout transitions>--- in advance as they do with--- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.cmdSetEvent2' and--- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.cmdWaitEvents2'.------ When 'cmdWaitEvents' is submitted to a queue, it defines a memory--- dependency between prior event signal operations on the same queue or--- the host, and subsequent commands. 'cmdWaitEvents' /must/ not be used to--- wait on event signal operations occurring on other queues.------ The first synchronization scope only includes event signal operations--- that operate on members of @pEvents@, and the operations that--- happened-before the event signal operations. Event signal operations--- performed by 'cmdSetEvent' that occur earlier in--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-submission-order submission order>--- are included in the first synchronization scope, if the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages-order logically latest>--- pipeline stage in their @stageMask@ parameter is--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages-order logically earlier>--- than or equal to the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages-order logically latest>--- pipeline stage in @srcStageMask@. Event signal operations performed by--- 'Vulkan.Core10.Event.setEvent' are only included in the first--- synchronization scope if--- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_HOST_BIT' is--- included in @srcStageMask@.------ The second--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>--- includes all commands that occur later in--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-submission-order submission order>.--- The second synchronization scope is limited to operations on the--- pipeline stages determined by the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages-masks destination stage mask>--- specified by @dstStageMask@.------ The first--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-access-scopes access scope>--- is limited to accesses in the pipeline stages determined by the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages-masks source stage mask>--- specified by @srcStageMask@. Within that, the first access scope only--- includes the first access scopes defined by elements of the--- @pMemoryBarriers@, @pBufferMemoryBarriers@ and @pImageMemoryBarriers@--- arrays, which each define a set of--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-memory-barriers memory barriers>.--- If no memory barriers are specified, then the first access scope--- includes no accesses.------ The second--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-access-scopes access scope>--- is limited to accesses in the pipeline stages determined by the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages-masks destination stage mask>--- specified by @dstStageMask@. Within that, the second access scope only--- includes the second access scopes defined by elements of the--- @pMemoryBarriers@, @pBufferMemoryBarriers@ and @pImageMemoryBarriers@--- arrays, which each define a set of--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-memory-barriers memory barriers>.--- If no memory barriers are specified, then the second access scope--- includes no accesses.------ == Valid Usage------ - #VUID-vkCmdWaitEvents-srcStageMask-04090# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryShader geometry shaders>--- feature is not enabled, @srcStageMask@ /must/ not contain--- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_GEOMETRY_SHADER_BIT'------ - #VUID-vkCmdWaitEvents-srcStageMask-04091# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShader tessellation shaders>--- feature is not enabled, @srcStageMask@ /must/ not contain--- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT'--- or--- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT'------ - #VUID-vkCmdWaitEvents-srcStageMask-04092# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-conditionalRendering conditional rendering>--- feature is not enabled, @srcStageMask@ /must/ not contain--- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT'------ - #VUID-vkCmdWaitEvents-srcStageMask-04093# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-fragmentDensityMap fragment density map>--- feature is not enabled, @srcStageMask@ /must/ not contain--- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT'------ - #VUID-vkCmdWaitEvents-srcStageMask-04094# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-transformFeedback transform feedback>--- feature is not enabled, @srcStageMask@ /must/ not contain--- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT'------ - #VUID-vkCmdWaitEvents-srcStageMask-04095# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader mesh shaders>--- feature is not enabled, @srcStageMask@ /must/ not contain--- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_MESH_SHADER_BIT_NV'------ - #VUID-vkCmdWaitEvents-srcStageMask-04096# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader task shaders>--- feature is not enabled, @srcStageMask@ /must/ not contain--- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TASK_SHADER_BIT_NV'------ - #VUID-vkCmdWaitEvents-srcStageMask-04097# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shading rate image>--- feature is not enabled, @srcStageMask@ /must/ not contain--- 'Vulkan.Extensions.VK_NV_shading_rate_image.PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV'------ - #VUID-vkCmdWaitEvents-srcStageMask-03937# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-synchronization2 synchronization2>--- feature is not enabled, @srcStageMask@ /must/ not be @0@------ - #VUID-vkCmdWaitEvents-dstStageMask-04090# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryShader geometry shaders>--- feature is not enabled, @dstStageMask@ /must/ not contain--- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_GEOMETRY_SHADER_BIT'------ - #VUID-vkCmdWaitEvents-dstStageMask-04091# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShader tessellation shaders>--- feature is not enabled, @dstStageMask@ /must/ not contain--- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT'--- or--- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT'------ - #VUID-vkCmdWaitEvents-dstStageMask-04092# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-conditionalRendering conditional rendering>--- feature is not enabled, @dstStageMask@ /must/ not contain--- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT'------ - #VUID-vkCmdWaitEvents-dstStageMask-04093# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-fragmentDensityMap fragment density map>--- feature is not enabled, @dstStageMask@ /must/ not contain--- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT'------ - #VUID-vkCmdWaitEvents-dstStageMask-04094# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-transformFeedback transform feedback>--- feature is not enabled, @dstStageMask@ /must/ not contain--- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT'------ - #VUID-vkCmdWaitEvents-dstStageMask-04095# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader mesh shaders>--- feature is not enabled, @dstStageMask@ /must/ not contain--- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_MESH_SHADER_BIT_NV'------ - #VUID-vkCmdWaitEvents-dstStageMask-04096# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader task shaders>--- feature is not enabled, @dstStageMask@ /must/ not contain--- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TASK_SHADER_BIT_NV'------ - #VUID-vkCmdWaitEvents-dstStageMask-04097# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shading rate image>--- feature is not enabled, @dstStageMask@ /must/ not contain--- 'Vulkan.Extensions.VK_NV_shading_rate_image.PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV'------ - #VUID-vkCmdWaitEvents-dstStageMask-03937# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-synchronization2 synchronization2>--- feature is not enabled, @dstStageMask@ /must/ not be @0@------ - #VUID-vkCmdWaitEvents-srcAccessMask-02815# The @srcAccessMask@--- member of each element of @pMemoryBarriers@ /must/ only include--- access flags that are supported by one or more of the pipeline--- stages in @srcStageMask@, as specified in the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-access-types-supported table of supported access types>------ - #VUID-vkCmdWaitEvents-dstAccessMask-02816# The @dstAccessMask@--- member of each element of @pMemoryBarriers@ /must/ only include--- access flags that are supported by one or more of the pipeline--- stages in @dstStageMask@, as specified in the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-access-types-supported table of supported access types>------ - #VUID-vkCmdWaitEvents-pBufferMemoryBarriers-02817# For any element--- of @pBufferMemoryBarriers@, if its @srcQueueFamilyIndex@ and--- @dstQueueFamilyIndex@ members are equal, or if its--- @srcQueueFamilyIndex@ is the queue family index that was used to--- create the command pool that @commandBuffer@ was allocated from,--- then its @srcAccessMask@ member /must/ only contain access flags--- that are supported by one or more of the pipeline stages in--- @srcStageMask@, as specified in the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-access-types-supported table of supported access types>------ - #VUID-vkCmdWaitEvents-pBufferMemoryBarriers-02818# For any element--- of @pBufferMemoryBarriers@, if its @srcQueueFamilyIndex@ and--- @dstQueueFamilyIndex@ members are equal, or if its--- @dstQueueFamilyIndex@ is the queue family index that was used to--- create the command pool that @commandBuffer@ was allocated from,--- then its @dstAccessMask@ member /must/ only contain access flags--- that are supported by one or more of the pipeline stages in--- @dstStageMask@, as specified in the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-access-types-supported table of supported access types>------ - #VUID-vkCmdWaitEvents-pImageMemoryBarriers-02819# For any element of--- @pImageMemoryBarriers@, if its @srcQueueFamilyIndex@ and--- @dstQueueFamilyIndex@ members are equal, or if its--- @srcQueueFamilyIndex@ is the queue family index that was used to--- create the command pool that @commandBuffer@ was allocated from,--- then its @srcAccessMask@ member /must/ only contain access flags--- that are supported by one or more of the pipeline stages in--- @srcStageMask@, as specified in the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-access-types-supported table of supported access types>------ - #VUID-vkCmdWaitEvents-pImageMemoryBarriers-02820# For any element of--- @pImageMemoryBarriers@, if its @srcQueueFamilyIndex@ and--- @dstQueueFamilyIndex@ members are equal, or if its--- @dstQueueFamilyIndex@ is the queue family index that was used to--- create the command pool that @commandBuffer@ was allocated from,--- then its @dstAccessMask@ member /must/ only contain access flags--- that are supported by one or more of the pipeline stages in--- @dstStageMask@, as specified in the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-access-types-supported table of supported access types>------ - #VUID-vkCmdWaitEvents-srcStageMask-06459# Any pipeline stage--- included in @srcStageMask@ /must/ be supported by the capabilities--- of the queue family specified by the @queueFamilyIndex@ member of--- the 'Vulkan.Core10.CommandPool.CommandPoolCreateInfo' structure that--- was used to create the 'Vulkan.Core10.Handles.CommandPool' that--- @commandBuffer@ was allocated from, as specified in the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages-supported table of supported pipeline stages>------ - #VUID-vkCmdWaitEvents-dstStageMask-06460# Any pipeline stage--- included in @dstStageMask@ /must/ be supported by the capabilities--- of the queue family specified by the @queueFamilyIndex@ member of--- the 'Vulkan.Core10.CommandPool.CommandPoolCreateInfo' structure that--- was used to create the 'Vulkan.Core10.Handles.CommandPool' that--- @commandBuffer@ was allocated from, as specified in the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages-supported table of supported pipeline stages>------ - #VUID-vkCmdWaitEvents-srcStageMask-01158# @srcStageMask@ /must/ be--- the bitwise OR of the @stageMask@ parameter used in previous calls--- to 'cmdSetEvent' with any of the elements of @pEvents@ and--- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_HOST_BIT'--- if any of the elements of @pEvents@ was set using--- 'Vulkan.Core10.Event.setEvent'------ - #VUID-vkCmdWaitEvents-pEvents-01163# If @pEvents@ includes one or--- more events that will be signaled by 'Vulkan.Core10.Event.setEvent'--- after @commandBuffer@ has been submitted to a queue, then--- 'cmdWaitEvents' /must/ not be called inside a render pass instance------ - #VUID-vkCmdWaitEvents-srcQueueFamilyIndex-02803# The--- @srcQueueFamilyIndex@ and @dstQueueFamilyIndex@ members of any--- element of @pBufferMemoryBarriers@ or @pImageMemoryBarriers@ /must/--- be equal------ - #VUID-vkCmdWaitEvents-commandBuffer-01167# @commandBuffer@’s current--- device mask /must/ include exactly one physical device------ - #VUID-vkCmdWaitEvents-pEvents-03847# Elements of @pEvents@ /must/--- not have been signaled by--- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.cmdSetEvent2'------ == Valid Usage (Implicit)------ - #VUID-vkCmdWaitEvents-commandBuffer-parameter# @commandBuffer@--- /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle------ - #VUID-vkCmdWaitEvents-pEvents-parameter# @pEvents@ /must/ be a valid--- pointer to an array of @eventCount@ valid--- 'Vulkan.Core10.Handles.Event' handles------ - #VUID-vkCmdWaitEvents-srcStageMask-parameter# @srcStageMask@ /must/--- be a valid combination of--- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlagBits'--- values------ - #VUID-vkCmdWaitEvents-dstStageMask-parameter# @dstStageMask@ /must/--- be a valid combination of--- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlagBits'--- values------ - #VUID-vkCmdWaitEvents-pMemoryBarriers-parameter# If--- @memoryBarrierCount@ is not @0@, @pMemoryBarriers@ /must/ be a valid--- pointer to an array of @memoryBarrierCount@ valid--- 'Vulkan.Core10.OtherTypes.MemoryBarrier' structures------ - #VUID-vkCmdWaitEvents-pBufferMemoryBarriers-parameter# If--- @bufferMemoryBarrierCount@ is not @0@, @pBufferMemoryBarriers@--- /must/ be a valid pointer to an array of @bufferMemoryBarrierCount@--- valid 'Vulkan.Core10.OtherTypes.BufferMemoryBarrier' structures------ - #VUID-vkCmdWaitEvents-pImageMemoryBarriers-parameter# If--- @imageMemoryBarrierCount@ is not @0@, @pImageMemoryBarriers@ /must/--- be a valid pointer to an array of @imageMemoryBarrierCount@ valid--- 'Vulkan.Core10.OtherTypes.ImageMemoryBarrier' structures------ - #VUID-vkCmdWaitEvents-commandBuffer-recording# @commandBuffer@--- /must/ be in the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording state>------ - #VUID-vkCmdWaitEvents-commandBuffer-cmdpool# The--- 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was--- allocated from /must/ support graphics, or compute operations------ - #VUID-vkCmdWaitEvents-eventCount-arraylength# @eventCount@ /must/ be--- greater than @0@------ - #VUID-vkCmdWaitEvents-commonparent# Both of @commandBuffer@, and the--- elements of @pEvents@ /must/ have been created, allocated, or--- retrieved from the same 'Vulkan.Core10.Handles.Device'------ == Host Synchronization------ - Host access to @commandBuffer@ /must/ be externally synchronized------ - Host access to the 'Vulkan.Core10.Handles.CommandPool' that--- @commandBuffer@ was allocated from /must/ be externally synchronized------ == Command Properties------ \'------ +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | Primary | Both | Graphics |--- | Secondary | | Compute |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,--- 'Vulkan.Core10.OtherTypes.BufferMemoryBarrier',--- 'Vulkan.Core10.Handles.CommandBuffer', 'Vulkan.Core10.Handles.Event',--- 'Vulkan.Core10.OtherTypes.ImageMemoryBarrier',--- 'Vulkan.Core10.OtherTypes.MemoryBarrier',--- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlags'-cmdWaitEvents :: forall io- . (MonadIO io)- => -- | @commandBuffer@ is the command buffer into which the command is- -- recorded.- CommandBuffer- -> -- | @pEvents@ is a pointer to an array of event object handles to wait on.- ("events" ::: Vector Event)- -> -- | @srcStageMask@ is a bitmask of- -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlagBits'- -- specifying the- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages source stage mask>.- ("srcStageMask" ::: PipelineStageFlags)- -> -- | @dstStageMask@ is a bitmask of- -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlagBits'- -- specifying the- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages destination stage mask>.- ("dstStageMask" ::: PipelineStageFlags)- -> -- | @pMemoryBarriers@ is a pointer to an array of- -- 'Vulkan.Core10.OtherTypes.MemoryBarrier' structures.- ("memoryBarriers" ::: Vector MemoryBarrier)- -> -- | @pBufferMemoryBarriers@ is a pointer to an array of- -- 'Vulkan.Core10.OtherTypes.BufferMemoryBarrier' structures.- ("bufferMemoryBarriers" ::: Vector BufferMemoryBarrier)- -> -- | @pImageMemoryBarriers@ is a pointer to an array of- -- 'Vulkan.Core10.OtherTypes.ImageMemoryBarrier' structures.- ("imageMemoryBarriers" ::: Vector (SomeStruct ImageMemoryBarrier))- -> io ()-cmdWaitEvents = cmdWaitEventsSafeOrUnsafe mkVkCmdWaitEventsUnsafe---- | A variant of 'cmdWaitEvents' which makes a *safe* FFI call-cmdWaitEventsSafe :: forall io- . (MonadIO io)- => -- | @commandBuffer@ is the command buffer into which the command is- -- recorded.- CommandBuffer- -> -- | @pEvents@ is a pointer to an array of event object handles to wait on.- ("events" ::: Vector Event)- -> -- | @srcStageMask@ is a bitmask of- -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlagBits'- -- specifying the- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages source stage mask>.- ("srcStageMask" ::: PipelineStageFlags)- -> -- | @dstStageMask@ is a bitmask of- -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlagBits'- -- specifying the- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages destination stage mask>.- ("dstStageMask" ::: PipelineStageFlags)- -> -- | @pMemoryBarriers@ is a pointer to an array of- -- 'Vulkan.Core10.OtherTypes.MemoryBarrier' structures.- ("memoryBarriers" ::: Vector MemoryBarrier)- -> -- | @pBufferMemoryBarriers@ is a pointer to an array of- -- 'Vulkan.Core10.OtherTypes.BufferMemoryBarrier' structures.- ("bufferMemoryBarriers" ::: Vector BufferMemoryBarrier)- -> -- | @pImageMemoryBarriers@ is a pointer to an array of- -- 'Vulkan.Core10.OtherTypes.ImageMemoryBarrier' structures.- ("imageMemoryBarriers" ::: Vector (SomeStruct ImageMemoryBarrier))- -> io ()-cmdWaitEventsSafe = cmdWaitEventsSafeOrUnsafe mkVkCmdWaitEventsSafe---foreign import ccall-#if !defined(SAFE_FOREIGN_CALLS)- unsafe-#endif- "dynamic" mkVkCmdPipelineBarrier- :: FunPtr (Ptr CommandBuffer_T -> PipelineStageFlags -> PipelineStageFlags -> DependencyFlags -> Word32 -> Ptr MemoryBarrier -> Word32 -> Ptr BufferMemoryBarrier -> Word32 -> Ptr (SomeStruct ImageMemoryBarrier) -> IO ()) -> Ptr CommandBuffer_T -> PipelineStageFlags -> PipelineStageFlags -> DependencyFlags -> Word32 -> Ptr MemoryBarrier -> Word32 -> Ptr BufferMemoryBarrier -> Word32 -> Ptr (SomeStruct ImageMemoryBarrier) -> IO ()---- | vkCmdPipelineBarrier - Insert a memory dependency------ = Description------ 'cmdPipelineBarrier' operates almost identically to--- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.cmdPipelineBarrier2',--- except that the scopes and barriers are defined as direct parameters--- rather than being defined by an--- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.DependencyInfo'.------ When 'cmdPipelineBarrier' is submitted to a queue, it defines a memory--- dependency between commands that were submitted before it, and those--- submitted after it.------ If 'cmdPipelineBarrier' was recorded outside a render pass instance, the--- first--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>--- includes all commands that occur earlier in--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-submission-order submission order>.--- If 'cmdPipelineBarrier' was recorded inside a render pass instance, the--- first synchronization scope includes only commands that occur earlier in--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-submission-order submission order>--- within the same subpass. In either case, the first synchronization scope--- is limited to operations on the pipeline stages determined by the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages-masks source stage mask>--- specified by @srcStageMask@.------ If 'cmdPipelineBarrier' was recorded outside a render pass instance, the--- second--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>--- includes all commands that occur later in--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-submission-order submission order>.--- If 'cmdPipelineBarrier' was recorded inside a render pass instance, the--- second synchronization scope includes only commands that occur later in--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-submission-order submission order>--- within the same subpass. In either case, the second synchronization--- scope is limited to operations on the pipeline stages determined by the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages-masks destination stage mask>--- specified by @dstStageMask@.------ The first--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-access-scopes access scope>--- is limited to accesses in the pipeline stages determined by the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages-masks source stage mask>--- specified by @srcStageMask@. Within that, the first access scope only--- includes the first access scopes defined by elements of the--- @pMemoryBarriers@, @pBufferMemoryBarriers@ and @pImageMemoryBarriers@--- arrays, which each define a set of--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-memory-barriers memory barriers>.--- If no memory barriers are specified, then the first access scope--- includes no accesses.------ The second--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-access-scopes access scope>--- is limited to accesses in the pipeline stages determined by the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages-masks destination stage mask>--- specified by @dstStageMask@. Within that, the second access scope only--- includes the second access scopes defined by elements of the--- @pMemoryBarriers@, @pBufferMemoryBarriers@ and @pImageMemoryBarriers@--- arrays, which each define a set of--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-memory-barriers memory barriers>.--- If no memory barriers are specified, then the second access scope--- includes no accesses.------ If @dependencyFlags@ includes--- 'Vulkan.Core10.Enums.DependencyFlagBits.DEPENDENCY_BY_REGION_BIT', then--- any dependency between--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-framebuffer-regions framebuffer-space>--- pipeline stages is--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-framebuffer-regions framebuffer-local>--- - otherwise it is--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-framebuffer-regions framebuffer-global>.------ == Valid Usage------ - #VUID-vkCmdPipelineBarrier-srcStageMask-04090# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryShader geometry shaders>--- feature is not enabled, @srcStageMask@ /must/ not contain--- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_GEOMETRY_SHADER_BIT'------ - #VUID-vkCmdPipelineBarrier-srcStageMask-04091# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShader tessellation shaders>--- feature is not enabled, @srcStageMask@ /must/ not contain--- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT'--- or--- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT'------ - #VUID-vkCmdPipelineBarrier-srcStageMask-04092# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-conditionalRendering conditional rendering>--- feature is not enabled, @srcStageMask@ /must/ not contain--- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT'------ - #VUID-vkCmdPipelineBarrier-srcStageMask-04093# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-fragmentDensityMap fragment density map>--- feature is not enabled, @srcStageMask@ /must/ not contain--- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT'------ - #VUID-vkCmdPipelineBarrier-srcStageMask-04094# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-transformFeedback transform feedback>--- feature is not enabled, @srcStageMask@ /must/ not contain--- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT'------ - #VUID-vkCmdPipelineBarrier-srcStageMask-04095# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader mesh shaders>--- feature is not enabled, @srcStageMask@ /must/ not contain--- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_MESH_SHADER_BIT_NV'------ - #VUID-vkCmdPipelineBarrier-srcStageMask-04096# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader task shaders>--- feature is not enabled, @srcStageMask@ /must/ not contain--- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TASK_SHADER_BIT_NV'------ - #VUID-vkCmdPipelineBarrier-srcStageMask-04097# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shading rate image>--- feature is not enabled, @srcStageMask@ /must/ not contain--- 'Vulkan.Extensions.VK_NV_shading_rate_image.PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV'------ - #VUID-vkCmdPipelineBarrier-srcStageMask-03937# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-synchronization2 synchronization2>--- feature is not enabled, @srcStageMask@ /must/ not be @0@------ - #VUID-vkCmdPipelineBarrier-dstStageMask-04090# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryShader geometry shaders>--- feature is not enabled, @dstStageMask@ /must/ not contain--- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_GEOMETRY_SHADER_BIT'------ - #VUID-vkCmdPipelineBarrier-dstStageMask-04091# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShader tessellation shaders>--- feature is not enabled, @dstStageMask@ /must/ not contain--- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT'--- or--- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT'------ - #VUID-vkCmdPipelineBarrier-dstStageMask-04092# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-conditionalRendering conditional rendering>--- feature is not enabled, @dstStageMask@ /must/ not contain--- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT'------ - #VUID-vkCmdPipelineBarrier-dstStageMask-04093# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-fragmentDensityMap fragment density map>--- feature is not enabled, @dstStageMask@ /must/ not contain--- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT'------ - #VUID-vkCmdPipelineBarrier-dstStageMask-04094# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-transformFeedback transform feedback>--- feature is not enabled, @dstStageMask@ /must/ not contain--- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT'------ - #VUID-vkCmdPipelineBarrier-dstStageMask-04095# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader mesh shaders>--- feature is not enabled, @dstStageMask@ /must/ not contain--- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_MESH_SHADER_BIT_NV'------ - #VUID-vkCmdPipelineBarrier-dstStageMask-04096# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader task shaders>--- feature is not enabled, @dstStageMask@ /must/ not contain--- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TASK_SHADER_BIT_NV'------ - #VUID-vkCmdPipelineBarrier-dstStageMask-04097# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shading rate image>--- feature is not enabled, @dstStageMask@ /must/ not contain--- 'Vulkan.Extensions.VK_NV_shading_rate_image.PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV'------ - #VUID-vkCmdPipelineBarrier-dstStageMask-03937# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-synchronization2 synchronization2>--- feature is not enabled, @dstStageMask@ /must/ not be @0@------ - #VUID-vkCmdPipelineBarrier-srcAccessMask-02815# The @srcAccessMask@--- member of each element of @pMemoryBarriers@ /must/ only include--- access flags that are supported by one or more of the pipeline--- stages in @srcStageMask@, as specified in the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-access-types-supported table of supported access types>------ - #VUID-vkCmdPipelineBarrier-dstAccessMask-02816# The @dstAccessMask@--- member of each element of @pMemoryBarriers@ /must/ only include--- access flags that are supported by one or more of the pipeline--- stages in @dstStageMask@, as specified in the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-access-types-supported table of supported access types>------ - #VUID-vkCmdPipelineBarrier-pBufferMemoryBarriers-02817# For any--- element of @pBufferMemoryBarriers@, if its @srcQueueFamilyIndex@ and--- @dstQueueFamilyIndex@ members are equal, or if its--- @srcQueueFamilyIndex@ is the queue family index that was used to--- create the command pool that @commandBuffer@ was allocated from,--- then its @srcAccessMask@ member /must/ only contain access flags--- that are supported by one or more of the pipeline stages in--- @srcStageMask@, as specified in the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-access-types-supported table of supported access types>------ - #VUID-vkCmdPipelineBarrier-pBufferMemoryBarriers-02818# For any--- element of @pBufferMemoryBarriers@, if its @srcQueueFamilyIndex@ and--- @dstQueueFamilyIndex@ members are equal, or if its--- @dstQueueFamilyIndex@ is the queue family index that was used to--- create the command pool that @commandBuffer@ was allocated from,--- then its @dstAccessMask@ member /must/ only contain access flags--- that are supported by one or more of the pipeline stages in--- @dstStageMask@, as specified in the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-access-types-supported table of supported access types>------ - #VUID-vkCmdPipelineBarrier-pImageMemoryBarriers-02819# For any--- element of @pImageMemoryBarriers@, if its @srcQueueFamilyIndex@ and--- @dstQueueFamilyIndex@ members are equal, or if its--- @srcQueueFamilyIndex@ is the queue family index that was used to--- create the command pool that @commandBuffer@ was allocated from,--- then its @srcAccessMask@ member /must/ only contain access flags--- that are supported by one or more of the pipeline stages in--- @srcStageMask@, as specified in the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-access-types-supported table of supported access types>------ - #VUID-vkCmdPipelineBarrier-pImageMemoryBarriers-02820# For any--- element of @pImageMemoryBarriers@, if its @srcQueueFamilyIndex@ and--- @dstQueueFamilyIndex@ members are equal, or if its--- @dstQueueFamilyIndex@ is the queue family index that was used to--- create the command pool that @commandBuffer@ was allocated from,--- then its @dstAccessMask@ member /must/ only contain access flags--- that are supported by one or more of the pipeline stages in--- @dstStageMask@, as specified in the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-access-types-supported table of supported access types>------ - #VUID-vkCmdPipelineBarrier-pDependencies-02285# If--- 'cmdPipelineBarrier' is called within a render pass instance, the--- render pass /must/ have been created with at least one--- 'Vulkan.Core10.Pass.SubpassDependency' instance in--- 'Vulkan.Core10.Pass.RenderPassCreateInfo'::@pDependencies@ that--- expresses a dependency from the current subpass to itself, with--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scopes>--- and--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies-access-scopes access scopes>--- that are all supersets of the scopes defined in this command------ - #VUID-vkCmdPipelineBarrier-bufferMemoryBarrierCount-01178# If--- 'cmdPipelineBarrier' is called within a render pass instance, it--- /must/ not include any buffer memory barriers------ - #VUID-vkCmdPipelineBarrier-image-04073# If 'cmdPipelineBarrier' is--- called within a render pass instance, the @image@ member of any--- image memory barrier included in this command /must/ be an--- attachment used in the current subpass both as an input attachment,--- and as either a color or depth\/stencil attachment------ - #VUID-vkCmdPipelineBarrier-oldLayout-01181# If 'cmdPipelineBarrier'--- is called within a render pass instance, the @oldLayout@ and--- @newLayout@ members of any image memory barrier included in this--- command /must/ be equal------ - #VUID-vkCmdPipelineBarrier-srcQueueFamilyIndex-01182# If--- 'cmdPipelineBarrier' is called within a render pass instance, the--- @srcQueueFamilyIndex@ and @dstQueueFamilyIndex@ members of any image--- memory barrier included in this command /must/ be equal------ - #VUID-vkCmdPipelineBarrier-dependencyFlags-01186# If--- 'cmdPipelineBarrier' is called outside of a render pass instance,--- 'Vulkan.Core10.Enums.DependencyFlagBits.DEPENDENCY_VIEW_LOCAL_BIT'--- /must/ not be included in the dependency flags------ - #VUID-vkCmdPipelineBarrier-None-06191# If 'cmdPipelineBarrier' is--- called within a render pass instance, the render pass /must/ not--- have been started with--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'------ - #VUID-vkCmdPipelineBarrier-srcStageMask-06461# Any pipeline stage--- included in @srcStageMask@ /must/ be supported by the capabilities--- of the queue family specified by the @queueFamilyIndex@ member of--- the 'Vulkan.Core10.CommandPool.CommandPoolCreateInfo' structure that--- was used to create the 'Vulkan.Core10.Handles.CommandPool' that--- @commandBuffer@ was allocated from, as specified in the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages-supported table of supported pipeline stages>------ - #VUID-vkCmdPipelineBarrier-dstStageMask-06462# Any pipeline stage--- included in @dstStageMask@ /must/ be supported by the capabilities--- of the queue family specified by the @queueFamilyIndex@ member of--- the 'Vulkan.Core10.CommandPool.CommandPoolCreateInfo' structure that--- was used to create the 'Vulkan.Core10.Handles.CommandPool' that--- @commandBuffer@ was allocated from, as specified in the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages-supported table of supported pipeline stages>------ == Valid Usage (Implicit)------ - #VUID-vkCmdPipelineBarrier-commandBuffer-parameter# @commandBuffer@--- /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle------ - #VUID-vkCmdPipelineBarrier-srcStageMask-parameter# @srcStageMask@--- /must/ be a valid combination of--- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlagBits'--- values------ - #VUID-vkCmdPipelineBarrier-dstStageMask-parameter# @dstStageMask@--- /must/ be a valid combination of--- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlagBits'--- values------ - #VUID-vkCmdPipelineBarrier-dependencyFlags-parameter#--- @dependencyFlags@ /must/ be a valid combination of--- 'Vulkan.Core10.Enums.DependencyFlagBits.DependencyFlagBits' values------ - #VUID-vkCmdPipelineBarrier-pMemoryBarriers-parameter# If--- @memoryBarrierCount@ is not @0@, @pMemoryBarriers@ /must/ be a valid--- pointer to an array of @memoryBarrierCount@ valid--- 'Vulkan.Core10.OtherTypes.MemoryBarrier' structures------ - #VUID-vkCmdPipelineBarrier-pBufferMemoryBarriers-parameter# If--- @bufferMemoryBarrierCount@ is not @0@, @pBufferMemoryBarriers@--- /must/ be a valid pointer to an array of @bufferMemoryBarrierCount@--- valid 'Vulkan.Core10.OtherTypes.BufferMemoryBarrier' structures------ - #VUID-vkCmdPipelineBarrier-pImageMemoryBarriers-parameter# If--- @imageMemoryBarrierCount@ is not @0@, @pImageMemoryBarriers@ /must/--- be a valid pointer to an array of @imageMemoryBarrierCount@ valid--- 'Vulkan.Core10.OtherTypes.ImageMemoryBarrier' structures------ - #VUID-vkCmdPipelineBarrier-commandBuffer-recording# @commandBuffer@--- /must/ be in the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording state>------ - #VUID-vkCmdPipelineBarrier-commandBuffer-cmdpool# The--- 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was--- allocated from /must/ support transfer, graphics, or compute--- operations------ == Host Synchronization------ - Host access to @commandBuffer@ /must/ be externally synchronized------ - Host access to the 'Vulkan.Core10.Handles.CommandPool' that--- @commandBuffer@ was allocated from /must/ be externally synchronized------ == Command Properties------ \'------ +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | Primary | Both | Transfer |--- | Secondary | | Graphics |--- | | | Compute |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,--- 'Vulkan.Core10.OtherTypes.BufferMemoryBarrier',--- 'Vulkan.Core10.Handles.CommandBuffer',--- 'Vulkan.Core10.Enums.DependencyFlagBits.DependencyFlags',--- 'Vulkan.Core10.OtherTypes.ImageMemoryBarrier',--- 'Vulkan.Core10.OtherTypes.MemoryBarrier',--- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlags'-cmdPipelineBarrier :: forall io- . (MonadIO io)- => -- | @commandBuffer@ is the command buffer into which the command is- -- recorded.- CommandBuffer- -> -- | @srcStageMask@ is a bitmask of- -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlagBits'- -- specifying the- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages-masks source stages>.- ("srcStageMask" ::: PipelineStageFlags)- -> -- | @dstStageMask@ is a bitmask of- -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlagBits'- -- specifying the- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages-masks destination stages>.- ("dstStageMask" ::: PipelineStageFlags)- -> -- | @dependencyFlags@ is a bitmask of- -- 'Vulkan.Core10.Enums.DependencyFlagBits.DependencyFlagBits' specifying- -- how execution and memory dependencies are formed.- DependencyFlags- -> -- | @pMemoryBarriers@ is a pointer to an array of- -- 'Vulkan.Core10.OtherTypes.MemoryBarrier' structures.- ("memoryBarriers" ::: Vector MemoryBarrier)- -> -- | @pBufferMemoryBarriers@ is a pointer to an array of- -- 'Vulkan.Core10.OtherTypes.BufferMemoryBarrier' structures.- ("bufferMemoryBarriers" ::: Vector BufferMemoryBarrier)- -> -- | @pImageMemoryBarriers@ is a pointer to an array of- -- 'Vulkan.Core10.OtherTypes.ImageMemoryBarrier' structures.- ("imageMemoryBarriers" ::: Vector (SomeStruct ImageMemoryBarrier))- -> io ()-cmdPipelineBarrier commandBuffer srcStageMask dstStageMask dependencyFlags memoryBarriers bufferMemoryBarriers imageMemoryBarriers = liftIO . evalContT $ do- let vkCmdPipelineBarrierPtr = pVkCmdPipelineBarrier (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)- lift $ unless (vkCmdPipelineBarrierPtr /= nullFunPtr) $- throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdPipelineBarrier is null" Nothing Nothing- let vkCmdPipelineBarrier' = mkVkCmdPipelineBarrier vkCmdPipelineBarrierPtr- pPMemoryBarriers <- ContT $ allocaBytes @MemoryBarrier ((Data.Vector.length (memoryBarriers)) * 24)- lift $ Data.Vector.imapM_ (\i e -> poke (pPMemoryBarriers `plusPtr` (24 * (i)) :: Ptr MemoryBarrier) (e)) (memoryBarriers)- pPBufferMemoryBarriers <- ContT $ allocaBytes @BufferMemoryBarrier ((Data.Vector.length (bufferMemoryBarriers)) * 56)- lift $ Data.Vector.imapM_ (\i e -> poke (pPBufferMemoryBarriers `plusPtr` (56 * (i)) :: Ptr BufferMemoryBarrier) (e)) (bufferMemoryBarriers)- pPImageMemoryBarriers <- ContT $ allocaBytes @(ImageMemoryBarrier _) ((Data.Vector.length (imageMemoryBarriers)) * 72)- Data.Vector.imapM_ (\i e -> ContT $ pokeSomeCStruct (forgetExtensions (pPImageMemoryBarriers `plusPtr` (72 * (i)) :: Ptr (ImageMemoryBarrier _))) (e) . ($ ())) (imageMemoryBarriers)- lift $ traceAroundEvent "vkCmdPipelineBarrier" (vkCmdPipelineBarrier' (commandBufferHandle (commandBuffer)) (srcStageMask) (dstStageMask) (dependencyFlags) ((fromIntegral (Data.Vector.length $ (memoryBarriers)) :: Word32)) (pPMemoryBarriers) ((fromIntegral (Data.Vector.length $ (bufferMemoryBarriers)) :: Word32)) (pPBufferMemoryBarriers) ((fromIntegral (Data.Vector.length $ (imageMemoryBarriers)) :: Word32)) (forgetExtensions (pPImageMemoryBarriers)))- pure $ ()---foreign import ccall-#if !defined(SAFE_FOREIGN_CALLS)- unsafe-#endif- "dynamic" mkVkCmdBeginQuery- :: FunPtr (Ptr CommandBuffer_T -> QueryPool -> Word32 -> QueryControlFlags -> IO ()) -> Ptr CommandBuffer_T -> QueryPool -> Word32 -> QueryControlFlags -> IO ()---- | vkCmdBeginQuery - Begin a query------ = Description------ If the @queryType@ of the pool is--- 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_OCCLUSION' and @flags@--- contains--- 'Vulkan.Core10.Enums.QueryControlFlagBits.QUERY_CONTROL_PRECISE_BIT', an--- implementation /must/ return a result that matches the actual number of--- samples passed. This is described in more detail in--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#queries-occlusion Occlusion Queries>.------ Calling 'cmdBeginQuery' is equivalent to calling--- 'Vulkan.Extensions.VK_EXT_transform_feedback.cmdBeginQueryIndexedEXT'--- with the @index@ parameter set to zero.------ After beginning a query, that query is considered /active/ within the--- command buffer it was called in until that same query is ended. Queries--- active in a primary command buffer when secondary command buffers are--- executed are considered active for those secondary command buffers.------ == Valid Usage------ - #VUID-vkCmdBeginQuery-None-00807# All queries used by the command--- /must/ be unavailable------ - #VUID-vkCmdBeginQuery-queryType-02804# The @queryType@ used to--- create @queryPool@ /must/ not be--- 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_TIMESTAMP'------ - #VUID-vkCmdBeginQuery-queryType-04728# The @queryType@ used to--- create @queryPool@ /must/ not be--- 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR'--- or--- 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR'------ - #VUID-vkCmdBeginQuery-queryType-04729# The @queryType@ used to--- create @queryPool@ /must/ not be--- 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_NV'------ - #VUID-vkCmdBeginQuery-queryType-00800# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-occlusionQueryPrecise precise occlusion queries>--- feature is not enabled, or the @queryType@ used to create--- @queryPool@ was not--- 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_OCCLUSION', @flags@ /must/--- not contain--- 'Vulkan.Core10.Enums.QueryControlFlagBits.QUERY_CONTROL_PRECISE_BIT'------ - #VUID-vkCmdBeginQuery-query-00802# @query@ /must/ be less than the--- number of queries in @queryPool@------ - #VUID-vkCmdBeginQuery-queryType-00803# If the @queryType@ used to--- create @queryPool@ was--- 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_OCCLUSION', the--- 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was--- allocated from /must/ support graphics operations------ - #VUID-vkCmdBeginQuery-queryType-00804# If the @queryType@ used to--- create @queryPool@ was--- 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PIPELINE_STATISTICS' and--- any of the @pipelineStatistics@ indicate graphics operations, the--- 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was--- allocated from /must/ support graphics operations------ - #VUID-vkCmdBeginQuery-queryType-00805# If the @queryType@ used to--- create @queryPool@ was--- 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PIPELINE_STATISTICS' and--- any of the @pipelineStatistics@ indicate compute operations, the--- 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was--- allocated from /must/ support compute operations------ - #VUID-vkCmdBeginQuery-commandBuffer-01885# @commandBuffer@ /must/--- not be a protected command buffer------ - #VUID-vkCmdBeginQuery-query-00808# If called within a render pass--- instance, the sum of @query@ and the number of bits set in the--- current subpass’s view mask /must/ be less than or equal to the--- number of queries in @queryPool@------ - #VUID-vkCmdBeginQuery-queryPool-01922# @queryPool@ /must/ have been--- created with a @queryType@ that differs from that of any queries--- that are--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#queries-operation-active active>--- within @commandBuffer@------ - #VUID-vkCmdBeginQuery-queryType-02327# If the @queryType@ used to--- create @queryPool@ was--- 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT'--- the 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was--- allocated from /must/ support graphics operations------ - #VUID-vkCmdBeginQuery-queryType-02328# If the @queryType@ used to--- create @queryPool@ was--- 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT'--- then--- 'Vulkan.Extensions.VK_EXT_transform_feedback.PhysicalDeviceTransformFeedbackPropertiesEXT'::@transformFeedbackQueries@--- /must/ be supported------ - #VUID-vkCmdBeginQuery-queryType-06687# If the @queryType@ used to--- create @queryPool@ was--- 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PRIMITIVES_GENERATED_EXT'--- the 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was--- allocated from /must/ support graphics operations------ - #VUID-vkCmdBeginQuery-queryType-06688# If the @queryType@ used to--- create @queryPool@ was--- 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PRIMITIVES_GENERATED_EXT'--- then--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-primitivesGeneratedQuery primitivesGeneratedQuery>--- /must/ be enabled------ - #VUID-vkCmdBeginQuery-queryPool-03223# If @queryPool@ was created--- with a @queryType@ of--- 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PERFORMANCE_QUERY_KHR',--- the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#profiling-lock profiling lock>--- /must/ have been held before--- 'Vulkan.Core10.CommandBuffer.beginCommandBuffer' was called on--- @commandBuffer@------ - #VUID-vkCmdBeginQuery-queryPool-03224# If @queryPool@ was created--- with a @queryType@ of--- 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PERFORMANCE_QUERY_KHR' and--- one of the counters used to create @queryPool@ was--- 'Vulkan.Extensions.VK_KHR_performance_query.PERFORMANCE_COUNTER_SCOPE_COMMAND_BUFFER_KHR',--- the query begin /must/ be the first recorded command in--- @commandBuffer@------ - #VUID-vkCmdBeginQuery-queryPool-03225# If @queryPool@ was created--- with a @queryType@ of--- 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PERFORMANCE_QUERY_KHR' and--- one of the counters used to create @queryPool@ was--- 'Vulkan.Extensions.VK_KHR_performance_query.PERFORMANCE_COUNTER_SCOPE_RENDER_PASS_KHR',--- the begin command /must/ not be recorded within a render pass--- instance------ - #VUID-vkCmdBeginQuery-queryPool-03226# If @queryPool@ was created--- with a @queryType@ of--- 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PERFORMANCE_QUERY_KHR' and--- another query pool with a @queryType@--- 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PERFORMANCE_QUERY_KHR' has--- been used within @commandBuffer@, its parent primary command buffer--- or secondary command buffer recorded within the same parent primary--- command buffer as @commandBuffer@, the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-performanceCounterMultipleQueryPools performanceCounterMultipleQueryPools>--- feature /must/ be enabled------ - #VUID-vkCmdBeginQuery-None-02863# If @queryPool@ was created with a--- @queryType@ of--- 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PERFORMANCE_QUERY_KHR',--- this command /must/ not be recorded in a command buffer that, either--- directly or through secondary command buffers, also contains a--- 'cmdResetQueryPool' command affecting the same query------ == Valid Usage (Implicit)------ - #VUID-vkCmdBeginQuery-commandBuffer-parameter# @commandBuffer@--- /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle------ - #VUID-vkCmdBeginQuery-queryPool-parameter# @queryPool@ /must/ be a--- valid 'Vulkan.Core10.Handles.QueryPool' handle------ - #VUID-vkCmdBeginQuery-flags-parameter# @flags@ /must/ be a valid--- combination of--- 'Vulkan.Core10.Enums.QueryControlFlagBits.QueryControlFlagBits'--- values------ - #VUID-vkCmdBeginQuery-commandBuffer-recording# @commandBuffer@--- /must/ be in the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording state>------ - #VUID-vkCmdBeginQuery-commandBuffer-cmdpool# The--- 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was--- allocated from /must/ support graphics, compute, decode, or encode--- operations------ - #VUID-vkCmdBeginQuery-commonparent# Both of @commandBuffer@, and--- @queryPool@ /must/ have been created, allocated, or retrieved from--- the same 'Vulkan.Core10.Handles.Device'------ == Host Synchronization------ - Host access to @commandBuffer@ /must/ be externally synchronized------ - Host access to the 'Vulkan.Core10.Handles.CommandPool' that--- @commandBuffer@ was allocated from /must/ be externally synchronized------ == Command Properties------ \'------ +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | Primary | Both | Graphics |--- | Secondary | | Compute |--- | | | Decode |--- | | | Encode |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,--- 'Vulkan.Core10.Handles.CommandBuffer',--- 'Vulkan.Core10.Enums.QueryControlFlagBits.QueryControlFlags',--- 'Vulkan.Core10.Handles.QueryPool'-cmdBeginQuery :: forall io- . (MonadIO io)- => -- | @commandBuffer@ is the command buffer into which this command will be- -- recorded.- CommandBuffer- -> -- | @queryPool@ is the query pool that will manage the results of the query.- QueryPool- -> -- | @query@ is the query index within the query pool that will contain the- -- results.- ("query" ::: Word32)- -> -- | @flags@ is a bitmask of- -- 'Vulkan.Core10.Enums.QueryControlFlagBits.QueryControlFlagBits'- -- specifying constraints on the types of queries that /can/ be performed.- QueryControlFlags- -> io ()-cmdBeginQuery commandBuffer queryPool query flags = liftIO $ do- let vkCmdBeginQueryPtr = pVkCmdBeginQuery (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)- unless (vkCmdBeginQueryPtr /= nullFunPtr) $- throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdBeginQuery is null" Nothing Nothing- let vkCmdBeginQuery' = mkVkCmdBeginQuery vkCmdBeginQueryPtr- traceAroundEvent "vkCmdBeginQuery" (vkCmdBeginQuery' (commandBufferHandle (commandBuffer)) (queryPool) (query) (flags))- pure $ ()---- | This function will call the supplied action between calls to--- 'cmdBeginQuery' and 'cmdEndQuery'------ Note that 'cmdEndQuery' is *not* called if an exception is thrown by the--- inner action.-cmdUseQuery :: forall io r . MonadIO io => CommandBuffer -> QueryPool -> Word32 -> QueryControlFlags -> io r -> io r-cmdUseQuery commandBuffer queryPool query flags a =- (cmdBeginQuery commandBuffer queryPool query flags) *> a <* (cmdEndQuery commandBuffer queryPool query)---foreign import ccall-#if !defined(SAFE_FOREIGN_CALLS)- unsafe-#endif- "dynamic" mkVkCmdEndQuery- :: FunPtr (Ptr CommandBuffer_T -> QueryPool -> Word32 -> IO ()) -> Ptr CommandBuffer_T -> QueryPool -> Word32 -> IO ()---- | vkCmdEndQuery - Ends a query------ = Description------ Calling 'cmdEndQuery' is equivalent to calling--- 'Vulkan.Extensions.VK_EXT_transform_feedback.cmdEndQueryIndexedEXT' with--- the @index@ parameter set to zero.------ As queries operate asynchronously, ending a query does not immediately--- set the query’s status to available. A query is considered /finished/--- when the final results of the query are ready to be retrieved by--- 'Vulkan.Core10.Query.getQueryPoolResults' and 'cmdCopyQueryPoolResults',--- and this is when the query’s status is set to available.------ Once a query is ended the query /must/ finish in finite time, unless the--- state of the query is changed using other commands, e.g. by issuing a--- reset of the query.------ == Valid Usage------ - #VUID-vkCmdEndQuery-None-01923# All queries used by the command--- /must/ be--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#queries-operation-active active>------ - #VUID-vkCmdEndQuery-query-00810# @query@ /must/ be less than the--- number of queries in @queryPool@------ - #VUID-vkCmdEndQuery-commandBuffer-01886# @commandBuffer@ /must/ not--- be a protected command buffer------ - #VUID-vkCmdEndQuery-query-00812# If 'cmdEndQuery' is called within a--- render pass instance, the sum of @query@ and the number of bits set--- in the current subpass’s view mask /must/ be less than or equal to--- the number of queries in @queryPool@------ - #VUID-vkCmdEndQuery-queryPool-03227# If @queryPool@ was created with--- a @queryType@ of--- 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PERFORMANCE_QUERY_KHR' and--- one or more of the counters used to create @queryPool@ was--- 'Vulkan.Extensions.VK_KHR_performance_query.PERFORMANCE_COUNTER_SCOPE_COMMAND_BUFFER_KHR',--- the 'cmdEndQuery' /must/ be the last recorded command in--- @commandBuffer@------ - #VUID-vkCmdEndQuery-queryPool-03228# If @queryPool@ was created with--- a @queryType@ of--- 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PERFORMANCE_QUERY_KHR' and--- one or more of the counters used to create @queryPool@ was--- 'Vulkan.Extensions.VK_KHR_performance_query.PERFORMANCE_COUNTER_SCOPE_RENDER_PASS_KHR',--- the 'cmdEndQuery' /must/ not be recorded within a render pass--- instance------ == Valid Usage (Implicit)------ - #VUID-vkCmdEndQuery-commandBuffer-parameter# @commandBuffer@ /must/--- be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle------ - #VUID-vkCmdEndQuery-queryPool-parameter# @queryPool@ /must/ be a--- valid 'Vulkan.Core10.Handles.QueryPool' handle------ - #VUID-vkCmdEndQuery-commandBuffer-recording# @commandBuffer@ /must/--- be in the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording state>------ - #VUID-vkCmdEndQuery-commandBuffer-cmdpool# The--- 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was--- allocated from /must/ support graphics, compute, decode, or encode--- operations------ - #VUID-vkCmdEndQuery-commonparent# Both of @commandBuffer@, and--- @queryPool@ /must/ have been created, allocated, or retrieved from--- the same 'Vulkan.Core10.Handles.Device'------ == Host Synchronization------ - Host access to @commandBuffer@ /must/ be externally synchronized------ - Host access to the 'Vulkan.Core10.Handles.CommandPool' that--- @commandBuffer@ was allocated from /must/ be externally synchronized------ == Command Properties------ \'------ +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | Primary | Both | Graphics |--- | Secondary | | Compute |--- | | | Decode |--- | | | Encode |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,--- 'Vulkan.Core10.Handles.CommandBuffer', 'Vulkan.Core10.Handles.QueryPool'-cmdEndQuery :: forall io- . (MonadIO io)- => -- | @commandBuffer@ is the command buffer into which this command will be- -- recorded.- CommandBuffer- -> -- | @queryPool@ is the query pool that is managing the results of the query.- QueryPool- -> -- | @query@ is the query index within the query pool where the result is- -- stored.- ("query" ::: Word32)- -> io ()-cmdEndQuery commandBuffer queryPool query = liftIO $ do- let vkCmdEndQueryPtr = pVkCmdEndQuery (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)- unless (vkCmdEndQueryPtr /= nullFunPtr) $- throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdEndQuery is null" Nothing Nothing- let vkCmdEndQuery' = mkVkCmdEndQuery vkCmdEndQueryPtr- traceAroundEvent "vkCmdEndQuery" (vkCmdEndQuery' (commandBufferHandle (commandBuffer)) (queryPool) (query))- pure $ ()---foreign import ccall-#if !defined(SAFE_FOREIGN_CALLS)- unsafe-#endif- "dynamic" mkVkCmdResetQueryPool- :: FunPtr (Ptr CommandBuffer_T -> QueryPool -> Word32 -> Word32 -> IO ()) -> Ptr CommandBuffer_T -> QueryPool -> Word32 -> Word32 -> IO ()---- | vkCmdResetQueryPool - Reset queries in a query pool------ = Description------ When executed on a queue, this command sets the status of query indices--- [@firstQuery@, @firstQuery@ + @queryCount@ - 1] to unavailable.------ If the @queryType@ used to create @queryPool@ was--- 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PERFORMANCE_QUERY_KHR', this--- command sets the status of query indices [@firstQuery@, @firstQuery@ +--- @queryCount@ - 1] to unavailable for each pass of @queryPool@, as--- indicated by a call to--- 'Vulkan.Extensions.VK_KHR_performance_query.getPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR'.------ Note------ Because 'cmdResetQueryPool' resets all the passes of the indicated--- queries, applications must not record a 'cmdResetQueryPool' command for--- a @queryPool@ created with--- 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PERFORMANCE_QUERY_KHR' in a--- command buffer that needs to be submitted multiple times as indicated by--- a call to--- 'Vulkan.Extensions.VK_KHR_performance_query.getPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR'.--- Otherwise applications will never be able to complete the recorded--- queries.------ == Valid Usage------ - #VUID-vkCmdResetQueryPool-firstQuery-00796# @firstQuery@ /must/ be--- less than the number of queries in @queryPool@------ - #VUID-vkCmdResetQueryPool-firstQuery-00797# The sum of @firstQuery@--- and @queryCount@ /must/ be less than or equal to the number of--- queries in @queryPool@------ - #VUID-vkCmdResetQueryPool-None-02841# All queries used by the--- command /must/ not be active------ - #VUID-vkCmdResetQueryPool-firstQuery-02862# If @queryPool@ was--- created with--- 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PERFORMANCE_QUERY_KHR',--- this command /must/ not be recorded in a command buffer that, either--- directly or through secondary command buffers, also contains begin--- commands for a query from the set of queries [@firstQuery@,--- @firstQuery@ + @queryCount@ - 1]------ == Valid Usage (Implicit)------ - #VUID-vkCmdResetQueryPool-commandBuffer-parameter# @commandBuffer@--- /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle------ - #VUID-vkCmdResetQueryPool-queryPool-parameter# @queryPool@ /must/ be--- a valid 'Vulkan.Core10.Handles.QueryPool' handle------ - #VUID-vkCmdResetQueryPool-commandBuffer-recording# @commandBuffer@--- /must/ be in the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording state>------ - #VUID-vkCmdResetQueryPool-commandBuffer-cmdpool# The--- 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was--- allocated from /must/ support graphics, compute, decode, or encode--- operations------ - #VUID-vkCmdResetQueryPool-renderpass# This command /must/ only be--- called outside of a render pass instance------ - #VUID-vkCmdResetQueryPool-commonparent# Both of @commandBuffer@, and--- @queryPool@ /must/ have been created, allocated, or retrieved from--- the same 'Vulkan.Core10.Handles.Device'------ == Host Synchronization------ - Host access to @commandBuffer@ /must/ be externally synchronized------ - Host access to the 'Vulkan.Core10.Handles.CommandPool' that--- @commandBuffer@ was allocated from /must/ be externally synchronized------ == Command Properties------ \'------ +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | Primary | Outside | Graphics |--- | Secondary | | Compute |--- | | | Decode |--- | | | Encode |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,--- 'Vulkan.Core10.Handles.CommandBuffer', 'Vulkan.Core10.Handles.QueryPool'-cmdResetQueryPool :: forall io- . (MonadIO io)- => -- | @commandBuffer@ is the command buffer into which this command will be- -- recorded.- CommandBuffer- -> -- | @queryPool@ is the handle of the query pool managing the queries being- -- reset.- QueryPool- -> -- | @firstQuery@ is the initial query index to reset.- ("firstQuery" ::: Word32)- -> -- | @queryCount@ is the number of queries to reset.- ("queryCount" ::: Word32)- -> io ()-cmdResetQueryPool commandBuffer queryPool firstQuery queryCount = liftIO $ do- let vkCmdResetQueryPoolPtr = pVkCmdResetQueryPool (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)- unless (vkCmdResetQueryPoolPtr /= nullFunPtr) $- throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdResetQueryPool is null" Nothing Nothing- let vkCmdResetQueryPool' = mkVkCmdResetQueryPool vkCmdResetQueryPoolPtr- traceAroundEvent "vkCmdResetQueryPool" (vkCmdResetQueryPool' (commandBufferHandle (commandBuffer)) (queryPool) (firstQuery) (queryCount))- pure $ ()---foreign import ccall-#if !defined(SAFE_FOREIGN_CALLS)- unsafe-#endif- "dynamic" mkVkCmdWriteTimestamp- :: FunPtr (Ptr CommandBuffer_T -> PipelineStageFlagBits -> QueryPool -> Word32 -> IO ()) -> Ptr CommandBuffer_T -> PipelineStageFlagBits -> QueryPool -> Word32 -> IO ()---- | vkCmdWriteTimestamp - Write a device timestamp into a query object------ = Description------ 'cmdWriteTimestamp' latches the value of the timer when all previous--- commands have completed executing as far as the specified pipeline--- stage, and writes the timestamp value to memory. When the timestamp--- value is written, the availability status of the query is set to--- available.------ Note------ If an implementation is unable to detect completion and latch the timer--- at any specific stage of the pipeline, it /may/ instead do so at any--- logically later stage.------ Comparisons between timestamps are not meaningful if the timestamps are--- written by commands submitted to different queues.------ Note------ An example of such a comparison is subtracting an older timestamp from a--- newer one to determine the execution time of a sequence of commands.------ If 'cmdWriteTimestamp' is called while executing a render pass instance--- that has multiview enabled, the timestamp uses N consecutive query--- indices in the query pool (starting at @query@) where N is the number of--- bits set in the view mask of the subpass the command is executed in. The--- resulting query values are determined by an implementation-dependent--- choice of one of the following behaviors:------ - The first query is a timestamp value and (if more than one bit is--- set in the view mask) zero is written to the remaining queries. If--- two timestamps are written in the same subpass, the sum of the--- execution time of all views between those commands is the difference--- between the first query written by each command.------ - All N queries are timestamp values. If two timestamps are written in--- the same subpass, the sum of the execution time of all views between--- those commands is the sum of the difference between corresponding--- queries written by each command. The difference between--- corresponding queries /may/ be the execution time of a single view.------ In either case, the application /can/ sum the differences between all N--- queries to determine the total execution time.------ == Valid Usage------ - #VUID-vkCmdWriteTimestamp-pipelineStage-04074# @pipelineStage@--- /must/ be a--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-pipeline-stages-supported valid stage>--- for the queue family that was used to create the command pool that--- @commandBuffer@ was allocated from------ - #VUID-vkCmdWriteTimestamp-pipelineStage-04075# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryShader geometry shaders>--- feature is not enabled, @pipelineStage@ /must/ not be--- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_GEOMETRY_SHADER_BIT'------ - #VUID-vkCmdWriteTimestamp-pipelineStage-04076# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShader tessellation shaders>--- feature is not enabled, @pipelineStage@ /must/ not be--- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT'--- or--- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT'------ - #VUID-vkCmdWriteTimestamp-pipelineStage-04077# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-conditionalRendering conditional rendering>--- feature is not enabled, @pipelineStage@ /must/ not be--- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT'------ - #VUID-vkCmdWriteTimestamp-pipelineStage-04078# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-fragmentDensityMap fragment density map>--- feature is not enabled, @pipelineStage@ /must/ not be--- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT'------ - #VUID-vkCmdWriteTimestamp-pipelineStage-04079# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-transformFeedback transform feedback>--- feature is not enabled, @pipelineStage@ /must/ not be--- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT'------ - #VUID-vkCmdWriteTimestamp-pipelineStage-04080# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader mesh shaders>--- feature is not enabled, @pipelineStage@ /must/ not be--- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_MESH_SHADER_BIT_NV'--- or--- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TASK_SHADER_BIT_NV'------ - #VUID-vkCmdWriteTimestamp-pipelineStage-04081# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shading rate image>--- feature is not enabled, @pipelineStage@ /must/ not be--- 'Vulkan.Extensions.VK_NV_shading_rate_image.PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV'------ - #VUID-vkCmdWriteTimestamp-synchronization2-06489# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-synchronization2 synchronization2>--- feature is not enabled, @pipelineStage@ /must/ not be--- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_NONE'------ - #VUID-vkCmdWriteTimestamp-queryPool-01416# @queryPool@ /must/ have--- been created with a @queryType@ of--- 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_TIMESTAMP'------ - #VUID-vkCmdWriteTimestamp-queryPool-00828# The query identified by--- @queryPool@ and @query@ /must/ be /unavailable/------ - #VUID-vkCmdWriteTimestamp-timestampValidBits-00829# The command--- pool’s queue family /must/ support a non-zero @timestampValidBits@------ - #VUID-vkCmdWriteTimestamp-query-04904# @query@ /must/ be less than--- the number of queries in @queryPool@------ - #VUID-vkCmdWriteTimestamp-None-00830# All queries used by the--- command /must/ be unavailable------ - #VUID-vkCmdWriteTimestamp-query-00831# If 'cmdWriteTimestamp' is--- called within a render pass instance, the sum of @query@ and the--- number of bits set in the current subpass’s view mask /must/ be less--- than or equal to the number of queries in @queryPool@------ == Valid Usage (Implicit)------ - #VUID-vkCmdWriteTimestamp-commandBuffer-parameter# @commandBuffer@--- /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle------ - #VUID-vkCmdWriteTimestamp-pipelineStage-parameter# @pipelineStage@--- /must/ be a valid--- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlagBits'--- value------ - #VUID-vkCmdWriteTimestamp-queryPool-parameter# @queryPool@ /must/ be--- a valid 'Vulkan.Core10.Handles.QueryPool' handle------ - #VUID-vkCmdWriteTimestamp-commandBuffer-recording# @commandBuffer@--- /must/ be in the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording state>------ - #VUID-vkCmdWriteTimestamp-commandBuffer-cmdpool# The--- 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was--- allocated from /must/ support transfer, graphics, compute, decode,--- or encode operations------ - #VUID-vkCmdWriteTimestamp-commonparent# Both of @commandBuffer@, and--- @queryPool@ /must/ have been created, allocated, or retrieved from--- the same 'Vulkan.Core10.Handles.Device'------ == Host Synchronization------ - Host access to @commandBuffer@ /must/ be externally synchronized------ - Host access to the 'Vulkan.Core10.Handles.CommandPool' that--- @commandBuffer@ was allocated from /must/ be externally synchronized------ == Command Properties------ \'------ +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | Primary | Both | Transfer |--- | Secondary | | Graphics |--- | | | Compute |--- | | | Decode |--- | | | Encode |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,--- 'Vulkan.Core10.Handles.CommandBuffer',--- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlagBits',--- 'Vulkan.Core10.Handles.QueryPool'-cmdWriteTimestamp :: forall io- . (MonadIO io)- => -- | @commandBuffer@ is the command buffer into which the command will be- -- recorded.- CommandBuffer- -> -- | @pipelineStage@ is a- -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlagBits' value,- -- specifying a stage of the pipeline.- PipelineStageFlagBits- -> -- | @queryPool@ is the query pool that will manage the timestamp.- QueryPool- -> -- | @query@ is the query within the query pool that will contain the- -- timestamp.- ("query" ::: Word32)- -> io ()-cmdWriteTimestamp commandBuffer pipelineStage queryPool query = liftIO $ do- let vkCmdWriteTimestampPtr = pVkCmdWriteTimestamp (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)- unless (vkCmdWriteTimestampPtr /= nullFunPtr) $- throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdWriteTimestamp is null" Nothing Nothing- let vkCmdWriteTimestamp' = mkVkCmdWriteTimestamp vkCmdWriteTimestampPtr- traceAroundEvent "vkCmdWriteTimestamp" (vkCmdWriteTimestamp' (commandBufferHandle (commandBuffer)) (pipelineStage) (queryPool) (query))- pure $ ()---foreign import ccall-#if !defined(SAFE_FOREIGN_CALLS)- unsafe-#endif- "dynamic" mkVkCmdCopyQueryPoolResults- :: FunPtr (Ptr CommandBuffer_T -> QueryPool -> Word32 -> Word32 -> Buffer -> DeviceSize -> DeviceSize -> QueryResultFlags -> IO ()) -> Ptr CommandBuffer_T -> QueryPool -> Word32 -> Word32 -> Buffer -> DeviceSize -> DeviceSize -> QueryResultFlags -> IO ()---- | vkCmdCopyQueryPoolResults - Copy the results of queries in a query pool--- to a buffer object------ = Description------ 'cmdCopyQueryPoolResults' is guaranteed to see the effect of previous--- uses of 'cmdResetQueryPool' in the same queue, without any additional--- synchronization. Thus, the results will always reflect the most recent--- use of the query.------ @flags@ has the same possible values described above for the @flags@--- parameter of 'Vulkan.Core10.Query.getQueryPoolResults', but the--- different style of execution causes some subtle behavioral differences.--- Because 'cmdCopyQueryPoolResults' executes in order with respect to--- other query commands, there is less ambiguity about which use of a query--- is being requested.------ Results for all requested occlusion queries, pipeline statistics--- queries, transform feedback queries, primitives generated queries, and--- timestamp queries are written as 64-bit unsigned integer values if--- 'Vulkan.Core10.Enums.QueryResultFlagBits.QUERY_RESULT_64_BIT' is set or--- 32-bit unsigned integer values otherwise. Performance queries store--- results in a tightly packed array whose type is determined by the @unit@--- member of the corresponding--- 'Vulkan.Extensions.VK_KHR_performance_query.PerformanceCounterKHR'.------ If neither of--- 'Vulkan.Core10.Enums.QueryResultFlagBits.QUERY_RESULT_WAIT_BIT' and--- 'Vulkan.Core10.Enums.QueryResultFlagBits.QUERY_RESULT_WITH_AVAILABILITY_BIT'--- are set, results are only written out for queries in the available--- state.------ If 'Vulkan.Core10.Enums.QueryResultFlagBits.QUERY_RESULT_WAIT_BIT' is--- set, the implementation will wait for each query’s status to be in the--- available state before retrieving the numerical results for that query.--- This is guaranteed to reflect the most recent use of the query on the--- same queue, assuming that the query is not being simultaneously used by--- other queues. If the query does not become available in a finite amount--- of time (e.g. due to not issuing a query since the last reset), a--- 'Vulkan.Core10.Enums.Result.ERROR_DEVICE_LOST' error /may/ occur.------ Similarly, if--- 'Vulkan.Core10.Enums.QueryResultFlagBits.QUERY_RESULT_WITH_AVAILABILITY_BIT'--- is set and--- 'Vulkan.Core10.Enums.QueryResultFlagBits.QUERY_RESULT_WAIT_BIT' is not--- set, the availability is guaranteed to reflect the most recent use of--- the query on the same queue, assuming that the query is not being--- simultaneously used by other queues. As with--- 'Vulkan.Core10.Query.getQueryPoolResults', implementations /must/--- guarantee that if they return a non-zero availability value, then the--- numerical results are valid.------ If 'Vulkan.Core10.Enums.QueryResultFlagBits.QUERY_RESULT_PARTIAL_BIT' is--- set, 'Vulkan.Core10.Enums.QueryResultFlagBits.QUERY_RESULT_WAIT_BIT' is--- not set, and the query’s status is unavailable, an intermediate result--- value between zero and the final result value is written for that query.------ 'Vulkan.Core10.Enums.QueryResultFlagBits.QUERY_RESULT_PARTIAL_BIT'--- /must/ not be used if the pool’s @queryType@ is--- 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_TIMESTAMP'.------ 'cmdCopyQueryPoolResults' is considered to be a transfer operation, and--- its writes to buffer memory /must/ be synchronized using--- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TRANSFER_BIT'--- and 'Vulkan.Core10.Enums.AccessFlagBits.ACCESS_TRANSFER_WRITE_BIT'--- before using the results.------ == Valid Usage------ - #VUID-vkCmdCopyQueryPoolResults-dstOffset-00819# @dstOffset@ /must/--- be less than the size of @dstBuffer@------ - #VUID-vkCmdCopyQueryPoolResults-firstQuery-00820# @firstQuery@--- /must/ be less than the number of queries in @queryPool@------ - #VUID-vkCmdCopyQueryPoolResults-firstQuery-00821# The sum of--- @firstQuery@ and @queryCount@ /must/ be less than or equal to the--- number of queries in @queryPool@------ - #VUID-vkCmdCopyQueryPoolResults-flags-00822# If--- 'Vulkan.Core10.Enums.QueryResultFlagBits.QUERY_RESULT_64_BIT' is not--- set in @flags@ then @dstOffset@ and @stride@ /must/ be multiples of--- @4@------ - #VUID-vkCmdCopyQueryPoolResults-flags-00823# If--- 'Vulkan.Core10.Enums.QueryResultFlagBits.QUERY_RESULT_64_BIT' is set--- in @flags@ then @dstOffset@ and @stride@ /must/ be multiples of @8@------ - #VUID-vkCmdCopyQueryPoolResults-dstBuffer-00824# @dstBuffer@ /must/--- have enough storage, from @dstOffset@, to contain the result of each--- query, as described--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#queries-operation-memorylayout here>------ - #VUID-vkCmdCopyQueryPoolResults-dstBuffer-00825# @dstBuffer@ /must/--- have been created with--- 'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_TRANSFER_DST_BIT'--- usage flag------ - #VUID-vkCmdCopyQueryPoolResults-dstBuffer-00826# If @dstBuffer@ is--- non-sparse then it /must/ be bound completely and contiguously to a--- single 'Vulkan.Core10.Handles.DeviceMemory' object------ - #VUID-vkCmdCopyQueryPoolResults-queryType-00827# If the @queryType@--- used to create @queryPool@ was--- 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_TIMESTAMP', @flags@ /must/--- not contain--- 'Vulkan.Core10.Enums.QueryResultFlagBits.QUERY_RESULT_PARTIAL_BIT'------ - #VUID-vkCmdCopyQueryPoolResults-queryType-03232# If the @queryType@--- used to create @queryPool@ was--- 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PERFORMANCE_QUERY_KHR',--- 'Vulkan.Extensions.VK_KHR_performance_query.PhysicalDevicePerformanceQueryPropertiesKHR'::@allowCommandBufferQueryCopies@--- /must/ be 'Vulkan.Core10.FundamentalTypes.TRUE'------ - #VUID-vkCmdCopyQueryPoolResults-queryType-03233# If the @queryType@--- used to create @queryPool@ was--- 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PERFORMANCE_QUERY_KHR',--- @flags@ /must/ not contain--- 'Vulkan.Core10.Enums.QueryResultFlagBits.QUERY_RESULT_WITH_AVAILABILITY_BIT',--- 'Vulkan.Core10.Enums.QueryResultFlagBits.QUERY_RESULT_PARTIAL_BIT'--- or 'Vulkan.Core10.Enums.QueryResultFlagBits.QUERY_RESULT_64_BIT'------ - #VUID-vkCmdCopyQueryPoolResults-queryType-03234# If the @queryType@--- used to create @queryPool@ was--- 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PERFORMANCE_QUERY_KHR',--- the @queryPool@ /must/ have been submitted once for each pass as--- retrieved via a call to--- 'Vulkan.Extensions.VK_KHR_performance_query.getPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR'------ - #VUID-vkCmdCopyQueryPoolResults-queryType-02734#--- 'cmdCopyQueryPoolResults' /must/ not be called if the @queryType@--- used to create @queryPool@ was--- 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PERFORMANCE_QUERY_INTEL'------ == Valid Usage (Implicit)------ - #VUID-vkCmdCopyQueryPoolResults-commandBuffer-parameter#--- @commandBuffer@ /must/ be a valid--- 'Vulkan.Core10.Handles.CommandBuffer' handle------ - #VUID-vkCmdCopyQueryPoolResults-queryPool-parameter# @queryPool@--- /must/ be a valid 'Vulkan.Core10.Handles.QueryPool' handle------ - #VUID-vkCmdCopyQueryPoolResults-dstBuffer-parameter# @dstBuffer@--- /must/ be a valid 'Vulkan.Core10.Handles.Buffer' handle------ - #VUID-vkCmdCopyQueryPoolResults-flags-parameter# @flags@ /must/ be a--- valid combination of--- 'Vulkan.Core10.Enums.QueryResultFlagBits.QueryResultFlagBits' values------ - #VUID-vkCmdCopyQueryPoolResults-commandBuffer-recording#--- @commandBuffer@ /must/ be in the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording state>------ - #VUID-vkCmdCopyQueryPoolResults-commandBuffer-cmdpool# The--- 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was--- allocated from /must/ support graphics, or compute operations------ - #VUID-vkCmdCopyQueryPoolResults-renderpass# This command /must/ only--- be called outside of a render pass instance------ - #VUID-vkCmdCopyQueryPoolResults-commonparent# Each of--- @commandBuffer@, @dstBuffer@, and @queryPool@ /must/ have been--- created, allocated, or retrieved from the same--- 'Vulkan.Core10.Handles.Device'------ == Host Synchronization------ - Host access to @commandBuffer@ /must/ be externally synchronized------ - Host access to the 'Vulkan.Core10.Handles.CommandPool' that--- @commandBuffer@ was allocated from /must/ be externally synchronized------ == Command Properties------ \'------ +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | Primary | Outside | Graphics |--- | Secondary | | Compute |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,--- 'Vulkan.Core10.Handles.Buffer', 'Vulkan.Core10.Handles.CommandBuffer',--- 'Vulkan.Core10.FundamentalTypes.DeviceSize',--- 'Vulkan.Core10.Handles.QueryPool',--- 'Vulkan.Core10.Enums.QueryResultFlagBits.QueryResultFlags'-cmdCopyQueryPoolResults :: forall io- . (MonadIO io)- => -- | @commandBuffer@ is the command buffer into which this command will be- -- recorded.- CommandBuffer- -> -- | @queryPool@ is the query pool managing the queries containing the- -- desired results.- QueryPool- -> -- | @firstQuery@ is the initial query index.- ("firstQuery" ::: Word32)- -> -- | @queryCount@ is the number of queries. @firstQuery@ and @queryCount@- -- together define a range of queries.- ("queryCount" ::: Word32)- -> -- | @dstBuffer@ is a 'Vulkan.Core10.Handles.Buffer' object that will receive- -- the results of the copy command.- ("dstBuffer" ::: Buffer)- -> -- | @dstOffset@ is an offset into @dstBuffer@.- ("dstOffset" ::: DeviceSize)- -> -- | @stride@ is the stride in bytes between results for individual queries- -- within @dstBuffer@. The required size of the backing memory for- -- @dstBuffer@ is determined as described above for- -- 'Vulkan.Core10.Query.getQueryPoolResults'.- ("stride" ::: DeviceSize)- -> -- | @flags@ is a bitmask of- -- 'Vulkan.Core10.Enums.QueryResultFlagBits.QueryResultFlagBits' specifying- -- how and when results are returned.- QueryResultFlags- -> io ()-cmdCopyQueryPoolResults commandBuffer queryPool firstQuery queryCount dstBuffer dstOffset stride flags = liftIO $ do- let vkCmdCopyQueryPoolResultsPtr = pVkCmdCopyQueryPoolResults (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)- unless (vkCmdCopyQueryPoolResultsPtr /= nullFunPtr) $- throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdCopyQueryPoolResults is null" Nothing Nothing- let vkCmdCopyQueryPoolResults' = mkVkCmdCopyQueryPoolResults vkCmdCopyQueryPoolResultsPtr- traceAroundEvent "vkCmdCopyQueryPoolResults" (vkCmdCopyQueryPoolResults' (commandBufferHandle (commandBuffer)) (queryPool) (firstQuery) (queryCount) (dstBuffer) (dstOffset) (stride) (flags))- pure $ ()---foreign import ccall-#if !defined(SAFE_FOREIGN_CALLS)- unsafe-#endif- "dynamic" mkVkCmdPushConstants- :: FunPtr (Ptr CommandBuffer_T -> PipelineLayout -> ShaderStageFlags -> Word32 -> Word32 -> Ptr () -> IO ()) -> Ptr CommandBuffer_T -> PipelineLayout -> ShaderStageFlags -> Word32 -> Word32 -> Ptr () -> IO ()---- | vkCmdPushConstants - Update the values of push constants------ = Description------ When a command buffer begins recording, all push constant values are--- undefined. Reads of undefined push constant values by the executing--- shader return undefined values.------ Push constant values /can/ be updated incrementally, causing shader--- stages in @stageFlags@ to read the new data from @pValues@ for push--- constants modified by this command, while still reading the previous--- data for push constants not modified by this command. When a--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-bindpoint-commands bound pipeline command>--- is issued, the bound pipeline’s layout /must/ be compatible with the--- layouts used to set the values of all push constants in the pipeline--- layout’s push constant ranges, as described in--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-compatibility Pipeline Layout Compatibility>.--- Binding a pipeline with a layout that is not compatible with the push--- constant layout does not disturb the push constant values.------ Note------ As @stageFlags@ needs to include all flags the relevant push constant--- ranges were created with, any flags that are not supported by the queue--- family that the 'Vulkan.Core10.Handles.CommandPool' used to allocate--- @commandBuffer@ was created on are ignored.------ == Valid Usage------ - #VUID-vkCmdPushConstants-offset-01795# For each byte in the range--- specified by @offset@ and @size@ and for each shader stage in--- @stageFlags@, there /must/ be a push constant range in @layout@ that--- includes that byte and that stage------ - #VUID-vkCmdPushConstants-offset-01796# For each byte in the range--- specified by @offset@ and @size@ and for each push constant range--- that overlaps that byte, @stageFlags@ /must/ include all stages in--- that push constant range’s--- 'Vulkan.Core10.PipelineLayout.PushConstantRange'::@stageFlags@------ - #VUID-vkCmdPushConstants-offset-00368# @offset@ /must/ be a multiple--- of @4@------ - #VUID-vkCmdPushConstants-size-00369# @size@ /must/ be a multiple of--- @4@------ - #VUID-vkCmdPushConstants-offset-00370# @offset@ /must/ be less than--- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxPushConstantsSize@------ - #VUID-vkCmdPushConstants-size-00371# @size@ /must/ be less than or--- equal to--- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxPushConstantsSize@--- minus @offset@------ == Valid Usage (Implicit)------ - #VUID-vkCmdPushConstants-commandBuffer-parameter# @commandBuffer@--- /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle------ - #VUID-vkCmdPushConstants-layout-parameter# @layout@ /must/ be a--- valid 'Vulkan.Core10.Handles.PipelineLayout' handle------ - #VUID-vkCmdPushConstants-stageFlags-parameter# @stageFlags@ /must/--- be a valid combination of--- 'Vulkan.Core10.Enums.ShaderStageFlagBits.ShaderStageFlagBits' values------ - #VUID-vkCmdPushConstants-stageFlags-requiredbitmask# @stageFlags@--- /must/ not be @0@------ - #VUID-vkCmdPushConstants-pValues-parameter# @pValues@ /must/ be a--- valid pointer to an array of @size@ bytes------ - #VUID-vkCmdPushConstants-commandBuffer-recording# @commandBuffer@--- /must/ be in the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording state>------ - #VUID-vkCmdPushConstants-commandBuffer-cmdpool# The--- 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was--- allocated from /must/ support graphics, or compute operations------ - #VUID-vkCmdPushConstants-size-arraylength# @size@ /must/ be greater--- than @0@------ - #VUID-vkCmdPushConstants-commonparent# Both of @commandBuffer@, and--- @layout@ /must/ have been created, allocated, or retrieved from the--- same 'Vulkan.Core10.Handles.Device'------ == Host Synchronization------ - Host access to @commandBuffer@ /must/ be externally synchronized------ - Host access to the 'Vulkan.Core10.Handles.CommandPool' that--- @commandBuffer@ was allocated from /must/ be externally synchronized------ == Command Properties------ \'------ +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | Primary | Both | Graphics |--- | Secondary | | Compute |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,--- 'Vulkan.Core10.Handles.CommandBuffer',--- 'Vulkan.Core10.Handles.PipelineLayout',--- 'Vulkan.Core10.Enums.ShaderStageFlagBits.ShaderStageFlags'-cmdPushConstants :: forall io- . (MonadIO io)- => -- | @commandBuffer@ is the command buffer in which the push constant update- -- will be recorded.- CommandBuffer- -> -- | @layout@ is the pipeline layout used to program the push constant- -- updates.- PipelineLayout- -> -- | @stageFlags@ is a bitmask of- -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.ShaderStageFlagBits' specifying- -- the shader stages that will use the push constants in the updated range.- ShaderStageFlags- -> -- | @offset@ is the start offset of the push constant range to update, in- -- units of bytes.- ("offset" ::: Word32)- -> -- | @size@ is the size of the push constant range to update, in units of- -- bytes.- ("size" ::: Word32)- -> -- | @pValues@ is a pointer to an array of @size@ bytes containing the new- -- push constant values.- ("values" ::: Ptr ())- -> io ()-cmdPushConstants commandBuffer layout stageFlags offset size values = liftIO $ do- let vkCmdPushConstantsPtr = pVkCmdPushConstants (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)- unless (vkCmdPushConstantsPtr /= nullFunPtr) $- throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdPushConstants is null" Nothing Nothing- let vkCmdPushConstants' = mkVkCmdPushConstants vkCmdPushConstantsPtr- traceAroundEvent "vkCmdPushConstants" (vkCmdPushConstants' (commandBufferHandle (commandBuffer)) (layout) (stageFlags) (offset) (size) (values))- pure $ ()---foreign import ccall-#if !defined(SAFE_FOREIGN_CALLS)- unsafe-#endif- "dynamic" mkVkCmdBeginRenderPass- :: FunPtr (Ptr CommandBuffer_T -> Ptr (SomeStruct RenderPassBeginInfo) -> SubpassContents -> IO ()) -> Ptr CommandBuffer_T -> Ptr (SomeStruct RenderPassBeginInfo) -> SubpassContents -> IO ()---- | vkCmdBeginRenderPass - Begin a new render pass------ = Description------ After beginning a render pass instance, the command buffer is ready to--- record the commands for the first subpass of that render pass.------ == Valid Usage------ - #VUID-vkCmdBeginRenderPass-initialLayout-00895# If any of the--- @initialLayout@ or @finalLayout@ member of the--- 'Vulkan.Core10.Pass.AttachmentDescription' structures or the--- @layout@ member of the 'Vulkan.Core10.Pass.AttachmentReference'--- structures specified when creating the render pass specified in the--- @renderPass@ member of @pRenderPassBegin@ is--- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL'--- then the corresponding attachment image view of the framebuffer--- specified in the @framebuffer@ member of @pRenderPassBegin@ /must/--- have been created with a @usage@ value including--- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_COLOR_ATTACHMENT_BIT'------ - #VUID-vkCmdBeginRenderPass-initialLayout-01758# If any of the--- @initialLayout@ or @finalLayout@ member of the--- 'Vulkan.Core10.Pass.AttachmentDescription' structures or the--- @layout@ member of the 'Vulkan.Core10.Pass.AttachmentReference'--- structures specified when creating the render pass specified in the--- @renderPass@ member of @pRenderPassBegin@ is--- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL',--- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL',--- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL',--- or--- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL'--- then the corresponding attachment image view of the framebuffer--- specified in the @framebuffer@ member of @pRenderPassBegin@ /must/--- have been created with a @usage@ value including--- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT'------ - #VUID-vkCmdBeginRenderPass-initialLayout-02842# If any of the--- @initialLayout@ or @finalLayout@ member of the--- 'Vulkan.Core10.Pass.AttachmentDescription' structures or the--- @layout@ member of the 'Vulkan.Core10.Pass.AttachmentReference'--- structures specified when creating the render pass specified in the--- @renderPass@ member of @pRenderPassBegin@ is--- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL',--- or--- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL',--- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL',--- or--- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL'--- then the corresponding attachment image view of the framebuffer--- specified in the @framebuffer@ member of @pRenderPassBegin@ /must/--- have been created with a @usage@ value including--- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT'------ - #VUID-vkCmdBeginRenderPass-stencilInitialLayout-02843# If any of the--- @stencilInitialLayout@ or @stencilFinalLayout@ member of the--- 'Vulkan.Core12.Promoted_From_VK_KHR_separate_depth_stencil_layouts.AttachmentDescriptionStencilLayout'--- structures or the @stencilLayout@ member of the--- 'Vulkan.Core12.Promoted_From_VK_KHR_separate_depth_stencil_layouts.AttachmentReferenceStencilLayout'--- structures specified when creating the render pass specified in the--- @renderPass@ member of @pRenderPassBegin@ is--- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL',--- or--- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL'--- then the corresponding attachment image view of the framebuffer--- specified in the @framebuffer@ member of @pRenderPassBegin@ /must/--- have been created with a @usage@ value including--- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT'------ - #VUID-vkCmdBeginRenderPass-initialLayout-00897# If any of the--- @initialLayout@ or @finalLayout@ member of the--- 'Vulkan.Core10.Pass.AttachmentDescription' structures or the--- @layout@ member of the 'Vulkan.Core10.Pass.AttachmentReference'--- structures specified when creating the render pass specified in the--- @renderPass@ member of @pRenderPassBegin@ is--- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL'--- then the corresponding attachment image view of the framebuffer--- specified in the @framebuffer@ member of @pRenderPassBegin@ /must/--- have been created with a @usage@ value including--- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_SAMPLED_BIT' or--- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_INPUT_ATTACHMENT_BIT'------ - #VUID-vkCmdBeginRenderPass-initialLayout-00898# If any of the--- @initialLayout@ or @finalLayout@ member of the--- 'Vulkan.Core10.Pass.AttachmentDescription' structures or the--- @layout@ member of the 'Vulkan.Core10.Pass.AttachmentReference'--- structures specified when creating the render pass specified in the--- @renderPass@ member of @pRenderPassBegin@ is--- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL'--- then the corresponding attachment image view of the framebuffer--- specified in the @framebuffer@ member of @pRenderPassBegin@ /must/--- have been created with a @usage@ value including--- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_TRANSFER_SRC_BIT'------ - #VUID-vkCmdBeginRenderPass-initialLayout-00899# If any of the--- @initialLayout@ or @finalLayout@ member of the--- 'Vulkan.Core10.Pass.AttachmentDescription' structures or the--- @layout@ member of the 'Vulkan.Core10.Pass.AttachmentReference'--- structures specified when creating the render pass specified in the--- @renderPass@ member of @pRenderPassBegin@ is--- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL'--- then the corresponding attachment image view of the framebuffer--- specified in the @framebuffer@ member of @pRenderPassBegin@ /must/--- have been created with a @usage@ value including--- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_TRANSFER_DST_BIT'------ - #VUID-vkCmdBeginRenderPass-initialLayout-00900# If the--- @initialLayout@ member of any of the--- 'Vulkan.Core10.Pass.AttachmentDescription' structures specified when--- creating the render pass specified in the @renderPass@ member of--- @pRenderPassBegin@ is not--- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_UNDEFINED', then each--- such @initialLayout@ /must/ be equal to the current layout of the--- corresponding attachment image subresource of the framebuffer--- specified in the @framebuffer@ member of @pRenderPassBegin@------ - #VUID-vkCmdBeginRenderPass-srcStageMask-06451# The @srcStageMask@--- members of any element of the @pDependencies@ member of--- 'Vulkan.Core10.Pass.RenderPassCreateInfo' used to create--- @renderPass@ /must/ be supported by the capabilities of the queue--- family identified by the @queueFamilyIndex@ member of the--- 'Vulkan.Core10.CommandPool.CommandPoolCreateInfo' used to create the--- command pool which @commandBuffer@ was allocated from------ - #VUID-vkCmdBeginRenderPass-dstStageMask-06452# The @dstStageMask@--- members of any element of the @pDependencies@ member of--- 'Vulkan.Core10.Pass.RenderPassCreateInfo' used to create--- @renderPass@ /must/ be supported by the capabilities of the queue--- family identified by the @queueFamilyIndex@ member of the--- 'Vulkan.Core10.CommandPool.CommandPoolCreateInfo' used to create the--- command pool which @commandBuffer@ was allocated from------ - #VUID-vkCmdBeginRenderPass-framebuffer-02532# For any attachment in--- @framebuffer@ that is used by @renderPass@ and is bound to memory--- locations that are also bound to another attachment used by--- @renderPass@, and if at least one of those uses causes either--- attachment to be written to, both attachments /must/ have had the--- 'Vulkan.Core10.Enums.AttachmentDescriptionFlagBits.ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT'--- set------ == Valid Usage (Implicit)------ - #VUID-vkCmdBeginRenderPass-commandBuffer-parameter# @commandBuffer@--- /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle------ - #VUID-vkCmdBeginRenderPass-pRenderPassBegin-parameter#--- @pRenderPassBegin@ /must/ be a valid pointer to a valid--- 'RenderPassBeginInfo' structure------ - #VUID-vkCmdBeginRenderPass-contents-parameter# @contents@ /must/ be--- a valid 'Vulkan.Core10.Enums.SubpassContents.SubpassContents' value------ - #VUID-vkCmdBeginRenderPass-commandBuffer-recording# @commandBuffer@--- /must/ be in the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording state>------ - #VUID-vkCmdBeginRenderPass-commandBuffer-cmdpool# The--- 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was--- allocated from /must/ support graphics operations------ - #VUID-vkCmdBeginRenderPass-renderpass# This command /must/ only be--- called outside of a render pass instance------ - #VUID-vkCmdBeginRenderPass-bufferlevel# @commandBuffer@ /must/ be a--- primary 'Vulkan.Core10.Handles.CommandBuffer'------ == Host Synchronization------ - Host access to @commandBuffer@ /must/ be externally synchronized------ - Host access to the 'Vulkan.Core10.Handles.CommandPool' that--- @commandBuffer@ was allocated from /must/ be externally synchronized------ == Command Properties------ \'------ +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | Primary | Outside | Graphics |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,--- 'Vulkan.Core10.Handles.CommandBuffer', 'RenderPassBeginInfo',--- 'Vulkan.Core10.Enums.SubpassContents.SubpassContents'-cmdBeginRenderPass :: forall a io- . (Extendss RenderPassBeginInfo a, PokeChain a, MonadIO io)- => -- | @commandBuffer@ is the command buffer in which to record the command.- CommandBuffer- -> -- | @pRenderPassBegin@ is a pointer to a 'RenderPassBeginInfo' structure- -- specifying the render pass to begin an instance of, and the framebuffer- -- the instance uses.- (RenderPassBeginInfo a)- -> -- | @contents@ is a 'Vulkan.Core10.Enums.SubpassContents.SubpassContents'- -- value specifying how the commands in the first subpass will be provided.- SubpassContents- -> io ()-cmdBeginRenderPass commandBuffer renderPassBegin contents = liftIO . evalContT $ do- let vkCmdBeginRenderPassPtr = pVkCmdBeginRenderPass (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)- lift $ unless (vkCmdBeginRenderPassPtr /= nullFunPtr) $- throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdBeginRenderPass is null" Nothing Nothing- let vkCmdBeginRenderPass' = mkVkCmdBeginRenderPass vkCmdBeginRenderPassPtr- pRenderPassBegin <- ContT $ withCStruct (renderPassBegin)- lift $ traceAroundEvent "vkCmdBeginRenderPass" (vkCmdBeginRenderPass' (commandBufferHandle (commandBuffer)) (forgetExtensions pRenderPassBegin) (contents))- pure $ ()---- | This function will call the supplied action between calls to--- 'cmdBeginRenderPass' and 'cmdEndRenderPass'------ Note that 'cmdEndRenderPass' is *not* called if an exception is thrown--- by the inner action.-cmdUseRenderPass :: forall a io r . (Extendss RenderPassBeginInfo a, PokeChain a, MonadIO io) => CommandBuffer -> RenderPassBeginInfo a -> SubpassContents -> io r -> io r-cmdUseRenderPass commandBuffer pRenderPassBegin contents a =- (cmdBeginRenderPass commandBuffer pRenderPassBegin contents) *> a <* (cmdEndRenderPass commandBuffer)---foreign import ccall-#if !defined(SAFE_FOREIGN_CALLS)- unsafe-#endif- "dynamic" mkVkCmdNextSubpass- :: FunPtr (Ptr CommandBuffer_T -> SubpassContents -> IO ()) -> Ptr CommandBuffer_T -> SubpassContents -> IO ()---- | vkCmdNextSubpass - Transition to the next subpass of a render pass------ = Description------ The subpass index for a render pass begins at zero when--- 'cmdBeginRenderPass' is recorded, and increments each time--- 'cmdNextSubpass' is recorded.------ Moving to the next subpass automatically performs any multisample--- resolve operations in the subpass being ended. End-of-subpass--- multisample resolves are treated as color attachment writes for the--- purposes of synchronization. This applies to resolve operations for both--- color and depth\/stencil attachments. That is, they are considered to--- execute in the--- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT'--- pipeline stage and their writes are synchronized with--- 'Vulkan.Core10.Enums.AccessFlagBits.ACCESS_COLOR_ATTACHMENT_WRITE_BIT'.--- Synchronization between rendering within a subpass and any resolve--- operations at the end of the subpass occurs automatically, without need--- for explicit dependencies or pipeline barriers. However, if the resolve--- attachment is also used in a different subpass, an explicit dependency--- is needed.------ After transitioning to the next subpass, the application /can/ record--- the commands for that subpass.------ == Valid Usage------ - #VUID-vkCmdNextSubpass-None-00909# The current subpass index /must/--- be less than the number of subpasses in the render pass minus one------ - #VUID-vkCmdNextSubpass-None-02349# This command /must/ not be--- recorded when transform feedback is active------ == Valid Usage (Implicit)------ - #VUID-vkCmdNextSubpass-commandBuffer-parameter# @commandBuffer@--- /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle------ - #VUID-vkCmdNextSubpass-contents-parameter# @contents@ /must/ be a--- valid 'Vulkan.Core10.Enums.SubpassContents.SubpassContents' value------ - #VUID-vkCmdNextSubpass-commandBuffer-recording# @commandBuffer@--- /must/ be in the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording state>------ - #VUID-vkCmdNextSubpass-commandBuffer-cmdpool# The--- 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was--- allocated from /must/ support graphics operations------ - #VUID-vkCmdNextSubpass-renderpass# This command /must/ only be--- called inside of a render pass instance------ - #VUID-vkCmdNextSubpass-bufferlevel# @commandBuffer@ /must/ be a--- primary 'Vulkan.Core10.Handles.CommandBuffer'------ == Host Synchronization------ - Host access to @commandBuffer@ /must/ be externally synchronized------ - Host access to the 'Vulkan.Core10.Handles.CommandPool' that--- @commandBuffer@ was allocated from /must/ be externally synchronized------ == Command Properties------ \'------ +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | Primary | Inside | Graphics |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,--- 'Vulkan.Core10.Handles.CommandBuffer',--- 'Vulkan.Core10.Enums.SubpassContents.SubpassContents'-cmdNextSubpass :: forall io- . (MonadIO io)- => -- | @commandBuffer@ is the command buffer in which to record the command.- CommandBuffer- -> -- | @contents@ specifies how the commands in the next subpass will be- -- provided, in the same fashion as the corresponding parameter of- -- 'cmdBeginRenderPass'.- SubpassContents- -> io ()-cmdNextSubpass commandBuffer contents = liftIO $ do- let vkCmdNextSubpassPtr = pVkCmdNextSubpass (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)- unless (vkCmdNextSubpassPtr /= nullFunPtr) $- throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdNextSubpass is null" Nothing Nothing- let vkCmdNextSubpass' = mkVkCmdNextSubpass vkCmdNextSubpassPtr- traceAroundEvent "vkCmdNextSubpass" (vkCmdNextSubpass' (commandBufferHandle (commandBuffer)) (contents))- pure $ ()---foreign import ccall-#if !defined(SAFE_FOREIGN_CALLS)- unsafe-#endif- "dynamic" mkVkCmdEndRenderPass- :: FunPtr (Ptr CommandBuffer_T -> IO ()) -> Ptr CommandBuffer_T -> IO ()---- | vkCmdEndRenderPass - End the current render pass------ = Description------ Ending a render pass instance performs any multisample resolve--- operations on the final subpass.------ == Valid Usage------ - #VUID-vkCmdEndRenderPass-None-00910# The current subpass index--- /must/ be equal to the number of subpasses in the render pass minus--- one------ - #VUID-vkCmdEndRenderPass-None-02351# This command /must/ not be--- recorded when transform feedback is active------ - #VUID-vkCmdEndRenderPass-None-06170# The current render pass--- instance /must/ not have been begun with--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'------ == Valid Usage (Implicit)------ - #VUID-vkCmdEndRenderPass-commandBuffer-parameter# @commandBuffer@--- /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle------ - #VUID-vkCmdEndRenderPass-commandBuffer-recording# @commandBuffer@--- /must/ be in the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording state>------ - #VUID-vkCmdEndRenderPass-commandBuffer-cmdpool# The--- 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was--- allocated from /must/ support graphics operations------ - #VUID-vkCmdEndRenderPass-renderpass# This command /must/ only be--- called inside of a render pass instance------ - #VUID-vkCmdEndRenderPass-bufferlevel# @commandBuffer@ /must/ be a--- primary 'Vulkan.Core10.Handles.CommandBuffer'------ == Host Synchronization------ - Host access to @commandBuffer@ /must/ be externally synchronized------ - Host access to the 'Vulkan.Core10.Handles.CommandPool' that--- @commandBuffer@ was allocated from /must/ be externally synchronized------ == Command Properties------ \'------ +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | Primary | Inside | Graphics |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,--- 'Vulkan.Core10.Handles.CommandBuffer'-cmdEndRenderPass :: forall io- . (MonadIO io)- => -- | @commandBuffer@ is the command buffer in which to end the current render- -- pass instance.- CommandBuffer- -> io ()-cmdEndRenderPass commandBuffer = liftIO $ do- let vkCmdEndRenderPassPtr = pVkCmdEndRenderPass (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)- unless (vkCmdEndRenderPassPtr /= nullFunPtr) $- throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdEndRenderPass is null" Nothing Nothing- let vkCmdEndRenderPass' = mkVkCmdEndRenderPass vkCmdEndRenderPassPtr- traceAroundEvent "vkCmdEndRenderPass" (vkCmdEndRenderPass' (commandBufferHandle (commandBuffer)))- pure $ ()---foreign import ccall-#if !defined(SAFE_FOREIGN_CALLS)- unsafe-#endif- "dynamic" mkVkCmdExecuteCommands- :: FunPtr (Ptr CommandBuffer_T -> Word32 -> Ptr (Ptr CommandBuffer_T) -> IO ()) -> Ptr CommandBuffer_T -> Word32 -> Ptr (Ptr CommandBuffer_T) -> IO ()---- | vkCmdExecuteCommands - Execute a secondary command buffer from a primary--- command buffer------ = Description------ If any element of @pCommandBuffers@ was not recorded with the--- 'Vulkan.Core10.Enums.CommandBufferUsageFlagBits.COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT'--- flag, and it was recorded into any other primary command buffer which is--- currently in the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-lifecycle executable or recording state>,--- that primary command buffer becomes--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-lifecycle invalid>.------ == Valid Usage------ - #VUID-vkCmdExecuteCommands-pCommandBuffers-00088# Each element of--- @pCommandBuffers@ /must/ have been allocated with a @level@ of--- 'Vulkan.Core10.Enums.CommandBufferLevel.COMMAND_BUFFER_LEVEL_SECONDARY'------ - #VUID-vkCmdExecuteCommands-pCommandBuffers-00089# Each element of--- @pCommandBuffers@ /must/ be in the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-lifecycle pending or executable state>------ - #VUID-vkCmdExecuteCommands-pCommandBuffers-00091# If any element of--- @pCommandBuffers@ was not recorded with the--- 'Vulkan.Core10.Enums.CommandBufferUsageFlagBits.COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT'--- flag, it /must/ not be in the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-lifecycle pending state>------ - #VUID-vkCmdExecuteCommands-pCommandBuffers-00092# If any element of--- @pCommandBuffers@ was not recorded with the--- 'Vulkan.Core10.Enums.CommandBufferUsageFlagBits.COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT'--- flag, it /must/ not have already been recorded to @commandBuffer@------ - #VUID-vkCmdExecuteCommands-pCommandBuffers-00093# If any element of--- @pCommandBuffers@ was not recorded with the--- 'Vulkan.Core10.Enums.CommandBufferUsageFlagBits.COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT'--- flag, it /must/ not appear more than once in @pCommandBuffers@------ - #VUID-vkCmdExecuteCommands-pCommandBuffers-00094# Each element of--- @pCommandBuffers@ /must/ have been allocated from a--- 'Vulkan.Core10.Handles.CommandPool' that was created for the same--- queue family as the 'Vulkan.Core10.Handles.CommandPool' from which--- @commandBuffer@ was allocated------ - #VUID-vkCmdExecuteCommands-pCommandBuffers-00096# If--- 'cmdExecuteCommands' is being called within a render pass instance,--- each element of @pCommandBuffers@ /must/ have been recorded with the--- 'Vulkan.Core10.Enums.CommandBufferUsageFlagBits.COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT'------ - #VUID-vkCmdExecuteCommands-pCommandBuffers-00099# If--- 'cmdExecuteCommands' is being called within a render pass instance,--- and any element of @pCommandBuffers@ was recorded with--- 'Vulkan.Core10.CommandBuffer.CommandBufferInheritanceInfo'::@framebuffer@--- not equal to 'Vulkan.Core10.APIConstants.NULL_HANDLE', that--- 'Vulkan.Core10.Handles.Framebuffer' /must/ match the--- 'Vulkan.Core10.Handles.Framebuffer' used in the current render pass--- instance------ - #VUID-vkCmdExecuteCommands-contents-06018# If 'cmdExecuteCommands'--- is being called within a render pass instance begun with--- 'cmdBeginRenderPass', its @contents@ parameter /must/ have been set--- to--- 'Vulkan.Core10.Enums.SubpassContents.SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS'------ - #VUID-vkCmdExecuteCommands-pCommandBuffers-06019# If--- 'cmdExecuteCommands' is being called within a render pass instance--- begun with 'cmdBeginRenderPass', each element of @pCommandBuffers@--- /must/ have been recorded with--- 'Vulkan.Core10.CommandBuffer.CommandBufferInheritanceInfo'::@subpass@--- set to the index of the subpass which the given command buffer will--- be executed in------ - #VUID-vkCmdExecuteCommands-pBeginInfo-06020# If 'cmdExecuteCommands'--- is being called within a render pass instance begun with--- 'cmdBeginRenderPass', the render passes specified in the--- @pBeginInfo->pInheritanceInfo->renderPass@ members of the--- 'Vulkan.Core10.CommandBuffer.beginCommandBuffer' commands used to--- begin recording each element of @pCommandBuffers@ /must/ be--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-compatibility compatible>--- with the current render pass------ - #VUID-vkCmdExecuteCommands-pNext-02865# If 'cmdExecuteCommands' is--- being called within a render pass instance that included--- 'Vulkan.Extensions.VK_QCOM_render_pass_transform.RenderPassTransformBeginInfoQCOM'--- in the @pNext@ chain of 'RenderPassBeginInfo', then each element of--- @pCommandBuffers@ /must/ have been recorded with--- 'Vulkan.Extensions.VK_QCOM_render_pass_transform.CommandBufferInheritanceRenderPassTransformInfoQCOM'--- in the @pNext@ chain of--- 'Vulkan.Core10.CommandBuffer.CommandBufferBeginInfo'------ - #VUID-vkCmdExecuteCommands-pNext-02866# If 'cmdExecuteCommands' is--- being called within a render pass instance that included--- 'Vulkan.Extensions.VK_QCOM_render_pass_transform.RenderPassTransformBeginInfoQCOM'--- in the @pNext@ chain of 'RenderPassBeginInfo', then each element of--- @pCommandBuffers@ /must/ have been recorded with--- 'Vulkan.Extensions.VK_QCOM_render_pass_transform.CommandBufferInheritanceRenderPassTransformInfoQCOM'::@transform@--- identical to--- 'Vulkan.Extensions.VK_QCOM_render_pass_transform.RenderPassTransformBeginInfoQCOM'::@transform@------ - #VUID-vkCmdExecuteCommands-pNext-02867# If 'cmdExecuteCommands' is--- being called within a render pass instance that included--- 'Vulkan.Extensions.VK_QCOM_render_pass_transform.RenderPassTransformBeginInfoQCOM'--- in the @pNext@ chain of 'RenderPassBeginInfo', then each element of--- @pCommandBuffers@ /must/ have been recorded with--- 'Vulkan.Extensions.VK_QCOM_render_pass_transform.CommandBufferInheritanceRenderPassTransformInfoQCOM'::@renderArea@--- identical to 'RenderPassBeginInfo'::@renderArea@------ - #VUID-vkCmdExecuteCommands-pCommandBuffers-00100# If--- 'cmdExecuteCommands' is not being called within a render pass--- instance, each element of @pCommandBuffers@ /must/ not have been--- recorded with the--- 'Vulkan.Core10.Enums.CommandBufferUsageFlagBits.COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT'------ - #VUID-vkCmdExecuteCommands-commandBuffer-00101# If the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-inheritedQueries inherited queries>--- feature is not enabled, @commandBuffer@ /must/ not have any queries--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#queries-operation-active active>------ - #VUID-vkCmdExecuteCommands-commandBuffer-00102# If @commandBuffer@--- has a 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_OCCLUSION' query--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#queries-operation-active active>,--- then each element of @pCommandBuffers@ /must/ have been recorded--- with--- 'Vulkan.Core10.CommandBuffer.CommandBufferInheritanceInfo'::@occlusionQueryEnable@--- set to 'Vulkan.Core10.FundamentalTypes.TRUE'------ - #VUID-vkCmdExecuteCommands-commandBuffer-00103# If @commandBuffer@--- has a 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_OCCLUSION' query--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#queries-operation-active active>,--- then each element of @pCommandBuffers@ /must/ have been recorded--- with--- 'Vulkan.Core10.CommandBuffer.CommandBufferInheritanceInfo'::@queryFlags@--- having all bits set that are set for the query------ - #VUID-vkCmdExecuteCommands-commandBuffer-00104# If @commandBuffer@--- has a 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PIPELINE_STATISTICS'--- query--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#queries-operation-active active>,--- then each element of @pCommandBuffers@ /must/ have been recorded--- with--- 'Vulkan.Core10.CommandBuffer.CommandBufferInheritanceInfo'::@pipelineStatistics@--- having all bits set that are set in the--- 'Vulkan.Core10.Handles.QueryPool' the query uses------ - #VUID-vkCmdExecuteCommands-pCommandBuffers-00105# Each element of--- @pCommandBuffers@ /must/ not begin any query types that are--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#queries-operation-active active>--- in @commandBuffer@------ - #VUID-vkCmdExecuteCommands-commandBuffer-01820# If @commandBuffer@--- is a protected command buffer and--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>--- is not supported, each element of @pCommandBuffers@ /must/ be a--- protected command buffer------ - #VUID-vkCmdExecuteCommands-commandBuffer-01821# If @commandBuffer@--- is an unprotected command buffer and--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>--- is not supported, each element of @pCommandBuffers@ /must/ be an--- unprotected command buffer------ - #VUID-vkCmdExecuteCommands-None-02286# This command /must/ not be--- recorded when transform feedback is active------ - #VUID-vkCmdExecuteCommands-commandBuffer-06533# If--- 'cmdExecuteCommands' is being called within a render pass instance--- and any recorded command in @commandBuffer@ in the current subpass--- will write to an image subresource as an attachment, commands--- recorded in elements of @pCommandBuffers@ /must/ not read from the--- memory backing that image subresource in any other way------ - #VUID-vkCmdExecuteCommands-commandBuffer-06534# If--- 'cmdExecuteCommands' is being called within a render pass instance--- and any recorded command in @commandBuffer@ in the current subpass--- will read from an image subresource used as an attachment in any way--- other than as an attachment, commands recorded in elements of--- @pCommandBuffers@ /must/ not write to that image subresource as an--- attachment------ - #VUID-vkCmdExecuteCommands-pCommandBuffers-06535# If--- 'cmdExecuteCommands' is being called within a render pass instance--- and any recorded command in a given element of @pCommandBuffers@--- will write to an image subresource as an attachment, commands--- recorded in elements of @pCommandBuffers@ at a higher index /must/--- not read from the memory backing that image subresource in any other--- way------ - #VUID-vkCmdExecuteCommands-pCommandBuffers-06536# If--- 'cmdExecuteCommands' is being called within a render pass instance--- and any recorded command in a given element of @pCommandBuffers@--- will read from an image subresource used as an attachment in any way--- other than as an attachment, commands recorded in elements of--- @pCommandBuffers@ at a higher index /must/ not write to that image--- subresource as an attachment------ - #VUID-vkCmdExecuteCommands-pCommandBuffers-06021# If--- @pCommandBuffers@ contains any--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-suspension suspended render pass instances>,--- there /must/ be no action or synchronization commands between that--- render pass instance and any render pass instance that resumes it------ - #VUID-vkCmdExecuteCommands-pCommandBuffers-06022# If--- @pCommandBuffers@ contains any--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-suspension suspended render pass instances>,--- there /must/ be no render pass instances between that render pass--- instance and any render pass instance that resumes it------ - #VUID-vkCmdExecuteCommands-variableSampleLocations-06023# If the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-variableSampleLocations variableSampleLocations>--- limit is not supported, and any element of @pCommandBuffers@--- contains any--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-suspension suspended render pass instances>,--- where a graphics pipeline has been bound, any pipelines bound in the--- render pass instance that resumes it, or any subsequent render pass--- instances that resume from that one and so on, /must/ use the same--- sample locations------ - #VUID-vkCmdExecuteCommands-flags-06024# If 'cmdExecuteCommands' is--- being called within a render pass instance begun with--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',--- its--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@flags@--- parameter /must/ have included--- 'Vulkan.Core13.Enums.RenderingFlagBits.RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT'------ - #VUID-vkCmdExecuteCommands-pBeginInfo-06025# If 'cmdExecuteCommands'--- is being called within a render pass instance begun with--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',--- the render passes specified in the--- @pBeginInfo->pInheritanceInfo->renderPass@ members of the--- 'Vulkan.Core10.CommandBuffer.beginCommandBuffer' commands used to--- begin recording each element of @pCommandBuffers@ /must/ be--- 'Vulkan.Core10.APIConstants.NULL_HANDLE'------ - #VUID-vkCmdExecuteCommands-flags-06026# If 'cmdExecuteCommands' is--- being called within a render pass instance begun with--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',--- the @flags@ member of the--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.CommandBufferInheritanceRenderingInfo'--- structure included in the @pNext@ chain of--- 'Vulkan.Core10.CommandBuffer.CommandBufferBeginInfo'::@pInheritanceInfo@--- used to begin recording each element of @pCommandBuffers@ /must/ be--- equal to the--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@flags@--- parameter to--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',--- excluding--- 'Vulkan.Core13.Enums.RenderingFlagBits.RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT'------ - #VUID-vkCmdExecuteCommands-colorAttachmentCount-06027# If--- 'cmdExecuteCommands' is being called within a render pass instance--- begun with--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',--- the @colorAttachmentCount@ member of the--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.CommandBufferInheritanceRenderingInfo'--- structure included in the @pNext@ chain of--- 'Vulkan.Core10.CommandBuffer.CommandBufferBeginInfo'::@pInheritanceInfo@--- used to begin recording each element of @pCommandBuffers@ /must/ be--- equal to the--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@--- parameter to--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'------ - #VUID-vkCmdExecuteCommands-imageView-06028# If 'cmdExecuteCommands'--- is being called within a render pass instance begun with--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',--- if the @imageView@ member of an element of the--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@--- parameter to--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'--- is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the corresponding--- element of the @pColorAttachmentFormats@ member of the--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.CommandBufferInheritanceRenderingInfo'--- structure included in the @pNext@ chain of--- 'Vulkan.Core10.CommandBuffer.CommandBufferBeginInfo'::@pInheritanceInfo@--- used to begin recording each element of @pCommandBuffers@ /must/ be--- equal to the format used to create that image view------ - #VUID-vkCmdExecuteCommands-pDepthAttachment-06029# If--- 'cmdExecuteCommands' is being called within a render pass instance--- begun with--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',--- if the--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@--- parameter to--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'--- is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of the--- @depthAttachmentFormat@ member of the--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.CommandBufferInheritanceRenderingInfo'--- structure included in the @pNext@ chain of--- 'Vulkan.Core10.CommandBuffer.CommandBufferBeginInfo'::@pInheritanceInfo@--- used to begin recording each element of @pCommandBuffers@ /must/ be--- equal to the format used to create that image view------ - #VUID-vkCmdExecuteCommands-pStencilAttachment-06030# If--- 'cmdExecuteCommands' is being called within a render pass instance--- begun with--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',--- if the--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@--- parameter to--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'--- is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of the--- @stencilAttachmentFormat@ member of the--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.CommandBufferInheritanceRenderingInfo'--- structure included in the @pNext@ chain of--- 'Vulkan.Core10.CommandBuffer.CommandBufferBeginInfo'::@pInheritanceInfo@--- used to begin recording each element of @pCommandBuffers@ /must/ be--- equal to the format used to create that image view------ - #VUID-vkCmdExecuteCommands-viewMask-06031# If 'cmdExecuteCommands'--- is being called within a render pass instance begun with--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',--- the @viewMask@ member of the--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.CommandBufferInheritanceRenderingInfo'--- structure included in the @pNext@ chain of--- 'Vulkan.Core10.CommandBuffer.CommandBufferBeginInfo'::@pInheritanceInfo@--- used to begin recording each element of @pCommandBuffers@ /must/ be--- equal to the--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@viewMask@--- parameter to--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'------ - #VUID-vkCmdExecuteCommands-pNext-06032# If 'cmdExecuteCommands' is--- being called within a render pass instance begun with--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'--- and the @pNext@ chain of--- 'Vulkan.Core10.CommandBuffer.CommandBufferInheritanceInfo' includes--- a--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'--- or--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'--- structure, if the @imageView@ member of an element of the--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@--- parameter to--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'--- is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the corresponding--- element of the @pColorAttachmentSamples@ member of the--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'--- or--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'--- structure included in the @pNext@ chain of--- 'Vulkan.Core10.CommandBuffer.CommandBufferBeginInfo'::@pInheritanceInfo@--- used to begin recording each element of @pCommandBuffers@ /must/ be--- equal to the sample count used to create that image view------ - #VUID-vkCmdExecuteCommands-pNext-06033# If 'cmdExecuteCommands' is--- being called within a render pass instance begun with--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'--- and the @pNext@ chain of--- 'Vulkan.Core10.CommandBuffer.CommandBufferInheritanceInfo' includes--- a--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'--- or--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'--- structure, if the--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@--- parameter to--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'--- is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of the--- @depthStencilAttachmentSamples@ member of the--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'--- or--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'--- structure included in the @pNext@ chain of--- 'Vulkan.Core10.CommandBuffer.CommandBufferBeginInfo'::@pInheritanceInfo@--- used to begin recording each element of @pCommandBuffers@ /must/ be--- equal to the sample count used to create that image view------ - #VUID-vkCmdExecuteCommands-pNext-06034# If 'cmdExecuteCommands' is--- being called within a render pass instance begun with--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'--- and the @pNext@ chain of--- 'Vulkan.Core10.CommandBuffer.CommandBufferInheritanceInfo' includes--- a--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'--- or--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'--- structure, if the--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@--- parameter to--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'--- is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of the--- @depthStencilAttachmentSamples@ member of the--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'--- or--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'--- structure included in the @pNext@ chain of--- 'Vulkan.Core10.CommandBuffer.CommandBufferBeginInfo'::@pInheritanceInfo@--- used to begin recording each element of @pCommandBuffers@ /must/ be--- equal to the sample count used to create that image view------ - #VUID-vkCmdExecuteCommands-pNext-06035# If 'cmdExecuteCommands' is--- being called within a render pass instance begun with--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'--- and the @pNext@ chain of--- 'Vulkan.Core10.CommandBuffer.CommandBufferInheritanceInfo' does not--- include a--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'--- or--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'--- structure, if the @imageView@ member of an element of the--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@--- parameter to--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'--- is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.CommandBufferInheritanceRenderingInfo'::@rasterizationSamples@--- /must/ be equal to the sample count used to create that image view------ - #VUID-vkCmdExecuteCommands-pNext-06036# If 'cmdExecuteCommands' is--- being called within a render pass instance begun with--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'--- and the @pNext@ chain of--- 'Vulkan.Core10.CommandBuffer.CommandBufferInheritanceInfo' does not--- include a--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'--- or--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'--- structure, if the--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@--- parameter to--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'--- is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.CommandBufferInheritanceRenderingInfo'::@rasterizationSamples@--- /must/ be equal to the sample count used to create that image view------ - #VUID-vkCmdExecuteCommands-pNext-06037# If 'cmdExecuteCommands' is--- being called within a render pass instance begun with--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'--- and the @pNext@ chain of--- 'Vulkan.Core10.CommandBuffer.CommandBufferInheritanceInfo' does not--- include a--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'--- or--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'--- structure, if the--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@--- parameter to--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'--- is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.CommandBufferInheritanceRenderingInfo'::@rasterizationSamples@--- /must/ be equal to the sample count used to create that image view------ == Valid Usage (Implicit)------ - #VUID-vkCmdExecuteCommands-commandBuffer-parameter# @commandBuffer@--- /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle------ - #VUID-vkCmdExecuteCommands-pCommandBuffers-parameter#--- @pCommandBuffers@ /must/ be a valid pointer to an array of--- @commandBufferCount@ valid 'Vulkan.Core10.Handles.CommandBuffer'--- handles------ - #VUID-vkCmdExecuteCommands-commandBuffer-recording# @commandBuffer@--- /must/ be in the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording state>------ - #VUID-vkCmdExecuteCommands-commandBuffer-cmdpool# The--- 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was--- allocated from /must/ support transfer, graphics, or compute--- operations------ - #VUID-vkCmdExecuteCommands-bufferlevel# @commandBuffer@ /must/ be a--- primary 'Vulkan.Core10.Handles.CommandBuffer'------ - #VUID-vkCmdExecuteCommands-commandBufferCount-arraylength#--- @commandBufferCount@ /must/ be greater than @0@------ - #VUID-vkCmdExecuteCommands-commonparent# Both of @commandBuffer@,--- and the elements of @pCommandBuffers@ /must/ have been created,--- allocated, or retrieved from the same 'Vulkan.Core10.Handles.Device'------ == Host Synchronization------ - Host access to @commandBuffer@ /must/ be externally synchronized------ - Host access to the 'Vulkan.Core10.Handles.CommandPool' that--- @commandBuffer@ was allocated from /must/ be externally synchronized------ == Command Properties------ \'------ +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | Primary | Both | Transfer |--- | | | Graphics |--- | | | Compute |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,--- 'Vulkan.Core10.Handles.CommandBuffer'-cmdExecuteCommands :: forall io- . (MonadIO io)- => -- | @commandBuffer@ is a handle to a primary command buffer that the- -- secondary command buffers are executed in.- CommandBuffer- -> -- | @pCommandBuffers@ is a pointer to an array of @commandBufferCount@- -- secondary command buffer handles, which are recorded to execute in the- -- primary command buffer in the order they are listed in the array.- ("commandBuffers" ::: Vector CommandBuffer)- -> io ()-cmdExecuteCommands commandBuffer commandBuffers = liftIO . evalContT $ do- let vkCmdExecuteCommandsPtr = pVkCmdExecuteCommands (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)- lift $ unless (vkCmdExecuteCommandsPtr /= nullFunPtr) $- throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdExecuteCommands is null" Nothing Nothing- let vkCmdExecuteCommands' = mkVkCmdExecuteCommands vkCmdExecuteCommandsPtr- pPCommandBuffers <- ContT $ allocaBytes @(Ptr CommandBuffer_T) ((Data.Vector.length (commandBuffers)) * 8)- lift $ Data.Vector.imapM_ (\i e -> poke (pPCommandBuffers `plusPtr` (8 * (i)) :: Ptr (Ptr CommandBuffer_T)) (commandBufferHandle (e))) (commandBuffers)- lift $ traceAroundEvent "vkCmdExecuteCommands" (vkCmdExecuteCommands' (commandBufferHandle (commandBuffer)) ((fromIntegral (Data.Vector.length $ (commandBuffers)) :: Word32)) (pPCommandBuffers))- pure $ ()----- | VkClearRect - Structure specifying a clear rectangle------ = Description------ The layers [@baseArrayLayer@, @baseArrayLayer@ + @layerCount@) counting--- from the base layer of the attachment image view are cleared.------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,--- 'Vulkan.Core10.FundamentalTypes.Rect2D', 'cmdClearAttachments'-data ClearRect = ClearRect- { -- | @rect@ is the two-dimensional region to be cleared.- rect :: Rect2D- , -- | @baseArrayLayer@ is the first layer to be cleared.- baseArrayLayer :: Word32- , -- | @layerCount@ is the number of layers to clear.- layerCount :: Word32- }- deriving (Typeable)-#if defined(GENERIC_INSTANCES)-deriving instance Generic (ClearRect)-#endif-deriving instance Show ClearRect--instance ToCStruct ClearRect where- withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)- pokeCStruct p ClearRect{..} f = do- poke ((p `plusPtr` 0 :: Ptr Rect2D)) (rect)- poke ((p `plusPtr` 16 :: Ptr Word32)) (baseArrayLayer)- poke ((p `plusPtr` 20 :: Ptr Word32)) (layerCount)- f- cStructSize = 24- cStructAlignment = 4- pokeZeroCStruct p f = do- poke ((p `plusPtr` 0 :: Ptr Rect2D)) (zero)- poke ((p `plusPtr` 16 :: Ptr Word32)) (zero)- poke ((p `plusPtr` 20 :: Ptr Word32)) (zero)- f--instance FromCStruct ClearRect where- peekCStruct p = do- rect <- peekCStruct @Rect2D ((p `plusPtr` 0 :: Ptr Rect2D))- baseArrayLayer <- peek @Word32 ((p `plusPtr` 16 :: Ptr Word32))- layerCount <- peek @Word32 ((p `plusPtr` 20 :: Ptr Word32))- pure $ ClearRect- rect baseArrayLayer layerCount--instance Storable ClearRect where- sizeOf ~_ = 24- alignment ~_ = 4- peek = peekCStruct- poke ptr poked = pokeCStruct ptr poked (pure ())--instance Zero ClearRect where- zero = ClearRect- zero- zero- zero----- | VkImageSubresourceLayers - Structure specifying an image subresource--- layers------ == Valid Usage------ - #VUID-VkImageSubresourceLayers-aspectMask-00167# If @aspectMask@--- contains--- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_COLOR_BIT', it--- /must/ not contain either of--- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_DEPTH_BIT' or--- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_STENCIL_BIT'------ - #VUID-VkImageSubresourceLayers-aspectMask-00168# @aspectMask@ /must/--- not contain--- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_METADATA_BIT'------ - #VUID-VkImageSubresourceLayers-aspectMask-02247# @aspectMask@ /must/--- not include @VK_IMAGE_ASPECT_MEMORY_PLANE_i_BIT_EXT@ for any index--- /i/------ - #VUID-VkImageSubresourceLayers-layerCount-01700# @layerCount@ /must/--- be greater than 0------ == Valid Usage (Implicit)------ - #VUID-VkImageSubresourceLayers-aspectMask-parameter# @aspectMask@--- /must/ be a valid combination of--- 'Vulkan.Core10.Enums.ImageAspectFlagBits.ImageAspectFlagBits' values------ - #VUID-VkImageSubresourceLayers-aspectMask-requiredbitmask#--- @aspectMask@ /must/ not be @0@------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,--- 'BufferImageCopy',--- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.BufferImageCopy2',--- 'Vulkan.Core10.Enums.ImageAspectFlagBits.ImageAspectFlags', 'ImageBlit',--- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.ImageBlit2',--- 'ImageCopy',--- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.ImageCopy2',--- 'ImageResolve',--- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.ImageResolve2'-data ImageSubresourceLayers = ImageSubresourceLayers- { -- | @aspectMask@ is a combination of- -- 'Vulkan.Core10.Enums.ImageAspectFlagBits.ImageAspectFlagBits', selecting- -- the color, depth and\/or stencil aspects to be copied.- aspectMask :: ImageAspectFlags- , -- | @mipLevel@ is the mipmap level to copy- mipLevel :: Word32- , -- | @baseArrayLayer@ and @layerCount@ are the starting layer and number of- -- layers to copy.- baseArrayLayer :: Word32- , -- No documentation found for Nested "VkImageSubresourceLayers" "layerCount"- layerCount :: Word32- }- deriving (Typeable, Eq)-#if defined(GENERIC_INSTANCES)-deriving instance Generic (ImageSubresourceLayers)-#endif-deriving instance Show ImageSubresourceLayers--instance ToCStruct ImageSubresourceLayers where- withCStruct x f = allocaBytes 16 $ \p -> pokeCStruct p x (f p)- pokeCStruct p ImageSubresourceLayers{..} f = do- poke ((p `plusPtr` 0 :: Ptr ImageAspectFlags)) (aspectMask)- poke ((p `plusPtr` 4 :: Ptr Word32)) (mipLevel)- poke ((p `plusPtr` 8 :: Ptr Word32)) (baseArrayLayer)- poke ((p `plusPtr` 12 :: Ptr Word32)) (layerCount)- f- cStructSize = 16- cStructAlignment = 4- pokeZeroCStruct p f = do- poke ((p `plusPtr` 0 :: Ptr ImageAspectFlags)) (zero)- poke ((p `plusPtr` 4 :: Ptr Word32)) (zero)- poke ((p `plusPtr` 8 :: Ptr Word32)) (zero)- poke ((p `plusPtr` 12 :: Ptr Word32)) (zero)- f--instance FromCStruct ImageSubresourceLayers where- peekCStruct p = do- aspectMask <- peek @ImageAspectFlags ((p `plusPtr` 0 :: Ptr ImageAspectFlags))- mipLevel <- peek @Word32 ((p `plusPtr` 4 :: Ptr Word32))- baseArrayLayer <- peek @Word32 ((p `plusPtr` 8 :: Ptr Word32))- layerCount <- peek @Word32 ((p `plusPtr` 12 :: Ptr Word32))- pure $ ImageSubresourceLayers- aspectMask mipLevel baseArrayLayer layerCount--instance Storable ImageSubresourceLayers where- sizeOf ~_ = 16- alignment ~_ = 4- peek = peekCStruct- poke ptr poked = pokeCStruct ptr poked (pure ())--instance Zero ImageSubresourceLayers where- zero = ImageSubresourceLayers- zero- zero- zero- zero----- | VkBufferCopy - Structure specifying a buffer copy operation------ == Valid Usage------ - #VUID-VkBufferCopy-size-01988# The @size@ /must/ be greater than @0@------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,--- 'Vulkan.Core10.FundamentalTypes.DeviceSize', 'cmdCopyBuffer'-data BufferCopy = BufferCopy- { -- | @srcOffset@ is the starting offset in bytes from the start of- -- @srcBuffer@.- srcOffset :: DeviceSize- , -- | @dstOffset@ is the starting offset in bytes from the start of- -- @dstBuffer@.- dstOffset :: DeviceSize- , -- | @size@ is the number of bytes to copy.- size :: DeviceSize- }- deriving (Typeable, Eq)-#if defined(GENERIC_INSTANCES)-deriving instance Generic (BufferCopy)-#endif-deriving instance Show BufferCopy--instance ToCStruct BufferCopy where- withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)- pokeCStruct p BufferCopy{..} f = do- poke ((p `plusPtr` 0 :: Ptr DeviceSize)) (srcOffset)- poke ((p `plusPtr` 8 :: Ptr DeviceSize)) (dstOffset)- poke ((p `plusPtr` 16 :: Ptr DeviceSize)) (size)- f- cStructSize = 24- cStructAlignment = 8- pokeZeroCStruct p f = do- poke ((p `plusPtr` 0 :: Ptr DeviceSize)) (zero)- poke ((p `plusPtr` 8 :: Ptr DeviceSize)) (zero)- poke ((p `plusPtr` 16 :: Ptr DeviceSize)) (zero)- f--instance FromCStruct BufferCopy where- peekCStruct p = do- srcOffset <- peek @DeviceSize ((p `plusPtr` 0 :: Ptr DeviceSize))- dstOffset <- peek @DeviceSize ((p `plusPtr` 8 :: Ptr DeviceSize))- size <- peek @DeviceSize ((p `plusPtr` 16 :: Ptr DeviceSize))- pure $ BufferCopy- srcOffset dstOffset size--instance Storable BufferCopy where- sizeOf ~_ = 24- alignment ~_ = 8- peek = peekCStruct- poke ptr poked = pokeCStruct ptr poked (pure ())--instance Zero BufferCopy where- zero = BufferCopy- zero- zero- zero----- | VkImageCopy - Structure specifying an image copy operation------ = Description------ For 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_3D' images, copies are--- performed slice by slice starting with the @z@ member of the @srcOffset@--- or @dstOffset@, and copying @depth@ slices. For images with multiple--- layers, copies are performed layer by layer starting with the--- @baseArrayLayer@ member of the @srcSubresource@ or @dstSubresource@ and--- copying @layerCount@ layers. Image data /can/ be copied between images--- with different image types. If one image is--- 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_3D' and the other image is--- 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D' with multiple layers, then--- each slice is copied to or from a different layer.------ Copies involving a--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar image format>--- specify the region to be copied in terms of the /plane/ to be copied,--- not the coordinates of the multi-planar image. This means that copies--- accessing the R\/B planes of “@_422@” format images /must/ fit the--- copied region within half the @width@ of the parent image, and that--- copies accessing the R\/B planes of “@_420@” format images /must/ fit--- the copied region within half the @width@ and @height@ of the parent--- image.------ == Valid Usage------ - #VUID-VkImageCopy-extent-00140# The number of slices of the @extent@--- (for 3D) or layers of the @srcSubresource@ (for non-3D) /must/ match--- the number of slices of the @extent@ (for 3D) or layers of the--- @dstSubresource@ (for non-3D)------ - #VUID-VkImageCopy-extent-06668# @extent.width@ /must/ not be 0------ - #VUID-VkImageCopy-extent-06669# @extent.height@ /must/ not be 0------ - #VUID-VkImageCopy-extent-06670# @extent.depth@ /must/ not be 0------ == Valid Usage (Implicit)------ - #VUID-VkImageCopy-srcSubresource-parameter# @srcSubresource@ /must/--- be a valid 'ImageSubresourceLayers' structure------ - #VUID-VkImageCopy-dstSubresource-parameter# @dstSubresource@ /must/--- be a valid 'ImageSubresourceLayers' structure------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,--- 'Vulkan.Core10.FundamentalTypes.Extent3D', 'ImageSubresourceLayers',--- 'Vulkan.Core10.FundamentalTypes.Offset3D', 'cmdCopyImage'-data ImageCopy = ImageCopy- { -- | @srcSubresource@ and @dstSubresource@ are 'ImageSubresourceLayers'- -- structures specifying the image subresources of the images used for the- -- source and destination image data, respectively.- srcSubresource :: ImageSubresourceLayers- , -- | @srcOffset@ and @dstOffset@ select the initial @x@, @y@, and @z@ offsets- -- in texels of the sub-regions of the source and destination image data.- srcOffset :: Offset3D- , -- No documentation found for Nested "VkImageCopy" "dstSubresource"- dstSubresource :: ImageSubresourceLayers- , -- No documentation found for Nested "VkImageCopy" "dstOffset"- dstOffset :: Offset3D- , -- | @extent@ is the size in texels of the image to copy in @width@, @height@- -- and @depth@.- extent :: Extent3D- }- deriving (Typeable)-#if defined(GENERIC_INSTANCES)-deriving instance Generic (ImageCopy)-#endif-deriving instance Show ImageCopy--instance ToCStruct ImageCopy where- withCStruct x f = allocaBytes 68 $ \p -> pokeCStruct p x (f p)- pokeCStruct p ImageCopy{..} f = do- poke ((p `plusPtr` 0 :: Ptr ImageSubresourceLayers)) (srcSubresource)- poke ((p `plusPtr` 16 :: Ptr Offset3D)) (srcOffset)- poke ((p `plusPtr` 28 :: Ptr ImageSubresourceLayers)) (dstSubresource)- poke ((p `plusPtr` 44 :: Ptr Offset3D)) (dstOffset)- poke ((p `plusPtr` 56 :: Ptr Extent3D)) (extent)- f- cStructSize = 68- cStructAlignment = 4- pokeZeroCStruct p f = do- poke ((p `plusPtr` 0 :: Ptr ImageSubresourceLayers)) (zero)- poke ((p `plusPtr` 16 :: Ptr Offset3D)) (zero)- poke ((p `plusPtr` 28 :: Ptr ImageSubresourceLayers)) (zero)- poke ((p `plusPtr` 44 :: Ptr Offset3D)) (zero)- poke ((p `plusPtr` 56 :: Ptr Extent3D)) (zero)- f--instance FromCStruct ImageCopy where- peekCStruct p = do- srcSubresource <- peekCStruct @ImageSubresourceLayers ((p `plusPtr` 0 :: Ptr ImageSubresourceLayers))- srcOffset <- peekCStruct @Offset3D ((p `plusPtr` 16 :: Ptr Offset3D))- dstSubresource <- peekCStruct @ImageSubresourceLayers ((p `plusPtr` 28 :: Ptr ImageSubresourceLayers))- dstOffset <- peekCStruct @Offset3D ((p `plusPtr` 44 :: Ptr Offset3D))- extent <- peekCStruct @Extent3D ((p `plusPtr` 56 :: Ptr Extent3D))- pure $ ImageCopy- srcSubresource srcOffset dstSubresource dstOffset extent--instance Storable ImageCopy where- sizeOf ~_ = 68- alignment ~_ = 4- peek = peekCStruct- poke ptr poked = pokeCStruct ptr poked (pure ())--instance Zero ImageCopy where- zero = ImageCopy- zero- zero- zero- zero- zero----- | VkImageBlit - Structure specifying an image blit operation------ = Description------ For each element of the @pRegions@ array, a blit operation is performed--- for the specified source and destination regions.------ == Valid Usage------ - #VUID-VkImageBlit-aspectMask-00238# The @aspectMask@ member of--- @srcSubresource@ and @dstSubresource@ /must/ match------ - #VUID-VkImageBlit-layerCount-00239# The @layerCount@ member of--- @srcSubresource@ and @dstSubresource@ /must/ match------ == Valid Usage (Implicit)------ - #VUID-VkImageBlit-srcSubresource-parameter# @srcSubresource@ /must/--- be a valid 'ImageSubresourceLayers' structure------ - #VUID-VkImageBlit-dstSubresource-parameter# @dstSubresource@ /must/--- be a valid 'ImageSubresourceLayers' structure------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,--- 'ImageSubresourceLayers', 'Vulkan.Core10.FundamentalTypes.Offset3D',--- 'cmdBlitImage'-data ImageBlit = ImageBlit- { -- | @srcSubresource@ is the subresource to blit from.- srcSubresource :: ImageSubresourceLayers- , -- | @srcOffsets@ is a pointer to an array of two- -- 'Vulkan.Core10.FundamentalTypes.Offset3D' structures specifying the- -- bounds of the source region within @srcSubresource@.- srcOffsets :: (Offset3D, Offset3D)- , -- | @dstSubresource@ is the subresource to blit into.- dstSubresource :: ImageSubresourceLayers- , -- | @dstOffsets@ is a pointer to an array of two- -- 'Vulkan.Core10.FundamentalTypes.Offset3D' structures specifying the- -- bounds of the destination region within @dstSubresource@.- dstOffsets :: (Offset3D, Offset3D)- }- deriving (Typeable)-#if defined(GENERIC_INSTANCES)-deriving instance Generic (ImageBlit)-#endif-deriving instance Show ImageBlit--instance ToCStruct ImageBlit where- withCStruct x f = allocaBytes 80 $ \p -> pokeCStruct p x (f p)- pokeCStruct p ImageBlit{..} f = do- poke ((p `plusPtr` 0 :: Ptr ImageSubresourceLayers)) (srcSubresource)- let pSrcOffsets' = lowerArrayPtr ((p `plusPtr` 16 :: Ptr (FixedArray 2 Offset3D)))- case (srcOffsets) of- (e0, e1) -> do- poke (pSrcOffsets' :: Ptr Offset3D) (e0)- poke (pSrcOffsets' `plusPtr` 12 :: Ptr Offset3D) (e1)- poke ((p `plusPtr` 40 :: Ptr ImageSubresourceLayers)) (dstSubresource)- let pDstOffsets' = lowerArrayPtr ((p `plusPtr` 56 :: Ptr (FixedArray 2 Offset3D)))- case (dstOffsets) of- (e0, e1) -> do- poke (pDstOffsets' :: Ptr Offset3D) (e0)- poke (pDstOffsets' `plusPtr` 12 :: Ptr Offset3D) (e1)- f- cStructSize = 80- cStructAlignment = 4- pokeZeroCStruct p f = do- poke ((p `plusPtr` 0 :: Ptr ImageSubresourceLayers)) (zero)- let pSrcOffsets' = lowerArrayPtr ((p `plusPtr` 16 :: Ptr (FixedArray 2 Offset3D)))- case ((zero, zero)) of- (e0, e1) -> do- poke (pSrcOffsets' :: Ptr Offset3D) (e0)- poke (pSrcOffsets' `plusPtr` 12 :: Ptr Offset3D) (e1)- poke ((p `plusPtr` 40 :: Ptr ImageSubresourceLayers)) (zero)- let pDstOffsets' = lowerArrayPtr ((p `plusPtr` 56 :: Ptr (FixedArray 2 Offset3D)))- case ((zero, zero)) of- (e0, e1) -> do- poke (pDstOffsets' :: Ptr Offset3D) (e0)- poke (pDstOffsets' `plusPtr` 12 :: Ptr Offset3D) (e1)- f--instance FromCStruct ImageBlit where- peekCStruct p = do- srcSubresource <- peekCStruct @ImageSubresourceLayers ((p `plusPtr` 0 :: Ptr ImageSubresourceLayers))- let psrcOffsets = lowerArrayPtr @Offset3D ((p `plusPtr` 16 :: Ptr (FixedArray 2 Offset3D)))- srcOffsets0 <- peekCStruct @Offset3D ((psrcOffsets `advancePtrBytes` 0 :: Ptr Offset3D))- srcOffsets1 <- peekCStruct @Offset3D ((psrcOffsets `advancePtrBytes` 12 :: Ptr Offset3D))- dstSubresource <- peekCStruct @ImageSubresourceLayers ((p `plusPtr` 40 :: Ptr ImageSubresourceLayers))- let pdstOffsets = lowerArrayPtr @Offset3D ((p `plusPtr` 56 :: Ptr (FixedArray 2 Offset3D)))- dstOffsets0 <- peekCStruct @Offset3D ((pdstOffsets `advancePtrBytes` 0 :: Ptr Offset3D))- dstOffsets1 <- peekCStruct @Offset3D ((pdstOffsets `advancePtrBytes` 12 :: Ptr Offset3D))- pure $ ImageBlit- srcSubresource ((srcOffsets0, srcOffsets1)) dstSubresource ((dstOffsets0, dstOffsets1))--instance Storable ImageBlit where- sizeOf ~_ = 80- alignment ~_ = 4- peek = peekCStruct- poke ptr poked = pokeCStruct ptr poked (pure ())--instance Zero ImageBlit where- zero = ImageBlit- zero- (zero, zero)- zero- (zero, zero)----- | VkBufferImageCopy - Structure specifying a buffer image copy operation------ = Description------ When copying to or from a depth or stencil aspect, the data in buffer--- memory uses a layout that is a (mostly) tightly packed representation of--- the depth or stencil data. Specifically:------ - data copied to or from the stencil aspect of any depth\/stencil--- format is tightly packed with one--- 'Vulkan.Core10.Enums.Format.FORMAT_S8_UINT' value per texel.------ - data copied to or from the depth aspect of a--- 'Vulkan.Core10.Enums.Format.FORMAT_D16_UNORM' or--- 'Vulkan.Core10.Enums.Format.FORMAT_D16_UNORM_S8_UINT' format is--- tightly packed with one--- 'Vulkan.Core10.Enums.Format.FORMAT_D16_UNORM' value per texel.------ - data copied to or from the depth aspect of a--- 'Vulkan.Core10.Enums.Format.FORMAT_D32_SFLOAT' or--- 'Vulkan.Core10.Enums.Format.FORMAT_D32_SFLOAT_S8_UINT' format is--- tightly packed with one--- 'Vulkan.Core10.Enums.Format.FORMAT_D32_SFLOAT' value per texel.------ - data copied to or from the depth aspect of a--- 'Vulkan.Core10.Enums.Format.FORMAT_X8_D24_UNORM_PACK32' or--- 'Vulkan.Core10.Enums.Format.FORMAT_D24_UNORM_S8_UINT' format is--- packed with one 32-bit word per texel with the D24 value in the LSBs--- of the word, and undefined values in the eight MSBs.------ Note------ To copy both the depth and stencil aspects of a depth\/stencil format,--- two entries in @pRegions@ /can/ be used, where one specifies the depth--- aspect in @imageSubresource@, and the other specifies the stencil--- aspect.------ Because depth or stencil aspect buffer to image copies /may/ require--- format conversions on some implementations, they are not supported on--- queues that do not support graphics.------ When copying to a depth aspect, and the--- @VK_EXT_depth_range_unrestricted@ extension is not enabled, the data in--- buffer memory /must/ be in the range [0,1], or the resulting values are--- undefined.------ Copies are done layer by layer starting with image layer--- @baseArrayLayer@ member of @imageSubresource@. @layerCount@ layers are--- copied from the source image or to the destination image.------ For purpose of valid usage statements here and in related copy commands,--- a /blocked image/ is defined as:------ - an image with a /single-plane/, “@_422@” format, which is treated as--- a format with a 2 × 1 compressed texel block, or------ - a compressed image.------ == Valid Usage------ - #VUID-VkBufferImageCopy-bufferRowLength-00195# @bufferRowLength@--- /must/ be @0@, or greater than or equal to the @width@ member of--- @imageExtent@------ - #VUID-VkBufferImageCopy-bufferImageHeight-00196# @bufferImageHeight@--- /must/ be @0@, or greater than or equal to the @height@ member of--- @imageExtent@------ - #VUID-VkBufferImageCopy-aspectMask-00212# The @aspectMask@ member of--- @imageSubresource@ /must/ only have a single bit set------ - #VUID-VkBufferImageCopy-imageExtent-06659# @imageExtent.width@--- /must/ not be 0------ - #VUID-VkBufferImageCopy-imageExtent-06660# @imageExtent.height@--- /must/ not be 0------ - #VUID-VkBufferImageCopy-imageExtent-06661# @imageExtent.depth@--- /must/ not be 0------ == Valid Usage (Implicit)------ - #VUID-VkBufferImageCopy-imageSubresource-parameter#--- @imageSubresource@ /must/ be a valid 'ImageSubresourceLayers'--- structure------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,--- 'Vulkan.Core10.FundamentalTypes.DeviceSize',--- 'Vulkan.Core10.FundamentalTypes.Extent3D', 'ImageSubresourceLayers',--- 'Vulkan.Core10.FundamentalTypes.Offset3D', 'cmdCopyBufferToImage',--- 'cmdCopyImageToBuffer'-data BufferImageCopy = BufferImageCopy- { -- | @bufferOffset@ is the offset in bytes from the start of the buffer- -- object where the image data is copied from or to.- bufferOffset :: DeviceSize- , -- | @bufferRowLength@ and @bufferImageHeight@ specify in texels a subregion- -- of a larger two- or three-dimensional image in buffer memory, and- -- control the addressing calculations. If either of these values is zero,- -- that aspect of the buffer memory is considered to be tightly packed- -- according to the @imageExtent@.- bufferRowLength :: Word32- , -- No documentation found for Nested "VkBufferImageCopy" "bufferImageHeight"- bufferImageHeight :: Word32- , -- | @imageSubresource@ is a 'ImageSubresourceLayers' used to specify the- -- specific image subresources of the image used for the source or- -- destination image data.- imageSubresource :: ImageSubresourceLayers- , -- | @imageOffset@ selects the initial @x@, @y@, @z@ offsets in texels of the- -- sub-region of the source or destination image data.- imageOffset :: Offset3D- , -- | @imageExtent@ is the size in texels of the image to copy in @width@,- -- @height@ and @depth@.- imageExtent :: Extent3D- }- deriving (Typeable)-#if defined(GENERIC_INSTANCES)-deriving instance Generic (BufferImageCopy)-#endif-deriving instance Show BufferImageCopy--instance ToCStruct BufferImageCopy where- withCStruct x f = allocaBytes 56 $ \p -> pokeCStruct p x (f p)- pokeCStruct p BufferImageCopy{..} f = do- poke ((p `plusPtr` 0 :: Ptr DeviceSize)) (bufferOffset)- poke ((p `plusPtr` 8 :: Ptr Word32)) (bufferRowLength)- poke ((p `plusPtr` 12 :: Ptr Word32)) (bufferImageHeight)- poke ((p `plusPtr` 16 :: Ptr ImageSubresourceLayers)) (imageSubresource)- poke ((p `plusPtr` 32 :: Ptr Offset3D)) (imageOffset)- poke ((p `plusPtr` 44 :: Ptr Extent3D)) (imageExtent)- f- cStructSize = 56- cStructAlignment = 8- pokeZeroCStruct p f = do- poke ((p `plusPtr` 0 :: Ptr DeviceSize)) (zero)- poke ((p `plusPtr` 8 :: Ptr Word32)) (zero)- poke ((p `plusPtr` 12 :: Ptr Word32)) (zero)- poke ((p `plusPtr` 16 :: Ptr ImageSubresourceLayers)) (zero)- poke ((p `plusPtr` 32 :: Ptr Offset3D)) (zero)- poke ((p `plusPtr` 44 :: Ptr Extent3D)) (zero)- f--instance FromCStruct BufferImageCopy where- peekCStruct p = do- bufferOffset <- peek @DeviceSize ((p `plusPtr` 0 :: Ptr DeviceSize))- bufferRowLength <- peek @Word32 ((p `plusPtr` 8 :: Ptr Word32))- bufferImageHeight <- peek @Word32 ((p `plusPtr` 12 :: Ptr Word32))- imageSubresource <- peekCStruct @ImageSubresourceLayers ((p `plusPtr` 16 :: Ptr ImageSubresourceLayers))- imageOffset <- peekCStruct @Offset3D ((p `plusPtr` 32 :: Ptr Offset3D))- imageExtent <- peekCStruct @Extent3D ((p `plusPtr` 44 :: Ptr Extent3D))- pure $ BufferImageCopy- bufferOffset bufferRowLength bufferImageHeight imageSubresource imageOffset imageExtent--instance Storable BufferImageCopy where- sizeOf ~_ = 56- alignment ~_ = 8- peek = peekCStruct- poke ptr poked = pokeCStruct ptr poked (pure ())--instance Zero BufferImageCopy where- zero = BufferImageCopy- zero- zero- zero- zero- zero- zero----- | VkImageResolve - Structure specifying an image resolve operation------ == Valid Usage------ - #VUID-VkImageResolve-aspectMask-00266# The @aspectMask@ member of--- @srcSubresource@ and @dstSubresource@ /must/ only contain--- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_COLOR_BIT'------ - #VUID-VkImageResolve-layerCount-00267# The @layerCount@ member of--- @srcSubresource@ and @dstSubresource@ /must/ match------ == Valid Usage (Implicit)------ - #VUID-VkImageResolve-srcSubresource-parameter# @srcSubresource@--- /must/ be a valid 'ImageSubresourceLayers' structure------ - #VUID-VkImageResolve-dstSubresource-parameter# @dstSubresource@--- /must/ be a valid 'ImageSubresourceLayers' structure------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,--- 'Vulkan.Core10.FundamentalTypes.Extent3D', 'ImageSubresourceLayers',--- 'Vulkan.Core10.FundamentalTypes.Offset3D', 'cmdResolveImage'-data ImageResolve = ImageResolve- { -- | @srcSubresource@ and @dstSubresource@ are 'ImageSubresourceLayers'- -- structures specifying the image subresources of the images used for the- -- source and destination image data, respectively. Resolve of- -- depth\/stencil images is not supported.- srcSubresource :: ImageSubresourceLayers- , -- | @srcOffset@ and @dstOffset@ select the initial @x@, @y@, and @z@ offsets- -- in texels of the sub-regions of the source and destination image data.- srcOffset :: Offset3D- , -- No documentation found for Nested "VkImageResolve" "dstSubresource"- dstSubresource :: ImageSubresourceLayers- , -- No documentation found for Nested "VkImageResolve" "dstOffset"- dstOffset :: Offset3D- , -- | @extent@ is the size in texels of the source image to resolve in- -- @width@, @height@ and @depth@.- extent :: Extent3D- }- deriving (Typeable)-#if defined(GENERIC_INSTANCES)-deriving instance Generic (ImageResolve)-#endif-deriving instance Show ImageResolve--instance ToCStruct ImageResolve where- withCStruct x f = allocaBytes 68 $ \p -> pokeCStruct p x (f p)- pokeCStruct p ImageResolve{..} f = do- poke ((p `plusPtr` 0 :: Ptr ImageSubresourceLayers)) (srcSubresource)- poke ((p `plusPtr` 16 :: Ptr Offset3D)) (srcOffset)- poke ((p `plusPtr` 28 :: Ptr ImageSubresourceLayers)) (dstSubresource)- poke ((p `plusPtr` 44 :: Ptr Offset3D)) (dstOffset)- poke ((p `plusPtr` 56 :: Ptr Extent3D)) (extent)- f- cStructSize = 68- cStructAlignment = 4- pokeZeroCStruct p f = do- poke ((p `plusPtr` 0 :: Ptr ImageSubresourceLayers)) (zero)- poke ((p `plusPtr` 16 :: Ptr Offset3D)) (zero)- poke ((p `plusPtr` 28 :: Ptr ImageSubresourceLayers)) (zero)- poke ((p `plusPtr` 44 :: Ptr Offset3D)) (zero)- poke ((p `plusPtr` 56 :: Ptr Extent3D)) (zero)- f--instance FromCStruct ImageResolve where- peekCStruct p = do- srcSubresource <- peekCStruct @ImageSubresourceLayers ((p `plusPtr` 0 :: Ptr ImageSubresourceLayers))- srcOffset <- peekCStruct @Offset3D ((p `plusPtr` 16 :: Ptr Offset3D))- dstSubresource <- peekCStruct @ImageSubresourceLayers ((p `plusPtr` 28 :: Ptr ImageSubresourceLayers))- dstOffset <- peekCStruct @Offset3D ((p `plusPtr` 44 :: Ptr Offset3D))- extent <- peekCStruct @Extent3D ((p `plusPtr` 56 :: Ptr Extent3D))- pure $ ImageResolve- srcSubresource srcOffset dstSubresource dstOffset extent--instance Storable ImageResolve where- sizeOf ~_ = 68- alignment ~_ = 4- peek = peekCStruct- poke ptr poked = pokeCStruct ptr poked (pure ())--instance Zero ImageResolve where- zero = ImageResolve- zero- zero- zero- zero- zero----- | VkRenderPassBeginInfo - Structure specifying render pass begin--- information------ = Description------ @renderArea@ is the render area that is affected by the render pass--- instance. The effects of attachment load, store and multisample resolve--- operations are restricted to the pixels whose x and y coordinates fall--- within the render area on all attachments. The render area extends to--- all layers of @framebuffer@. The application /must/ ensure (using--- scissor if necessary) that all rendering is contained within the render--- area. The render area, after any transform specified by--- 'Vulkan.Extensions.VK_QCOM_render_pass_transform.RenderPassTransformBeginInfoQCOM'::@transform@--- is applied, /must/ be contained within the framebuffer dimensions.------ If--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#vertexpostproc-renderpass-transform render pass transform>--- is enabled, then @renderArea@ /must/ equal the framebuffer--- pre-transformed dimensions. After @renderArea@ has been transformed by--- 'Vulkan.Extensions.VK_QCOM_render_pass_transform.RenderPassTransformBeginInfoQCOM'::@transform@,--- the resulting render area /must/ be equal to the framebuffer dimensions.------ If--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-subpassShading subpass shading>--- is enabled, then @renderArea@ /must/ equal the framebuffer dimensions.------ When multiview is enabled, the resolve operation at the end of a subpass--- applies to all views in the view mask.------ Note------ There /may/ be a performance cost for using a render area smaller than--- the framebuffer, unless it matches the render area granularity for the--- render pass.------ == Valid Usage------ - #VUID-VkRenderPassBeginInfo-clearValueCount-00902# @clearValueCount@--- /must/ be greater than the largest attachment index in @renderPass@--- specifying a @loadOp@ (or @stencilLoadOp@, if the attachment has a--- depth\/stencil format) of--- 'Vulkan.Core10.Enums.AttachmentLoadOp.ATTACHMENT_LOAD_OP_CLEAR'------ - #VUID-VkRenderPassBeginInfo-clearValueCount-04962# If--- @clearValueCount@ is not @0@, @pClearValues@ /must/ be a valid--- pointer to an array of @clearValueCount@ 'ClearValue' unions------ - #VUID-VkRenderPassBeginInfo-renderPass-00904# @renderPass@ /must/ be--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-compatibility compatible>--- with the @renderPass@ member of the--- 'Vulkan.Core10.Pass.FramebufferCreateInfo' structure specified when--- creating @framebuffer@------ - #VUID-VkRenderPassBeginInfo-pNext-02850# If the @pNext@ chain does--- not contain--- 'Vulkan.Core11.Promoted_From_VK_KHR_device_group.DeviceGroupRenderPassBeginInfo'--- or its @deviceRenderAreaCount@ member is equal to 0,--- @renderArea.offset.x@ /must/ be greater than or equal to 0------ - #VUID-VkRenderPassBeginInfo-pNext-02851# If the @pNext@ chain does--- not contain--- 'Vulkan.Core11.Promoted_From_VK_KHR_device_group.DeviceGroupRenderPassBeginInfo'--- or its @deviceRenderAreaCount@ member is equal to 0,--- @renderArea.offset.y@ /must/ be greater than or equal to 0------ - #VUID-VkRenderPassBeginInfo-pNext-02852# If the @pNext@ chain does--- not contain--- 'Vulkan.Core11.Promoted_From_VK_KHR_device_group.DeviceGroupRenderPassBeginInfo'--- or its @deviceRenderAreaCount@ member is equal to 0,--- @renderArea.offset.x@ + @renderArea.extent.width@ /must/ be less--- than or equal to 'Vulkan.Core10.Pass.FramebufferCreateInfo'::@width@--- the @framebuffer@ was created with------ - #VUID-VkRenderPassBeginInfo-pNext-02853# If the @pNext@ chain does--- not contain--- 'Vulkan.Core11.Promoted_From_VK_KHR_device_group.DeviceGroupRenderPassBeginInfo'--- or its @deviceRenderAreaCount@ member is equal to 0,--- @renderArea.offset.y@ + @renderArea.extent.height@ /must/ be less--- than or equal to--- 'Vulkan.Core10.Pass.FramebufferCreateInfo'::@height@ the--- @framebuffer@ was created with------ - #VUID-VkRenderPassBeginInfo-pNext-02856# If the @pNext@ chain--- contains--- 'Vulkan.Core11.Promoted_From_VK_KHR_device_group.DeviceGroupRenderPassBeginInfo',--- @offset.x@ + @extent.width@ of each element of @pDeviceRenderAreas@--- /must/ be less than or equal to--- 'Vulkan.Core10.Pass.FramebufferCreateInfo'::@width@ the--- @framebuffer@ was created with------ - #VUID-VkRenderPassBeginInfo-pNext-02857# If the @pNext@ chain--- contains--- 'Vulkan.Core11.Promoted_From_VK_KHR_device_group.DeviceGroupRenderPassBeginInfo',--- @offset.y@ + @extent.height@ of each element of @pDeviceRenderAreas@--- /must/ be less than or equal to--- 'Vulkan.Core10.Pass.FramebufferCreateInfo'::@height@ the--- @framebuffer@ was created with------ - #VUID-VkRenderPassBeginInfo-framebuffer-03207# If @framebuffer@ was--- created with a 'Vulkan.Core10.Pass.FramebufferCreateInfo'::@flags@--- value that did not include--- 'Vulkan.Core10.Enums.FramebufferCreateFlagBits.FRAMEBUFFER_CREATE_IMAGELESS_BIT',--- and the @pNext@ chain includes a--- 'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.RenderPassAttachmentBeginInfo'--- structure, its @attachmentCount@ /must/ be zero------ - #VUID-VkRenderPassBeginInfo-framebuffer-03208# If @framebuffer@ was--- created with a 'Vulkan.Core10.Pass.FramebufferCreateInfo'::@flags@--- value that included--- 'Vulkan.Core10.Enums.FramebufferCreateFlagBits.FRAMEBUFFER_CREATE_IMAGELESS_BIT',--- the @attachmentCount@ of a--- 'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.RenderPassAttachmentBeginInfo'--- structure included in the @pNext@ chain /must/ be equal to the value--- of--- 'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.FramebufferAttachmentsCreateInfo'::@attachmentImageInfoCount@--- used to create @framebuffer@------ - #VUID-VkRenderPassBeginInfo-framebuffer-02780# If @framebuffer@ was--- created with a 'Vulkan.Core10.Pass.FramebufferCreateInfo'::@flags@--- value that included--- 'Vulkan.Core10.Enums.FramebufferCreateFlagBits.FRAMEBUFFER_CREATE_IMAGELESS_BIT',--- each element of the @pAttachments@ member of a--- 'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.RenderPassAttachmentBeginInfo'--- structure included in the @pNext@ chain /must/ have been created on--- the same 'Vulkan.Core10.Handles.Device' as @framebuffer@ and--- @renderPass@------ - #VUID-VkRenderPassBeginInfo-framebuffer-03209# If @framebuffer@ was--- created with a 'Vulkan.Core10.Pass.FramebufferCreateInfo'::@flags@--- value that included--- 'Vulkan.Core10.Enums.FramebufferCreateFlagBits.FRAMEBUFFER_CREATE_IMAGELESS_BIT',--- each element of the @pAttachments@ member of a--- 'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.RenderPassAttachmentBeginInfo'--- structure included in the @pNext@ chain /must/ be a--- 'Vulkan.Core10.Handles.ImageView' of an image created with a value--- of 'Vulkan.Core10.Image.ImageCreateInfo'::@flags@ equal to the--- @flags@ member of the corresponding element of--- 'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.FramebufferAttachmentsCreateInfo'::@pAttachmentImageInfos@--- used to create @framebuffer@------ - #VUID-VkRenderPassBeginInfo-framebuffer-04627# If @framebuffer@ was--- created with a 'Vulkan.Core10.Pass.FramebufferCreateInfo'::@flags@--- value that included--- 'Vulkan.Core10.Enums.FramebufferCreateFlagBits.FRAMEBUFFER_CREATE_IMAGELESS_BIT',--- each element of the @pAttachments@ member of a--- 'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.RenderPassAttachmentBeginInfo'--- structure included in the @pNext@ chain /must/ be a--- 'Vulkan.Core10.Handles.ImageView' with--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-inherited-usage an inherited usage>--- equal to the @usage@ member of the corresponding element of--- 'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.FramebufferAttachmentsCreateInfo'::@pAttachmentImageInfos@--- used to create @framebuffer@------ - #VUID-VkRenderPassBeginInfo-framebuffer-03211# If @framebuffer@ was--- created with a 'Vulkan.Core10.Pass.FramebufferCreateInfo'::@flags@--- value that included--- 'Vulkan.Core10.Enums.FramebufferCreateFlagBits.FRAMEBUFFER_CREATE_IMAGELESS_BIT',--- each element of the @pAttachments@ member of a--- 'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.RenderPassAttachmentBeginInfo'--- structure included in the @pNext@ chain /must/ be a--- 'Vulkan.Core10.Handles.ImageView' with a width equal to the @width@--- member of the corresponding element of--- 'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.FramebufferAttachmentsCreateInfo'::@pAttachmentImageInfos@--- used to create @framebuffer@------ - #VUID-VkRenderPassBeginInfo-framebuffer-03212# If @framebuffer@ was--- created with a 'Vulkan.Core10.Pass.FramebufferCreateInfo'::@flags@--- value that included--- 'Vulkan.Core10.Enums.FramebufferCreateFlagBits.FRAMEBUFFER_CREATE_IMAGELESS_BIT',--- each element of the @pAttachments@ member of a--- 'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.RenderPassAttachmentBeginInfo'--- structure included in the @pNext@ chain /must/ be a--- 'Vulkan.Core10.Handles.ImageView' with a height equal to the--- @height@ member of the corresponding element of--- 'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.FramebufferAttachmentsCreateInfo'::@pAttachmentImageInfos@--- used to create @framebuffer@------ - #VUID-VkRenderPassBeginInfo-framebuffer-03213# If @framebuffer@ was--- created with a 'Vulkan.Core10.Pass.FramebufferCreateInfo'::@flags@--- value that included--- 'Vulkan.Core10.Enums.FramebufferCreateFlagBits.FRAMEBUFFER_CREATE_IMAGELESS_BIT',--- each element of the @pAttachments@ member of a--- 'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.RenderPassAttachmentBeginInfo'--- structure included in the @pNext@ chain /must/ be a--- 'Vulkan.Core10.Handles.ImageView' of an image created with a value--- of--- 'Vulkan.Core10.ImageView.ImageViewCreateInfo'::@subresourceRange.layerCount@--- equal to the @layerCount@ member of the corresponding element of--- 'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.FramebufferAttachmentsCreateInfo'::@pAttachmentImageInfos@--- used to create @framebuffer@------ - #VUID-VkRenderPassBeginInfo-framebuffer-03214# If @framebuffer@ was--- created with a 'Vulkan.Core10.Pass.FramebufferCreateInfo'::@flags@--- value that included--- 'Vulkan.Core10.Enums.FramebufferCreateFlagBits.FRAMEBUFFER_CREATE_IMAGELESS_BIT',--- each element of the @pAttachments@ member of a--- 'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.RenderPassAttachmentBeginInfo'--- structure included in the @pNext@ chain /must/ be a--- 'Vulkan.Core10.Handles.ImageView' of an image created with a value--- of--- 'Vulkan.Core12.Promoted_From_VK_KHR_image_format_list.ImageFormatListCreateInfo'::@viewFormatCount@--- equal to the @viewFormatCount@ member of the corresponding element--- of--- 'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.FramebufferAttachmentsCreateInfo'::@pAttachmentImageInfos@--- used to create @framebuffer@------ - #VUID-VkRenderPassBeginInfo-framebuffer-03215# If @framebuffer@ was--- created with a 'Vulkan.Core10.Pass.FramebufferCreateInfo'::@flags@--- value that included--- 'Vulkan.Core10.Enums.FramebufferCreateFlagBits.FRAMEBUFFER_CREATE_IMAGELESS_BIT',--- each element of the @pAttachments@ member of a--- 'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.RenderPassAttachmentBeginInfo'--- structure included in the @pNext@ chain /must/ be a--- 'Vulkan.Core10.Handles.ImageView' of an image created with a set of--- elements in--- 'Vulkan.Core12.Promoted_From_VK_KHR_image_format_list.ImageFormatListCreateInfo'::@pViewFormats@--- equal to the set of elements in the @pViewFormats@ member of the--- corresponding element of--- 'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.FramebufferAttachmentsCreateInfo'::@pAttachmentImageInfos@--- used to create @framebuffer@------ - #VUID-VkRenderPassBeginInfo-framebuffer-03216# If @framebuffer@ was--- created with a 'Vulkan.Core10.Pass.FramebufferCreateInfo'::@flags@--- value that included--- 'Vulkan.Core10.Enums.FramebufferCreateFlagBits.FRAMEBUFFER_CREATE_IMAGELESS_BIT',--- each element of the @pAttachments@ member of a--- 'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.RenderPassAttachmentBeginInfo'--- structure included in the @pNext@ chain /must/ be a--- 'Vulkan.Core10.Handles.ImageView' of an image created with a value--- of 'Vulkan.Core10.ImageView.ImageViewCreateInfo'::@format@ equal to--- the corresponding value of--- 'Vulkan.Core10.Pass.AttachmentDescription'::@format@ in @renderPass@------ - #VUID-VkRenderPassBeginInfo-framebuffer-03217# If @framebuffer@ was--- created with a 'Vulkan.Core10.Pass.FramebufferCreateInfo'::@flags@--- value that included--- 'Vulkan.Core10.Enums.FramebufferCreateFlagBits.FRAMEBUFFER_CREATE_IMAGELESS_BIT',--- each element of the @pAttachments@ member of a--- 'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.RenderPassAttachmentBeginInfo'--- structure included in the @pNext@ chain /must/ be a--- 'Vulkan.Core10.Handles.ImageView' of an image created with a value--- of 'Vulkan.Core10.Image.ImageCreateInfo'::@samples@ equal to the--- corresponding value of--- 'Vulkan.Core10.Pass.AttachmentDescription'::@samples@ in--- @renderPass@------ - #VUID-VkRenderPassBeginInfo-pNext-02869# If the @pNext@ chain--- includes--- 'Vulkan.Extensions.VK_QCOM_render_pass_transform.RenderPassTransformBeginInfoQCOM',--- @renderArea.offset@ /must/ equal (0,0)------ - #VUID-VkRenderPassBeginInfo-pNext-02870# If the @pNext@ chain--- includes--- 'Vulkan.Extensions.VK_QCOM_render_pass_transform.RenderPassTransformBeginInfoQCOM',--- @renderArea.extent@ transformed by--- 'Vulkan.Extensions.VK_QCOM_render_pass_transform.RenderPassTransformBeginInfoQCOM'::@transform@--- /must/ equal the @framebuffer@ dimensions------ == Valid Usage (Implicit)------ - #VUID-VkRenderPassBeginInfo-sType-sType# @sType@ /must/ be--- 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO'------ - #VUID-VkRenderPassBeginInfo-pNext-pNext# Each @pNext@ member of any--- structure (including this one) in the @pNext@ chain /must/ be either--- @NULL@ or a pointer to a valid instance of--- 'Vulkan.Core11.Promoted_From_VK_KHR_device_group.DeviceGroupRenderPassBeginInfo',--- 'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.RenderPassAttachmentBeginInfo',--- 'Vulkan.Extensions.VK_EXT_sample_locations.RenderPassSampleLocationsBeginInfoEXT',--- or--- 'Vulkan.Extensions.VK_QCOM_render_pass_transform.RenderPassTransformBeginInfoQCOM'------ - #VUID-VkRenderPassBeginInfo-sType-unique# The @sType@ value of each--- struct in the @pNext@ chain /must/ be unique------ - #VUID-VkRenderPassBeginInfo-renderPass-parameter# @renderPass@--- /must/ be a valid 'Vulkan.Core10.Handles.RenderPass' handle------ - #VUID-VkRenderPassBeginInfo-framebuffer-parameter# @framebuffer@--- /must/ be a valid 'Vulkan.Core10.Handles.Framebuffer' handle------ - #VUID-VkRenderPassBeginInfo-commonparent# Both of @framebuffer@, and--- @renderPass@ /must/ have been created, allocated, or retrieved from--- the same 'Vulkan.Core10.Handles.Device'------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,--- 'ClearValue', 'Vulkan.Core10.Handles.Framebuffer',--- 'Vulkan.Core10.FundamentalTypes.Rect2D',--- 'Vulkan.Core10.Handles.RenderPass',--- 'Vulkan.Core10.Enums.StructureType.StructureType', 'cmdBeginRenderPass',--- 'Vulkan.Core12.Promoted_From_VK_KHR_create_renderpass2.cmdBeginRenderPass2',--- 'Vulkan.Extensions.VK_KHR_create_renderpass2.cmdBeginRenderPass2KHR'-data RenderPassBeginInfo (es :: [Type]) = RenderPassBeginInfo- { -- | @pNext@ is @NULL@ or a pointer to a structure extending this structure.- next :: Chain es- , -- | @renderPass@ is the render pass to begin an instance of.- renderPass :: RenderPass- , -- | @framebuffer@ is the framebuffer containing the attachments that are- -- used with the render pass.- framebuffer :: Framebuffer- , -- | @renderArea@ is the render area that is affected by the render pass- -- instance, and is described in more detail below.- renderArea :: Rect2D- , -- | @pClearValues@ is a pointer to an array of @clearValueCount@- -- 'ClearValue' structures containing clear values for each attachment, if- -- the attachment uses a @loadOp@ value of- -- 'Vulkan.Core10.Enums.AttachmentLoadOp.ATTACHMENT_LOAD_OP_CLEAR' or if- -- the attachment has a depth\/stencil format and uses a @stencilLoadOp@- -- value of- -- 'Vulkan.Core10.Enums.AttachmentLoadOp.ATTACHMENT_LOAD_OP_CLEAR'. The- -- array is indexed by attachment number. Only elements corresponding to- -- cleared attachments are used. Other elements of @pClearValues@ are- -- ignored.- clearValues :: Vector ClearValue- }- deriving (Typeable)-#if defined(GENERIC_INSTANCES)-deriving instance Generic (RenderPassBeginInfo (es :: [Type]))-#endif-deriving instance Show (Chain es) => Show (RenderPassBeginInfo es)--instance Extensible RenderPassBeginInfo where- extensibleTypeName = "RenderPassBeginInfo"- setNext RenderPassBeginInfo{..} next' = RenderPassBeginInfo{next = next', ..}- getNext RenderPassBeginInfo{..} = next- extends :: forall e b proxy. Typeable e => proxy e -> (Extends RenderPassBeginInfo e => b) -> Maybe b- extends _ f- | Just Refl <- eqT @e @RenderPassTransformBeginInfoQCOM = Just f- | Just Refl <- eqT @e @RenderPassAttachmentBeginInfo = Just f- | Just Refl <- eqT @e @RenderPassSampleLocationsBeginInfoEXT = Just f- | Just Refl <- eqT @e @DeviceGroupRenderPassBeginInfo = Just f- | otherwise = Nothing--instance (Extendss RenderPassBeginInfo es, PokeChain es) => ToCStruct (RenderPassBeginInfo es) where- withCStruct x f = allocaBytes 64 $ \p -> pokeCStruct p x (f p)- pokeCStruct p RenderPassBeginInfo{..} f = evalContT $ do- lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO)- pNext'' <- fmap castPtr . ContT $ withChain (next)- lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext''- lift $ poke ((p `plusPtr` 16 :: Ptr RenderPass)) (renderPass)- lift $ poke ((p `plusPtr` 24 :: Ptr Framebuffer)) (framebuffer)- lift $ poke ((p `plusPtr` 32 :: Ptr Rect2D)) (renderArea)- lift $ poke ((p `plusPtr` 48 :: Ptr Word32)) ((fromIntegral (Data.Vector.length $ (clearValues)) :: Word32))- pPClearValues' <- ContT $ allocaBytes @ClearValue ((Data.Vector.length (clearValues)) * 16)- Data.Vector.imapM_ (\i e -> ContT $ pokeCStruct (pPClearValues' `plusPtr` (16 * (i)) :: Ptr ClearValue) (e) . ($ ())) (clearValues)- lift $ poke ((p `plusPtr` 56 :: Ptr (Ptr ClearValue))) (pPClearValues')- lift $ f- cStructSize = 64- cStructAlignment = 8- pokeZeroCStruct p f = evalContT $ do- lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO)- pNext' <- fmap castPtr . ContT $ withZeroChain @es- lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext'- lift $ poke ((p `plusPtr` 16 :: Ptr RenderPass)) (zero)- lift $ poke ((p `plusPtr` 24 :: Ptr Framebuffer)) (zero)- lift $ poke ((p `plusPtr` 32 :: Ptr Rect2D)) (zero)- lift $ f--instance es ~ '[] => Zero (RenderPassBeginInfo es) where- zero = RenderPassBeginInfo- ()- zero- zero- zero- mempty----- | VkClearDepthStencilValue - Structure specifying a clear depth stencil--- value------ == Valid Usage------ - #VUID-VkClearDepthStencilValue-depth-00022# Unless the--- @VK_EXT_depth_range_unrestricted@ extension is enabled @depth@--- /must/ be between @0.0@ and @1.0@, inclusive------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,--- 'ClearValue', 'cmdClearDepthStencilImage'-data ClearDepthStencilValue = ClearDepthStencilValue- { -- | @depth@ is the clear value for the depth aspect of the depth\/stencil- -- attachment. It is a floating-point value which is automatically- -- converted to the attachment’s format.- depth :: Float- , -- | @stencil@ is the clear value for the stencil aspect of the- -- depth\/stencil attachment. It is a 32-bit integer value which is- -- converted to the attachment’s format by taking the appropriate number of- -- LSBs.- stencil :: Word32- }- deriving (Typeable, Eq)-#if defined(GENERIC_INSTANCES)-deriving instance Generic (ClearDepthStencilValue)-#endif-deriving instance Show ClearDepthStencilValue--instance ToCStruct ClearDepthStencilValue where- withCStruct x f = allocaBytes 8 $ \p -> pokeCStruct p x (f p)- pokeCStruct p ClearDepthStencilValue{..} f = do- poke ((p `plusPtr` 0 :: Ptr CFloat)) (CFloat (depth))- poke ((p `plusPtr` 4 :: Ptr Word32)) (stencil)- f- cStructSize = 8- cStructAlignment = 4- pokeZeroCStruct p f = do- poke ((p `plusPtr` 0 :: Ptr CFloat)) (CFloat (zero))- poke ((p `plusPtr` 4 :: Ptr Word32)) (zero)- f--instance FromCStruct ClearDepthStencilValue where- peekCStruct p = do- depth <- peek @CFloat ((p `plusPtr` 0 :: Ptr CFloat))- stencil <- peek @Word32 ((p `plusPtr` 4 :: Ptr Word32))- pure $ ClearDepthStencilValue- (coerce @CFloat @Float depth) stencil--instance Storable ClearDepthStencilValue where- sizeOf ~_ = 8- alignment ~_ = 4- peek = peekCStruct- poke ptr poked = pokeCStruct ptr poked (pure ())--instance Zero ClearDepthStencilValue where- zero = ClearDepthStencilValue- zero- zero----- | VkClearAttachment - Structure specifying a clear attachment------ == Valid Usage------ - #VUID-VkClearAttachment-aspectMask-00019# If @aspectMask@ includes--- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_COLOR_BIT', it--- /must/ not include--- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_DEPTH_BIT' or--- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_STENCIL_BIT'------ - #VUID-VkClearAttachment-aspectMask-00020# @aspectMask@ /must/ not--- include--- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_METADATA_BIT'------ - #VUID-VkClearAttachment-aspectMask-02246# @aspectMask@ /must/ not--- include @VK_IMAGE_ASPECT_MEMORY_PLANE_i_BIT_EXT@ for any index /i/------ - #VUID-VkClearAttachment-clearValue-00021# @clearValue@ /must/ be a--- valid 'ClearValue' union------ == Valid Usage (Implicit)------ - #VUID-VkClearAttachment-aspectMask-parameter# @aspectMask@ /must/ be--- a valid combination of--- 'Vulkan.Core10.Enums.ImageAspectFlagBits.ImageAspectFlagBits' values------ - #VUID-VkClearAttachment-aspectMask-requiredbitmask# @aspectMask@--- /must/ not be @0@------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,--- 'ClearValue',--- 'Vulkan.Core10.Enums.ImageAspectFlagBits.ImageAspectFlags',--- 'cmdClearAttachments'-data ClearAttachment = ClearAttachment- { -- | @aspectMask@ is a mask selecting the color, depth and\/or stencil- -- aspects of the attachment to be cleared.- aspectMask :: ImageAspectFlags- , -- | @colorAttachment@ is only meaningful if- -- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_COLOR_BIT' is set- -- in @aspectMask@, in which case it is an index into the currently bound- -- color attachments.- colorAttachment :: Word32- , -- | @clearValue@ is the color or depth\/stencil value to clear the- -- attachment to, as described in- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#clears-values Clear Values>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#dispatch dispatching commands>.+--+-- - The pipeline bound to+-- 'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_GRAPHICS'+-- controls the behavior of all+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#drawing drawing commands>.+--+-- - The pipeline bound to+-- 'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_RAY_TRACING_KHR'+-- controls the behavior of+-- 'Vulkan.Extensions.VK_KHR_ray_tracing_pipeline.cmdTraceRaysKHR' and+-- 'Vulkan.Extensions.VK_KHR_ray_tracing_pipeline.cmdTraceRaysIndirectKHR'.+--+-- - The pipeline bound to+-- 'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_SUBPASS_SHADING_HUAWEI'+-- controls the behavior of+-- 'Vulkan.Extensions.VK_HUAWEI_subpass_shading.cmdSubpassShadingHUAWEI'.+--+-- == Valid Usage+--+-- - #VUID-vkCmdBindPipeline-pipelineBindPoint-00777# If+-- @pipelineBindPoint@ is+-- 'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_COMPUTE',+-- the 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+-- allocated from /must/ support compute operations+--+-- - #VUID-vkCmdBindPipeline-pipelineBindPoint-00778# If+-- @pipelineBindPoint@ is+-- 'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_GRAPHICS',+-- the 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+-- allocated from /must/ support graphics operations+--+-- - #VUID-vkCmdBindPipeline-pipelineBindPoint-00779# If+-- @pipelineBindPoint@ is+-- 'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_COMPUTE',+-- @pipeline@ /must/ be a compute pipeline+--+-- - #VUID-vkCmdBindPipeline-pipelineBindPoint-00780# If+-- @pipelineBindPoint@ is+-- 'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_GRAPHICS',+-- @pipeline@ /must/ be a graphics pipeline+--+-- - #VUID-vkCmdBindPipeline-pipeline-00781# If the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-variableMultisampleRate variableMultisampleRate>+-- feature is not supported, @pipeline@ is a graphics pipeline, the+-- current subpass+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-noattachments uses no attachments>,+-- and this is not the first call to this function with a graphics+-- pipeline after transitioning to the current subpass, then the sample+-- count specified by this pipeline /must/ match that set in the+-- previous pipeline+--+-- - #VUID-vkCmdBindPipeline-variableSampleLocations-01525# If+-- 'Vulkan.Extensions.VK_EXT_sample_locations.PhysicalDeviceSampleLocationsPropertiesEXT'::@variableSampleLocations@+-- is 'Vulkan.Core10.FundamentalTypes.FALSE', and @pipeline@ is a+-- graphics pipeline created with a+-- 'Vulkan.Extensions.VK_EXT_sample_locations.PipelineSampleLocationsStateCreateInfoEXT'+-- structure having its @sampleLocationsEnable@ member set to+-- 'Vulkan.Core10.FundamentalTypes.TRUE' but without+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'+-- enabled then the current render pass instance /must/ have been begun+-- by specifying a+-- 'Vulkan.Extensions.VK_EXT_sample_locations.RenderPassSampleLocationsBeginInfoEXT'+-- structure whose @pPostSubpassSampleLocations@ member contains an+-- element with a @subpassIndex@ matching the current subpass index and+-- the @sampleLocationsInfo@ member of that element /must/ match the+-- @sampleLocationsInfo@ specified in+-- 'Vulkan.Extensions.VK_EXT_sample_locations.PipelineSampleLocationsStateCreateInfoEXT'+-- when the pipeline was created+--+-- - #VUID-vkCmdBindPipeline-None-02323# This command /must/ not be+-- recorded when transform feedback is active+--+-- - #VUID-vkCmdBindPipeline-pipelineBindPoint-02391# If+-- @pipelineBindPoint@ is+-- 'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_RAY_TRACING_KHR',+-- the 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+-- allocated from /must/ support compute operations+--+-- - #VUID-vkCmdBindPipeline-pipelineBindPoint-02392# If+-- @pipelineBindPoint@ is+-- 'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_RAY_TRACING_KHR',+-- @pipeline@ /must/ be a ray tracing pipeline+--+-- - #VUID-vkCmdBindPipeline-pipelineBindPoint-06721# If+-- @pipelineBindPoint@ is+-- 'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_RAY_TRACING_KHR',+-- @commandBuffer@ /must/ not be a protected command buffer+--+-- - #VUID-vkCmdBindPipeline-pipeline-03382# @pipeline@ /must/ not have+-- been created with+-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_LIBRARY_BIT_KHR'+-- set+--+-- - #VUID-vkCmdBindPipeline-commandBuffer-04808# If @commandBuffer@ is a+-- secondary command buffer with+-- 'Vulkan.Extensions.VK_NV_inherited_viewport_scissor.CommandBufferInheritanceViewportScissorInfoNV'::@viewportScissor2D@+-- enabled and @pipelineBindPoint@ is+-- 'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_GRAPHICS',+-- then the @pipeline@ /must/ have been created with+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'+-- or 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT', and+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT'+-- or 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR' enabled+--+-- - #VUID-vkCmdBindPipeline-commandBuffer-04809# If @commandBuffer@ is a+-- secondary command buffer with+-- 'Vulkan.Extensions.VK_NV_inherited_viewport_scissor.CommandBufferInheritanceViewportScissorInfoNV'::@viewportScissor2D@+-- enabled and @pipelineBindPoint@ is+-- 'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_GRAPHICS'+-- and @pipeline@ was created with+-- 'Vulkan.Extensions.VK_EXT_discard_rectangles.PipelineDiscardRectangleStateCreateInfoEXT'+-- structure and its @discardRectangleCount@ member is not @0@, then+-- the pipeline /must/ have been created with+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DISCARD_RECTANGLE_EXT'+-- enabled+--+-- - #VUID-vkCmdBindPipeline-pipelineBindPoint-04881# If+-- @pipelineBindPoint@ is+-- 'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_GRAPHICS'+-- and the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-provokingVertexModePerPipeline provokingVertexModePerPipeline>+-- limit is 'Vulkan.Core10.FundamentalTypes.FALSE', then pipeline’s+-- 'Vulkan.Extensions.VK_EXT_provoking_vertex.PipelineRasterizationProvokingVertexStateCreateInfoEXT'::@provokingVertexMode@+-- /must/ be the same as that of any other pipelines previously bound+-- to this bind point within the current render pass instance,+-- including any pipeline already bound when beginning the render pass+-- instance+--+-- - #VUID-vkCmdBindPipeline-pipelineBindPoint-04949# If+-- @pipelineBindPoint@ is+-- 'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_SUBPASS_SHADING_HUAWEI',+-- the 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+-- allocated from /must/ support compute operations+--+-- - #VUID-vkCmdBindPipeline-pipelineBindPoint-04950# If+-- @pipelineBindPoint@ is+-- 'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_SUBPASS_SHADING_HUAWEI',+-- @pipeline@ /must/ be a subpass shading pipeline+--+-- - #VUID-vkCmdBindPipeline-pipeline-06195# If @pipeline@ is a graphics+-- pipeline, this command has been called inside a render pass instance+-- started with+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+-- and commands using the previously bound graphics pipeline have been+-- recorded within the render pass instance, then the value of+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@colorAttachmentCount@+-- specified by this pipeline /must/ match that set in the previous+-- pipeline+--+-- - #VUID-vkCmdBindPipeline-pipeline-06196# If @pipeline@ is a graphics+-- pipeline, this command has been called inside a render pass instance+-- started with+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+-- and commands using the previously bound graphics pipeline have been+-- recorded within the render pass instance, then the elements of+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@+-- specified by this pipeline /must/ match that set in the previous+-- pipeline+--+-- - #VUID-vkCmdBindPipeline-pipeline-06197# If @pipeline@ is a graphics+-- pipeline, this command has been called inside a render pass instance+-- started with+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+-- and commands using the previously bound graphics pipeline have been+-- recorded within the render pass instance, then the value of+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@depthAttachmentFormat@+-- specified by this pipeline /must/ match that set in the previous+-- pipeline+--+-- - #VUID-vkCmdBindPipeline-pipeline-06194# If @pipeline@ is a graphics+-- pipeline, this command has been called inside a render pass instance+-- started with+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+-- and commands using the previously bound graphics pipeline have been+-- recorded within the render pass instance, then the value of+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@stencilAttachmentFormat@+-- specified by this pipeline /must/ match that set in the previous+-- pipeline+--+-- - #VUID-vkCmdBindPipeline-pipeline-06856# If @pipeline@ is a graphics+-- pipeline, this command has been called inside a render pass instance+-- started with+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+-- and the @pNext@ chain of+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'+-- includes a+-- 'Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled.MultisampledRenderToSingleSampledInfoEXT'+-- structure with @multisampledRenderToSingleSampledEnable@ equal to+-- 'Vulkan.Core10.FundamentalTypes.TRUE', then the value of+-- 'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo'::@pMultisampleState@::@rasterizationSamples@+-- /must/ be equal to+-- 'Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled.MultisampledRenderToSingleSampledInfoEXT'::@rasterizationSamples@.+--+-- - #VUID-vkCmdBindPipeline-pipelineBindPoint-06653# If+-- @pipelineBindPoint@ is+-- 'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_GRAPHICS',+-- @pipeline@ /must/ have been created without+-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_LIBRARY_BIT_KHR'+--+-- == Valid Usage (Implicit)+--+-- - #VUID-vkCmdBindPipeline-commandBuffer-parameter# @commandBuffer@+-- /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- - #VUID-vkCmdBindPipeline-pipelineBindPoint-parameter#+-- @pipelineBindPoint@ /must/ be a valid+-- 'Vulkan.Core10.Enums.PipelineBindPoint.PipelineBindPoint' value+--+-- - #VUID-vkCmdBindPipeline-pipeline-parameter# @pipeline@ /must/ be a+-- valid 'Vulkan.Core10.Handles.Pipeline' handle+--+-- - #VUID-vkCmdBindPipeline-commandBuffer-recording# @commandBuffer@+-- /must/ be in the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording state>+--+-- - #VUID-vkCmdBindPipeline-commandBuffer-cmdpool# The+-- 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+-- allocated from /must/ support graphics, or compute operations+--+-- - #VUID-vkCmdBindPipeline-videocoding# This command /must/ only be+-- called outside of a video coding scope+--+-- - #VUID-vkCmdBindPipeline-commonparent# Both of @commandBuffer@, and+-- @pipeline@ /must/ have been created, allocated, or retrieved from+-- the same 'Vulkan.Core10.Handles.Device'+--+-- == Host Synchronization+--+-- - Host access to @commandBuffer@ /must/ be externally synchronized+--+-- - Host access to the 'Vulkan.Core10.Handles.CommandPool' that+-- @commandBuffer@ was allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- \'+--+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================++-- | Primary | Both | Outside | Graphics |+-- | Secondary | | | Compute |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,+-- 'Vulkan.Core10.Handles.CommandBuffer', 'Vulkan.Core10.Handles.Pipeline',+-- 'Vulkan.Core10.Enums.PipelineBindPoint.PipelineBindPoint'+cmdBindPipeline :: forall io+ . (MonadIO io)+ => -- | @commandBuffer@ is the command buffer that the pipeline will be bound+ -- to.+ CommandBuffer+ -> -- | @pipelineBindPoint@ is a+ -- 'Vulkan.Core10.Enums.PipelineBindPoint.PipelineBindPoint' value+ -- specifying to which bind point the pipeline is bound. Binding one does+ -- not disturb the others.+ PipelineBindPoint+ -> -- | @pipeline@ is the pipeline to be bound.+ Pipeline+ -> io ()+cmdBindPipeline commandBuffer pipelineBindPoint pipeline = liftIO $ do+ let vkCmdBindPipelinePtr = pVkCmdBindPipeline (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)+ unless (vkCmdBindPipelinePtr /= nullFunPtr) $+ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdBindPipeline is null" Nothing Nothing+ let vkCmdBindPipeline' = mkVkCmdBindPipeline vkCmdBindPipelinePtr+ traceAroundEvent "vkCmdBindPipeline" (vkCmdBindPipeline' (commandBufferHandle (commandBuffer)) (pipelineBindPoint) (pipeline))+ pure $ ()+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+ unsafe+#endif+ "dynamic" mkVkCmdSetViewport+ :: FunPtr (Ptr CommandBuffer_T -> Word32 -> Word32 -> Ptr Viewport -> IO ()) -> Ptr CommandBuffer_T -> Word32 -> Word32 -> Ptr Viewport -> IO ()++-- | vkCmdSetViewport - Set the viewport dynamically for a command buffer+--+-- = Description+--+-- This command sets the viewport transformation parameters state for+-- subsequent drawing commands when the graphics pipeline is created with+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT' set in+-- 'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@.+-- Otherwise, this state is specified by the+-- 'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo'::@pViewports@+-- values used to create the currently active pipeline.+--+-- The viewport parameters taken from element i of @pViewports@ replace the+-- current state for the viewport index @firstViewport@ + i, for i in [0,+-- @viewportCount@).+--+-- == Valid Usage+--+-- - #VUID-vkCmdSetViewport-firstViewport-01223# The sum of+-- @firstViewport@ and @viewportCount@ /must/ be between @1@ and+-- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxViewports@,+-- inclusive+--+-- - #VUID-vkCmdSetViewport-firstViewport-01224# If the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-multiViewport multiViewport>+-- feature is not enabled, @firstViewport@ /must/ be @0@+--+-- - #VUID-vkCmdSetViewport-viewportCount-01225# If the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-multiViewport multiViewport>+-- feature is not enabled, @viewportCount@ /must/ be @1@+--+-- - #VUID-vkCmdSetViewport-commandBuffer-04821# @commandBuffer@ /must/+-- not have+-- 'Vulkan.Extensions.VK_NV_inherited_viewport_scissor.CommandBufferInheritanceViewportScissorInfoNV'::@viewportScissor2D@+-- enabled+--+-- == Valid Usage (Implicit)+--+-- - #VUID-vkCmdSetViewport-commandBuffer-parameter# @commandBuffer@+-- /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- - #VUID-vkCmdSetViewport-pViewports-parameter# @pViewports@ /must/ be+-- a valid pointer to an array of @viewportCount@ valid+-- 'Vulkan.Core10.Pipeline.Viewport' structures+--+-- - #VUID-vkCmdSetViewport-commandBuffer-recording# @commandBuffer@+-- /must/ be in the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording state>+--+-- - #VUID-vkCmdSetViewport-commandBuffer-cmdpool# The+-- 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+-- allocated from /must/ support graphics operations+--+-- - #VUID-vkCmdSetViewport-videocoding# This command /must/ only be+-- called outside of a video coding scope+--+-- - #VUID-vkCmdSetViewport-viewportCount-arraylength# @viewportCount@+-- /must/ be greater than @0@+--+-- == Host Synchronization+--+-- - Host access to @commandBuffer@ /must/ be externally synchronized+--+-- - Host access to the 'Vulkan.Core10.Handles.CommandPool' that+-- @commandBuffer@ was allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- \'+--+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================++-- | Primary | Both | Outside | Graphics |+-- | Secondary | | | |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,+-- 'Vulkan.Core10.Handles.CommandBuffer', 'Vulkan.Core10.Pipeline.Viewport'+cmdSetViewport :: forall io+ . (MonadIO io)+ => -- | @commandBuffer@ is the command buffer into which the command will be+ -- recorded.+ CommandBuffer+ -> -- | @firstViewport@ is the index of the first viewport whose parameters are+ -- updated by the command.+ ("firstViewport" ::: Word32)+ -> -- | @pViewports@ is a pointer to an array of+ -- 'Vulkan.Core10.Pipeline.Viewport' structures specifying viewport+ -- parameters.+ ("viewports" ::: Vector Viewport)+ -> io ()+cmdSetViewport commandBuffer firstViewport viewports = liftIO . evalContT $ do+ let vkCmdSetViewportPtr = pVkCmdSetViewport (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)+ lift $ unless (vkCmdSetViewportPtr /= nullFunPtr) $+ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetViewport is null" Nothing Nothing+ let vkCmdSetViewport' = mkVkCmdSetViewport vkCmdSetViewportPtr+ pPViewports <- ContT $ allocaBytes @Viewport ((Data.Vector.length (viewports)) * 24)+ lift $ Data.Vector.imapM_ (\i e -> poke (pPViewports `plusPtr` (24 * (i)) :: Ptr Viewport) (e)) (viewports)+ lift $ traceAroundEvent "vkCmdSetViewport" (vkCmdSetViewport' (commandBufferHandle (commandBuffer)) (firstViewport) ((fromIntegral (Data.Vector.length $ (viewports)) :: Word32)) (pPViewports))+ pure $ ()+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+ unsafe+#endif+ "dynamic" mkVkCmdSetScissor+ :: FunPtr (Ptr CommandBuffer_T -> Word32 -> Word32 -> Ptr Rect2D -> IO ()) -> Ptr CommandBuffer_T -> Word32 -> Word32 -> Ptr Rect2D -> IO ()++-- | vkCmdSetScissor - Set scissor rectangles dynamically for a command+-- buffer+--+-- = Description+--+-- The scissor rectangles taken from element i of @pScissors@ replace the+-- current state for the scissor index @firstScissor@ + i, for i in [0,+-- @scissorCount@).+--+-- This command sets the scissor rectangles for subsequent drawing commands+-- when the graphics pipeline is created with+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR' set in+-- 'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@.+-- Otherwise, this state is specified by the+-- 'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo'::@pScissors@+-- values used to create the currently active pipeline.+--+-- == Valid Usage+--+-- - #VUID-vkCmdSetScissor-firstScissor-00592# The sum of @firstScissor@+-- and @scissorCount@ /must/ be between @1@ and+-- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxViewports@,+-- inclusive+--+-- - #VUID-vkCmdSetScissor-firstScissor-00593# If the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-multiViewport multiViewport>+-- feature is not enabled, @firstScissor@ /must/ be @0@+--+-- - #VUID-vkCmdSetScissor-scissorCount-00594# If the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-multiViewport multiViewport>+-- feature is not enabled, @scissorCount@ /must/ be @1@+--+-- - #VUID-vkCmdSetScissor-x-00595# The @x@ and @y@ members of @offset@+-- member of any element of @pScissors@ /must/ be greater than or equal+-- to @0@+--+-- - #VUID-vkCmdSetScissor-offset-00596# Evaluation of (@offset.x@ ++-- @extent.width@) /must/ not cause a signed integer addition overflow+-- for any element of @pScissors@+--+-- - #VUID-vkCmdSetScissor-offset-00597# Evaluation of (@offset.y@ ++-- @extent.height@) /must/ not cause a signed integer addition overflow+-- for any element of @pScissors@+--+-- - #VUID-vkCmdSetScissor-viewportScissor2D-04789# If this command is+-- recorded in a secondary command buffer with+-- 'Vulkan.Extensions.VK_NV_inherited_viewport_scissor.CommandBufferInheritanceViewportScissorInfoNV'::@viewportScissor2D@+-- enabled, then this function /must/ not be called+--+-- == Valid Usage (Implicit)+--+-- - #VUID-vkCmdSetScissor-commandBuffer-parameter# @commandBuffer@+-- /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- - #VUID-vkCmdSetScissor-pScissors-parameter# @pScissors@ /must/ be a+-- valid pointer to an array of @scissorCount@+-- 'Vulkan.Core10.FundamentalTypes.Rect2D' structures+--+-- - #VUID-vkCmdSetScissor-commandBuffer-recording# @commandBuffer@+-- /must/ be in the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording state>+--+-- - #VUID-vkCmdSetScissor-commandBuffer-cmdpool# The+-- 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+-- allocated from /must/ support graphics operations+--+-- - #VUID-vkCmdSetScissor-videocoding# This command /must/ only be+-- called outside of a video coding scope+--+-- - #VUID-vkCmdSetScissor-scissorCount-arraylength# @scissorCount@+-- /must/ be greater than @0@+--+-- == Host Synchronization+--+-- - Host access to @commandBuffer@ /must/ be externally synchronized+--+-- - Host access to the 'Vulkan.Core10.Handles.CommandPool' that+-- @commandBuffer@ was allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- \'+--+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================++-- | Primary | Both | Outside | Graphics |+-- | Secondary | | | |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,+-- 'Vulkan.Core10.Handles.CommandBuffer',+-- 'Vulkan.Core10.FundamentalTypes.Rect2D'+cmdSetScissor :: forall io+ . (MonadIO io)+ => -- | @commandBuffer@ is the command buffer into which the command will be+ -- recorded.+ CommandBuffer+ -> -- | @firstScissor@ is the index of the first scissor whose state is updated+ -- by the command.+ ("firstScissor" ::: Word32)+ -> -- | @pScissors@ is a pointer to an array of+ -- 'Vulkan.Core10.FundamentalTypes.Rect2D' structures defining scissor+ -- rectangles.+ ("scissors" ::: Vector Rect2D)+ -> io ()+cmdSetScissor commandBuffer firstScissor scissors = liftIO . evalContT $ do+ let vkCmdSetScissorPtr = pVkCmdSetScissor (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)+ lift $ unless (vkCmdSetScissorPtr /= nullFunPtr) $+ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetScissor is null" Nothing Nothing+ let vkCmdSetScissor' = mkVkCmdSetScissor vkCmdSetScissorPtr+ pPScissors <- ContT $ allocaBytes @Rect2D ((Data.Vector.length (scissors)) * 16)+ lift $ Data.Vector.imapM_ (\i e -> poke (pPScissors `plusPtr` (16 * (i)) :: Ptr Rect2D) (e)) (scissors)+ lift $ traceAroundEvent "vkCmdSetScissor" (vkCmdSetScissor' (commandBufferHandle (commandBuffer)) (firstScissor) ((fromIntegral (Data.Vector.length $ (scissors)) :: Word32)) (pPScissors))+ pure $ ()+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+ unsafe+#endif+ "dynamic" mkVkCmdSetLineWidth+ :: FunPtr (Ptr CommandBuffer_T -> CFloat -> IO ()) -> Ptr CommandBuffer_T -> CFloat -> IO ()++-- | vkCmdSetLineWidth - Set line width dynamically for a command buffer+--+-- = Description+--+-- This command sets the line width for subsequent drawing commands when+-- the graphics pipeline is created with+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_WIDTH' set in+-- 'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@.+-- Otherwise, this state is specified by the+-- 'Vulkan.Core10.Pipeline.PipelineRasterizationStateCreateInfo'::@lineWidth@+-- value used to create the currently active pipeline.+--+-- == Valid Usage+--+-- - #VUID-vkCmdSetLineWidth-lineWidth-00788# If the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-wideLines wideLines>+-- feature is not enabled, @lineWidth@ /must/ be @1.0@+--+-- == Valid Usage (Implicit)+--+-- - #VUID-vkCmdSetLineWidth-commandBuffer-parameter# @commandBuffer@+-- /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- - #VUID-vkCmdSetLineWidth-commandBuffer-recording# @commandBuffer@+-- /must/ be in the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording state>+--+-- - #VUID-vkCmdSetLineWidth-commandBuffer-cmdpool# The+-- 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+-- allocated from /must/ support graphics operations+--+-- - #VUID-vkCmdSetLineWidth-videocoding# This command /must/ only be+-- called outside of a video coding scope+--+-- == Host Synchronization+--+-- - Host access to @commandBuffer@ /must/ be externally synchronized+--+-- - Host access to the 'Vulkan.Core10.Handles.CommandPool' that+-- @commandBuffer@ was allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- \'+--+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================++-- | Primary | Both | Outside | Graphics |+-- | Secondary | | | |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,+-- 'Vulkan.Core10.Handles.CommandBuffer'+cmdSetLineWidth :: forall io+ . (MonadIO io)+ => -- | @commandBuffer@ is the command buffer into which the command will be+ -- recorded.+ CommandBuffer+ -> -- | @lineWidth@ is the width of rasterized line segments.+ ("lineWidth" ::: Float)+ -> io ()+cmdSetLineWidth commandBuffer lineWidth = liftIO $ do+ let vkCmdSetLineWidthPtr = pVkCmdSetLineWidth (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)+ unless (vkCmdSetLineWidthPtr /= nullFunPtr) $+ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetLineWidth is null" Nothing Nothing+ let vkCmdSetLineWidth' = mkVkCmdSetLineWidth vkCmdSetLineWidthPtr+ traceAroundEvent "vkCmdSetLineWidth" (vkCmdSetLineWidth' (commandBufferHandle (commandBuffer)) (CFloat (lineWidth)))+ pure $ ()+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+ unsafe+#endif+ "dynamic" mkVkCmdSetDepthBias+ :: FunPtr (Ptr CommandBuffer_T -> CFloat -> CFloat -> CFloat -> IO ()) -> Ptr CommandBuffer_T -> CFloat -> CFloat -> CFloat -> IO ()++-- | vkCmdSetDepthBias - Set depth bias factors and clamp dynamically for a+-- command buffer+--+-- = Description+--+-- This command sets the depth bias parameters for subsequent drawing+-- commands when the graphics pipeline is created with+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BIAS' set in+-- 'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@.+-- Otherwise, this state is specified by the corresponding+-- 'Vulkan.Core10.Pipeline.PipelineRasterizationStateCreateInfo'::@depthBiasConstantFactor@,+-- @depthBiasClamp@, and @depthBiasSlopeFactor@ values used to create the+-- currently active pipeline.+--+-- == Valid Usage+--+-- - #VUID-vkCmdSetDepthBias-depthBiasClamp-00790# If the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-depthBiasClamp depthBiasClamp>+-- feature is not enabled, @depthBiasClamp@ /must/ be @0.0@+--+-- == Valid Usage (Implicit)+--+-- - #VUID-vkCmdSetDepthBias-commandBuffer-parameter# @commandBuffer@+-- /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- - #VUID-vkCmdSetDepthBias-commandBuffer-recording# @commandBuffer@+-- /must/ be in the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording state>+--+-- - #VUID-vkCmdSetDepthBias-commandBuffer-cmdpool# The+-- 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+-- allocated from /must/ support graphics operations+--+-- - #VUID-vkCmdSetDepthBias-videocoding# This command /must/ only be+-- called outside of a video coding scope+--+-- == Host Synchronization+--+-- - Host access to @commandBuffer@ /must/ be externally synchronized+--+-- - Host access to the 'Vulkan.Core10.Handles.CommandPool' that+-- @commandBuffer@ was allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- \'+--+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================++-- | Primary | Both | Outside | Graphics |+-- | Secondary | | | |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,+-- 'Vulkan.Core10.Handles.CommandBuffer'+cmdSetDepthBias :: forall io+ . (MonadIO io)+ => -- | @commandBuffer@ is the command buffer into which the command will be+ -- recorded.+ CommandBuffer+ -> -- | @depthBiasConstantFactor@ is a scalar factor controlling the constant+ -- depth value added to each fragment.+ ("depthBiasConstantFactor" ::: Float)+ -> -- | @depthBiasClamp@ is the maximum (or minimum) depth bias of a fragment.+ ("depthBiasClamp" ::: Float)+ -> -- | @depthBiasSlopeFactor@ is a scalar factor applied to a fragment’s slope+ -- in depth bias calculations.+ ("depthBiasSlopeFactor" ::: Float)+ -> io ()+cmdSetDepthBias commandBuffer depthBiasConstantFactor depthBiasClamp depthBiasSlopeFactor = liftIO $ do+ let vkCmdSetDepthBiasPtr = pVkCmdSetDepthBias (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)+ unless (vkCmdSetDepthBiasPtr /= nullFunPtr) $+ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetDepthBias is null" Nothing Nothing+ let vkCmdSetDepthBias' = mkVkCmdSetDepthBias vkCmdSetDepthBiasPtr+ traceAroundEvent "vkCmdSetDepthBias" (vkCmdSetDepthBias' (commandBufferHandle (commandBuffer)) (CFloat (depthBiasConstantFactor)) (CFloat (depthBiasClamp)) (CFloat (depthBiasSlopeFactor)))+ pure $ ()+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+ unsafe+#endif+ "dynamic" mkVkCmdSetBlendConstants+ :: FunPtr (Ptr CommandBuffer_T -> Ptr (FixedArray 4 CFloat) -> IO ()) -> Ptr CommandBuffer_T -> Ptr (FixedArray 4 CFloat) -> IO ()++-- | vkCmdSetBlendConstants - Set the values of blend constants+--+-- = Description+--+-- This command sets blend constants for subsequent drawing commands when+-- the graphics pipeline is created with+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_BLEND_CONSTANTS' set in+-- 'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@.+-- Otherwise, this state is specified by the+-- 'Vulkan.Core10.Pipeline.PipelineColorBlendStateCreateInfo'::@blendConstants@+-- values used to create the currently active pipeline.+--+-- == Valid Usage (Implicit)+--+-- - #VUID-vkCmdSetBlendConstants-commandBuffer-parameter#+-- @commandBuffer@ /must/ be a valid+-- 'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- - #VUID-vkCmdSetBlendConstants-commandBuffer-recording#+-- @commandBuffer@ /must/ be in the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording state>+--+-- - #VUID-vkCmdSetBlendConstants-commandBuffer-cmdpool# The+-- 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+-- allocated from /must/ support graphics operations+--+-- - #VUID-vkCmdSetBlendConstants-videocoding# This command /must/ only+-- be called outside of a video coding scope+--+-- == Host Synchronization+--+-- - Host access to @commandBuffer@ /must/ be externally synchronized+--+-- - Host access to the 'Vulkan.Core10.Handles.CommandPool' that+-- @commandBuffer@ was allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- \'+--+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================++-- | Primary | Both | Outside | Graphics |+-- | Secondary | | | |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,+-- 'Vulkan.Core10.Handles.CommandBuffer'+cmdSetBlendConstants :: forall io+ . (MonadIO io)+ => -- | @commandBuffer@ is the command buffer into which the command will be+ -- recorded.+ CommandBuffer+ -> -- | @blendConstants@ is a pointer to an array of four values specifying the+ -- Rc, Gc, Bc, and Ac components of the blend constant color used in+ -- blending, depending on the+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#framebuffer-blendfactors blend factor>.+ ("blendConstants" ::: (Float, Float, Float, Float))+ -> io ()+cmdSetBlendConstants commandBuffer blendConstants = liftIO . evalContT $ do+ let vkCmdSetBlendConstantsPtr = pVkCmdSetBlendConstants (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)+ lift $ unless (vkCmdSetBlendConstantsPtr /= nullFunPtr) $+ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetBlendConstants is null" Nothing Nothing+ let vkCmdSetBlendConstants' = mkVkCmdSetBlendConstants vkCmdSetBlendConstantsPtr+ pBlendConstants <- ContT $ allocaBytes @(FixedArray 4 CFloat) 16+ let pBlendConstants' = lowerArrayPtr pBlendConstants+ lift $ case (blendConstants) of+ (e0, e1, e2, e3) -> do+ poke (pBlendConstants' :: Ptr CFloat) (CFloat (e0))+ poke (pBlendConstants' `plusPtr` 4 :: Ptr CFloat) (CFloat (e1))+ poke (pBlendConstants' `plusPtr` 8 :: Ptr CFloat) (CFloat (e2))+ poke (pBlendConstants' `plusPtr` 12 :: Ptr CFloat) (CFloat (e3))+ lift $ traceAroundEvent "vkCmdSetBlendConstants" (vkCmdSetBlendConstants' (commandBufferHandle (commandBuffer)) (pBlendConstants))+ pure $ ()+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+ unsafe+#endif+ "dynamic" mkVkCmdSetDepthBounds+ :: FunPtr (Ptr CommandBuffer_T -> CFloat -> CFloat -> IO ()) -> Ptr CommandBuffer_T -> CFloat -> CFloat -> IO ()++-- | vkCmdSetDepthBounds - Set depth bounds range dynamically for a command+-- buffer+--+-- = Description+--+-- This command sets the depth bounds range for subsequent drawing commands+-- when the graphics pipeline is created with+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BOUNDS' set in+-- 'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@.+-- Otherwise, this state is specified by the+-- 'Vulkan.Core10.Pipeline.PipelineDepthStencilStateCreateInfo'::@minDepthBounds@+-- and+-- 'Vulkan.Core10.Pipeline.PipelineDepthStencilStateCreateInfo'::@maxDepthBounds@+-- values used to create the currently active pipeline.+--+-- == Valid Usage+--+-- - #VUID-vkCmdSetDepthBounds-minDepthBounds-00600# Unless the+-- @VK_EXT_depth_range_unrestricted@ extension is enabled+-- @minDepthBounds@ /must/ be between @0.0@ and @1.0@, inclusive+--+-- - #VUID-vkCmdSetDepthBounds-maxDepthBounds-00601# Unless the+-- @VK_EXT_depth_range_unrestricted@ extension is enabled+-- @maxDepthBounds@ /must/ be between @0.0@ and @1.0@, inclusive+--+-- == Valid Usage (Implicit)+--+-- - #VUID-vkCmdSetDepthBounds-commandBuffer-parameter# @commandBuffer@+-- /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- - #VUID-vkCmdSetDepthBounds-commandBuffer-recording# @commandBuffer@+-- /must/ be in the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording state>+--+-- - #VUID-vkCmdSetDepthBounds-commandBuffer-cmdpool# The+-- 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+-- allocated from /must/ support graphics operations+--+-- - #VUID-vkCmdSetDepthBounds-videocoding# This command /must/ only be+-- called outside of a video coding scope+--+-- == Host Synchronization+--+-- - Host access to @commandBuffer@ /must/ be externally synchronized+--+-- - Host access to the 'Vulkan.Core10.Handles.CommandPool' that+-- @commandBuffer@ was allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- \'+--+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================++-- | Primary | Both | Outside | Graphics |+-- | Secondary | | | |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,+-- 'Vulkan.Core10.Handles.CommandBuffer'+cmdSetDepthBounds :: forall io+ . (MonadIO io)+ => -- | @commandBuffer@ is the command buffer into which the command will be+ -- recorded.+ CommandBuffer+ -> -- | @minDepthBounds@ is the minimum depth bound.+ ("minDepthBounds" ::: Float)+ -> -- | @maxDepthBounds@ is the maximum depth bound.+ ("maxDepthBounds" ::: Float)+ -> io ()+cmdSetDepthBounds commandBuffer minDepthBounds maxDepthBounds = liftIO $ do+ let vkCmdSetDepthBoundsPtr = pVkCmdSetDepthBounds (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)+ unless (vkCmdSetDepthBoundsPtr /= nullFunPtr) $+ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetDepthBounds is null" Nothing Nothing+ let vkCmdSetDepthBounds' = mkVkCmdSetDepthBounds vkCmdSetDepthBoundsPtr+ traceAroundEvent "vkCmdSetDepthBounds" (vkCmdSetDepthBounds' (commandBufferHandle (commandBuffer)) (CFloat (minDepthBounds)) (CFloat (maxDepthBounds)))+ pure $ ()+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+ unsafe+#endif+ "dynamic" mkVkCmdSetStencilCompareMask+ :: FunPtr (Ptr CommandBuffer_T -> StencilFaceFlags -> Word32 -> IO ()) -> Ptr CommandBuffer_T -> StencilFaceFlags -> Word32 -> IO ()++-- | vkCmdSetStencilCompareMask - Set stencil compare mask dynamically for a+-- command buffer+--+-- = Description+--+-- This command sets the stencil compare mask for subsequent drawing+-- commands when the graphics pipeline is created with+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_COMPARE_MASK'+-- set in+-- 'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@.+-- Otherwise, this state is specified by the+-- 'Vulkan.Core10.Pipeline.StencilOpState'::@compareMask@ value used to+-- create the currently active pipeline, for both front and back faces.+--+-- == Valid Usage (Implicit)+--+-- - #VUID-vkCmdSetStencilCompareMask-commandBuffer-parameter#+-- @commandBuffer@ /must/ be a valid+-- 'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- - #VUID-vkCmdSetStencilCompareMask-faceMask-parameter# @faceMask@+-- /must/ be a valid combination of+-- 'Vulkan.Core10.Enums.StencilFaceFlagBits.StencilFaceFlagBits' values+--+-- - #VUID-vkCmdSetStencilCompareMask-faceMask-requiredbitmask#+-- @faceMask@ /must/ not be @0@+--+-- - #VUID-vkCmdSetStencilCompareMask-commandBuffer-recording#+-- @commandBuffer@ /must/ be in the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording state>+--+-- - #VUID-vkCmdSetStencilCompareMask-commandBuffer-cmdpool# The+-- 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+-- allocated from /must/ support graphics operations+--+-- - #VUID-vkCmdSetStencilCompareMask-videocoding# This command /must/+-- only be called outside of a video coding scope+--+-- == Host Synchronization+--+-- - Host access to @commandBuffer@ /must/ be externally synchronized+--+-- - Host access to the 'Vulkan.Core10.Handles.CommandPool' that+-- @commandBuffer@ was allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- \'+--+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================++-- | Primary | Both | Outside | Graphics |+-- | Secondary | | | |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,+-- 'Vulkan.Core10.Handles.CommandBuffer',+-- 'Vulkan.Core10.Enums.StencilFaceFlagBits.StencilFaceFlags'+cmdSetStencilCompareMask :: forall io+ . (MonadIO io)+ => -- | @commandBuffer@ is the command buffer into which the command will be+ -- recorded.+ CommandBuffer+ -> -- | @faceMask@ is a bitmask of+ -- 'Vulkan.Core10.Enums.StencilFaceFlagBits.StencilFaceFlagBits' specifying+ -- the set of stencil state for which to update the compare mask.+ ("faceMask" ::: StencilFaceFlags)+ -> -- | @compareMask@ is the new value to use as the stencil compare mask.+ ("compareMask" ::: Word32)+ -> io ()+cmdSetStencilCompareMask commandBuffer faceMask compareMask = liftIO $ do+ let vkCmdSetStencilCompareMaskPtr = pVkCmdSetStencilCompareMask (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)+ unless (vkCmdSetStencilCompareMaskPtr /= nullFunPtr) $+ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetStencilCompareMask is null" Nothing Nothing+ let vkCmdSetStencilCompareMask' = mkVkCmdSetStencilCompareMask vkCmdSetStencilCompareMaskPtr+ traceAroundEvent "vkCmdSetStencilCompareMask" (vkCmdSetStencilCompareMask' (commandBufferHandle (commandBuffer)) (faceMask) (compareMask))+ pure $ ()+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+ unsafe+#endif+ "dynamic" mkVkCmdSetStencilWriteMask+ :: FunPtr (Ptr CommandBuffer_T -> StencilFaceFlags -> Word32 -> IO ()) -> Ptr CommandBuffer_T -> StencilFaceFlags -> Word32 -> IO ()++-- | vkCmdSetStencilWriteMask - Set stencil write mask dynamically for a+-- command buffer+--+-- = Description+--+-- This command sets the stencil write mask for subsequent drawing commands+-- when the graphics pipeline is created with+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_WRITE_MASK' set+-- in+-- 'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@.+-- Otherwise, this state is specified by the+-- 'Vulkan.Core10.Pipeline.PipelineDepthStencilStateCreateInfo'::@writeMask@+-- value used to create the currently active pipeline, for both front and+-- back faces.+--+-- == Valid Usage (Implicit)+--+-- - #VUID-vkCmdSetStencilWriteMask-commandBuffer-parameter#+-- @commandBuffer@ /must/ be a valid+-- 'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- - #VUID-vkCmdSetStencilWriteMask-faceMask-parameter# @faceMask@ /must/+-- be a valid combination of+-- 'Vulkan.Core10.Enums.StencilFaceFlagBits.StencilFaceFlagBits' values+--+-- - #VUID-vkCmdSetStencilWriteMask-faceMask-requiredbitmask# @faceMask@+-- /must/ not be @0@+--+-- - #VUID-vkCmdSetStencilWriteMask-commandBuffer-recording#+-- @commandBuffer@ /must/ be in the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording state>+--+-- - #VUID-vkCmdSetStencilWriteMask-commandBuffer-cmdpool# The+-- 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+-- allocated from /must/ support graphics operations+--+-- - #VUID-vkCmdSetStencilWriteMask-videocoding# This command /must/ only+-- be called outside of a video coding scope+--+-- == Host Synchronization+--+-- - Host access to @commandBuffer@ /must/ be externally synchronized+--+-- - Host access to the 'Vulkan.Core10.Handles.CommandPool' that+-- @commandBuffer@ was allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- \'+--+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================++-- | Primary | Both | Outside | Graphics |+-- | Secondary | | | |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,+-- 'Vulkan.Core10.Handles.CommandBuffer',+-- 'Vulkan.Core10.Enums.StencilFaceFlagBits.StencilFaceFlags'+cmdSetStencilWriteMask :: forall io+ . (MonadIO io)+ => -- | @commandBuffer@ is the command buffer into which the command will be+ -- recorded.+ CommandBuffer+ -> -- | @faceMask@ is a bitmask of+ -- 'Vulkan.Core10.Enums.StencilFaceFlagBits.StencilFaceFlagBits' specifying+ -- the set of stencil state for which to update the write mask, as+ -- described above for 'cmdSetStencilCompareMask'.+ ("faceMask" ::: StencilFaceFlags)+ -> -- | @writeMask@ is the new value to use as the stencil write mask.+ ("writeMask" ::: Word32)+ -> io ()+cmdSetStencilWriteMask commandBuffer faceMask writeMask = liftIO $ do+ let vkCmdSetStencilWriteMaskPtr = pVkCmdSetStencilWriteMask (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)+ unless (vkCmdSetStencilWriteMaskPtr /= nullFunPtr) $+ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetStencilWriteMask is null" Nothing Nothing+ let vkCmdSetStencilWriteMask' = mkVkCmdSetStencilWriteMask vkCmdSetStencilWriteMaskPtr+ traceAroundEvent "vkCmdSetStencilWriteMask" (vkCmdSetStencilWriteMask' (commandBufferHandle (commandBuffer)) (faceMask) (writeMask))+ pure $ ()+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+ unsafe+#endif+ "dynamic" mkVkCmdSetStencilReference+ :: FunPtr (Ptr CommandBuffer_T -> StencilFaceFlags -> Word32 -> IO ()) -> Ptr CommandBuffer_T -> StencilFaceFlags -> Word32 -> IO ()++-- | vkCmdSetStencilReference - Set stencil reference value dynamically for a+-- command buffer+--+-- = Description+--+-- This command sets the stencil reference value for subsequent drawing+-- commands when the graphics pipeline is created with+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_REFERENCE' set+-- in+-- 'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@.+-- Otherwise, this state is specified by the+-- 'Vulkan.Core10.Pipeline.PipelineDepthStencilStateCreateInfo'::@reference@+-- value used to create the currently active pipeline, for both front and+-- back faces.+--+-- == Valid Usage (Implicit)+--+-- - #VUID-vkCmdSetStencilReference-commandBuffer-parameter#+-- @commandBuffer@ /must/ be a valid+-- 'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- - #VUID-vkCmdSetStencilReference-faceMask-parameter# @faceMask@ /must/+-- be a valid combination of+-- 'Vulkan.Core10.Enums.StencilFaceFlagBits.StencilFaceFlagBits' values+--+-- - #VUID-vkCmdSetStencilReference-faceMask-requiredbitmask# @faceMask@+-- /must/ not be @0@+--+-- - #VUID-vkCmdSetStencilReference-commandBuffer-recording#+-- @commandBuffer@ /must/ be in the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording state>+--+-- - #VUID-vkCmdSetStencilReference-commandBuffer-cmdpool# The+-- 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+-- allocated from /must/ support graphics operations+--+-- - #VUID-vkCmdSetStencilReference-videocoding# This command /must/ only+-- be called outside of a video coding scope+--+-- == Host Synchronization+--+-- - Host access to @commandBuffer@ /must/ be externally synchronized+--+-- - Host access to the 'Vulkan.Core10.Handles.CommandPool' that+-- @commandBuffer@ was allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- \'+--+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================++-- | Primary | Both | Outside | Graphics |+-- | Secondary | | | |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,+-- 'Vulkan.Core10.Handles.CommandBuffer',+-- 'Vulkan.Core10.Enums.StencilFaceFlagBits.StencilFaceFlags'+cmdSetStencilReference :: forall io+ . (MonadIO io)+ => -- | @commandBuffer@ is the command buffer into which the command will be+ -- recorded.+ CommandBuffer+ -> -- | @faceMask@ is a bitmask of+ -- 'Vulkan.Core10.Enums.StencilFaceFlagBits.StencilFaceFlagBits' specifying+ -- the set of stencil state for which to update the reference value, as+ -- described above for 'cmdSetStencilCompareMask'.+ ("faceMask" ::: StencilFaceFlags)+ -> -- | @reference@ is the new value to use as the stencil reference value.+ ("reference" ::: Word32)+ -> io ()+cmdSetStencilReference commandBuffer faceMask reference = liftIO $ do+ let vkCmdSetStencilReferencePtr = pVkCmdSetStencilReference (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)+ unless (vkCmdSetStencilReferencePtr /= nullFunPtr) $+ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetStencilReference is null" Nothing Nothing+ let vkCmdSetStencilReference' = mkVkCmdSetStencilReference vkCmdSetStencilReferencePtr+ traceAroundEvent "vkCmdSetStencilReference" (vkCmdSetStencilReference' (commandBufferHandle (commandBuffer)) (faceMask) (reference))+ pure $ ()+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+ unsafe+#endif+ "dynamic" mkVkCmdBindDescriptorSets+ :: FunPtr (Ptr CommandBuffer_T -> PipelineBindPoint -> PipelineLayout -> Word32 -> Word32 -> Ptr DescriptorSet -> Word32 -> Ptr Word32 -> IO ()) -> Ptr CommandBuffer_T -> PipelineBindPoint -> PipelineLayout -> Word32 -> Word32 -> Ptr DescriptorSet -> Word32 -> Ptr Word32 -> IO ()++-- | vkCmdBindDescriptorSets - Binds descriptor sets to a command buffer+--+-- = Description+--+-- 'cmdBindDescriptorSets' binds descriptor sets+-- @pDescriptorSets@[0..@descriptorSetCount@-1] to set numbers+-- [@firstSet@..@firstSet@+@descriptorSetCount@-1] for subsequent+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-bindpoint-commands bound pipeline commands>+-- set by @pipelineBindPoint@. Any bindings that were previously applied+-- via these sets are no longer valid.+--+-- Once bound, a descriptor set affects rendering of subsequent commands+-- that interact with the given pipeline type in the command buffer until+-- either a different set is bound to the same set number, or the set is+-- disturbed as described in+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-compatibility Pipeline Layout Compatibility>.+--+-- A compatible descriptor set /must/ be bound for all set numbers that any+-- shaders in a pipeline access, at the time that a drawing or dispatching+-- command is recorded to execute using that pipeline. However, if none of+-- the shaders in a pipeline statically use any bindings with a particular+-- set number, then no descriptor set need be bound for that set number,+-- even if the pipeline layout includes a non-trivial descriptor set layout+-- for that set number.+--+-- If any of the sets being bound include dynamic uniform or storage+-- buffers, then @pDynamicOffsets@ includes one element for each array+-- element in each dynamic descriptor type binding in each set. Values are+-- taken from @pDynamicOffsets@ in an order such that all entries for set N+-- come before set N+1; within a set, entries are ordered by the binding+-- numbers in the descriptor set layouts; and within a binding array,+-- elements are in order. @dynamicOffsetCount@ /must/ equal the total+-- number of dynamic descriptors in the sets being bound.+--+-- The effective offset used for dynamic uniform and storage buffer+-- bindings is the sum of the relative offset taken from @pDynamicOffsets@,+-- and the base address of the buffer plus base offset in the descriptor+-- set. The range of the dynamic uniform and storage buffer bindings is the+-- buffer range as specified in the descriptor set.+--+-- Each of the @pDescriptorSets@ /must/ be compatible with the pipeline+-- layout specified by @layout@. The layout used to program the bindings+-- /must/ also be compatible with the pipeline used in subsequent+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-bindpoint-commands bound pipeline commands>+-- with that pipeline type, as defined in the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-compatibility Pipeline Layout Compatibility>+-- section.+--+-- The descriptor set contents bound by a call to 'cmdBindDescriptorSets'+-- /may/ be consumed at the following times:+--+-- - For descriptor bindings created with the+-- 'Vulkan.Core12.Enums.DescriptorBindingFlagBits.DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT'+-- bit set, the contents /may/ be consumed when the command buffer is+-- submitted to a queue, or during shader execution of the resulting+-- draws and dispatches, or any time in between. Otherwise,+--+-- - during host execution of the command, or during shader execution of+-- the resulting draws and dispatches, or any time in between.+--+-- Thus, the contents of a descriptor set binding /must/ not be altered+-- (overwritten by an update command, or freed) between the first point in+-- time that it /may/ be consumed, and when the command completes executing+-- on the queue.+--+-- The contents of @pDynamicOffsets@ are consumed immediately during+-- execution of 'cmdBindDescriptorSets'. Once all pending uses have+-- completed, it is legal to update and reuse a descriptor set.+--+-- == Valid Usage+--+-- - #VUID-vkCmdBindDescriptorSets-pDescriptorSets-00358# Each element of+-- @pDescriptorSets@ /must/ have been allocated with a+-- 'Vulkan.Core10.Handles.DescriptorSetLayout' that matches (is the+-- same as, or identically defined as) the+-- 'Vulkan.Core10.Handles.DescriptorSetLayout' at set /n/ in @layout@,+-- where /n/ is the sum of @firstSet@ and the index into+-- @pDescriptorSets@+--+-- - #VUID-vkCmdBindDescriptorSets-dynamicOffsetCount-00359#+-- @dynamicOffsetCount@ /must/ be equal to the total number of dynamic+-- descriptors in @pDescriptorSets@+--+-- - #VUID-vkCmdBindDescriptorSets-firstSet-00360# The sum of @firstSet@+-- and @descriptorSetCount@ /must/ be less than or equal to+-- 'Vulkan.Core10.PipelineLayout.PipelineLayoutCreateInfo'::@setLayoutCount@+-- provided when @layout@ was created+--+-- - #VUID-vkCmdBindDescriptorSets-pipelineBindPoint-00361#+-- @pipelineBindPoint@ /must/ be supported by the @commandBuffer@’s+-- parent 'Vulkan.Core10.Handles.CommandPool'’s queue family+--+-- - #VUID-vkCmdBindDescriptorSets-pDynamicOffsets-01971# Each element of+-- @pDynamicOffsets@ which corresponds to a descriptor binding with+-- type+-- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC'+-- /must/ be a multiple of+-- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@minUniformBufferOffsetAlignment@+--+-- - #VUID-vkCmdBindDescriptorSets-pDynamicOffsets-01972# Each element of+-- @pDynamicOffsets@ which corresponds to a descriptor binding with+-- type+-- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC'+-- /must/ be a multiple of+-- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@minStorageBufferOffsetAlignment@+--+-- - #VUID-vkCmdBindDescriptorSets-pDescriptorSets-01979# For each+-- dynamic uniform or storage buffer binding in @pDescriptorSets@, the+-- sum of the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#dynamic-effective-offset effective offset>+-- and the range of the binding /must/ be less than or equal to the+-- size of the buffer+--+-- - #VUID-vkCmdBindDescriptorSets-pDescriptorSets-06715# For each+-- dynamic uniform or storage buffer binding in @pDescriptorSets@, if+-- the range was set with 'Vulkan.Core10.APIConstants.WHOLE_SIZE' then+-- @pDynamicOffsets@ which corresponds to the descriptor binding /must/+-- be 0+--+-- - #VUID-vkCmdBindDescriptorSets-pDescriptorSets-04616# Each element of+-- @pDescriptorSets@ /must/ not have been allocated from a+-- 'Vulkan.Core10.Handles.DescriptorPool' with the+-- 'Vulkan.Core10.Enums.DescriptorPoolCreateFlagBits.DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_VALVE'+-- flag set+--+-- - #VUID-vkCmdBindDescriptorSets-graphicsPipelineLibrary-06754# If+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-graphicsPipelineLibrary graphicsPipelineLibrary>+-- is not enabled, each element of @pDescriptorSets@ /must/ be a valid+-- 'Vulkan.Core10.Handles.DescriptorSet'+--+-- == Valid Usage (Implicit)+--+-- - #VUID-vkCmdBindDescriptorSets-commandBuffer-parameter#+-- @commandBuffer@ /must/ be a valid+-- 'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- - #VUID-vkCmdBindDescriptorSets-pipelineBindPoint-parameter#+-- @pipelineBindPoint@ /must/ be a valid+-- 'Vulkan.Core10.Enums.PipelineBindPoint.PipelineBindPoint' value+--+-- - #VUID-vkCmdBindDescriptorSets-layout-parameter# @layout@ /must/ be a+-- valid 'Vulkan.Core10.Handles.PipelineLayout' handle+--+-- - #VUID-vkCmdBindDescriptorSets-pDescriptorSets-parameter#+-- @pDescriptorSets@ /must/ be a valid pointer to an array of+-- @descriptorSetCount@ valid or+-- 'Vulkan.Core10.APIConstants.NULL_HANDLE'+-- 'Vulkan.Core10.Handles.DescriptorSet' handles+--+-- - #VUID-vkCmdBindDescriptorSets-pDynamicOffsets-parameter# If+-- @dynamicOffsetCount@ is not @0@, @pDynamicOffsets@ /must/ be a valid+-- pointer to an array of @dynamicOffsetCount@ @uint32_t@ values+--+-- - #VUID-vkCmdBindDescriptorSets-commandBuffer-recording#+-- @commandBuffer@ /must/ be in the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording state>+--+-- - #VUID-vkCmdBindDescriptorSets-commandBuffer-cmdpool# The+-- 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+-- allocated from /must/ support graphics, or compute operations+--+-- - #VUID-vkCmdBindDescriptorSets-videocoding# This command /must/ only+-- be called outside of a video coding scope+--+-- - #VUID-vkCmdBindDescriptorSets-descriptorSetCount-arraylength#+-- @descriptorSetCount@ /must/ be greater than @0@+--+-- - #VUID-vkCmdBindDescriptorSets-commonparent# Each of @commandBuffer@,+-- @layout@, and the elements of @pDescriptorSets@ that are valid+-- handles of non-ignored parameters /must/ have been created,+-- allocated, or retrieved from the same 'Vulkan.Core10.Handles.Device'+--+-- == Host Synchronization+--+-- - Host access to @commandBuffer@ /must/ be externally synchronized+--+-- - Host access to the 'Vulkan.Core10.Handles.CommandPool' that+-- @commandBuffer@ was allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- \'+--+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================++-- | Primary | Both | Outside | Graphics |+-- | Secondary | | | Compute |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,+-- 'Vulkan.Core10.Handles.CommandBuffer',+-- 'Vulkan.Core10.Handles.DescriptorSet',+-- 'Vulkan.Core10.Enums.PipelineBindPoint.PipelineBindPoint',+-- 'Vulkan.Core10.Handles.PipelineLayout'+cmdBindDescriptorSets :: forall io+ . (MonadIO io)+ => -- | @commandBuffer@ is the command buffer that the descriptor sets will be+ -- bound to.+ CommandBuffer+ -> -- | @pipelineBindPoint@ is a+ -- 'Vulkan.Core10.Enums.PipelineBindPoint.PipelineBindPoint' indicating the+ -- type of the pipeline that will use the descriptors. There is a separate+ -- set of bind points for each pipeline type, so binding one does not+ -- disturb the others.+ PipelineBindPoint+ -> -- | @layout@ is a 'Vulkan.Core10.Handles.PipelineLayout' object used to+ -- program the bindings.+ PipelineLayout+ -> -- | @firstSet@ is the set number of the first descriptor set to be bound.+ ("firstSet" ::: Word32)+ -> -- | @pDescriptorSets@ is a pointer to an array of handles to+ -- 'Vulkan.Core10.Handles.DescriptorSet' objects describing the descriptor+ -- sets to bind to.+ ("descriptorSets" ::: Vector DescriptorSet)+ -> -- | @pDynamicOffsets@ is a pointer to an array of @uint32_t@ values+ -- specifying dynamic offsets.+ ("dynamicOffsets" ::: Vector Word32)+ -> io ()+cmdBindDescriptorSets commandBuffer pipelineBindPoint layout firstSet descriptorSets dynamicOffsets = liftIO . evalContT $ do+ let vkCmdBindDescriptorSetsPtr = pVkCmdBindDescriptorSets (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)+ lift $ unless (vkCmdBindDescriptorSetsPtr /= nullFunPtr) $+ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdBindDescriptorSets is null" Nothing Nothing+ let vkCmdBindDescriptorSets' = mkVkCmdBindDescriptorSets vkCmdBindDescriptorSetsPtr+ pPDescriptorSets <- ContT $ allocaBytes @DescriptorSet ((Data.Vector.length (descriptorSets)) * 8)+ lift $ Data.Vector.imapM_ (\i e -> poke (pPDescriptorSets `plusPtr` (8 * (i)) :: Ptr DescriptorSet) (e)) (descriptorSets)+ pPDynamicOffsets <- ContT $ allocaBytes @Word32 ((Data.Vector.length (dynamicOffsets)) * 4)+ lift $ Data.Vector.imapM_ (\i e -> poke (pPDynamicOffsets `plusPtr` (4 * (i)) :: Ptr Word32) (e)) (dynamicOffsets)+ lift $ traceAroundEvent "vkCmdBindDescriptorSets" (vkCmdBindDescriptorSets' (commandBufferHandle (commandBuffer)) (pipelineBindPoint) (layout) (firstSet) ((fromIntegral (Data.Vector.length $ (descriptorSets)) :: Word32)) (pPDescriptorSets) ((fromIntegral (Data.Vector.length $ (dynamicOffsets)) :: Word32)) (pPDynamicOffsets))+ pure $ ()+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+ unsafe+#endif+ "dynamic" mkVkCmdBindIndexBuffer+ :: FunPtr (Ptr CommandBuffer_T -> Buffer -> DeviceSize -> IndexType -> IO ()) -> Ptr CommandBuffer_T -> Buffer -> DeviceSize -> IndexType -> IO ()++-- | vkCmdBindIndexBuffer - Bind an index buffer to a command buffer+--+-- == Valid Usage+--+-- - #VUID-vkCmdBindIndexBuffer-offset-00431# @offset@ /must/ be less+-- than the size of @buffer@+--+-- - #VUID-vkCmdBindIndexBuffer-offset-00432# The sum of @offset@ and the+-- address of the range of 'Vulkan.Core10.Handles.DeviceMemory' object+-- that is backing @buffer@, /must/ be a multiple of the type indicated+-- by @indexType@+--+-- - #VUID-vkCmdBindIndexBuffer-buffer-00433# @buffer@ /must/ have been+-- created with the+-- 'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_INDEX_BUFFER_BIT'+-- flag+--+-- - #VUID-vkCmdBindIndexBuffer-buffer-00434# If @buffer@ is non-sparse+-- then it /must/ be bound completely and contiguously to a single+-- 'Vulkan.Core10.Handles.DeviceMemory' object+--+-- - #VUID-vkCmdBindIndexBuffer-indexType-02507# @indexType@ /must/ not+-- be 'Vulkan.Core10.Enums.IndexType.INDEX_TYPE_NONE_KHR'+--+-- - #VUID-vkCmdBindIndexBuffer-indexType-02765# If @indexType@ is+-- 'Vulkan.Core10.Enums.IndexType.INDEX_TYPE_UINT8_EXT', the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-indexTypeUint8 indexTypeUint8>+-- feature /must/ be enabled+--+-- == Valid Usage (Implicit)+--+-- - #VUID-vkCmdBindIndexBuffer-commandBuffer-parameter# @commandBuffer@+-- /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- - #VUID-vkCmdBindIndexBuffer-buffer-parameter# @buffer@ /must/ be a+-- valid 'Vulkan.Core10.Handles.Buffer' handle+--+-- - #VUID-vkCmdBindIndexBuffer-indexType-parameter# @indexType@ /must/+-- be a valid 'Vulkan.Core10.Enums.IndexType.IndexType' value+--+-- - #VUID-vkCmdBindIndexBuffer-commandBuffer-recording# @commandBuffer@+-- /must/ be in the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording state>+--+-- - #VUID-vkCmdBindIndexBuffer-commandBuffer-cmdpool# The+-- 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+-- allocated from /must/ support graphics operations+--+-- - #VUID-vkCmdBindIndexBuffer-videocoding# This command /must/ only be+-- called outside of a video coding scope+--+-- - #VUID-vkCmdBindIndexBuffer-commonparent# Both of @buffer@, and+-- @commandBuffer@ /must/ have been created, allocated, or retrieved+-- from the same 'Vulkan.Core10.Handles.Device'+--+-- == Host Synchronization+--+-- - Host access to @commandBuffer@ /must/ be externally synchronized+--+-- - Host access to the 'Vulkan.Core10.Handles.CommandPool' that+-- @commandBuffer@ was allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- \'+--+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================++-- | Primary | Both | Outside | Graphics |+-- | Secondary | | | |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,+-- 'Vulkan.Core10.Handles.Buffer', 'Vulkan.Core10.Handles.CommandBuffer',+-- 'Vulkan.Core10.FundamentalTypes.DeviceSize',+-- 'Vulkan.Core10.Enums.IndexType.IndexType'+cmdBindIndexBuffer :: forall io+ . (MonadIO io)+ => -- | @commandBuffer@ is the command buffer into which the command is+ -- recorded.+ CommandBuffer+ -> -- | @buffer@ is the buffer being bound.+ Buffer+ -> -- | @offset@ is the starting offset in bytes within @buffer@ used in index+ -- buffer address calculations.+ ("offset" ::: DeviceSize)+ -> -- | @indexType@ is a 'Vulkan.Core10.Enums.IndexType.IndexType' value+ -- specifying the size of the indices.+ IndexType+ -> io ()+cmdBindIndexBuffer commandBuffer buffer offset indexType = liftIO $ do+ let vkCmdBindIndexBufferPtr = pVkCmdBindIndexBuffer (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)+ unless (vkCmdBindIndexBufferPtr /= nullFunPtr) $+ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdBindIndexBuffer is null" Nothing Nothing+ let vkCmdBindIndexBuffer' = mkVkCmdBindIndexBuffer vkCmdBindIndexBufferPtr+ traceAroundEvent "vkCmdBindIndexBuffer" (vkCmdBindIndexBuffer' (commandBufferHandle (commandBuffer)) (buffer) (offset) (indexType))+ pure $ ()+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+ unsafe+#endif+ "dynamic" mkVkCmdBindVertexBuffers+ :: FunPtr (Ptr CommandBuffer_T -> Word32 -> Word32 -> Ptr Buffer -> Ptr DeviceSize -> IO ()) -> Ptr CommandBuffer_T -> Word32 -> Word32 -> Ptr Buffer -> Ptr DeviceSize -> IO ()++-- | vkCmdBindVertexBuffers - Bind vertex buffers to a command buffer+--+-- = Description+--+-- The values taken from elements i of @pBuffers@ and @pOffsets@ replace+-- the current state for the vertex input binding @firstBinding@ + i, for i+-- in [0, @bindingCount@). The vertex input binding is updated to start at+-- the offset indicated by @pOffsets@[i] from the start of the buffer+-- @pBuffers@[i]. All vertex input attributes that use each of these+-- bindings will use these updated addresses in their address calculations+-- for subsequent drawing commands. If the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-nullDescriptor nullDescriptor>+-- feature is enabled, elements of @pBuffers@ /can/ be+-- 'Vulkan.Core10.APIConstants.NULL_HANDLE', and /can/ be used by the+-- vertex shader. If a vertex input attribute is bound to a vertex input+-- binding that is 'Vulkan.Core10.APIConstants.NULL_HANDLE', the values+-- taken from memory are considered to be zero, and missing G, B, or A+-- components are+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fxvertex-input-extraction filled with (0,0,1)>.+--+-- == Valid Usage+--+-- - #VUID-vkCmdBindVertexBuffers-firstBinding-00624# @firstBinding@+-- /must/ be less than+-- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxVertexInputBindings@+--+-- - #VUID-vkCmdBindVertexBuffers-firstBinding-00625# The sum of+-- @firstBinding@ and @bindingCount@ /must/ be less than or equal to+-- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxVertexInputBindings@+--+-- - #VUID-vkCmdBindVertexBuffers-pOffsets-00626# All elements of+-- @pOffsets@ /must/ be less than the size of the corresponding element+-- in @pBuffers@+--+-- - #VUID-vkCmdBindVertexBuffers-pBuffers-00627# All elements of+-- @pBuffers@ /must/ have been created with the+-- 'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_VERTEX_BUFFER_BIT'+-- flag+--+-- - #VUID-vkCmdBindVertexBuffers-pBuffers-00628# Each element of+-- @pBuffers@ that is non-sparse /must/ be bound completely and+-- contiguously to a single 'Vulkan.Core10.Handles.DeviceMemory' object+--+-- - #VUID-vkCmdBindVertexBuffers-pBuffers-04001# If the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-nullDescriptor nullDescriptor>+-- feature is not enabled, all elements of @pBuffers@ /must/ not be+-- 'Vulkan.Core10.APIConstants.NULL_HANDLE'+--+-- - #VUID-vkCmdBindVertexBuffers-pBuffers-04002# If an element of+-- @pBuffers@ is 'Vulkan.Core10.APIConstants.NULL_HANDLE', then the+-- corresponding element of @pOffsets@ /must/ be zero+--+-- == Valid Usage (Implicit)+--+-- - #VUID-vkCmdBindVertexBuffers-commandBuffer-parameter#+-- @commandBuffer@ /must/ be a valid+-- 'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- - #VUID-vkCmdBindVertexBuffers-pBuffers-parameter# @pBuffers@ /must/+-- be a valid pointer to an array of @bindingCount@ valid or+-- 'Vulkan.Core10.APIConstants.NULL_HANDLE'+-- 'Vulkan.Core10.Handles.Buffer' handles+--+-- - #VUID-vkCmdBindVertexBuffers-pOffsets-parameter# @pOffsets@ /must/+-- be a valid pointer to an array of @bindingCount@+-- 'Vulkan.Core10.FundamentalTypes.DeviceSize' values+--+-- - #VUID-vkCmdBindVertexBuffers-commandBuffer-recording#+-- @commandBuffer@ /must/ be in the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording state>+--+-- - #VUID-vkCmdBindVertexBuffers-commandBuffer-cmdpool# The+-- 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+-- allocated from /must/ support graphics operations+--+-- - #VUID-vkCmdBindVertexBuffers-videocoding# This command /must/ only+-- be called outside of a video coding scope+--+-- - #VUID-vkCmdBindVertexBuffers-bindingCount-arraylength#+-- @bindingCount@ /must/ be greater than @0@+--+-- - #VUID-vkCmdBindVertexBuffers-commonparent# Both of @commandBuffer@,+-- and the elements of @pBuffers@ that are valid handles of non-ignored+-- parameters /must/ have been created, allocated, or retrieved from+-- the same 'Vulkan.Core10.Handles.Device'+--+-- == Host Synchronization+--+-- - Host access to @commandBuffer@ /must/ be externally synchronized+--+-- - Host access to the 'Vulkan.Core10.Handles.CommandPool' that+-- @commandBuffer@ was allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- \'+--+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================++-- | Primary | Both | Outside | Graphics |+-- | Secondary | | | |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,+-- 'Vulkan.Core10.Handles.Buffer', 'Vulkan.Core10.Handles.CommandBuffer',+-- 'Vulkan.Core10.FundamentalTypes.DeviceSize'+cmdBindVertexBuffers :: forall io+ . (MonadIO io)+ => -- | @commandBuffer@ is the command buffer into which the command is+ -- recorded.+ CommandBuffer+ -> -- | @firstBinding@ is the index of the first vertex input binding whose+ -- state is updated by the command.+ ("firstBinding" ::: Word32)+ -> -- | @pBuffers@ is a pointer to an array of buffer handles.+ ("buffers" ::: Vector Buffer)+ -> -- | @pOffsets@ is a pointer to an array of buffer offsets.+ ("offsets" ::: Vector DeviceSize)+ -> io ()+cmdBindVertexBuffers commandBuffer firstBinding buffers offsets = liftIO . evalContT $ do+ let vkCmdBindVertexBuffersPtr = pVkCmdBindVertexBuffers (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)+ lift $ unless (vkCmdBindVertexBuffersPtr /= nullFunPtr) $+ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdBindVertexBuffers is null" Nothing Nothing+ let vkCmdBindVertexBuffers' = mkVkCmdBindVertexBuffers vkCmdBindVertexBuffersPtr+ let pBuffersLength = Data.Vector.length $ (buffers)+ lift $ unless ((Data.Vector.length $ (offsets)) == pBuffersLength) $+ throwIO $ IOError Nothing InvalidArgument "" "pOffsets and pBuffers must have the same length" Nothing Nothing+ pPBuffers <- ContT $ allocaBytes @Buffer ((Data.Vector.length (buffers)) * 8)+ lift $ Data.Vector.imapM_ (\i e -> poke (pPBuffers `plusPtr` (8 * (i)) :: Ptr Buffer) (e)) (buffers)+ pPOffsets <- ContT $ allocaBytes @DeviceSize ((Data.Vector.length (offsets)) * 8)+ lift $ Data.Vector.imapM_ (\i e -> poke (pPOffsets `plusPtr` (8 * (i)) :: Ptr DeviceSize) (e)) (offsets)+ lift $ traceAroundEvent "vkCmdBindVertexBuffers" (vkCmdBindVertexBuffers' (commandBufferHandle (commandBuffer)) (firstBinding) ((fromIntegral pBuffersLength :: Word32)) (pPBuffers) (pPOffsets))+ pure $ ()+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+ unsafe+#endif+ "dynamic" mkVkCmdDraw+ :: FunPtr (Ptr CommandBuffer_T -> Word32 -> Word32 -> Word32 -> Word32 -> IO ()) -> Ptr CommandBuffer_T -> Word32 -> Word32 -> Word32 -> Word32 -> IO ()++-- | vkCmdDraw - Draw primitives+--+-- = Description+--+-- When the command is executed, primitives are assembled using the current+-- primitive topology and @vertexCount@ consecutive vertex indices with the+-- first @vertexIndex@ value equal to @firstVertex@. The primitives are+-- drawn @instanceCount@ times with @instanceIndex@ starting with+-- @firstInstance@ and increasing sequentially for each instance. The+-- assembled primitives execute the bound graphics pipeline.+--+-- == Valid Usage+--+-- - #VUID-vkCmdDraw-magFilter-04553# If a+-- 'Vulkan.Core10.Handles.Sampler' created with @magFilter@ or+-- @minFilter@ equal to 'Vulkan.Core10.Enums.Filter.FILTER_LINEAR' and+-- @compareEnable@ equal to 'Vulkan.Core10.FundamentalTypes.FALSE' is+-- used to sample a 'Vulkan.Core10.Handles.ImageView' as a result of+-- this command, then the image view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain+-- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT'+--+-- - #VUID-vkCmdDraw-mipmapMode-04770# If a+-- 'Vulkan.Core10.Handles.Sampler' created with @mipmapMode@ equal to+-- 'Vulkan.Core10.Enums.SamplerMipmapMode.SAMPLER_MIPMAP_MODE_LINEAR'+-- and @compareEnable@ equal to 'Vulkan.Core10.FundamentalTypes.FALSE'+-- is used to sample a 'Vulkan.Core10.Handles.ImageView' as a result of+-- this command, then the image view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain+-- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT'+--+-- - #VUID-vkCmdDraw-None-06479# If a 'Vulkan.Core10.Handles.ImageView'+-- is sampled with+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-depth-compare-operation depth comparison>,+-- the image view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT'+--+-- - #VUID-vkCmdDraw-None-02691# If a 'Vulkan.Core10.Handles.ImageView'+-- is accessed using atomic operations as a result of this command,+-- then the image view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain+-- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT'+--+-- - #VUID-vkCmdDraw-None-02692# If a 'Vulkan.Core10.Handles.ImageView'+-- is sampled with 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as a+-- result of this command, then the image view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain+-- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT'+--+-- - #VUID-vkCmdDraw-filterCubic-02694# Any+-- 'Vulkan.Core10.Handles.ImageView' being sampled with+-- 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as a result of this+-- command /must/ have a+-- 'Vulkan.Core10.Enums.ImageViewType.ImageViewType' and format that+-- supports cubic filtering, as specified by+-- 'Vulkan.Extensions.VK_EXT_filter_cubic.FilterCubicImageViewImageFormatPropertiesEXT'::@filterCubic@+-- returned by+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceImageFormatProperties2'+--+-- - #VUID-vkCmdDraw-filterCubicMinmax-02695# Any+-- 'Vulkan.Core10.Handles.ImageView' being sampled with+-- 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' with a reduction mode+-- of either+-- 'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MIN'+-- or+-- 'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MAX'+-- as a result of this command /must/ have a+-- 'Vulkan.Core10.Enums.ImageViewType.ImageViewType' and format that+-- supports cubic filtering together with minmax filtering, as+-- specified by+-- 'Vulkan.Extensions.VK_EXT_filter_cubic.FilterCubicImageViewImageFormatPropertiesEXT'::@filterCubicMinmax@+-- returned by+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceImageFormatProperties2'+--+-- - #VUID-vkCmdDraw-flags-02696# Any 'Vulkan.Core10.Handles.Image'+-- created with a 'Vulkan.Core10.Image.ImageCreateInfo'::@flags@+-- containing+-- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_CORNER_SAMPLED_BIT_NV'+-- sampled as a result of this command /must/ only be sampled using a+-- 'Vulkan.Core10.Enums.SamplerAddressMode.SamplerAddressMode' of+-- 'Vulkan.Core10.Enums.SamplerAddressMode.SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE'+--+-- - #VUID-vkCmdDraw-OpTypeImage-07027# For any+-- 'Vulkan.Core10.Handles.ImageView' being written as a storage image+-- where the image format field of the @OpTypeImage@ is @Unknown@, the+-- view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT'+--+-- - #VUID-vkCmdDraw-OpTypeImage-07028# For any+-- 'Vulkan.Core10.Handles.ImageView' being read as a storage image+-- where the image format field of the @OpTypeImage@ is @Unknown@, the+-- view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT'+--+-- - #VUID-vkCmdDraw-OpTypeImage-07029# For any+-- 'Vulkan.Core10.Handles.BufferView' being written as a storage texel+-- buffer where the image format field of the @OpTypeImage@ is+-- @Unknown@, the view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkFormatProperties3 buffer features>+-- /must/ contain+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT'+--+-- - #VUID-vkCmdDraw-OpTypeImage-07030# Any+-- 'Vulkan.Core10.Handles.BufferView' being read as a storage texel+-- buffer where the image format field of the @OpTypeImage@ is+-- @Unknown@ then the view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkFormatProperties3 buffer features>+-- /must/ contain+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT'+--+-- - #VUID-vkCmdDraw-None-02697# For each set /n/ that is statically used+-- by the 'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind+-- point used by this command, a descriptor set /must/ have been bound+-- to /n/ at the same pipeline bind point, with a+-- 'Vulkan.Core10.Handles.PipelineLayout' that is compatible for set+-- /n/, with the 'Vulkan.Core10.Handles.PipelineLayout' used to create+-- the current 'Vulkan.Core10.Handles.Pipeline', as described in+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>+--+-- - #VUID-vkCmdDraw-maintenance4-06425# If the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-maintenance4 maintenance4>+-- feature is not enabled, then for each push constant that is+-- statically used by the 'Vulkan.Core10.Handles.Pipeline' bound to the+-- pipeline bind point used by this command, a push constant value+-- /must/ have been set for the same pipeline bind point, with a+-- 'Vulkan.Core10.Handles.PipelineLayout' that is compatible for push+-- constants, with the 'Vulkan.Core10.Handles.PipelineLayout' used to+-- create the current 'Vulkan.Core10.Handles.Pipeline', as described in+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>+--+-- - #VUID-vkCmdDraw-None-02699# Descriptors in each bound descriptor+-- set, specified via 'cmdBindDescriptorSets', /must/ be valid if they+-- are statically used by the 'Vulkan.Core10.Handles.Pipeline' bound to+-- the pipeline bind point used by this command+--+-- - #VUID-vkCmdDraw-None-02700# A valid pipeline /must/ be bound to the+-- pipeline bind point used by this command+--+-- - #VUID-vkCmdDraw-commandBuffer-02701# If the+-- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind+-- point used by this command requires any dynamic state, that state+-- /must/ have been set or inherited (if the+-- @VK_NV_inherited_viewport_scissor@ extension is enabled) for+-- @commandBuffer@, and done so after any previously bound pipeline+-- with the corresponding state not specified as dynamic+--+-- - #VUID-vkCmdDraw-None-02859# There /must/ not have been any calls to+-- dynamic state setting commands for any state not specified as+-- dynamic in the 'Vulkan.Core10.Handles.Pipeline' object bound to the+-- pipeline bind point used by this command, since that pipeline was+-- bound+--+-- - #VUID-vkCmdDraw-None-02702# If the 'Vulkan.Core10.Handles.Pipeline'+-- object bound to the pipeline bind point used by this command+-- accesses a 'Vulkan.Core10.Handles.Sampler' object that uses+-- unnormalized coordinates, that sampler /must/ not be used to sample+-- from any 'Vulkan.Core10.Handles.Image' with a+-- 'Vulkan.Core10.Handles.ImageView' of the type+-- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_3D',+-- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE',+-- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_1D_ARRAY',+-- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_2D_ARRAY' or+-- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE_ARRAY', in+-- any shader stage+--+-- - #VUID-vkCmdDraw-None-02703# If the 'Vulkan.Core10.Handles.Pipeline'+-- object bound to the pipeline bind point used by this command+-- accesses a 'Vulkan.Core10.Handles.Sampler' object that uses+-- unnormalized coordinates, that sampler /must/ not be used with any+-- of the SPIR-V @OpImageSample*@ or @OpImageSparseSample*@+-- instructions with @ImplicitLod@, @Dref@ or @Proj@ in their name, in+-- any shader stage+--+-- - #VUID-vkCmdDraw-None-02704# If the 'Vulkan.Core10.Handles.Pipeline'+-- object bound to the pipeline bind point used by this command+-- accesses a 'Vulkan.Core10.Handles.Sampler' object that uses+-- unnormalized coordinates, that sampler /must/ not be used with any+-- of the SPIR-V @OpImageSample*@ or @OpImageSparseSample*@+-- instructions that includes a LOD bias or any offset values, in any+-- shader stage+--+-- - #VUID-vkCmdDraw-uniformBuffers-06935# If any stage of the+-- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind+-- point used by this command accesses a uniform buffer, and that stage+-- was created without enabling either+-- 'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT'+-- or+-- 'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT'+-- for @uniformBuffers@, and the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>+-- feature is not enabled, that stage /must/ not access values outside+-- of the range of the buffer as specified in the descriptor set bound+-- to the same pipeline bind point+--+-- - #VUID-vkCmdDraw-storageBuffers-06936# If any stage of the+-- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind+-- point used by this command accesses a storage buffer, and that stage+-- was created without enabling either+-- 'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT'+-- or+-- 'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT'+-- for @storageBuffers@, and the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>+-- feature is not enabled, that stage /must/ not access values outside+-- of the range of the buffer as specified in the descriptor set bound+-- to the same pipeline bind point+--+-- - #VUID-vkCmdDraw-commandBuffer-02707# If @commandBuffer@ is an+-- unprotected command buffer and+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>+-- is not supported, any resource accessed by the+-- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind+-- point used by this command /must/ not be a protected resource+--+-- - #VUID-vkCmdDraw-None-06550# If the 'Vulkan.Core10.Handles.Pipeline'+-- object bound to the pipeline bind point used by this command+-- accesses a 'Vulkan.Core10.Handles.Sampler' or+-- 'Vulkan.Core10.Handles.ImageView' object that enables+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion>,+-- that object /must/ only be used with @OpImageSample*@ or+-- @OpImageSparseSample*@ instructions+--+-- - #VUID-vkCmdDraw-ConstOffset-06551# If the+-- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind+-- point used by this command accesses a+-- 'Vulkan.Core10.Handles.Sampler' or 'Vulkan.Core10.Handles.ImageView'+-- object that enables+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion>,+-- that object /must/ not use the @ConstOffset@ and @Offset@ operands+--+-- - #VUID-vkCmdDraw-None-04115# If a 'Vulkan.Core10.Handles.ImageView'+-- is accessed using @OpImageWrite@ as a result of this command, then+-- the @Type@ of the @Texel@ operand of that instruction /must/ have at+-- least as many components as the image view’s format+--+-- - #VUID-vkCmdDraw-OpImageWrite-04469# If a+-- 'Vulkan.Core10.Handles.BufferView' is accessed using @OpImageWrite@+-- as a result of this command, then the @Type@ of the @Texel@ operand+-- of that instruction /must/ have at least as many components as the+-- buffer view’s format+--+-- - #VUID-vkCmdDraw-SampledType-04470# If a+-- 'Vulkan.Core10.Handles.ImageView' with a+-- 'Vulkan.Core10.Enums.Format.Format' that has a 64-bit component+-- width is accessed as a result of this command, the @SampledType@ of+-- the @OpTypeImage@ operand of that instruction /must/ have a @Width@+-- of 64+--+-- - #VUID-vkCmdDraw-SampledType-04471# If a+-- 'Vulkan.Core10.Handles.ImageView' with a+-- 'Vulkan.Core10.Enums.Format.Format' that has a component width less+-- than 64-bit is accessed as a result of this command, the+-- @SampledType@ of the @OpTypeImage@ operand of that instruction+-- /must/ have a @Width@ of 32+--+-- - #VUID-vkCmdDraw-SampledType-04472# If a+-- 'Vulkan.Core10.Handles.BufferView' with a+-- 'Vulkan.Core10.Enums.Format.Format' that has a 64-bit component+-- width is accessed as a result of this command, the @SampledType@ of+-- the @OpTypeImage@ operand of that instruction /must/ have a @Width@+-- of 64+--+-- - #VUID-vkCmdDraw-SampledType-04473# If a+-- 'Vulkan.Core10.Handles.BufferView' with a+-- 'Vulkan.Core10.Enums.Format.Format' that has a component width less+-- than 64-bit is accessed as a result of this command, the+-- @SampledType@ of the @OpTypeImage@ operand of that instruction+-- /must/ have a @Width@ of 32+--+-- - #VUID-vkCmdDraw-sparseImageInt64Atomics-04474# If the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-sparseImageInt64Atomics sparseImageInt64Atomics>+-- feature is not enabled, 'Vulkan.Core10.Handles.Image' objects+-- created with the+-- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SPARSE_RESIDENCY_BIT'+-- flag /must/ not be accessed by atomic instructions through an+-- @OpTypeImage@ with a @SampledType@ with a @Width@ of 64 by this+-- command+--+-- - #VUID-vkCmdDraw-sparseImageInt64Atomics-04475# If the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-sparseImageInt64Atomics sparseImageInt64Atomics>+-- feature is not enabled, 'Vulkan.Core10.Handles.Buffer' objects+-- created with the+-- 'Vulkan.Core10.Enums.BufferCreateFlagBits.BUFFER_CREATE_SPARSE_RESIDENCY_BIT'+-- flag /must/ not be accessed by atomic instructions through an+-- @OpTypeImage@ with a @SampledType@ with a @Width@ of 64 by this+-- command+--+-- - #VUID-vkCmdDraw-OpImageWeightedSampleQCOM-06971# If+-- @OpImageWeightedSampleQCOM@ is used to sample a+-- 'Vulkan.Core10.Handles.ImageView' as a result of this command, then+-- the image view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM'+--+-- - #VUID-vkCmdDraw-OpImageWeightedSampleQCOM-06972# If+-- @OpImageWeightedSampleQCOM@ uses a 'Vulkan.Core10.Handles.ImageView'+-- as a sample weight image as a result of this command, then the image+-- view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM'+--+-- - #VUID-vkCmdDraw-OpImageBoxFilterQCOM-06973# If+-- @OpImageBoxFilterQCOM@ is used to sample a+-- 'Vulkan.Core10.Handles.ImageView' as a result of this command, then+-- the image view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM'+--+-- - #VUID-vkCmdDraw-OpImageBlockMatchSSDQCOM-06974# If+-- @OpImageBlockMatchSSDQCOM@ is used to read from an+-- 'Vulkan.Core10.Handles.ImageView' as a result of this command, then+-- the image view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM'+--+-- - #VUID-vkCmdDraw-OpImageBlockMatchSADQCOM-06975# If+-- @OpImageBlockMatchSADQCOM@ is used to read from an+-- 'Vulkan.Core10.Handles.ImageView' as a result of this command, then+-- the image view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM'+--+-- - #VUID-vkCmdDraw-OpImageBlockMatchSADQCOM-06976# If+-- @OpImageBlockMatchSADQCOM@ or OpImageBlockMatchSSDQCOM is used to+-- read from a reference image as result of this command, then the+-- specified reference coordinates /must/ not fail+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-integer-coordinate-validation integer texel coordinate validation>.+--+-- - #VUID-vkCmdDraw-OpImageWeightedSampleQCOM-06977# If+-- @OpImageWeightedSampleQCOM@, @OpImageBoxFilterQCOM@,+-- @OpImageBlockMatchSSDQCOM@, or @OpImageBlockMatchSADQCOM@ uses a+-- 'Vulkan.Core10.Handles.Sampler' as a result of this command, then+-- the sampler /must/ have been created with+-- 'Vulkan.Core10.Enums.SamplerCreateFlagBits.SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM'.+--+-- - #VUID-vkCmdDraw-OpImageWeightedSampleQCOM-06978# If any command+-- other than @OpImageWeightedSampleQCOM@, @OpImageBoxFilterQCOM@,+-- @OpImageBlockMatchSSDQCOM@, or @OpImageBlockMatchSADQCOM@ uses a+-- 'Vulkan.Core10.Handles.Sampler' as a result of this command, then+-- the sampler /must/ not have been created with+-- 'Vulkan.Core10.Enums.SamplerCreateFlagBits.SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM'.+--+-- - #VUID-vkCmdDraw-renderPass-02684# The current render pass /must/ be+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-compatibility compatible>+-- with the @renderPass@ member of the+-- 'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo' structure+-- specified when creating the 'Vulkan.Core10.Handles.Pipeline' bound+-- to+-- 'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_GRAPHICS'+--+-- - #VUID-vkCmdDraw-subpass-02685# The subpass index of the current+-- render pass /must/ be equal to the @subpass@ member of the+-- 'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo' structure+-- specified when creating the 'Vulkan.Core10.Handles.Pipeline' bound+-- to+-- 'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_GRAPHICS'+--+-- - #VUID-vkCmdDraw-None-02686# Every input attachment used by the+-- current subpass /must/ be bound to the pipeline via a descriptor set+--+-- - #VUID-vkCmdDraw-None-06537# Memory backing image subresources used+-- as attachments in the current render pass /must/ not be written in+-- any way other than as an attachment by this command+--+-- - #VUID-vkCmdDraw-None-06538# If any recorded command in the current+-- subpass will write to an image subresource as an attachment, this+-- command /must/ not read from the memory backing that image+-- subresource in any other way than as an attachment+--+-- - #VUID-vkCmdDraw-None-06539# If any recorded command in the current+-- subpass will read from an image subresource used as an attachment in+-- any way other than as an attachment, this command /must/ not write+-- to that image subresource as an attachment+--+-- - #VUID-vkCmdDraw-None-06886# If the current render pass instance uses+-- a depth\/stencil attachment with a read-only layout for the depth+-- aspect,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragops-depth-write depth writes>+-- /must/ be disabled+--+-- - #VUID-vkCmdDraw-None-06887# If the current render pass instance uses+-- a depth\/stencil attachment with a read-only layout for the stencil+-- aspect and stencil test is enabled,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragops-stencil all stencil ops>+-- /must/ be 'Vulkan.Core10.Enums.StencilOp.STENCIL_OP_KEEP'+--+-- - #VUID-vkCmdDraw-maxMultiviewInstanceIndex-02688# If the draw is+-- recorded in a render pass instance with multiview enabled, the+-- maximum instance index /must/ be less than or equal to+-- 'Vulkan.Core11.Promoted_From_VK_KHR_multiview.PhysicalDeviceMultiviewProperties'::@maxMultiviewInstanceIndex@+--+-- - #VUID-vkCmdDraw-sampleLocationsEnable-02689# If the bound graphics+-- pipeline was created with+-- 'Vulkan.Extensions.VK_EXT_sample_locations.PipelineSampleLocationsStateCreateInfoEXT'::@sampleLocationsEnable@+-- set to 'Vulkan.Core10.FundamentalTypes.TRUE' and the current subpass+-- has a depth\/stencil attachment, then that attachment /must/ have+-- been created with the+-- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT'+-- bit set+--+-- - #VUID-vkCmdDraw-None-06666# If the bound graphics pipeline state was+-- created with the+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'+-- dynamic state enabled then+-- 'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT'+-- /must/ have been called in the current command buffer prior to this+-- drawing command+--+-- - #VUID-vkCmdDraw-viewportCount-03417# If the bound graphics pipeline+-- state was created with the+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'+-- dynamic state enabled, but not the+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT'+-- dynamic state enabled, then+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'+-- /must/ have been called in the current command buffer prior to this+-- drawing command, and the @viewportCount@ parameter of+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'+-- /must/ match the+-- 'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo'::@scissorCount@+-- of the pipeline+--+-- - #VUID-vkCmdDraw-scissorCount-03418# If the bound graphics pipeline+-- state was created with the+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT'+-- dynamic state enabled, but not the+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'+-- dynamic state enabled, then+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetScissorWithCount'+-- /must/ have been called in the current command buffer prior to this+-- drawing command, and the @scissorCount@ parameter of+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetScissorWithCount'+-- /must/ match the+-- 'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo'::@viewportCount@+-- of the pipeline+--+-- - #VUID-vkCmdDraw-viewportCount-03419# If the bound graphics pipeline+-- state was created with both the+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT'+-- and+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'+-- dynamic states enabled then both+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'+-- and+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetScissorWithCount'+-- /must/ have been called in the current command buffer prior to this+-- drawing command, and the @viewportCount@ parameter of+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'+-- /must/ match the @scissorCount@ parameter of+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetScissorWithCount'+--+-- - #VUID-vkCmdDraw-viewportCount-04137# If the bound graphics pipeline+-- state was created with the+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'+-- dynamic state enabled, but not the+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_W_SCALING_NV'+-- dynamic state enabled, then the bound graphics pipeline /must/ have+-- been created with+-- 'Vulkan.Extensions.VK_NV_clip_space_w_scaling.PipelineViewportWScalingStateCreateInfoNV'::@viewportCount@+-- greater or equal to the @viewportCount@ parameter in the last call+-- to+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'+--+-- - #VUID-vkCmdDraw-viewportCount-04138# If the bound graphics pipeline+-- state was created with the+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'+-- and+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_W_SCALING_NV'+-- dynamic states enabled then the @viewportCount@ parameter in the+-- last call to+-- 'Vulkan.Extensions.VK_NV_clip_space_w_scaling.cmdSetViewportWScalingNV'+-- /must/ be greater than or equal to the @viewportCount@ parameter in+-- the last call to+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'+--+-- - #VUID-vkCmdDraw-viewportCount-04139# If the bound graphics pipeline+-- state was created with the+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'+-- dynamic state enabled, but not the+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV'+-- dynamic state enabled, then the bound graphics pipeline /must/ have+-- been created with+-- 'Vulkan.Extensions.VK_NV_shading_rate_image.PipelineViewportShadingRateImageStateCreateInfoNV'::@viewportCount@+-- greater or equal to the @viewportCount@ parameter in the last call+-- to+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'+--+-- - #VUID-vkCmdDraw-viewportCount-04140# If the bound graphics pipeline+-- state was created with the+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'+-- and+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV'+-- dynamic states enabled then the @viewportCount@ parameter in the+-- last call to+-- 'Vulkan.Extensions.VK_NV_shading_rate_image.cmdSetViewportShadingRatePaletteNV'+-- /must/ be greater than or equal to the @viewportCount@ parameter in+-- the last call to+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'+--+-- - #VUID-vkCmdDraw-VkPipelineVieportCreateInfo-04141# If the bound+-- graphics pipeline state was created with the+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'+-- dynamic state enabled and a+-- 'Vulkan.Extensions.VK_NV_viewport_swizzle.PipelineViewportSwizzleStateCreateInfoNV'+-- structure chained from+-- 'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo', then the+-- bound graphics pipeline /must/ have been created with+-- 'Vulkan.Extensions.VK_NV_viewport_swizzle.PipelineViewportSwizzleStateCreateInfoNV'::@viewportCount@+-- greater or equal to the @viewportCount@ parameter in the last call+-- to+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'+--+-- - #VUID-vkCmdDraw-VkPipelineVieportCreateInfo-04142# If the bound+-- graphics pipeline state was created with the+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'+-- dynamic state enabled and a+-- 'Vulkan.Extensions.VK_NV_scissor_exclusive.PipelineViewportExclusiveScissorStateCreateInfoNV'+-- structure chained from+-- 'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo', then the+-- bound graphics pipeline /must/ have been created with+-- 'Vulkan.Extensions.VK_NV_scissor_exclusive.PipelineViewportExclusiveScissorStateCreateInfoNV'::@exclusiveScissorCount@+-- greater or equal to the @viewportCount@ parameter in the last call+-- to+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'+--+-- - #VUID-vkCmdDraw-None-04876# If the bound graphics pipeline state was+-- created with the+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE'+-- dynamic state enabled then+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'+-- /must/ have been called in the current command buffer prior to this+-- drawing command+--+-- - #VUID-vkCmdDraw-None-04877# If the bound graphics pipeline state was+-- created with the+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BIAS_ENABLE'+-- dynamic state enabled then+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetDepthBiasEnable'+-- /must/ have been called in the current command buffer prior to this+-- drawing command+--+-- - #VUID-vkCmdDraw-logicOp-04878# If the bound graphics pipeline state+-- was created with the+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LOGIC_OP_EXT'+-- dynamic state enabled then+-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetLogicOpEXT'+-- /must/ have been called in the current command buffer prior to this+-- drawing command and the @logicOp@ /must/ be a valid+-- 'Vulkan.Core10.Enums.LogicOp.LogicOp' value+--+-- - #VUID-vkCmdDraw-primitiveFragmentShadingRateWithMultipleViewports-04552#+-- If the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-primitiveFragmentShadingRateWithMultipleViewports primitiveFragmentShadingRateWithMultipleViewports>+-- limit is not supported, the bound graphics pipeline was created with+-- the+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'+-- dynamic state enabled, and any of the shader stages of the bound+-- graphics pipeline write to the @PrimitiveShadingRateKHR@ built-in,+-- then+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'+-- /must/ have been called in the current command buffer prior to this+-- drawing command, and the @viewportCount@ parameter of+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'+-- /must/ be @1@+--+-- - #VUID-vkCmdDraw-blendEnable-04727# If rasterization is not disabled+-- in the bound graphics pipeline, then for each color attachment in+-- the subpass, if the corresponding image view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- do not contain+-- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT',+-- then the @blendEnable@ member of the corresponding element of the+-- @pAttachments@ member of @pColorBlendState@ /must/ be+-- 'Vulkan.Core10.FundamentalTypes.FALSE'+--+-- - #VUID-vkCmdDraw-rasterizationSamples-04740# If rasterization is not+-- disabled in the bound graphics pipeline, and neither the+-- @VK_AMD_mixed_attachment_samples@ nor the+-- @VK_NV_framebuffer_mixed_samples@ extensions are enabled, then+-- 'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'::@rasterizationSamples@+-- /must/ be the same as the current subpass color and\/or+-- depth\/stencil attachments+--+-- - #VUID-vkCmdDraw-imageView-06172# If the current render pass instance+-- was begun with+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+-- the @imageView@ member of @pDepthAttachment@ is not+-- 'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of+-- @pDepthAttachment@ is+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL',+-- this command /must/ not write any values to the depth attachment+--+-- - #VUID-vkCmdDraw-imageView-06173# If the current render pass instance+-- was begun with+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+-- the @imageView@ member of @pStencilAttachment@ is not+-- 'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of+-- @pStencilAttachment@ is+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL',+-- this command /must/ not write any values to the stencil attachment+--+-- - #VUID-vkCmdDraw-imageView-06174# If the current render pass instance+-- was begun with+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+-- the @imageView@ member of @pDepthAttachment@ is not+-- 'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of+-- @pDepthAttachment@ is+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL',+-- this command /must/ not write any values to the depth attachment+--+-- - #VUID-vkCmdDraw-imageView-06175# If the current render pass instance+-- was begun with+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+-- the @imageView@ member of @pStencilAttachment@ is not+-- 'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of+-- @pStencilAttachment@ is+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL',+-- this command /must/ not write any values to the stencil attachment+--+-- - #VUID-vkCmdDraw-imageView-06176# If the current render pass instance+-- was begun with+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+-- the @imageView@ member of @pDepthAttachment@ is not+-- 'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of+-- @pDepthAttachment@ is+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL',+-- this command /must/ not write any values to the depth attachment+--+-- - #VUID-vkCmdDraw-imageView-06177# If the current render pass instance+-- was begun with+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+-- the @imageView@ member of @pStencilAttachment@ is not+-- 'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of+-- @pStencilAttachment@ is+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL',+-- this command /must/ not write any values to the stencil attachment+--+-- - #VUID-vkCmdDraw-viewMask-06178# If the current render pass instance+-- was begun with+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+-- the currently bound graphics pipeline /must/ have been created with+-- a+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@viewMask@+-- equal to+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@viewMask@+--+-- - #VUID-vkCmdDraw-colorAttachmentCount-06179# If the current render+-- pass instance was begun with+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+-- the currently bound graphics pipeline /must/ have been created with+-- a+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@colorAttachmentCount@+-- equal to+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@+--+-- - #VUID-vkCmdDraw-colorAttachmentCount-06180# If the current render+-- pass instance was begun with+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'+-- and+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@+-- greater than @0@, then each element of the+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@+-- array with a @imageView@ not equal to+-- 'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created+-- with a 'Vulkan.Core10.Enums.Format.Format' equal to the+-- corresponding element of+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@+-- used to create the currently bound graphics pipeline+--+-- - #VUID-vkCmdDraw-attachmentCount-06667# If the bound graphics+-- pipeline state was created with the+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT'+-- dynamic state enabled then+-- 'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'+-- /must/ have been called in the current command buffer prior to this+-- drawing command, and the @attachmentCount@ parameter of+-- 'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'+-- /must/ be greater than or equal to the+-- 'Vulkan.Core10.Pipeline.PipelineColorBlendStateCreateInfo'::@attachmentCount@+-- of the currently bound graphics pipeline+--+-- - #VUID-vkCmdDraw-attachmentCount-06815# If the bound graphics+-- pipeline state was created with the+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT'+-- dynamic state enabled then+-- 'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'+-- /must/ have been called in the current command buffer prior to this+-- drawing command, and the @attachmentCount@ parameter of+-- 'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'+-- /must/ be less than or equal to the @maxColorAttachments@ member of+-- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'+--+-- - #VUID-vkCmdDraw-pDepthAttachment-06181# If the current render pass+-- instance was begun with+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'+-- and+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@+-- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@depthAttachmentFormat@+-- used to create the currently bound graphics pipeline /must/ be equal+-- to the 'Vulkan.Core10.Enums.Format.Format' used to create+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@+--+-- - #VUID-vkCmdDraw-pStencilAttachment-06182# If the current render pass+-- instance was begun with+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'+-- and+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@+-- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@stencilAttachmentFormat@+-- used to create the currently bound graphics pipeline /must/ be equal+-- to the 'Vulkan.Core10.Enums.Format.Format' used to create+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@+--+-- - #VUID-vkCmdDraw-imageView-06183# If the current render pass instance+-- was begun with+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'+-- and+-- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingFragmentShadingRateAttachmentInfoKHR'::@imageView@+-- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the currently+-- bound graphics pipeline /must/ have been created with+-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR'+--+-- - #VUID-vkCmdDraw-imageView-06184# If the current render pass instance+-- was begun with+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'+-- and+-- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingFragmentDensityMapAttachmentInfoEXT'::@imageView@+-- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the currently+-- bound graphics pipeline /must/ have been created with+-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT'+--+-- - #VUID-vkCmdDraw-colorAttachmentCount-06185# If the currently bound+-- pipeline was created with a+-- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'+-- or+-- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'+-- structure, and the current render pass instance was begun with+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'+-- with a+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@+-- parameter greater than @0@, then each element of the+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@+-- array with a @imageView@ not equal to+-- 'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created+-- with a sample count equal to the corresponding element of the+-- @pColorAttachmentSamples@ member of+-- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'+-- or+-- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'+-- used to create the currently bound graphics pipeline+--+-- - #VUID-vkCmdDraw-pDepthAttachment-06186# If the current render pass+-- instance was begun with+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+-- the currently bound pipeline was created with a+-- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'+-- or+-- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'+-- structure, and+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@+-- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of the+-- @depthStencilAttachmentSamples@ member of+-- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'+-- or+-- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'+-- used to create the currently bound graphics pipeline /must/ be equal+-- to the sample count used to create+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@+--+-- - #VUID-vkCmdDraw-pStencilAttachment-06187# If the current render pass+-- instance was begun with+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+-- the currently bound pipeline was created with a+-- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'+-- or+-- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'+-- structure, and+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@+-- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of the+-- @depthStencilAttachmentSamples@ member of+-- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'+-- or+-- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'+-- used to create the currently bound graphics pipeline /must/ be equal+-- to the sample count used to create+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@+--+-- - #VUID-vkCmdDraw-colorAttachmentCount-06188# If the currently bound+-- pipeline was created without a+-- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'+-- or+-- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'+-- structure, and the current render pass instance was begun with+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'+-- with a+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@+-- parameter greater than @0@, then each element of the+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@+-- array with a @imageView@ not equal to+-- 'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created+-- with a sample count equal to the value of+-- 'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'::@rasterizationSamples@+-- used to create the currently bound graphics pipeline+--+-- - #VUID-vkCmdDraw-pDepthAttachment-06189# If the current render pass+-- instance was begun with+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+-- the currently bound pipeline was created without a+-- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'+-- or+-- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'+-- structure, and+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@+-- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of+-- 'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'::@rasterizationSamples@+-- used to create the currently bound graphics pipeline /must/ be equal+-- to the sample count used to create+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@+--+-- - #VUID-vkCmdDraw-pStencilAttachment-06190# If the current render pass+-- instance was begun with+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+-- the currently bound pipeline was created without a+-- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'+-- or+-- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'+-- structure, and+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@+-- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of+-- 'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'::@rasterizationSamples@+-- used to create the currently bound graphics pipeline /must/ be equal+-- to the sample count used to create+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@+--+-- - #VUID-vkCmdDraw-renderPass-06198# If the current render pass+-- instance was begun with+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+-- the currently bound pipeline /must/ have been created with a+-- 'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo'::@renderPass@+-- equal to 'Vulkan.Core10.APIConstants.NULL_HANDLE'+--+-- - #VUID-vkCmdDraw-primitivesGeneratedQueryWithRasterizerDiscard-06708#+-- If the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-primitivesGeneratedQueryWithRasterizerDiscard primitivesGeneratedQueryWithRasterizerDiscard>+-- feature is not enabled and the+-- 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PRIMITIVES_GENERATED_EXT'+-- query is active,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-discard rasterization discard>+-- /must/ not be enabled.+--+-- - #VUID-vkCmdDraw-primitivesGeneratedQueryWithNonZeroStreams-06709# If+-- the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-primitivesGeneratedQueryWithNonZeroStreams primitivesGeneratedQueryWithNonZeroStreams>+-- feature is not enabled and the+-- 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PRIMITIVES_GENERATED_EXT'+-- query is active, the bound graphics pipeline /must/ not have been+-- created with a non-zero value in+-- 'Vulkan.Extensions.VK_EXT_transform_feedback.PipelineRasterizationStateStreamCreateInfoEXT'::@rasterizationStream@.+--+-- - #VUID-vkCmdDraw-stage-07073# If the currently bound pipeline was+-- created with the+-- 'Vulkan.Core10.Pipeline.PipelineShaderStageCreateInfo'::@stage@+-- member of an element of+-- 'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo'::@pStages@ set+-- to+-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT',+-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_CONTROL_BIT',+-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT'+-- or+-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT',+-- then+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#queries-mesh-shader Mesh Shader Queries>+-- must not be active+--+-- - #VUID-vkCmdDraw-commandBuffer-02712# If @commandBuffer@ is a+-- protected command buffer and+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>+-- is not supported, any resource written to by the+-- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind+-- point used by this command /must/ not be an unprotected resource+--+-- - #VUID-vkCmdDraw-commandBuffer-02713# If @commandBuffer@ is a+-- protected command buffer and+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>+-- is not supported, pipeline stages other than the framebuffer-space+-- and compute stages in the 'Vulkan.Core10.Handles.Pipeline' object+-- bound to the pipeline bind point used by this command /must/ not+-- write to any resource+--+-- - #VUID-vkCmdDraw-commandBuffer-04617# If any of the shader stages of+-- the 'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind+-- point used by this command uses the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-RayQueryKHR RayQueryKHR>+-- capability, then @commandBuffer@ /must/ not be a protected command+-- buffer+--+-- - #VUID-vkCmdDraw-None-04007# All vertex input bindings accessed via+-- vertex input variables declared in the vertex shader entry point’s+-- interface /must/ have either valid or+-- 'Vulkan.Core10.APIConstants.NULL_HANDLE' buffers bound+--+-- - #VUID-vkCmdDraw-None-04008# If the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-nullDescriptor nullDescriptor>+-- feature is not enabled, all vertex input bindings accessed via+-- vertex input variables declared in the vertex shader entry point’s+-- interface /must/ not be 'Vulkan.Core10.APIConstants.NULL_HANDLE'+--+-- - #VUID-vkCmdDraw-None-02721# For a given vertex buffer binding, any+-- attribute data fetched /must/ be entirely contained within the+-- corresponding vertex buffer binding, as described in+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fxvertex-input ???>+--+-- - #VUID-vkCmdDraw-primitiveTopology-03420# If the bound graphics+-- pipeline state was created with the+-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT'+-- dynamic state enabled then+-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopologyEXT'+-- /must/ have been called in the current command buffer prior to this+-- drawing command, and the @primitiveTopology@ parameter of+-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopologyEXT'+-- /must/ be of the same+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#drawing-primitive-topology-class topology class>+-- as the pipeline+-- 'Vulkan.Core10.Pipeline.PipelineInputAssemblyStateCreateInfo'::@topology@+-- state+--+-- - #VUID-vkCmdDraw-None-04912# If the bound graphics pipeline was+-- created with both the+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'+-- and+-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT'+-- dynamic states enabled, then+-- 'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.cmdSetVertexInputEXT'+-- /must/ have been called in the current command buffer prior to this+-- draw command+--+-- - #VUID-vkCmdDraw-pStrides-04913# If the bound graphics pipeline was+-- created with the+-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT'+-- dynamic state enabled, but not the+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'+-- dynamic state enabled, then+-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdBindVertexBuffers2EXT'+-- /must/ have been called in the current command buffer prior to this+-- draw command, and the @pStrides@ parameter of+-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdBindVertexBuffers2EXT'+-- /must/ not be @NULL@+--+-- - #VUID-vkCmdDraw-None-04914# If the bound graphics pipeline state was+-- created with the+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'+-- dynamic state enabled, then+-- 'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.cmdSetVertexInputEXT'+-- /must/ have been called in the current command buffer prior to this+-- draw command+--+-- - #VUID-vkCmdDraw-None-04875# If the bound graphics pipeline state was+-- created with the+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT'+-- dynamic state enabled then+-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetPatchControlPointsEXT'+-- /must/ have been called in the current command buffer prior to this+-- drawing command+--+-- - #VUID-vkCmdDraw-None-04879# If the bound graphics pipeline state was+-- created with the+-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE_EXT'+-- dynamic state enabled then+-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetPrimitiveRestartEnableEXT'+-- /must/ have been called in the current command buffer prior to this+-- drawing command+--+-- - #VUID-vkCmdDraw-stage-06481# The bound graphics pipeline /must/ not+-- have been created with the+-- 'Vulkan.Core10.Pipeline.PipelineShaderStageCreateInfo'::@stage@+-- member of an element of+-- 'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo'::@pStages@ set+-- to+-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT'+-- or+-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'+--+-- == Valid Usage (Implicit)+--+-- - #VUID-vkCmdDraw-commandBuffer-parameter# @commandBuffer@ /must/ be a+-- valid 'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- - #VUID-vkCmdDraw-commandBuffer-recording# @commandBuffer@ /must/ be+-- in the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording state>+--+-- - #VUID-vkCmdDraw-commandBuffer-cmdpool# The+-- 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+-- allocated from /must/ support graphics operations+--+-- - #VUID-vkCmdDraw-renderpass# This command /must/ only be called+-- inside of a render pass instance+--+-- - #VUID-vkCmdDraw-videocoding# This command /must/ only be called+-- outside of a video coding scope+--+-- == Host Synchronization+--+-- - Host access to @commandBuffer@ /must/ be externally synchronized+--+-- - Host access to the 'Vulkan.Core10.Handles.CommandPool' that+-- @commandBuffer@ was allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- \'+--+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================++-- | Primary | Inside | Outside | Graphics |+-- | Secondary | | | |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,+-- 'Vulkan.Core10.Handles.CommandBuffer'+cmdDraw :: forall io+ . (MonadIO io)+ => -- | @commandBuffer@ is the command buffer into which the command is+ -- recorded.+ CommandBuffer+ -> -- | @vertexCount@ is the number of vertices to draw.+ ("vertexCount" ::: Word32)+ -> -- | @instanceCount@ is the number of instances to draw.+ ("instanceCount" ::: Word32)+ -> -- | @firstVertex@ is the index of the first vertex to draw.+ ("firstVertex" ::: Word32)+ -> -- | @firstInstance@ is the instance ID of the first instance to draw.+ ("firstInstance" ::: Word32)+ -> io ()+cmdDraw commandBuffer vertexCount instanceCount firstVertex firstInstance = liftIO $ do+ let vkCmdDrawPtr = pVkCmdDraw (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)+ unless (vkCmdDrawPtr /= nullFunPtr) $+ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdDraw is null" Nothing Nothing+ let vkCmdDraw' = mkVkCmdDraw vkCmdDrawPtr+ traceAroundEvent "vkCmdDraw" (vkCmdDraw' (commandBufferHandle (commandBuffer)) (vertexCount) (instanceCount) (firstVertex) (firstInstance))+ pure $ ()+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+ unsafe+#endif+ "dynamic" mkVkCmdDrawIndexed+ :: FunPtr (Ptr CommandBuffer_T -> Word32 -> Word32 -> Word32 -> Int32 -> Word32 -> IO ()) -> Ptr CommandBuffer_T -> Word32 -> Word32 -> Word32 -> Int32 -> Word32 -> IO ()++-- | vkCmdDrawIndexed - Draw primitives with indexed vertices+--+-- = Description+--+-- When the command is executed, primitives are assembled using the current+-- primitive topology and @indexCount@ vertices whose indices are retrieved+-- from the index buffer. The index buffer is treated as an array of+-- tightly packed unsigned integers of size defined by the+-- 'cmdBindIndexBuffer'::@indexType@ parameter with which the buffer was+-- bound.+--+-- The first vertex index is at an offset of @firstIndex@ × @indexSize@ ++-- @offset@ within the bound index buffer, where @offset@ is the offset+-- specified by 'cmdBindIndexBuffer' and @indexSize@ is the byte size of+-- the type specified by @indexType@. Subsequent index values are retrieved+-- from consecutive locations in the index buffer. Indices are first+-- compared to the primitive restart value, then zero extended to 32 bits+-- (if the @indexType@ is+-- 'Vulkan.Core10.Enums.IndexType.INDEX_TYPE_UINT8_EXT' or+-- 'Vulkan.Core10.Enums.IndexType.INDEX_TYPE_UINT16') and have+-- @vertexOffset@ added to them, before being supplied as the @vertexIndex@+-- value.+--+-- The primitives are drawn @instanceCount@ times with @instanceIndex@+-- starting with @firstInstance@ and increasing sequentially for each+-- instance. The assembled primitives execute the bound graphics pipeline.+--+-- == Valid Usage+--+-- - #VUID-vkCmdDrawIndexed-magFilter-04553# If a+-- 'Vulkan.Core10.Handles.Sampler' created with @magFilter@ or+-- @minFilter@ equal to 'Vulkan.Core10.Enums.Filter.FILTER_LINEAR' and+-- @compareEnable@ equal to 'Vulkan.Core10.FundamentalTypes.FALSE' is+-- used to sample a 'Vulkan.Core10.Handles.ImageView' as a result of+-- this command, then the image view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain+-- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT'+--+-- - #VUID-vkCmdDrawIndexed-mipmapMode-04770# If a+-- 'Vulkan.Core10.Handles.Sampler' created with @mipmapMode@ equal to+-- 'Vulkan.Core10.Enums.SamplerMipmapMode.SAMPLER_MIPMAP_MODE_LINEAR'+-- and @compareEnable@ equal to 'Vulkan.Core10.FundamentalTypes.FALSE'+-- is used to sample a 'Vulkan.Core10.Handles.ImageView' as a result of+-- this command, then the image view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain+-- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT'+--+-- - #VUID-vkCmdDrawIndexed-None-06479# If a+-- 'Vulkan.Core10.Handles.ImageView' is sampled with+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-depth-compare-operation depth comparison>,+-- the image view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT'+--+-- - #VUID-vkCmdDrawIndexed-None-02691# If a+-- 'Vulkan.Core10.Handles.ImageView' is accessed using atomic+-- operations as a result of this command, then the image view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain+-- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT'+--+-- - #VUID-vkCmdDrawIndexed-None-02692# If a+-- 'Vulkan.Core10.Handles.ImageView' is sampled with+-- 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as a result of this+-- command, then the image view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain+-- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT'+--+-- - #VUID-vkCmdDrawIndexed-filterCubic-02694# Any+-- 'Vulkan.Core10.Handles.ImageView' being sampled with+-- 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as a result of this+-- command /must/ have a+-- 'Vulkan.Core10.Enums.ImageViewType.ImageViewType' and format that+-- supports cubic filtering, as specified by+-- 'Vulkan.Extensions.VK_EXT_filter_cubic.FilterCubicImageViewImageFormatPropertiesEXT'::@filterCubic@+-- returned by+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceImageFormatProperties2'+--+-- - #VUID-vkCmdDrawIndexed-filterCubicMinmax-02695# Any+-- 'Vulkan.Core10.Handles.ImageView' being sampled with+-- 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' with a reduction mode+-- of either+-- 'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MIN'+-- or+-- 'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MAX'+-- as a result of this command /must/ have a+-- 'Vulkan.Core10.Enums.ImageViewType.ImageViewType' and format that+-- supports cubic filtering together with minmax filtering, as+-- specified by+-- 'Vulkan.Extensions.VK_EXT_filter_cubic.FilterCubicImageViewImageFormatPropertiesEXT'::@filterCubicMinmax@+-- returned by+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceImageFormatProperties2'+--+-- - #VUID-vkCmdDrawIndexed-flags-02696# Any+-- 'Vulkan.Core10.Handles.Image' created with a+-- 'Vulkan.Core10.Image.ImageCreateInfo'::@flags@ containing+-- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_CORNER_SAMPLED_BIT_NV'+-- sampled as a result of this command /must/ only be sampled using a+-- 'Vulkan.Core10.Enums.SamplerAddressMode.SamplerAddressMode' of+-- 'Vulkan.Core10.Enums.SamplerAddressMode.SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE'+--+-- - #VUID-vkCmdDrawIndexed-OpTypeImage-07027# For any+-- 'Vulkan.Core10.Handles.ImageView' being written as a storage image+-- where the image format field of the @OpTypeImage@ is @Unknown@, the+-- view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT'+--+-- - #VUID-vkCmdDrawIndexed-OpTypeImage-07028# For any+-- 'Vulkan.Core10.Handles.ImageView' being read as a storage image+-- where the image format field of the @OpTypeImage@ is @Unknown@, the+-- view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT'+--+-- - #VUID-vkCmdDrawIndexed-OpTypeImage-07029# For any+-- 'Vulkan.Core10.Handles.BufferView' being written as a storage texel+-- buffer where the image format field of the @OpTypeImage@ is+-- @Unknown@, the view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkFormatProperties3 buffer features>+-- /must/ contain+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT'+--+-- - #VUID-vkCmdDrawIndexed-OpTypeImage-07030# Any+-- 'Vulkan.Core10.Handles.BufferView' being read as a storage texel+-- buffer where the image format field of the @OpTypeImage@ is+-- @Unknown@ then the view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkFormatProperties3 buffer features>+-- /must/ contain+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT'+--+-- - #VUID-vkCmdDrawIndexed-None-02697# For each set /n/ that is+-- statically used by the 'Vulkan.Core10.Handles.Pipeline' bound to the+-- pipeline bind point used by this command, a descriptor set /must/+-- have been bound to /n/ at the same pipeline bind point, with a+-- 'Vulkan.Core10.Handles.PipelineLayout' that is compatible for set+-- /n/, with the 'Vulkan.Core10.Handles.PipelineLayout' used to create+-- the current 'Vulkan.Core10.Handles.Pipeline', as described in+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>+--+-- - #VUID-vkCmdDrawIndexed-maintenance4-06425# If the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-maintenance4 maintenance4>+-- feature is not enabled, then for each push constant that is+-- statically used by the 'Vulkan.Core10.Handles.Pipeline' bound to the+-- pipeline bind point used by this command, a push constant value+-- /must/ have been set for the same pipeline bind point, with a+-- 'Vulkan.Core10.Handles.PipelineLayout' that is compatible for push+-- constants, with the 'Vulkan.Core10.Handles.PipelineLayout' used to+-- create the current 'Vulkan.Core10.Handles.Pipeline', as described in+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>+--+-- - #VUID-vkCmdDrawIndexed-None-02699# Descriptors in each bound+-- descriptor set, specified via 'cmdBindDescriptorSets', /must/ be+-- valid if they are statically used by the+-- 'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind point+-- used by this command+--+-- - #VUID-vkCmdDrawIndexed-None-02700# A valid pipeline /must/ be bound+-- to the pipeline bind point used by this command+--+-- - #VUID-vkCmdDrawIndexed-commandBuffer-02701# If the+-- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind+-- point used by this command requires any dynamic state, that state+-- /must/ have been set or inherited (if the+-- @VK_NV_inherited_viewport_scissor@ extension is enabled) for+-- @commandBuffer@, and done so after any previously bound pipeline+-- with the corresponding state not specified as dynamic+--+-- - #VUID-vkCmdDrawIndexed-None-02859# There /must/ not have been any+-- calls to dynamic state setting commands for any state not specified+-- as dynamic in the 'Vulkan.Core10.Handles.Pipeline' object bound to+-- the pipeline bind point used by this command, since that pipeline+-- was bound+--+-- - #VUID-vkCmdDrawIndexed-None-02702# If the+-- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind+-- point used by this command accesses a+-- 'Vulkan.Core10.Handles.Sampler' object that uses unnormalized+-- coordinates, that sampler /must/ not be used to sample from any+-- 'Vulkan.Core10.Handles.Image' with a+-- 'Vulkan.Core10.Handles.ImageView' of the type+-- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_3D',+-- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE',+-- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_1D_ARRAY',+-- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_2D_ARRAY' or+-- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE_ARRAY', in+-- any shader stage+--+-- - #VUID-vkCmdDrawIndexed-None-02703# If the+-- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind+-- point used by this command accesses a+-- 'Vulkan.Core10.Handles.Sampler' object that uses unnormalized+-- coordinates, that sampler /must/ not be used with any of the SPIR-V+-- @OpImageSample*@ or @OpImageSparseSample*@ instructions with+-- @ImplicitLod@, @Dref@ or @Proj@ in their name, in any shader stage+--+-- - #VUID-vkCmdDrawIndexed-None-02704# If the+-- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind+-- point used by this command accesses a+-- 'Vulkan.Core10.Handles.Sampler' object that uses unnormalized+-- coordinates, that sampler /must/ not be used with any of the SPIR-V+-- @OpImageSample*@ or @OpImageSparseSample*@ instructions that+-- includes a LOD bias or any offset values, in any shader stage+--+-- - #VUID-vkCmdDrawIndexed-uniformBuffers-06935# If any stage of the+-- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind+-- point used by this command accesses a uniform buffer, and that stage+-- was created without enabling either+-- 'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT'+-- or+-- 'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT'+-- for @uniformBuffers@, and the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>+-- feature is not enabled, that stage /must/ not access values outside+-- of the range of the buffer as specified in the descriptor set bound+-- to the same pipeline bind point+--+-- - #VUID-vkCmdDrawIndexed-storageBuffers-06936# If any stage of the+-- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind+-- point used by this command accesses a storage buffer, and that stage+-- was created without enabling either+-- 'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT'+-- or+-- 'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT'+-- for @storageBuffers@, and the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>+-- feature is not enabled, that stage /must/ not access values outside+-- of the range of the buffer as specified in the descriptor set bound+-- to the same pipeline bind point+--+-- - #VUID-vkCmdDrawIndexed-commandBuffer-02707# If @commandBuffer@ is an+-- unprotected command buffer and+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>+-- is not supported, any resource accessed by the+-- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind+-- point used by this command /must/ not be a protected resource+--+-- - #VUID-vkCmdDrawIndexed-None-06550# If the+-- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind+-- point used by this command accesses a+-- 'Vulkan.Core10.Handles.Sampler' or 'Vulkan.Core10.Handles.ImageView'+-- object that enables+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion>,+-- that object /must/ only be used with @OpImageSample*@ or+-- @OpImageSparseSample*@ instructions+--+-- - #VUID-vkCmdDrawIndexed-ConstOffset-06551# If the+-- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind+-- point used by this command accesses a+-- 'Vulkan.Core10.Handles.Sampler' or 'Vulkan.Core10.Handles.ImageView'+-- object that enables+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion>,+-- that object /must/ not use the @ConstOffset@ and @Offset@ operands+--+-- - #VUID-vkCmdDrawIndexed-None-04115# If a+-- 'Vulkan.Core10.Handles.ImageView' is accessed using @OpImageWrite@+-- as a result of this command, then the @Type@ of the @Texel@ operand+-- of that instruction /must/ have at least as many components as the+-- image view’s format+--+-- - #VUID-vkCmdDrawIndexed-OpImageWrite-04469# If a+-- 'Vulkan.Core10.Handles.BufferView' is accessed using @OpImageWrite@+-- as a result of this command, then the @Type@ of the @Texel@ operand+-- of that instruction /must/ have at least as many components as the+-- buffer view’s format+--+-- - #VUID-vkCmdDrawIndexed-SampledType-04470# If a+-- 'Vulkan.Core10.Handles.ImageView' with a+-- 'Vulkan.Core10.Enums.Format.Format' that has a 64-bit component+-- width is accessed as a result of this command, the @SampledType@ of+-- the @OpTypeImage@ operand of that instruction /must/ have a @Width@+-- of 64+--+-- - #VUID-vkCmdDrawIndexed-SampledType-04471# If a+-- 'Vulkan.Core10.Handles.ImageView' with a+-- 'Vulkan.Core10.Enums.Format.Format' that has a component width less+-- than 64-bit is accessed as a result of this command, the+-- @SampledType@ of the @OpTypeImage@ operand of that instruction+-- /must/ have a @Width@ of 32+--+-- - #VUID-vkCmdDrawIndexed-SampledType-04472# If a+-- 'Vulkan.Core10.Handles.BufferView' with a+-- 'Vulkan.Core10.Enums.Format.Format' that has a 64-bit component+-- width is accessed as a result of this command, the @SampledType@ of+-- the @OpTypeImage@ operand of that instruction /must/ have a @Width@+-- of 64+--+-- - #VUID-vkCmdDrawIndexed-SampledType-04473# If a+-- 'Vulkan.Core10.Handles.BufferView' with a+-- 'Vulkan.Core10.Enums.Format.Format' that has a component width less+-- than 64-bit is accessed as a result of this command, the+-- @SampledType@ of the @OpTypeImage@ operand of that instruction+-- /must/ have a @Width@ of 32+--+-- - #VUID-vkCmdDrawIndexed-sparseImageInt64Atomics-04474# If the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-sparseImageInt64Atomics sparseImageInt64Atomics>+-- feature is not enabled, 'Vulkan.Core10.Handles.Image' objects+-- created with the+-- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SPARSE_RESIDENCY_BIT'+-- flag /must/ not be accessed by atomic instructions through an+-- @OpTypeImage@ with a @SampledType@ with a @Width@ of 64 by this+-- command+--+-- - #VUID-vkCmdDrawIndexed-sparseImageInt64Atomics-04475# If the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-sparseImageInt64Atomics sparseImageInt64Atomics>+-- feature is not enabled, 'Vulkan.Core10.Handles.Buffer' objects+-- created with the+-- 'Vulkan.Core10.Enums.BufferCreateFlagBits.BUFFER_CREATE_SPARSE_RESIDENCY_BIT'+-- flag /must/ not be accessed by atomic instructions through an+-- @OpTypeImage@ with a @SampledType@ with a @Width@ of 64 by this+-- command+--+-- - #VUID-vkCmdDrawIndexed-OpImageWeightedSampleQCOM-06971# If+-- @OpImageWeightedSampleQCOM@ is used to sample a+-- 'Vulkan.Core10.Handles.ImageView' as a result of this command, then+-- the image view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM'+--+-- - #VUID-vkCmdDrawIndexed-OpImageWeightedSampleQCOM-06972# If+-- @OpImageWeightedSampleQCOM@ uses a 'Vulkan.Core10.Handles.ImageView'+-- as a sample weight image as a result of this command, then the image+-- view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM'+--+-- - #VUID-vkCmdDrawIndexed-OpImageBoxFilterQCOM-06973# If+-- @OpImageBoxFilterQCOM@ is used to sample a+-- 'Vulkan.Core10.Handles.ImageView' as a result of this command, then+-- the image view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM'+--+-- - #VUID-vkCmdDrawIndexed-OpImageBlockMatchSSDQCOM-06974# If+-- @OpImageBlockMatchSSDQCOM@ is used to read from an+-- 'Vulkan.Core10.Handles.ImageView' as a result of this command, then+-- the image view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM'+--+-- - #VUID-vkCmdDrawIndexed-OpImageBlockMatchSADQCOM-06975# If+-- @OpImageBlockMatchSADQCOM@ is used to read from an+-- 'Vulkan.Core10.Handles.ImageView' as a result of this command, then+-- the image view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM'+--+-- - #VUID-vkCmdDrawIndexed-OpImageBlockMatchSADQCOM-06976# If+-- @OpImageBlockMatchSADQCOM@ or OpImageBlockMatchSSDQCOM is used to+-- read from a reference image as result of this command, then the+-- specified reference coordinates /must/ not fail+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-integer-coordinate-validation integer texel coordinate validation>.+--+-- - #VUID-vkCmdDrawIndexed-OpImageWeightedSampleQCOM-06977# If+-- @OpImageWeightedSampleQCOM@, @OpImageBoxFilterQCOM@,+-- @OpImageBlockMatchSSDQCOM@, or @OpImageBlockMatchSADQCOM@ uses a+-- 'Vulkan.Core10.Handles.Sampler' as a result of this command, then+-- the sampler /must/ have been created with+-- 'Vulkan.Core10.Enums.SamplerCreateFlagBits.SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM'.+--+-- - #VUID-vkCmdDrawIndexed-OpImageWeightedSampleQCOM-06978# If any+-- command other than @OpImageWeightedSampleQCOM@,+-- @OpImageBoxFilterQCOM@, @OpImageBlockMatchSSDQCOM@, or+-- @OpImageBlockMatchSADQCOM@ uses a 'Vulkan.Core10.Handles.Sampler' as+-- a result of this command, then the sampler /must/ not have been+-- created with+-- 'Vulkan.Core10.Enums.SamplerCreateFlagBits.SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM'.+--+-- - #VUID-vkCmdDrawIndexed-renderPass-02684# The current render pass+-- /must/ be+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-compatibility compatible>+-- with the @renderPass@ member of the+-- 'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo' structure+-- specified when creating the 'Vulkan.Core10.Handles.Pipeline' bound+-- to+-- 'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_GRAPHICS'+--+-- - #VUID-vkCmdDrawIndexed-subpass-02685# The subpass index of the+-- current render pass /must/ be equal to the @subpass@ member of the+-- 'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo' structure+-- specified when creating the 'Vulkan.Core10.Handles.Pipeline' bound+-- to+-- 'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_GRAPHICS'+--+-- - #VUID-vkCmdDrawIndexed-None-02686# Every input attachment used by+-- the current subpass /must/ be bound to the pipeline via a descriptor+-- set+--+-- - #VUID-vkCmdDrawIndexed-None-06537# Memory backing image subresources+-- used as attachments in the current render pass /must/ not be written+-- in any way other than as an attachment by this command+--+-- - #VUID-vkCmdDrawIndexed-None-06538# If any recorded command in the+-- current subpass will write to an image subresource as an attachment,+-- this command /must/ not read from the memory backing that image+-- subresource in any other way than as an attachment+--+-- - #VUID-vkCmdDrawIndexed-None-06539# If any recorded command in the+-- current subpass will read from an image subresource used as an+-- attachment in any way other than as an attachment, this command+-- /must/ not write to that image subresource as an attachment+--+-- - #VUID-vkCmdDrawIndexed-None-06886# If the current render pass+-- instance uses a depth\/stencil attachment with a read-only layout+-- for the depth aspect,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragops-depth-write depth writes>+-- /must/ be disabled+--+-- - #VUID-vkCmdDrawIndexed-None-06887# If the current render pass+-- instance uses a depth\/stencil attachment with a read-only layout+-- for the stencil aspect and stencil test is enabled,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragops-stencil all stencil ops>+-- /must/ be 'Vulkan.Core10.Enums.StencilOp.STENCIL_OP_KEEP'+--+-- - #VUID-vkCmdDrawIndexed-maxMultiviewInstanceIndex-02688# If the draw+-- is recorded in a render pass instance with multiview enabled, the+-- maximum instance index /must/ be less than or equal to+-- 'Vulkan.Core11.Promoted_From_VK_KHR_multiview.PhysicalDeviceMultiviewProperties'::@maxMultiviewInstanceIndex@+--+-- - #VUID-vkCmdDrawIndexed-sampleLocationsEnable-02689# If the bound+-- graphics pipeline was created with+-- 'Vulkan.Extensions.VK_EXT_sample_locations.PipelineSampleLocationsStateCreateInfoEXT'::@sampleLocationsEnable@+-- set to 'Vulkan.Core10.FundamentalTypes.TRUE' and the current subpass+-- has a depth\/stencil attachment, then that attachment /must/ have+-- been created with the+-- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT'+-- bit set+--+-- - #VUID-vkCmdDrawIndexed-None-06666# If the bound graphics pipeline+-- state was created with the+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'+-- dynamic state enabled then+-- 'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT'+-- /must/ have been called in the current command buffer prior to this+-- drawing command+--+-- - #VUID-vkCmdDrawIndexed-viewportCount-03417# If the bound graphics+-- pipeline state was created with the+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'+-- dynamic state enabled, but not the+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT'+-- dynamic state enabled, then+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'+-- /must/ have been called in the current command buffer prior to this+-- drawing command, and the @viewportCount@ parameter of+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'+-- /must/ match the+-- 'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo'::@scissorCount@+-- of the pipeline+--+-- - #VUID-vkCmdDrawIndexed-scissorCount-03418# If the bound graphics+-- pipeline state was created with the+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT'+-- dynamic state enabled, but not the+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'+-- dynamic state enabled, then+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetScissorWithCount'+-- /must/ have been called in the current command buffer prior to this+-- drawing command, and the @scissorCount@ parameter of+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetScissorWithCount'+-- /must/ match the+-- 'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo'::@viewportCount@+-- of the pipeline+--+-- - #VUID-vkCmdDrawIndexed-viewportCount-03419# If the bound graphics+-- pipeline state was created with both the+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT'+-- and+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'+-- dynamic states enabled then both+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'+-- and+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetScissorWithCount'+-- /must/ have been called in the current command buffer prior to this+-- drawing command, and the @viewportCount@ parameter of+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'+-- /must/ match the @scissorCount@ parameter of+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetScissorWithCount'+--+-- - #VUID-vkCmdDrawIndexed-viewportCount-04137# If the bound graphics+-- pipeline state was created with the+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'+-- dynamic state enabled, but not the+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_W_SCALING_NV'+-- dynamic state enabled, then the bound graphics pipeline /must/ have+-- been created with+-- 'Vulkan.Extensions.VK_NV_clip_space_w_scaling.PipelineViewportWScalingStateCreateInfoNV'::@viewportCount@+-- greater or equal to the @viewportCount@ parameter in the last call+-- to+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'+--+-- - #VUID-vkCmdDrawIndexed-viewportCount-04138# If the bound graphics+-- pipeline state was created with the+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'+-- and+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_W_SCALING_NV'+-- dynamic states enabled then the @viewportCount@ parameter in the+-- last call to+-- 'Vulkan.Extensions.VK_NV_clip_space_w_scaling.cmdSetViewportWScalingNV'+-- /must/ be greater than or equal to the @viewportCount@ parameter in+-- the last call to+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'+--+-- - #VUID-vkCmdDrawIndexed-viewportCount-04139# If the bound graphics+-- pipeline state was created with the+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'+-- dynamic state enabled, but not the+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV'+-- dynamic state enabled, then the bound graphics pipeline /must/ have+-- been created with+-- 'Vulkan.Extensions.VK_NV_shading_rate_image.PipelineViewportShadingRateImageStateCreateInfoNV'::@viewportCount@+-- greater or equal to the @viewportCount@ parameter in the last call+-- to+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'+--+-- - #VUID-vkCmdDrawIndexed-viewportCount-04140# If the bound graphics+-- pipeline state was created with the+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'+-- and+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV'+-- dynamic states enabled then the @viewportCount@ parameter in the+-- last call to+-- 'Vulkan.Extensions.VK_NV_shading_rate_image.cmdSetViewportShadingRatePaletteNV'+-- /must/ be greater than or equal to the @viewportCount@ parameter in+-- the last call to+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'+--+-- - #VUID-vkCmdDrawIndexed-VkPipelineVieportCreateInfo-04141# If the+-- bound graphics pipeline state was created with the+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'+-- dynamic state enabled and a+-- 'Vulkan.Extensions.VK_NV_viewport_swizzle.PipelineViewportSwizzleStateCreateInfoNV'+-- structure chained from+-- 'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo', then the+-- bound graphics pipeline /must/ have been created with+-- 'Vulkan.Extensions.VK_NV_viewport_swizzle.PipelineViewportSwizzleStateCreateInfoNV'::@viewportCount@+-- greater or equal to the @viewportCount@ parameter in the last call+-- to+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'+--+-- - #VUID-vkCmdDrawIndexed-VkPipelineVieportCreateInfo-04142# If the+-- bound graphics pipeline state was created with the+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'+-- dynamic state enabled and a+-- 'Vulkan.Extensions.VK_NV_scissor_exclusive.PipelineViewportExclusiveScissorStateCreateInfoNV'+-- structure chained from+-- 'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo', then the+-- bound graphics pipeline /must/ have been created with+-- 'Vulkan.Extensions.VK_NV_scissor_exclusive.PipelineViewportExclusiveScissorStateCreateInfoNV'::@exclusiveScissorCount@+-- greater or equal to the @viewportCount@ parameter in the last call+-- to+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'+--+-- - #VUID-vkCmdDrawIndexed-None-04876# If the bound graphics pipeline+-- state was created with the+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE'+-- dynamic state enabled then+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'+-- /must/ have been called in the current command buffer prior to this+-- drawing command+--+-- - #VUID-vkCmdDrawIndexed-None-04877# If the bound graphics pipeline+-- state was created with the+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BIAS_ENABLE'+-- dynamic state enabled then+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetDepthBiasEnable'+-- /must/ have been called in the current command buffer prior to this+-- drawing command+--+-- - #VUID-vkCmdDrawIndexed-logicOp-04878# If the bound graphics pipeline+-- state was created with the+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LOGIC_OP_EXT'+-- dynamic state enabled then+-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetLogicOpEXT'+-- /must/ have been called in the current command buffer prior to this+-- drawing command and the @logicOp@ /must/ be a valid+-- 'Vulkan.Core10.Enums.LogicOp.LogicOp' value+--+-- - #VUID-vkCmdDrawIndexed-primitiveFragmentShadingRateWithMultipleViewports-04552#+-- If the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-primitiveFragmentShadingRateWithMultipleViewports primitiveFragmentShadingRateWithMultipleViewports>+-- limit is not supported, the bound graphics pipeline was created with+-- the+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'+-- dynamic state enabled, and any of the shader stages of the bound+-- graphics pipeline write to the @PrimitiveShadingRateKHR@ built-in,+-- then+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'+-- /must/ have been called in the current command buffer prior to this+-- drawing command, and the @viewportCount@ parameter of+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'+-- /must/ be @1@+--+-- - #VUID-vkCmdDrawIndexed-blendEnable-04727# If rasterization is not+-- disabled in the bound graphics pipeline, then for each color+-- attachment in the subpass, if the corresponding image view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- do not contain+-- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT',+-- then the @blendEnable@ member of the corresponding element of the+-- @pAttachments@ member of @pColorBlendState@ /must/ be+-- 'Vulkan.Core10.FundamentalTypes.FALSE'+--+-- - #VUID-vkCmdDrawIndexed-rasterizationSamples-04740# If rasterization+-- is not disabled in the bound graphics pipeline, and neither the+-- @VK_AMD_mixed_attachment_samples@ nor the+-- @VK_NV_framebuffer_mixed_samples@ extensions are enabled, then+-- 'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'::@rasterizationSamples@+-- /must/ be the same as the current subpass color and\/or+-- depth\/stencil attachments+--+-- - #VUID-vkCmdDrawIndexed-imageView-06172# If the current render pass+-- instance was begun with+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+-- the @imageView@ member of @pDepthAttachment@ is not+-- 'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of+-- @pDepthAttachment@ is+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL',+-- this command /must/ not write any values to the depth attachment+--+-- - #VUID-vkCmdDrawIndexed-imageView-06173# If the current render pass+-- instance was begun with+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+-- the @imageView@ member of @pStencilAttachment@ is not+-- 'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of+-- @pStencilAttachment@ is+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL',+-- this command /must/ not write any values to the stencil attachment+--+-- - #VUID-vkCmdDrawIndexed-imageView-06174# If the current render pass+-- instance was begun with+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+-- the @imageView@ member of @pDepthAttachment@ is not+-- 'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of+-- @pDepthAttachment@ is+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL',+-- this command /must/ not write any values to the depth attachment+--+-- - #VUID-vkCmdDrawIndexed-imageView-06175# If the current render pass+-- instance was begun with+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+-- the @imageView@ member of @pStencilAttachment@ is not+-- 'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of+-- @pStencilAttachment@ is+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL',+-- this command /must/ not write any values to the stencil attachment+--+-- - #VUID-vkCmdDrawIndexed-imageView-06176# If the current render pass+-- instance was begun with+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+-- the @imageView@ member of @pDepthAttachment@ is not+-- 'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of+-- @pDepthAttachment@ is+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL',+-- this command /must/ not write any values to the depth attachment+--+-- - #VUID-vkCmdDrawIndexed-imageView-06177# If the current render pass+-- instance was begun with+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+-- the @imageView@ member of @pStencilAttachment@ is not+-- 'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of+-- @pStencilAttachment@ is+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL',+-- this command /must/ not write any values to the stencil attachment+--+-- - #VUID-vkCmdDrawIndexed-viewMask-06178# If the current render pass+-- instance was begun with+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+-- the currently bound graphics pipeline /must/ have been created with+-- a+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@viewMask@+-- equal to+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@viewMask@+--+-- - #VUID-vkCmdDrawIndexed-colorAttachmentCount-06179# If the current+-- render pass instance was begun with+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+-- the currently bound graphics pipeline /must/ have been created with+-- a+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@colorAttachmentCount@+-- equal to+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@+--+-- - #VUID-vkCmdDrawIndexed-colorAttachmentCount-06180# If the current+-- render pass instance was begun with+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'+-- and+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@+-- greater than @0@, then each element of the+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@+-- array with a @imageView@ not equal to+-- 'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created+-- with a 'Vulkan.Core10.Enums.Format.Format' equal to the+-- corresponding element of+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@+-- used to create the currently bound graphics pipeline+--+-- - #VUID-vkCmdDrawIndexed-attachmentCount-06667# If the bound graphics+-- pipeline state was created with the+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT'+-- dynamic state enabled then+-- 'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'+-- /must/ have been called in the current command buffer prior to this+-- drawing command, and the @attachmentCount@ parameter of+-- 'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'+-- /must/ be greater than or equal to the+-- 'Vulkan.Core10.Pipeline.PipelineColorBlendStateCreateInfo'::@attachmentCount@+-- of the currently bound graphics pipeline+--+-- - #VUID-vkCmdDrawIndexed-attachmentCount-06815# If the bound graphics+-- pipeline state was created with the+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT'+-- dynamic state enabled then+-- 'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'+-- /must/ have been called in the current command buffer prior to this+-- drawing command, and the @attachmentCount@ parameter of+-- 'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'+-- /must/ be less than or equal to the @maxColorAttachments@ member of+-- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'+--+-- - #VUID-vkCmdDrawIndexed-pDepthAttachment-06181# If the current render+-- pass instance was begun with+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'+-- and+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@+-- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@depthAttachmentFormat@+-- used to create the currently bound graphics pipeline /must/ be equal+-- to the 'Vulkan.Core10.Enums.Format.Format' used to create+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@+--+-- - #VUID-vkCmdDrawIndexed-pStencilAttachment-06182# If the current+-- render pass instance was begun with+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'+-- and+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@+-- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@stencilAttachmentFormat@+-- used to create the currently bound graphics pipeline /must/ be equal+-- to the 'Vulkan.Core10.Enums.Format.Format' used to create+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@+--+-- - #VUID-vkCmdDrawIndexed-imageView-06183# If the current render pass+-- instance was begun with+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'+-- and+-- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingFragmentShadingRateAttachmentInfoKHR'::@imageView@+-- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the currently+-- bound graphics pipeline /must/ have been created with+-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR'+--+-- - #VUID-vkCmdDrawIndexed-imageView-06184# If the current render pass+-- instance was begun with+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'+-- and+-- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingFragmentDensityMapAttachmentInfoEXT'::@imageView@+-- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the currently+-- bound graphics pipeline /must/ have been created with+-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT'+--+-- - #VUID-vkCmdDrawIndexed-colorAttachmentCount-06185# If the currently+-- bound pipeline was created with a+-- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'+-- or+-- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'+-- structure, and the current render pass instance was begun with+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'+-- with a+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@+-- parameter greater than @0@, then each element of the+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@+-- array with a @imageView@ not equal to+-- 'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created+-- with a sample count equal to the corresponding element of the+-- @pColorAttachmentSamples@ member of+-- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'+-- or+-- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'+-- used to create the currently bound graphics pipeline+--+-- - #VUID-vkCmdDrawIndexed-pDepthAttachment-06186# If the current render+-- pass instance was begun with+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+-- the currently bound pipeline was created with a+-- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'+-- or+-- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'+-- structure, and+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@+-- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of the+-- @depthStencilAttachmentSamples@ member of+-- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'+-- or+-- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'+-- used to create the currently bound graphics pipeline /must/ be equal+-- to the sample count used to create+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@+--+-- - #VUID-vkCmdDrawIndexed-pStencilAttachment-06187# If the current+-- render pass instance was begun with+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+-- the currently bound pipeline was created with a+-- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'+-- or+-- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'+-- structure, and+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@+-- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of the+-- @depthStencilAttachmentSamples@ member of+-- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'+-- or+-- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'+-- used to create the currently bound graphics pipeline /must/ be equal+-- to the sample count used to create+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@+--+-- - #VUID-vkCmdDrawIndexed-colorAttachmentCount-06188# If the currently+-- bound pipeline was created without a+-- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'+-- or+-- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'+-- structure, and the current render pass instance was begun with+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'+-- with a+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@+-- parameter greater than @0@, then each element of the+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@+-- array with a @imageView@ not equal to+-- 'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created+-- with a sample count equal to the value of+-- 'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'::@rasterizationSamples@+-- used to create the currently bound graphics pipeline+--+-- - #VUID-vkCmdDrawIndexed-pDepthAttachment-06189# If the current render+-- pass instance was begun with+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+-- the currently bound pipeline was created without a+-- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'+-- or+-- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'+-- structure, and+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@+-- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of+-- 'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'::@rasterizationSamples@+-- used to create the currently bound graphics pipeline /must/ be equal+-- to the sample count used to create+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@+--+-- - #VUID-vkCmdDrawIndexed-pStencilAttachment-06190# If the current+-- render pass instance was begun with+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+-- the currently bound pipeline was created without a+-- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'+-- or+-- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'+-- structure, and+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@+-- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of+-- 'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'::@rasterizationSamples@+-- used to create the currently bound graphics pipeline /must/ be equal+-- to the sample count used to create+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@+--+-- - #VUID-vkCmdDrawIndexed-renderPass-06198# If the current render pass+-- instance was begun with+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+-- the currently bound pipeline /must/ have been created with a+-- 'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo'::@renderPass@+-- equal to 'Vulkan.Core10.APIConstants.NULL_HANDLE'+--+-- - #VUID-vkCmdDrawIndexed-primitivesGeneratedQueryWithRasterizerDiscard-06708#+-- If the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-primitivesGeneratedQueryWithRasterizerDiscard primitivesGeneratedQueryWithRasterizerDiscard>+-- feature is not enabled and the+-- 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PRIMITIVES_GENERATED_EXT'+-- query is active,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-discard rasterization discard>+-- /must/ not be enabled.+--+-- - #VUID-vkCmdDrawIndexed-primitivesGeneratedQueryWithNonZeroStreams-06709#+-- If the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-primitivesGeneratedQueryWithNonZeroStreams primitivesGeneratedQueryWithNonZeroStreams>+-- feature is not enabled and the+-- 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PRIMITIVES_GENERATED_EXT'+-- query is active, the bound graphics pipeline /must/ not have been+-- created with a non-zero value in+-- 'Vulkan.Extensions.VK_EXT_transform_feedback.PipelineRasterizationStateStreamCreateInfoEXT'::@rasterizationStream@.+--+-- - #VUID-vkCmdDrawIndexed-stage-07073# If the currently bound pipeline+-- was created with the+-- 'Vulkan.Core10.Pipeline.PipelineShaderStageCreateInfo'::@stage@+-- member of an element of+-- 'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo'::@pStages@ set+-- to+-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT',+-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_CONTROL_BIT',+-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT'+-- or+-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT',+-- then+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#queries-mesh-shader Mesh Shader Queries>+-- must not be active+--+-- - #VUID-vkCmdDrawIndexed-commandBuffer-02712# If @commandBuffer@ is a+-- protected command buffer and+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>+-- is not supported, any resource written to by the+-- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind+-- point used by this command /must/ not be an unprotected resource+--+-- - #VUID-vkCmdDrawIndexed-commandBuffer-02713# If @commandBuffer@ is a+-- protected command buffer and+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>+-- is not supported, pipeline stages other than the framebuffer-space+-- and compute stages in the 'Vulkan.Core10.Handles.Pipeline' object+-- bound to the pipeline bind point used by this command /must/ not+-- write to any resource+--+-- - #VUID-vkCmdDrawIndexed-commandBuffer-04617# If any of the shader+-- stages of the 'Vulkan.Core10.Handles.Pipeline' bound to the pipeline+-- bind point used by this command uses the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-RayQueryKHR RayQueryKHR>+-- capability, then @commandBuffer@ /must/ not be a protected command+-- buffer+--+-- - #VUID-vkCmdDrawIndexed-None-04007# All vertex input bindings+-- accessed via vertex input variables declared in the vertex shader+-- entry point’s interface /must/ have either valid or+-- 'Vulkan.Core10.APIConstants.NULL_HANDLE' buffers bound+--+-- - #VUID-vkCmdDrawIndexed-None-04008# If the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-nullDescriptor nullDescriptor>+-- feature is not enabled, all vertex input bindings accessed via+-- vertex input variables declared in the vertex shader entry point’s+-- interface /must/ not be 'Vulkan.Core10.APIConstants.NULL_HANDLE'+--+-- - #VUID-vkCmdDrawIndexed-None-02721# For a given vertex buffer+-- binding, any attribute data fetched /must/ be entirely contained+-- within the corresponding vertex buffer binding, as described in+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fxvertex-input ???>+--+-- - #VUID-vkCmdDrawIndexed-primitiveTopology-03420# If the bound+-- graphics pipeline state was created with the+-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT'+-- dynamic state enabled then+-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopologyEXT'+-- /must/ have been called in the current command buffer prior to this+-- drawing command, and the @primitiveTopology@ parameter of+-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopologyEXT'+-- /must/ be of the same+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#drawing-primitive-topology-class topology class>+-- as the pipeline+-- 'Vulkan.Core10.Pipeline.PipelineInputAssemblyStateCreateInfo'::@topology@+-- state+--+-- - #VUID-vkCmdDrawIndexed-None-04912# If the bound graphics pipeline+-- was created with both the+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'+-- and+-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT'+-- dynamic states enabled, then+-- 'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.cmdSetVertexInputEXT'+-- /must/ have been called in the current command buffer prior to this+-- draw command+--+-- - #VUID-vkCmdDrawIndexed-pStrides-04913# If the bound graphics+-- pipeline was created with the+-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT'+-- dynamic state enabled, but not the+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'+-- dynamic state enabled, then+-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdBindVertexBuffers2EXT'+-- /must/ have been called in the current command buffer prior to this+-- draw command, and the @pStrides@ parameter of+-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdBindVertexBuffers2EXT'+-- /must/ not be @NULL@+--+-- - #VUID-vkCmdDrawIndexed-None-04914# If the bound graphics pipeline+-- state was created with the+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'+-- dynamic state enabled, then+-- 'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.cmdSetVertexInputEXT'+-- /must/ have been called in the current command buffer prior to this+-- draw command+--+-- - #VUID-vkCmdDrawIndexed-None-04875# If the bound graphics pipeline+-- state was created with the+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT'+-- dynamic state enabled then+-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetPatchControlPointsEXT'+-- /must/ have been called in the current command buffer prior to this+-- drawing command+--+-- - #VUID-vkCmdDrawIndexed-None-04879# If the bound graphics pipeline+-- state was created with the+-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE_EXT'+-- dynamic state enabled then+-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetPrimitiveRestartEnableEXT'+-- /must/ have been called in the current command buffer prior to this+-- drawing command+--+-- - #VUID-vkCmdDrawIndexed-stage-06481# The bound graphics pipeline+-- /must/ not have been created with the+-- 'Vulkan.Core10.Pipeline.PipelineShaderStageCreateInfo'::@stage@+-- member of an element of+-- 'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo'::@pStages@ set+-- to+-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT'+-- or+-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'+--+-- - #VUID-vkCmdDrawIndexed-firstIndex-04932# (@indexSize@ ×+-- (@firstIndex@ + @indexCount@) + @offset@) /must/ be less than or+-- equal to the size of the bound index buffer, with @indexSize@ being+-- based on the type specified by @indexType@, where the index buffer,+-- @indexType@, and @offset@ are specified via 'cmdBindIndexBuffer'+--+-- == Valid Usage (Implicit)+--+-- - #VUID-vkCmdDrawIndexed-commandBuffer-parameter# @commandBuffer@+-- /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- - #VUID-vkCmdDrawIndexed-commandBuffer-recording# @commandBuffer@+-- /must/ be in the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording state>+--+-- - #VUID-vkCmdDrawIndexed-commandBuffer-cmdpool# The+-- 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+-- allocated from /must/ support graphics operations+--+-- - #VUID-vkCmdDrawIndexed-renderpass# This command /must/ only be+-- called inside of a render pass instance+--+-- - #VUID-vkCmdDrawIndexed-videocoding# This command /must/ only be+-- called outside of a video coding scope+--+-- == Host Synchronization+--+-- - Host access to @commandBuffer@ /must/ be externally synchronized+--+-- - Host access to the 'Vulkan.Core10.Handles.CommandPool' that+-- @commandBuffer@ was allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- \'+--+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================++-- | Primary | Inside | Outside | Graphics |+-- | Secondary | | | |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,+-- 'Vulkan.Core10.Handles.CommandBuffer'+cmdDrawIndexed :: forall io+ . (MonadIO io)+ => -- | @commandBuffer@ is the command buffer into which the command is+ -- recorded.+ CommandBuffer+ -> -- | @indexCount@ is the number of vertices to draw.+ ("indexCount" ::: Word32)+ -> -- | @instanceCount@ is the number of instances to draw.+ ("instanceCount" ::: Word32)+ -> -- | @firstIndex@ is the base index within the index buffer.+ ("firstIndex" ::: Word32)+ -> -- | @vertexOffset@ is the value added to the vertex index before indexing+ -- into the vertex buffer.+ ("vertexOffset" ::: Int32)+ -> -- | @firstInstance@ is the instance ID of the first instance to draw.+ ("firstInstance" ::: Word32)+ -> io ()+cmdDrawIndexed commandBuffer indexCount instanceCount firstIndex vertexOffset firstInstance = liftIO $ do+ let vkCmdDrawIndexedPtr = pVkCmdDrawIndexed (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)+ unless (vkCmdDrawIndexedPtr /= nullFunPtr) $+ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdDrawIndexed is null" Nothing Nothing+ let vkCmdDrawIndexed' = mkVkCmdDrawIndexed vkCmdDrawIndexedPtr+ traceAroundEvent "vkCmdDrawIndexed" (vkCmdDrawIndexed' (commandBufferHandle (commandBuffer)) (indexCount) (instanceCount) (firstIndex) (vertexOffset) (firstInstance))+ pure $ ()+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+ unsafe+#endif+ "dynamic" mkVkCmdDrawIndirect+ :: FunPtr (Ptr CommandBuffer_T -> Buffer -> DeviceSize -> Word32 -> Word32 -> IO ()) -> Ptr CommandBuffer_T -> Buffer -> DeviceSize -> Word32 -> Word32 -> IO ()++-- | vkCmdDrawIndirect - Draw primitives with indirect parameters+--+-- = Description+--+-- 'cmdDrawIndirect' behaves similarly to 'cmdDraw' except that the+-- parameters are read by the device from a buffer during execution.+-- @drawCount@ draws are executed by the command, with parameters taken+-- from @buffer@ starting at @offset@ and increasing by @stride@ bytes for+-- each successive draw. The parameters of each draw are encoded in an+-- array of 'Vulkan.Core10.OtherTypes.DrawIndirectCommand' structures. If+-- @drawCount@ is less than or equal to one, @stride@ is ignored.+--+-- == Valid Usage+--+-- - #VUID-vkCmdDrawIndirect-magFilter-04553# If a+-- 'Vulkan.Core10.Handles.Sampler' created with @magFilter@ or+-- @minFilter@ equal to 'Vulkan.Core10.Enums.Filter.FILTER_LINEAR' and+-- @compareEnable@ equal to 'Vulkan.Core10.FundamentalTypes.FALSE' is+-- used to sample a 'Vulkan.Core10.Handles.ImageView' as a result of+-- this command, then the image view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain+-- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT'+--+-- - #VUID-vkCmdDrawIndirect-mipmapMode-04770# If a+-- 'Vulkan.Core10.Handles.Sampler' created with @mipmapMode@ equal to+-- 'Vulkan.Core10.Enums.SamplerMipmapMode.SAMPLER_MIPMAP_MODE_LINEAR'+-- and @compareEnable@ equal to 'Vulkan.Core10.FundamentalTypes.FALSE'+-- is used to sample a 'Vulkan.Core10.Handles.ImageView' as a result of+-- this command, then the image view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain+-- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT'+--+-- - #VUID-vkCmdDrawIndirect-None-06479# If a+-- 'Vulkan.Core10.Handles.ImageView' is sampled with+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-depth-compare-operation depth comparison>,+-- the image view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT'+--+-- - #VUID-vkCmdDrawIndirect-None-02691# If a+-- 'Vulkan.Core10.Handles.ImageView' is accessed using atomic+-- operations as a result of this command, then the image view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain+-- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT'+--+-- - #VUID-vkCmdDrawIndirect-None-02692# If a+-- 'Vulkan.Core10.Handles.ImageView' is sampled with+-- 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as a result of this+-- command, then the image view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain+-- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT'+--+-- - #VUID-vkCmdDrawIndirect-filterCubic-02694# Any+-- 'Vulkan.Core10.Handles.ImageView' being sampled with+-- 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as a result of this+-- command /must/ have a+-- 'Vulkan.Core10.Enums.ImageViewType.ImageViewType' and format that+-- supports cubic filtering, as specified by+-- 'Vulkan.Extensions.VK_EXT_filter_cubic.FilterCubicImageViewImageFormatPropertiesEXT'::@filterCubic@+-- returned by+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceImageFormatProperties2'+--+-- - #VUID-vkCmdDrawIndirect-filterCubicMinmax-02695# Any+-- 'Vulkan.Core10.Handles.ImageView' being sampled with+-- 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' with a reduction mode+-- of either+-- 'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MIN'+-- or+-- 'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MAX'+-- as a result of this command /must/ have a+-- 'Vulkan.Core10.Enums.ImageViewType.ImageViewType' and format that+-- supports cubic filtering together with minmax filtering, as+-- specified by+-- 'Vulkan.Extensions.VK_EXT_filter_cubic.FilterCubicImageViewImageFormatPropertiesEXT'::@filterCubicMinmax@+-- returned by+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceImageFormatProperties2'+--+-- - #VUID-vkCmdDrawIndirect-flags-02696# Any+-- 'Vulkan.Core10.Handles.Image' created with a+-- 'Vulkan.Core10.Image.ImageCreateInfo'::@flags@ containing+-- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_CORNER_SAMPLED_BIT_NV'+-- sampled as a result of this command /must/ only be sampled using a+-- 'Vulkan.Core10.Enums.SamplerAddressMode.SamplerAddressMode' of+-- 'Vulkan.Core10.Enums.SamplerAddressMode.SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE'+--+-- - #VUID-vkCmdDrawIndirect-OpTypeImage-07027# For any+-- 'Vulkan.Core10.Handles.ImageView' being written as a storage image+-- where the image format field of the @OpTypeImage@ is @Unknown@, the+-- view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT'+--+-- - #VUID-vkCmdDrawIndirect-OpTypeImage-07028# For any+-- 'Vulkan.Core10.Handles.ImageView' being read as a storage image+-- where the image format field of the @OpTypeImage@ is @Unknown@, the+-- view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT'+--+-- - #VUID-vkCmdDrawIndirect-OpTypeImage-07029# For any+-- 'Vulkan.Core10.Handles.BufferView' being written as a storage texel+-- buffer where the image format field of the @OpTypeImage@ is+-- @Unknown@, the view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkFormatProperties3 buffer features>+-- /must/ contain+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT'+--+-- - #VUID-vkCmdDrawIndirect-OpTypeImage-07030# Any+-- 'Vulkan.Core10.Handles.BufferView' being read as a storage texel+-- buffer where the image format field of the @OpTypeImage@ is+-- @Unknown@ then the view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkFormatProperties3 buffer features>+-- /must/ contain+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT'+--+-- - #VUID-vkCmdDrawIndirect-None-02697# For each set /n/ that is+-- statically used by the 'Vulkan.Core10.Handles.Pipeline' bound to the+-- pipeline bind point used by this command, a descriptor set /must/+-- have been bound to /n/ at the same pipeline bind point, with a+-- 'Vulkan.Core10.Handles.PipelineLayout' that is compatible for set+-- /n/, with the 'Vulkan.Core10.Handles.PipelineLayout' used to create+-- the current 'Vulkan.Core10.Handles.Pipeline', as described in+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>+--+-- - #VUID-vkCmdDrawIndirect-maintenance4-06425# If the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-maintenance4 maintenance4>+-- feature is not enabled, then for each push constant that is+-- statically used by the 'Vulkan.Core10.Handles.Pipeline' bound to the+-- pipeline bind point used by this command, a push constant value+-- /must/ have been set for the same pipeline bind point, with a+-- 'Vulkan.Core10.Handles.PipelineLayout' that is compatible for push+-- constants, with the 'Vulkan.Core10.Handles.PipelineLayout' used to+-- create the current 'Vulkan.Core10.Handles.Pipeline', as described in+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>+--+-- - #VUID-vkCmdDrawIndirect-None-02699# Descriptors in each bound+-- descriptor set, specified via 'cmdBindDescriptorSets', /must/ be+-- valid if they are statically used by the+-- 'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind point+-- used by this command+--+-- - #VUID-vkCmdDrawIndirect-None-02700# A valid pipeline /must/ be bound+-- to the pipeline bind point used by this command+--+-- - #VUID-vkCmdDrawIndirect-commandBuffer-02701# If the+-- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind+-- point used by this command requires any dynamic state, that state+-- /must/ have been set or inherited (if the+-- @VK_NV_inherited_viewport_scissor@ extension is enabled) for+-- @commandBuffer@, and done so after any previously bound pipeline+-- with the corresponding state not specified as dynamic+--+-- - #VUID-vkCmdDrawIndirect-None-02859# There /must/ not have been any+-- calls to dynamic state setting commands for any state not specified+-- as dynamic in the 'Vulkan.Core10.Handles.Pipeline' object bound to+-- the pipeline bind point used by this command, since that pipeline+-- was bound+--+-- - #VUID-vkCmdDrawIndirect-None-02702# If the+-- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind+-- point used by this command accesses a+-- 'Vulkan.Core10.Handles.Sampler' object that uses unnormalized+-- coordinates, that sampler /must/ not be used to sample from any+-- 'Vulkan.Core10.Handles.Image' with a+-- 'Vulkan.Core10.Handles.ImageView' of the type+-- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_3D',+-- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE',+-- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_1D_ARRAY',+-- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_2D_ARRAY' or+-- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE_ARRAY', in+-- any shader stage+--+-- - #VUID-vkCmdDrawIndirect-None-02703# If the+-- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind+-- point used by this command accesses a+-- 'Vulkan.Core10.Handles.Sampler' object that uses unnormalized+-- coordinates, that sampler /must/ not be used with any of the SPIR-V+-- @OpImageSample*@ or @OpImageSparseSample*@ instructions with+-- @ImplicitLod@, @Dref@ or @Proj@ in their name, in any shader stage+--+-- - #VUID-vkCmdDrawIndirect-None-02704# If the+-- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind+-- point used by this command accesses a+-- 'Vulkan.Core10.Handles.Sampler' object that uses unnormalized+-- coordinates, that sampler /must/ not be used with any of the SPIR-V+-- @OpImageSample*@ or @OpImageSparseSample*@ instructions that+-- includes a LOD bias or any offset values, in any shader stage+--+-- - #VUID-vkCmdDrawIndirect-uniformBuffers-06935# If any stage of the+-- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind+-- point used by this command accesses a uniform buffer, and that stage+-- was created without enabling either+-- 'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT'+-- or+-- 'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT'+-- for @uniformBuffers@, and the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>+-- feature is not enabled, that stage /must/ not access values outside+-- of the range of the buffer as specified in the descriptor set bound+-- to the same pipeline bind point+--+-- - #VUID-vkCmdDrawIndirect-storageBuffers-06936# If any stage of the+-- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind+-- point used by this command accesses a storage buffer, and that stage+-- was created without enabling either+-- 'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT'+-- or+-- 'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT'+-- for @storageBuffers@, and the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>+-- feature is not enabled, that stage /must/ not access values outside+-- of the range of the buffer as specified in the descriptor set bound+-- to the same pipeline bind point+--+-- - #VUID-vkCmdDrawIndirect-commandBuffer-02707# If @commandBuffer@ is+-- an unprotected command buffer and+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>+-- is not supported, any resource accessed by the+-- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind+-- point used by this command /must/ not be a protected resource+--+-- - #VUID-vkCmdDrawIndirect-None-06550# If the+-- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind+-- point used by this command accesses a+-- 'Vulkan.Core10.Handles.Sampler' or 'Vulkan.Core10.Handles.ImageView'+-- object that enables+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion>,+-- that object /must/ only be used with @OpImageSample*@ or+-- @OpImageSparseSample*@ instructions+--+-- - #VUID-vkCmdDrawIndirect-ConstOffset-06551# If the+-- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind+-- point used by this command accesses a+-- 'Vulkan.Core10.Handles.Sampler' or 'Vulkan.Core10.Handles.ImageView'+-- object that enables+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion>,+-- that object /must/ not use the @ConstOffset@ and @Offset@ operands+--+-- - #VUID-vkCmdDrawIndirect-None-04115# If a+-- 'Vulkan.Core10.Handles.ImageView' is accessed using @OpImageWrite@+-- as a result of this command, then the @Type@ of the @Texel@ operand+-- of that instruction /must/ have at least as many components as the+-- image view’s format+--+-- - #VUID-vkCmdDrawIndirect-OpImageWrite-04469# If a+-- 'Vulkan.Core10.Handles.BufferView' is accessed using @OpImageWrite@+-- as a result of this command, then the @Type@ of the @Texel@ operand+-- of that instruction /must/ have at least as many components as the+-- buffer view’s format+--+-- - #VUID-vkCmdDrawIndirect-SampledType-04470# If a+-- 'Vulkan.Core10.Handles.ImageView' with a+-- 'Vulkan.Core10.Enums.Format.Format' that has a 64-bit component+-- width is accessed as a result of this command, the @SampledType@ of+-- the @OpTypeImage@ operand of that instruction /must/ have a @Width@+-- of 64+--+-- - #VUID-vkCmdDrawIndirect-SampledType-04471# If a+-- 'Vulkan.Core10.Handles.ImageView' with a+-- 'Vulkan.Core10.Enums.Format.Format' that has a component width less+-- than 64-bit is accessed as a result of this command, the+-- @SampledType@ of the @OpTypeImage@ operand of that instruction+-- /must/ have a @Width@ of 32+--+-- - #VUID-vkCmdDrawIndirect-SampledType-04472# If a+-- 'Vulkan.Core10.Handles.BufferView' with a+-- 'Vulkan.Core10.Enums.Format.Format' that has a 64-bit component+-- width is accessed as a result of this command, the @SampledType@ of+-- the @OpTypeImage@ operand of that instruction /must/ have a @Width@+-- of 64+--+-- - #VUID-vkCmdDrawIndirect-SampledType-04473# If a+-- 'Vulkan.Core10.Handles.BufferView' with a+-- 'Vulkan.Core10.Enums.Format.Format' that has a component width less+-- than 64-bit is accessed as a result of this command, the+-- @SampledType@ of the @OpTypeImage@ operand of that instruction+-- /must/ have a @Width@ of 32+--+-- - #VUID-vkCmdDrawIndirect-sparseImageInt64Atomics-04474# If the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-sparseImageInt64Atomics sparseImageInt64Atomics>+-- feature is not enabled, 'Vulkan.Core10.Handles.Image' objects+-- created with the+-- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SPARSE_RESIDENCY_BIT'+-- flag /must/ not be accessed by atomic instructions through an+-- @OpTypeImage@ with a @SampledType@ with a @Width@ of 64 by this+-- command+--+-- - #VUID-vkCmdDrawIndirect-sparseImageInt64Atomics-04475# If the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-sparseImageInt64Atomics sparseImageInt64Atomics>+-- feature is not enabled, 'Vulkan.Core10.Handles.Buffer' objects+-- created with the+-- 'Vulkan.Core10.Enums.BufferCreateFlagBits.BUFFER_CREATE_SPARSE_RESIDENCY_BIT'+-- flag /must/ not be accessed by atomic instructions through an+-- @OpTypeImage@ with a @SampledType@ with a @Width@ of 64 by this+-- command+--+-- - #VUID-vkCmdDrawIndirect-OpImageWeightedSampleQCOM-06971# If+-- @OpImageWeightedSampleQCOM@ is used to sample a+-- 'Vulkan.Core10.Handles.ImageView' as a result of this command, then+-- the image view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM'+--+-- - #VUID-vkCmdDrawIndirect-OpImageWeightedSampleQCOM-06972# If+-- @OpImageWeightedSampleQCOM@ uses a 'Vulkan.Core10.Handles.ImageView'+-- as a sample weight image as a result of this command, then the image+-- view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM'+--+-- - #VUID-vkCmdDrawIndirect-OpImageBoxFilterQCOM-06973# If+-- @OpImageBoxFilterQCOM@ is used to sample a+-- 'Vulkan.Core10.Handles.ImageView' as a result of this command, then+-- the image view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM'+--+-- - #VUID-vkCmdDrawIndirect-OpImageBlockMatchSSDQCOM-06974# If+-- @OpImageBlockMatchSSDQCOM@ is used to read from an+-- 'Vulkan.Core10.Handles.ImageView' as a result of this command, then+-- the image view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM'+--+-- - #VUID-vkCmdDrawIndirect-OpImageBlockMatchSADQCOM-06975# If+-- @OpImageBlockMatchSADQCOM@ is used to read from an+-- 'Vulkan.Core10.Handles.ImageView' as a result of this command, then+-- the image view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM'+--+-- - #VUID-vkCmdDrawIndirect-OpImageBlockMatchSADQCOM-06976# If+-- @OpImageBlockMatchSADQCOM@ or OpImageBlockMatchSSDQCOM is used to+-- read from a reference image as result of this command, then the+-- specified reference coordinates /must/ not fail+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-integer-coordinate-validation integer texel coordinate validation>.+--+-- - #VUID-vkCmdDrawIndirect-OpImageWeightedSampleQCOM-06977# If+-- @OpImageWeightedSampleQCOM@, @OpImageBoxFilterQCOM@,+-- @OpImageBlockMatchSSDQCOM@, or @OpImageBlockMatchSADQCOM@ uses a+-- 'Vulkan.Core10.Handles.Sampler' as a result of this command, then+-- the sampler /must/ have been created with+-- 'Vulkan.Core10.Enums.SamplerCreateFlagBits.SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM'.+--+-- - #VUID-vkCmdDrawIndirect-OpImageWeightedSampleQCOM-06978# If any+-- command other than @OpImageWeightedSampleQCOM@,+-- @OpImageBoxFilterQCOM@, @OpImageBlockMatchSSDQCOM@, or+-- @OpImageBlockMatchSADQCOM@ uses a 'Vulkan.Core10.Handles.Sampler' as+-- a result of this command, then the sampler /must/ not have been+-- created with+-- 'Vulkan.Core10.Enums.SamplerCreateFlagBits.SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM'.+--+-- - #VUID-vkCmdDrawIndirect-renderPass-02684# The current render pass+-- /must/ be+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-compatibility compatible>+-- with the @renderPass@ member of the+-- 'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo' structure+-- specified when creating the 'Vulkan.Core10.Handles.Pipeline' bound+-- to+-- 'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_GRAPHICS'+--+-- - #VUID-vkCmdDrawIndirect-subpass-02685# The subpass index of the+-- current render pass /must/ be equal to the @subpass@ member of the+-- 'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo' structure+-- specified when creating the 'Vulkan.Core10.Handles.Pipeline' bound+-- to+-- 'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_GRAPHICS'+--+-- - #VUID-vkCmdDrawIndirect-None-02686# Every input attachment used by+-- the current subpass /must/ be bound to the pipeline via a descriptor+-- set+--+-- - #VUID-vkCmdDrawIndirect-None-06537# Memory backing image+-- subresources used as attachments in the current render pass /must/+-- not be written in any way other than as an attachment by this+-- command+--+-- - #VUID-vkCmdDrawIndirect-None-06538# If any recorded command in the+-- current subpass will write to an image subresource as an attachment,+-- this command /must/ not read from the memory backing that image+-- subresource in any other way than as an attachment+--+-- - #VUID-vkCmdDrawIndirect-None-06539# If any recorded command in the+-- current subpass will read from an image subresource used as an+-- attachment in any way other than as an attachment, this command+-- /must/ not write to that image subresource as an attachment+--+-- - #VUID-vkCmdDrawIndirect-None-06886# If the current render pass+-- instance uses a depth\/stencil attachment with a read-only layout+-- for the depth aspect,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragops-depth-write depth writes>+-- /must/ be disabled+--+-- - #VUID-vkCmdDrawIndirect-None-06887# If the current render pass+-- instance uses a depth\/stencil attachment with a read-only layout+-- for the stencil aspect and stencil test is enabled,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragops-stencil all stencil ops>+-- /must/ be 'Vulkan.Core10.Enums.StencilOp.STENCIL_OP_KEEP'+--+-- - #VUID-vkCmdDrawIndirect-maxMultiviewInstanceIndex-02688# If the draw+-- is recorded in a render pass instance with multiview enabled, the+-- maximum instance index /must/ be less than or equal to+-- 'Vulkan.Core11.Promoted_From_VK_KHR_multiview.PhysicalDeviceMultiviewProperties'::@maxMultiviewInstanceIndex@+--+-- - #VUID-vkCmdDrawIndirect-sampleLocationsEnable-02689# If the bound+-- graphics pipeline was created with+-- 'Vulkan.Extensions.VK_EXT_sample_locations.PipelineSampleLocationsStateCreateInfoEXT'::@sampleLocationsEnable@+-- set to 'Vulkan.Core10.FundamentalTypes.TRUE' and the current subpass+-- has a depth\/stencil attachment, then that attachment /must/ have+-- been created with the+-- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT'+-- bit set+--+-- - #VUID-vkCmdDrawIndirect-None-06666# If the bound graphics pipeline+-- state was created with the+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'+-- dynamic state enabled then+-- 'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT'+-- /must/ have been called in the current command buffer prior to this+-- drawing command+--+-- - #VUID-vkCmdDrawIndirect-viewportCount-03417# If the bound graphics+-- pipeline state was created with the+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'+-- dynamic state enabled, but not the+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT'+-- dynamic state enabled, then+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'+-- /must/ have been called in the current command buffer prior to this+-- drawing command, and the @viewportCount@ parameter of+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'+-- /must/ match the+-- 'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo'::@scissorCount@+-- of the pipeline+--+-- - #VUID-vkCmdDrawIndirect-scissorCount-03418# If the bound graphics+-- pipeline state was created with the+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT'+-- dynamic state enabled, but not the+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'+-- dynamic state enabled, then+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetScissorWithCount'+-- /must/ have been called in the current command buffer prior to this+-- drawing command, and the @scissorCount@ parameter of+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetScissorWithCount'+-- /must/ match the+-- 'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo'::@viewportCount@+-- of the pipeline+--+-- - #VUID-vkCmdDrawIndirect-viewportCount-03419# If the bound graphics+-- pipeline state was created with both the+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT'+-- and+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'+-- dynamic states enabled then both+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'+-- and+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetScissorWithCount'+-- /must/ have been called in the current command buffer prior to this+-- drawing command, and the @viewportCount@ parameter of+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'+-- /must/ match the @scissorCount@ parameter of+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetScissorWithCount'+--+-- - #VUID-vkCmdDrawIndirect-viewportCount-04137# If the bound graphics+-- pipeline state was created with the+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'+-- dynamic state enabled, but not the+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_W_SCALING_NV'+-- dynamic state enabled, then the bound graphics pipeline /must/ have+-- been created with+-- 'Vulkan.Extensions.VK_NV_clip_space_w_scaling.PipelineViewportWScalingStateCreateInfoNV'::@viewportCount@+-- greater or equal to the @viewportCount@ parameter in the last call+-- to+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'+--+-- - #VUID-vkCmdDrawIndirect-viewportCount-04138# If the bound graphics+-- pipeline state was created with the+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'+-- and+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_W_SCALING_NV'+-- dynamic states enabled then the @viewportCount@ parameter in the+-- last call to+-- 'Vulkan.Extensions.VK_NV_clip_space_w_scaling.cmdSetViewportWScalingNV'+-- /must/ be greater than or equal to the @viewportCount@ parameter in+-- the last call to+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'+--+-- - #VUID-vkCmdDrawIndirect-viewportCount-04139# If the bound graphics+-- pipeline state was created with the+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'+-- dynamic state enabled, but not the+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV'+-- dynamic state enabled, then the bound graphics pipeline /must/ have+-- been created with+-- 'Vulkan.Extensions.VK_NV_shading_rate_image.PipelineViewportShadingRateImageStateCreateInfoNV'::@viewportCount@+-- greater or equal to the @viewportCount@ parameter in the last call+-- to+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'+--+-- - #VUID-vkCmdDrawIndirect-viewportCount-04140# If the bound graphics+-- pipeline state was created with the+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'+-- and+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV'+-- dynamic states enabled then the @viewportCount@ parameter in the+-- last call to+-- 'Vulkan.Extensions.VK_NV_shading_rate_image.cmdSetViewportShadingRatePaletteNV'+-- /must/ be greater than or equal to the @viewportCount@ parameter in+-- the last call to+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'+--+-- - #VUID-vkCmdDrawIndirect-VkPipelineVieportCreateInfo-04141# If the+-- bound graphics pipeline state was created with the+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'+-- dynamic state enabled and a+-- 'Vulkan.Extensions.VK_NV_viewport_swizzle.PipelineViewportSwizzleStateCreateInfoNV'+-- structure chained from+-- 'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo', then the+-- bound graphics pipeline /must/ have been created with+-- 'Vulkan.Extensions.VK_NV_viewport_swizzle.PipelineViewportSwizzleStateCreateInfoNV'::@viewportCount@+-- greater or equal to the @viewportCount@ parameter in the last call+-- to+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'+--+-- - #VUID-vkCmdDrawIndirect-VkPipelineVieportCreateInfo-04142# If the+-- bound graphics pipeline state was created with the+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'+-- dynamic state enabled and a+-- 'Vulkan.Extensions.VK_NV_scissor_exclusive.PipelineViewportExclusiveScissorStateCreateInfoNV'+-- structure chained from+-- 'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo', then the+-- bound graphics pipeline /must/ have been created with+-- 'Vulkan.Extensions.VK_NV_scissor_exclusive.PipelineViewportExclusiveScissorStateCreateInfoNV'::@exclusiveScissorCount@+-- greater or equal to the @viewportCount@ parameter in the last call+-- to+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'+--+-- - #VUID-vkCmdDrawIndirect-None-04876# If the bound graphics pipeline+-- state was created with the+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE'+-- dynamic state enabled then+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'+-- /must/ have been called in the current command buffer prior to this+-- drawing command+--+-- - #VUID-vkCmdDrawIndirect-None-04877# If the bound graphics pipeline+-- state was created with the+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BIAS_ENABLE'+-- dynamic state enabled then+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetDepthBiasEnable'+-- /must/ have been called in the current command buffer prior to this+-- drawing command+--+-- - #VUID-vkCmdDrawIndirect-logicOp-04878# If the bound graphics+-- pipeline state was created with the+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LOGIC_OP_EXT'+-- dynamic state enabled then+-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetLogicOpEXT'+-- /must/ have been called in the current command buffer prior to this+-- drawing command and the @logicOp@ /must/ be a valid+-- 'Vulkan.Core10.Enums.LogicOp.LogicOp' value+--+-- - #VUID-vkCmdDrawIndirect-primitiveFragmentShadingRateWithMultipleViewports-04552#+-- If the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-primitiveFragmentShadingRateWithMultipleViewports primitiveFragmentShadingRateWithMultipleViewports>+-- limit is not supported, the bound graphics pipeline was created with+-- the+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'+-- dynamic state enabled, and any of the shader stages of the bound+-- graphics pipeline write to the @PrimitiveShadingRateKHR@ built-in,+-- then+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'+-- /must/ have been called in the current command buffer prior to this+-- drawing command, and the @viewportCount@ parameter of+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'+-- /must/ be @1@+--+-- - #VUID-vkCmdDrawIndirect-blendEnable-04727# If rasterization is not+-- disabled in the bound graphics pipeline, then for each color+-- attachment in the subpass, if the corresponding image view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- do not contain+-- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT',+-- then the @blendEnable@ member of the corresponding element of the+-- @pAttachments@ member of @pColorBlendState@ /must/ be+-- 'Vulkan.Core10.FundamentalTypes.FALSE'+--+-- - #VUID-vkCmdDrawIndirect-rasterizationSamples-04740# If rasterization+-- is not disabled in the bound graphics pipeline, and neither the+-- @VK_AMD_mixed_attachment_samples@ nor the+-- @VK_NV_framebuffer_mixed_samples@ extensions are enabled, then+-- 'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'::@rasterizationSamples@+-- /must/ be the same as the current subpass color and\/or+-- depth\/stencil attachments+--+-- - #VUID-vkCmdDrawIndirect-imageView-06172# If the current render pass+-- instance was begun with+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+-- the @imageView@ member of @pDepthAttachment@ is not+-- 'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of+-- @pDepthAttachment@ is+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL',+-- this command /must/ not write any values to the depth attachment+--+-- - #VUID-vkCmdDrawIndirect-imageView-06173# If the current render pass+-- instance was begun with+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+-- the @imageView@ member of @pStencilAttachment@ is not+-- 'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of+-- @pStencilAttachment@ is+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL',+-- this command /must/ not write any values to the stencil attachment+--+-- - #VUID-vkCmdDrawIndirect-imageView-06174# If the current render pass+-- instance was begun with+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+-- the @imageView@ member of @pDepthAttachment@ is not+-- 'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of+-- @pDepthAttachment@ is+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL',+-- this command /must/ not write any values to the depth attachment+--+-- - #VUID-vkCmdDrawIndirect-imageView-06175# If the current render pass+-- instance was begun with+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+-- the @imageView@ member of @pStencilAttachment@ is not+-- 'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of+-- @pStencilAttachment@ is+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL',+-- this command /must/ not write any values to the stencil attachment+--+-- - #VUID-vkCmdDrawIndirect-imageView-06176# If the current render pass+-- instance was begun with+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+-- the @imageView@ member of @pDepthAttachment@ is not+-- 'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of+-- @pDepthAttachment@ is+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL',+-- this command /must/ not write any values to the depth attachment+--+-- - #VUID-vkCmdDrawIndirect-imageView-06177# If the current render pass+-- instance was begun with+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+-- the @imageView@ member of @pStencilAttachment@ is not+-- 'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of+-- @pStencilAttachment@ is+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL',+-- this command /must/ not write any values to the stencil attachment+--+-- - #VUID-vkCmdDrawIndirect-viewMask-06178# If the current render pass+-- instance was begun with+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+-- the currently bound graphics pipeline /must/ have been created with+-- a+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@viewMask@+-- equal to+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@viewMask@+--+-- - #VUID-vkCmdDrawIndirect-colorAttachmentCount-06179# If the current+-- render pass instance was begun with+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+-- the currently bound graphics pipeline /must/ have been created with+-- a+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@colorAttachmentCount@+-- equal to+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@+--+-- - #VUID-vkCmdDrawIndirect-colorAttachmentCount-06180# If the current+-- render pass instance was begun with+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'+-- and+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@+-- greater than @0@, then each element of the+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@+-- array with a @imageView@ not equal to+-- 'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created+-- with a 'Vulkan.Core10.Enums.Format.Format' equal to the+-- corresponding element of+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@+-- used to create the currently bound graphics pipeline+--+-- - #VUID-vkCmdDrawIndirect-attachmentCount-06667# If the bound graphics+-- pipeline state was created with the+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT'+-- dynamic state enabled then+-- 'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'+-- /must/ have been called in the current command buffer prior to this+-- drawing command, and the @attachmentCount@ parameter of+-- 'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'+-- /must/ be greater than or equal to the+-- 'Vulkan.Core10.Pipeline.PipelineColorBlendStateCreateInfo'::@attachmentCount@+-- of the currently bound graphics pipeline+--+-- - #VUID-vkCmdDrawIndirect-attachmentCount-06815# If the bound graphics+-- pipeline state was created with the+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT'+-- dynamic state enabled then+-- 'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'+-- /must/ have been called in the current command buffer prior to this+-- drawing command, and the @attachmentCount@ parameter of+-- 'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'+-- /must/ be less than or equal to the @maxColorAttachments@ member of+-- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'+--+-- - #VUID-vkCmdDrawIndirect-pDepthAttachment-06181# If the current+-- render pass instance was begun with+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'+-- and+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@+-- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@depthAttachmentFormat@+-- used to create the currently bound graphics pipeline /must/ be equal+-- to the 'Vulkan.Core10.Enums.Format.Format' used to create+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@+--+-- - #VUID-vkCmdDrawIndirect-pStencilAttachment-06182# If the current+-- render pass instance was begun with+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'+-- and+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@+-- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@stencilAttachmentFormat@+-- used to create the currently bound graphics pipeline /must/ be equal+-- to the 'Vulkan.Core10.Enums.Format.Format' used to create+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@+--+-- - #VUID-vkCmdDrawIndirect-imageView-06183# If the current render pass+-- instance was begun with+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'+-- and+-- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingFragmentShadingRateAttachmentInfoKHR'::@imageView@+-- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the currently+-- bound graphics pipeline /must/ have been created with+-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR'+--+-- - #VUID-vkCmdDrawIndirect-imageView-06184# If the current render pass+-- instance was begun with+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'+-- and+-- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingFragmentDensityMapAttachmentInfoEXT'::@imageView@+-- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the currently+-- bound graphics pipeline /must/ have been created with+-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT'+--+-- - #VUID-vkCmdDrawIndirect-colorAttachmentCount-06185# If the currently+-- bound pipeline was created with a+-- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'+-- or+-- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'+-- structure, and the current render pass instance was begun with+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'+-- with a+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@+-- parameter greater than @0@, then each element of the+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@+-- array with a @imageView@ not equal to+-- 'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created+-- with a sample count equal to the corresponding element of the+-- @pColorAttachmentSamples@ member of+-- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'+-- or+-- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'+-- used to create the currently bound graphics pipeline+--+-- - #VUID-vkCmdDrawIndirect-pDepthAttachment-06186# If the current+-- render pass instance was begun with+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+-- the currently bound pipeline was created with a+-- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'+-- or+-- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'+-- structure, and+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@+-- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of the+-- @depthStencilAttachmentSamples@ member of+-- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'+-- or+-- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'+-- used to create the currently bound graphics pipeline /must/ be equal+-- to the sample count used to create+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@+--+-- - #VUID-vkCmdDrawIndirect-pStencilAttachment-06187# If the current+-- render pass instance was begun with+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+-- the currently bound pipeline was created with a+-- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'+-- or+-- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'+-- structure, and+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@+-- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of the+-- @depthStencilAttachmentSamples@ member of+-- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'+-- or+-- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'+-- used to create the currently bound graphics pipeline /must/ be equal+-- to the sample count used to create+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@+--+-- - #VUID-vkCmdDrawIndirect-colorAttachmentCount-06188# If the currently+-- bound pipeline was created without a+-- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'+-- or+-- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'+-- structure, and the current render pass instance was begun with+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'+-- with a+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@+-- parameter greater than @0@, then each element of the+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@+-- array with a @imageView@ not equal to+-- 'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created+-- with a sample count equal to the value of+-- 'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'::@rasterizationSamples@+-- used to create the currently bound graphics pipeline+--+-- - #VUID-vkCmdDrawIndirect-pDepthAttachment-06189# If the current+-- render pass instance was begun with+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+-- the currently bound pipeline was created without a+-- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'+-- or+-- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'+-- structure, and+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@+-- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of+-- 'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'::@rasterizationSamples@+-- used to create the currently bound graphics pipeline /must/ be equal+-- to the sample count used to create+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@+--+-- - #VUID-vkCmdDrawIndirect-pStencilAttachment-06190# If the current+-- render pass instance was begun with+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+-- the currently bound pipeline was created without a+-- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'+-- or+-- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'+-- structure, and+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@+-- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of+-- 'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'::@rasterizationSamples@+-- used to create the currently bound graphics pipeline /must/ be equal+-- to the sample count used to create+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@+--+-- - #VUID-vkCmdDrawIndirect-renderPass-06198# If the current render pass+-- instance was begun with+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+-- the currently bound pipeline /must/ have been created with a+-- 'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo'::@renderPass@+-- equal to 'Vulkan.Core10.APIConstants.NULL_HANDLE'+--+-- - #VUID-vkCmdDrawIndirect-primitivesGeneratedQueryWithRasterizerDiscard-06708#+-- If the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-primitivesGeneratedQueryWithRasterizerDiscard primitivesGeneratedQueryWithRasterizerDiscard>+-- feature is not enabled and the+-- 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PRIMITIVES_GENERATED_EXT'+-- query is active,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-discard rasterization discard>+-- /must/ not be enabled.+--+-- - #VUID-vkCmdDrawIndirect-primitivesGeneratedQueryWithNonZeroStreams-06709#+-- If the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-primitivesGeneratedQueryWithNonZeroStreams primitivesGeneratedQueryWithNonZeroStreams>+-- feature is not enabled and the+-- 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PRIMITIVES_GENERATED_EXT'+-- query is active, the bound graphics pipeline /must/ not have been+-- created with a non-zero value in+-- 'Vulkan.Extensions.VK_EXT_transform_feedback.PipelineRasterizationStateStreamCreateInfoEXT'::@rasterizationStream@.+--+-- - #VUID-vkCmdDrawIndirect-stage-07073# If the currently bound pipeline+-- was created with the+-- 'Vulkan.Core10.Pipeline.PipelineShaderStageCreateInfo'::@stage@+-- member of an element of+-- 'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo'::@pStages@ set+-- to+-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT',+-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_CONTROL_BIT',+-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT'+-- or+-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT',+-- then+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#queries-mesh-shader Mesh Shader Queries>+-- must not be active+--+-- - #VUID-vkCmdDrawIndirect-None-04007# All vertex input bindings+-- accessed via vertex input variables declared in the vertex shader+-- entry point’s interface /must/ have either valid or+-- 'Vulkan.Core10.APIConstants.NULL_HANDLE' buffers bound+--+-- - #VUID-vkCmdDrawIndirect-None-04008# If the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-nullDescriptor nullDescriptor>+-- feature is not enabled, all vertex input bindings accessed via+-- vertex input variables declared in the vertex shader entry point’s+-- interface /must/ not be 'Vulkan.Core10.APIConstants.NULL_HANDLE'+--+-- - #VUID-vkCmdDrawIndirect-None-02721# For a given vertex buffer+-- binding, any attribute data fetched /must/ be entirely contained+-- within the corresponding vertex buffer binding, as described in+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fxvertex-input ???>+--+-- - #VUID-vkCmdDrawIndirect-primitiveTopology-03420# If the bound+-- graphics pipeline state was created with the+-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT'+-- dynamic state enabled then+-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopologyEXT'+-- /must/ have been called in the current command buffer prior to this+-- drawing command, and the @primitiveTopology@ parameter of+-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopologyEXT'+-- /must/ be of the same+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#drawing-primitive-topology-class topology class>+-- as the pipeline+-- 'Vulkan.Core10.Pipeline.PipelineInputAssemblyStateCreateInfo'::@topology@+-- state+--+-- - #VUID-vkCmdDrawIndirect-None-04912# If the bound graphics pipeline+-- was created with both the+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'+-- and+-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT'+-- dynamic states enabled, then+-- 'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.cmdSetVertexInputEXT'+-- /must/ have been called in the current command buffer prior to this+-- draw command+--+-- - #VUID-vkCmdDrawIndirect-pStrides-04913# If the bound graphics+-- pipeline was created with the+-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT'+-- dynamic state enabled, but not the+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'+-- dynamic state enabled, then+-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdBindVertexBuffers2EXT'+-- /must/ have been called in the current command buffer prior to this+-- draw command, and the @pStrides@ parameter of+-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdBindVertexBuffers2EXT'+-- /must/ not be @NULL@+--+-- - #VUID-vkCmdDrawIndirect-None-04914# If the bound graphics pipeline+-- state was created with the+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'+-- dynamic state enabled, then+-- 'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.cmdSetVertexInputEXT'+-- /must/ have been called in the current command buffer prior to this+-- draw command+--+-- - #VUID-vkCmdDrawIndirect-None-04875# If the bound graphics pipeline+-- state was created with the+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT'+-- dynamic state enabled then+-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetPatchControlPointsEXT'+-- /must/ have been called in the current command buffer prior to this+-- drawing command+--+-- - #VUID-vkCmdDrawIndirect-None-04879# If the bound graphics pipeline+-- state was created with the+-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE_EXT'+-- dynamic state enabled then+-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetPrimitiveRestartEnableEXT'+-- /must/ have been called in the current command buffer prior to this+-- drawing command+--+-- - #VUID-vkCmdDrawIndirect-stage-06481# The bound graphics pipeline+-- /must/ not have been created with the+-- 'Vulkan.Core10.Pipeline.PipelineShaderStageCreateInfo'::@stage@+-- member of an element of+-- 'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo'::@pStages@ set+-- to+-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT'+-- or+-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'+--+-- - #VUID-vkCmdDrawIndirect-buffer-02708# If @buffer@ is non-sparse then+-- it /must/ be bound completely and contiguously to a single+-- 'Vulkan.Core10.Handles.DeviceMemory' object+--+-- - #VUID-vkCmdDrawIndirect-buffer-02709# @buffer@ /must/ have been+-- created with the+-- 'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_INDIRECT_BUFFER_BIT'+-- bit set+--+-- - #VUID-vkCmdDrawIndirect-offset-02710# @offset@ /must/ be a multiple+-- of @4@+--+-- - #VUID-vkCmdDrawIndirect-commandBuffer-02711# @commandBuffer@ /must/+-- not be a protected command buffer+--+-- - #VUID-vkCmdDrawIndirect-drawCount-02718# If the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multiDrawIndirect multiDrawIndirect>+-- feature is not enabled, @drawCount@ /must/ be @0@ or @1@+--+-- - #VUID-vkCmdDrawIndirect-drawCount-02719# @drawCount@ /must/ be less+-- than or equal to+-- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxDrawIndirectCount@+--+-- - #VUID-vkCmdDrawIndirect-drawCount-00476# If @drawCount@ is greater+-- than @1@, @stride@ /must/ be a multiple of @4@ and /must/ be greater+-- than or equal to+-- @sizeof@('Vulkan.Core10.OtherTypes.DrawIndirectCommand')+--+-- - #VUID-vkCmdDrawIndirect-drawCount-00487# If @drawCount@ is equal to+-- @1@, (@offset@ ++-- @sizeof@('Vulkan.Core10.OtherTypes.DrawIndirectCommand')) /must/ be+-- less than or equal to the size of @buffer@+--+-- - #VUID-vkCmdDrawIndirect-drawCount-00488# If @drawCount@ is greater+-- than @1@, (@stride@ × (@drawCount@ - 1) + @offset@ ++-- @sizeof@('Vulkan.Core10.OtherTypes.DrawIndirectCommand')) /must/ be+-- less than or equal to the size of @buffer@+--+-- == Valid Usage (Implicit)+--+-- - #VUID-vkCmdDrawIndirect-commandBuffer-parameter# @commandBuffer@+-- /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- - #VUID-vkCmdDrawIndirect-buffer-parameter# @buffer@ /must/ be a valid+-- 'Vulkan.Core10.Handles.Buffer' handle+--+-- - #VUID-vkCmdDrawIndirect-commandBuffer-recording# @commandBuffer@+-- /must/ be in the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording state>+--+-- - #VUID-vkCmdDrawIndirect-commandBuffer-cmdpool# The+-- 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+-- allocated from /must/ support graphics operations+--+-- - #VUID-vkCmdDrawIndirect-renderpass# This command /must/ only be+-- called inside of a render pass instance+--+-- - #VUID-vkCmdDrawIndirect-videocoding# This command /must/ only be+-- called outside of a video coding scope+--+-- - #VUID-vkCmdDrawIndirect-commonparent# Both of @buffer@, and+-- @commandBuffer@ /must/ have been created, allocated, or retrieved+-- from the same 'Vulkan.Core10.Handles.Device'+--+-- == Host Synchronization+--+-- - Host access to @commandBuffer@ /must/ be externally synchronized+--+-- - Host access to the 'Vulkan.Core10.Handles.CommandPool' that+-- @commandBuffer@ was allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- \'+--+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================++-- | Primary | Inside | Outside | Graphics |+-- | Secondary | | | |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,+-- 'Vulkan.Core10.Handles.Buffer', 'Vulkan.Core10.Handles.CommandBuffer',+-- 'Vulkan.Core10.FundamentalTypes.DeviceSize'+cmdDrawIndirect :: forall io+ . (MonadIO io)+ => -- | @commandBuffer@ is the command buffer into which the command is+ -- recorded.+ CommandBuffer+ -> -- | @buffer@ is the buffer containing draw parameters.+ Buffer+ -> -- | @offset@ is the byte offset into @buffer@ where parameters begin.+ ("offset" ::: DeviceSize)+ -> -- | @drawCount@ is the number of draws to execute, and /can/ be zero.+ ("drawCount" ::: Word32)+ -> -- | @stride@ is the byte stride between successive sets of draw parameters.+ ("stride" ::: Word32)+ -> io ()+cmdDrawIndirect commandBuffer buffer offset drawCount stride = liftIO $ do+ let vkCmdDrawIndirectPtr = pVkCmdDrawIndirect (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)+ unless (vkCmdDrawIndirectPtr /= nullFunPtr) $+ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdDrawIndirect is null" Nothing Nothing+ let vkCmdDrawIndirect' = mkVkCmdDrawIndirect vkCmdDrawIndirectPtr+ traceAroundEvent "vkCmdDrawIndirect" (vkCmdDrawIndirect' (commandBufferHandle (commandBuffer)) (buffer) (offset) (drawCount) (stride))+ pure $ ()+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+ unsafe+#endif+ "dynamic" mkVkCmdDrawIndexedIndirect+ :: FunPtr (Ptr CommandBuffer_T -> Buffer -> DeviceSize -> Word32 -> Word32 -> IO ()) -> Ptr CommandBuffer_T -> Buffer -> DeviceSize -> Word32 -> Word32 -> IO ()++-- | vkCmdDrawIndexedIndirect - Draw primitives with indirect parameters and+-- indexed vertices+--+-- = Description+--+-- 'cmdDrawIndexedIndirect' behaves similarly to 'cmdDrawIndexed' except+-- that the parameters are read by the device from a buffer during+-- execution. @drawCount@ draws are executed by the command, with+-- parameters taken from @buffer@ starting at @offset@ and increasing by+-- @stride@ bytes for each successive draw. The parameters of each draw are+-- encoded in an array of+-- 'Vulkan.Core10.OtherTypes.DrawIndexedIndirectCommand' structures. If+-- @drawCount@ is less than or equal to one, @stride@ is ignored.+--+-- == Valid Usage+--+-- - #VUID-vkCmdDrawIndexedIndirect-magFilter-04553# If a+-- 'Vulkan.Core10.Handles.Sampler' created with @magFilter@ or+-- @minFilter@ equal to 'Vulkan.Core10.Enums.Filter.FILTER_LINEAR' and+-- @compareEnable@ equal to 'Vulkan.Core10.FundamentalTypes.FALSE' is+-- used to sample a 'Vulkan.Core10.Handles.ImageView' as a result of+-- this command, then the image view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain+-- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT'+--+-- - #VUID-vkCmdDrawIndexedIndirect-mipmapMode-04770# If a+-- 'Vulkan.Core10.Handles.Sampler' created with @mipmapMode@ equal to+-- 'Vulkan.Core10.Enums.SamplerMipmapMode.SAMPLER_MIPMAP_MODE_LINEAR'+-- and @compareEnable@ equal to 'Vulkan.Core10.FundamentalTypes.FALSE'+-- is used to sample a 'Vulkan.Core10.Handles.ImageView' as a result of+-- this command, then the image view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain+-- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT'+--+-- - #VUID-vkCmdDrawIndexedIndirect-None-06479# If a+-- 'Vulkan.Core10.Handles.ImageView' is sampled with+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-depth-compare-operation depth comparison>,+-- the image view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT'+--+-- - #VUID-vkCmdDrawIndexedIndirect-None-02691# If a+-- 'Vulkan.Core10.Handles.ImageView' is accessed using atomic+-- operations as a result of this command, then the image view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain+-- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT'+--+-- - #VUID-vkCmdDrawIndexedIndirect-None-02692# If a+-- 'Vulkan.Core10.Handles.ImageView' is sampled with+-- 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as a result of this+-- command, then the image view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain+-- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT'+--+-- - #VUID-vkCmdDrawIndexedIndirect-filterCubic-02694# Any+-- 'Vulkan.Core10.Handles.ImageView' being sampled with+-- 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as a result of this+-- command /must/ have a+-- 'Vulkan.Core10.Enums.ImageViewType.ImageViewType' and format that+-- supports cubic filtering, as specified by+-- 'Vulkan.Extensions.VK_EXT_filter_cubic.FilterCubicImageViewImageFormatPropertiesEXT'::@filterCubic@+-- returned by+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceImageFormatProperties2'+--+-- - #VUID-vkCmdDrawIndexedIndirect-filterCubicMinmax-02695# Any+-- 'Vulkan.Core10.Handles.ImageView' being sampled with+-- 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' with a reduction mode+-- of either+-- 'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MIN'+-- or+-- 'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MAX'+-- as a result of this command /must/ have a+-- 'Vulkan.Core10.Enums.ImageViewType.ImageViewType' and format that+-- supports cubic filtering together with minmax filtering, as+-- specified by+-- 'Vulkan.Extensions.VK_EXT_filter_cubic.FilterCubicImageViewImageFormatPropertiesEXT'::@filterCubicMinmax@+-- returned by+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceImageFormatProperties2'+--+-- - #VUID-vkCmdDrawIndexedIndirect-flags-02696# Any+-- 'Vulkan.Core10.Handles.Image' created with a+-- 'Vulkan.Core10.Image.ImageCreateInfo'::@flags@ containing+-- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_CORNER_SAMPLED_BIT_NV'+-- sampled as a result of this command /must/ only be sampled using a+-- 'Vulkan.Core10.Enums.SamplerAddressMode.SamplerAddressMode' of+-- 'Vulkan.Core10.Enums.SamplerAddressMode.SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE'+--+-- - #VUID-vkCmdDrawIndexedIndirect-OpTypeImage-07027# For any+-- 'Vulkan.Core10.Handles.ImageView' being written as a storage image+-- where the image format field of the @OpTypeImage@ is @Unknown@, the+-- view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT'+--+-- - #VUID-vkCmdDrawIndexedIndirect-OpTypeImage-07028# For any+-- 'Vulkan.Core10.Handles.ImageView' being read as a storage image+-- where the image format field of the @OpTypeImage@ is @Unknown@, the+-- view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT'+--+-- - #VUID-vkCmdDrawIndexedIndirect-OpTypeImage-07029# For any+-- 'Vulkan.Core10.Handles.BufferView' being written as a storage texel+-- buffer where the image format field of the @OpTypeImage@ is+-- @Unknown@, the view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkFormatProperties3 buffer features>+-- /must/ contain+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT'+--+-- - #VUID-vkCmdDrawIndexedIndirect-OpTypeImage-07030# Any+-- 'Vulkan.Core10.Handles.BufferView' being read as a storage texel+-- buffer where the image format field of the @OpTypeImage@ is+-- @Unknown@ then the view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkFormatProperties3 buffer features>+-- /must/ contain+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT'+--+-- - #VUID-vkCmdDrawIndexedIndirect-None-02697# For each set /n/ that is+-- statically used by the 'Vulkan.Core10.Handles.Pipeline' bound to the+-- pipeline bind point used by this command, a descriptor set /must/+-- have been bound to /n/ at the same pipeline bind point, with a+-- 'Vulkan.Core10.Handles.PipelineLayout' that is compatible for set+-- /n/, with the 'Vulkan.Core10.Handles.PipelineLayout' used to create+-- the current 'Vulkan.Core10.Handles.Pipeline', as described in+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>+--+-- - #VUID-vkCmdDrawIndexedIndirect-maintenance4-06425# If the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-maintenance4 maintenance4>+-- feature is not enabled, then for each push constant that is+-- statically used by the 'Vulkan.Core10.Handles.Pipeline' bound to the+-- pipeline bind point used by this command, a push constant value+-- /must/ have been set for the same pipeline bind point, with a+-- 'Vulkan.Core10.Handles.PipelineLayout' that is compatible for push+-- constants, with the 'Vulkan.Core10.Handles.PipelineLayout' used to+-- create the current 'Vulkan.Core10.Handles.Pipeline', as described in+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>+--+-- - #VUID-vkCmdDrawIndexedIndirect-None-02699# Descriptors in each bound+-- descriptor set, specified via 'cmdBindDescriptorSets', /must/ be+-- valid if they are statically used by the+-- 'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind point+-- used by this command+--+-- - #VUID-vkCmdDrawIndexedIndirect-None-02700# A valid pipeline /must/+-- be bound to the pipeline bind point used by this command+--+-- - #VUID-vkCmdDrawIndexedIndirect-commandBuffer-02701# If the+-- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind+-- point used by this command requires any dynamic state, that state+-- /must/ have been set or inherited (if the+-- @VK_NV_inherited_viewport_scissor@ extension is enabled) for+-- @commandBuffer@, and done so after any previously bound pipeline+-- with the corresponding state not specified as dynamic+--+-- - #VUID-vkCmdDrawIndexedIndirect-None-02859# There /must/ not have+-- been any calls to dynamic state setting commands for any state not+-- specified as dynamic in the 'Vulkan.Core10.Handles.Pipeline' object+-- bound to the pipeline bind point used by this command, since that+-- pipeline was bound+--+-- - #VUID-vkCmdDrawIndexedIndirect-None-02702# If the+-- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind+-- point used by this command accesses a+-- 'Vulkan.Core10.Handles.Sampler' object that uses unnormalized+-- coordinates, that sampler /must/ not be used to sample from any+-- 'Vulkan.Core10.Handles.Image' with a+-- 'Vulkan.Core10.Handles.ImageView' of the type+-- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_3D',+-- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE',+-- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_1D_ARRAY',+-- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_2D_ARRAY' or+-- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE_ARRAY', in+-- any shader stage+--+-- - #VUID-vkCmdDrawIndexedIndirect-None-02703# If the+-- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind+-- point used by this command accesses a+-- 'Vulkan.Core10.Handles.Sampler' object that uses unnormalized+-- coordinates, that sampler /must/ not be used with any of the SPIR-V+-- @OpImageSample*@ or @OpImageSparseSample*@ instructions with+-- @ImplicitLod@, @Dref@ or @Proj@ in their name, in any shader stage+--+-- - #VUID-vkCmdDrawIndexedIndirect-None-02704# If the+-- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind+-- point used by this command accesses a+-- 'Vulkan.Core10.Handles.Sampler' object that uses unnormalized+-- coordinates, that sampler /must/ not be used with any of the SPIR-V+-- @OpImageSample*@ or @OpImageSparseSample*@ instructions that+-- includes a LOD bias or any offset values, in any shader stage+--+-- - #VUID-vkCmdDrawIndexedIndirect-uniformBuffers-06935# If any stage of+-- the 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline+-- bind point used by this command accesses a uniform buffer, and that+-- stage was created without enabling either+-- 'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT'+-- or+-- 'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT'+-- for @uniformBuffers@, and the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>+-- feature is not enabled, that stage /must/ not access values outside+-- of the range of the buffer as specified in the descriptor set bound+-- to the same pipeline bind point+--+-- - #VUID-vkCmdDrawIndexedIndirect-storageBuffers-06936# If any stage of+-- the 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline+-- bind point used by this command accesses a storage buffer, and that+-- stage was created without enabling either+-- 'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT'+-- or+-- 'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT'+-- for @storageBuffers@, and the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>+-- feature is not enabled, that stage /must/ not access values outside+-- of the range of the buffer as specified in the descriptor set bound+-- to the same pipeline bind point+--+-- - #VUID-vkCmdDrawIndexedIndirect-commandBuffer-02707# If+-- @commandBuffer@ is an unprotected command buffer and+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>+-- is not supported, any resource accessed by the+-- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind+-- point used by this command /must/ not be a protected resource+--+-- - #VUID-vkCmdDrawIndexedIndirect-None-06550# If the+-- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind+-- point used by this command accesses a+-- 'Vulkan.Core10.Handles.Sampler' or 'Vulkan.Core10.Handles.ImageView'+-- object that enables+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion>,+-- that object /must/ only be used with @OpImageSample*@ or+-- @OpImageSparseSample*@ instructions+--+-- - #VUID-vkCmdDrawIndexedIndirect-ConstOffset-06551# If the+-- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind+-- point used by this command accesses a+-- 'Vulkan.Core10.Handles.Sampler' or 'Vulkan.Core10.Handles.ImageView'+-- object that enables+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion>,+-- that object /must/ not use the @ConstOffset@ and @Offset@ operands+--+-- - #VUID-vkCmdDrawIndexedIndirect-None-04115# If a+-- 'Vulkan.Core10.Handles.ImageView' is accessed using @OpImageWrite@+-- as a result of this command, then the @Type@ of the @Texel@ operand+-- of that instruction /must/ have at least as many components as the+-- image view’s format+--+-- - #VUID-vkCmdDrawIndexedIndirect-OpImageWrite-04469# If a+-- 'Vulkan.Core10.Handles.BufferView' is accessed using @OpImageWrite@+-- as a result of this command, then the @Type@ of the @Texel@ operand+-- of that instruction /must/ have at least as many components as the+-- buffer view’s format+--+-- - #VUID-vkCmdDrawIndexedIndirect-SampledType-04470# If a+-- 'Vulkan.Core10.Handles.ImageView' with a+-- 'Vulkan.Core10.Enums.Format.Format' that has a 64-bit component+-- width is accessed as a result of this command, the @SampledType@ of+-- the @OpTypeImage@ operand of that instruction /must/ have a @Width@+-- of 64+--+-- - #VUID-vkCmdDrawIndexedIndirect-SampledType-04471# If a+-- 'Vulkan.Core10.Handles.ImageView' with a+-- 'Vulkan.Core10.Enums.Format.Format' that has a component width less+-- than 64-bit is accessed as a result of this command, the+-- @SampledType@ of the @OpTypeImage@ operand of that instruction+-- /must/ have a @Width@ of 32+--+-- - #VUID-vkCmdDrawIndexedIndirect-SampledType-04472# If a+-- 'Vulkan.Core10.Handles.BufferView' with a+-- 'Vulkan.Core10.Enums.Format.Format' that has a 64-bit component+-- width is accessed as a result of this command, the @SampledType@ of+-- the @OpTypeImage@ operand of that instruction /must/ have a @Width@+-- of 64+--+-- - #VUID-vkCmdDrawIndexedIndirect-SampledType-04473# If a+-- 'Vulkan.Core10.Handles.BufferView' with a+-- 'Vulkan.Core10.Enums.Format.Format' that has a component width less+-- than 64-bit is accessed as a result of this command, the+-- @SampledType@ of the @OpTypeImage@ operand of that instruction+-- /must/ have a @Width@ of 32+--+-- - #VUID-vkCmdDrawIndexedIndirect-sparseImageInt64Atomics-04474# If the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-sparseImageInt64Atomics sparseImageInt64Atomics>+-- feature is not enabled, 'Vulkan.Core10.Handles.Image' objects+-- created with the+-- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SPARSE_RESIDENCY_BIT'+-- flag /must/ not be accessed by atomic instructions through an+-- @OpTypeImage@ with a @SampledType@ with a @Width@ of 64 by this+-- command+--+-- - #VUID-vkCmdDrawIndexedIndirect-sparseImageInt64Atomics-04475# If the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-sparseImageInt64Atomics sparseImageInt64Atomics>+-- feature is not enabled, 'Vulkan.Core10.Handles.Buffer' objects+-- created with the+-- 'Vulkan.Core10.Enums.BufferCreateFlagBits.BUFFER_CREATE_SPARSE_RESIDENCY_BIT'+-- flag /must/ not be accessed by atomic instructions through an+-- @OpTypeImage@ with a @SampledType@ with a @Width@ of 64 by this+-- command+--+-- - #VUID-vkCmdDrawIndexedIndirect-OpImageWeightedSampleQCOM-06971# If+-- @OpImageWeightedSampleQCOM@ is used to sample a+-- 'Vulkan.Core10.Handles.ImageView' as a result of this command, then+-- the image view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM'+--+-- - #VUID-vkCmdDrawIndexedIndirect-OpImageWeightedSampleQCOM-06972# If+-- @OpImageWeightedSampleQCOM@ uses a 'Vulkan.Core10.Handles.ImageView'+-- as a sample weight image as a result of this command, then the image+-- view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM'+--+-- - #VUID-vkCmdDrawIndexedIndirect-OpImageBoxFilterQCOM-06973# If+-- @OpImageBoxFilterQCOM@ is used to sample a+-- 'Vulkan.Core10.Handles.ImageView' as a result of this command, then+-- the image view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM'+--+-- - #VUID-vkCmdDrawIndexedIndirect-OpImageBlockMatchSSDQCOM-06974# If+-- @OpImageBlockMatchSSDQCOM@ is used to read from an+-- 'Vulkan.Core10.Handles.ImageView' as a result of this command, then+-- the image view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM'+--+-- - #VUID-vkCmdDrawIndexedIndirect-OpImageBlockMatchSADQCOM-06975# If+-- @OpImageBlockMatchSADQCOM@ is used to read from an+-- 'Vulkan.Core10.Handles.ImageView' as a result of this command, then+-- the image view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM'+--+-- - #VUID-vkCmdDrawIndexedIndirect-OpImageBlockMatchSADQCOM-06976# If+-- @OpImageBlockMatchSADQCOM@ or OpImageBlockMatchSSDQCOM is used to+-- read from a reference image as result of this command, then the+-- specified reference coordinates /must/ not fail+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-integer-coordinate-validation integer texel coordinate validation>.+--+-- - #VUID-vkCmdDrawIndexedIndirect-OpImageWeightedSampleQCOM-06977# If+-- @OpImageWeightedSampleQCOM@, @OpImageBoxFilterQCOM@,+-- @OpImageBlockMatchSSDQCOM@, or @OpImageBlockMatchSADQCOM@ uses a+-- 'Vulkan.Core10.Handles.Sampler' as a result of this command, then+-- the sampler /must/ have been created with+-- 'Vulkan.Core10.Enums.SamplerCreateFlagBits.SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM'.+--+-- - #VUID-vkCmdDrawIndexedIndirect-OpImageWeightedSampleQCOM-06978# If+-- any command other than @OpImageWeightedSampleQCOM@,+-- @OpImageBoxFilterQCOM@, @OpImageBlockMatchSSDQCOM@, or+-- @OpImageBlockMatchSADQCOM@ uses a 'Vulkan.Core10.Handles.Sampler' as+-- a result of this command, then the sampler /must/ not have been+-- created with+-- 'Vulkan.Core10.Enums.SamplerCreateFlagBits.SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM'.+--+-- - #VUID-vkCmdDrawIndexedIndirect-renderPass-02684# The current render+-- pass /must/ be+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-compatibility compatible>+-- with the @renderPass@ member of the+-- 'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo' structure+-- specified when creating the 'Vulkan.Core10.Handles.Pipeline' bound+-- to+-- 'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_GRAPHICS'+--+-- - #VUID-vkCmdDrawIndexedIndirect-subpass-02685# The subpass index of+-- the current render pass /must/ be equal to the @subpass@ member of+-- the 'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo' structure+-- specified when creating the 'Vulkan.Core10.Handles.Pipeline' bound+-- to+-- 'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_GRAPHICS'+--+-- - #VUID-vkCmdDrawIndexedIndirect-None-02686# Every input attachment+-- used by the current subpass /must/ be bound to the pipeline via a+-- descriptor set+--+-- - #VUID-vkCmdDrawIndexedIndirect-None-06537# Memory backing image+-- subresources used as attachments in the current render pass /must/+-- not be written in any way other than as an attachment by this+-- command+--+-- - #VUID-vkCmdDrawIndexedIndirect-None-06538# If any recorded command+-- in the current subpass will write to an image subresource as an+-- attachment, this command /must/ not read from the memory backing+-- that image subresource in any other way than as an attachment+--+-- - #VUID-vkCmdDrawIndexedIndirect-None-06539# If any recorded command+-- in the current subpass will read from an image subresource used as+-- an attachment in any way other than as an attachment, this command+-- /must/ not write to that image subresource as an attachment+--+-- - #VUID-vkCmdDrawIndexedIndirect-None-06886# If the current render+-- pass instance uses a depth\/stencil attachment with a read-only+-- layout for the depth aspect,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragops-depth-write depth writes>+-- /must/ be disabled+--+-- - #VUID-vkCmdDrawIndexedIndirect-None-06887# If the current render+-- pass instance uses a depth\/stencil attachment with a read-only+-- layout for the stencil aspect and stencil test is enabled,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragops-stencil all stencil ops>+-- /must/ be 'Vulkan.Core10.Enums.StencilOp.STENCIL_OP_KEEP'+--+-- - #VUID-vkCmdDrawIndexedIndirect-maxMultiviewInstanceIndex-02688# If+-- the draw is recorded in a render pass instance with multiview+-- enabled, the maximum instance index /must/ be less than or equal to+-- 'Vulkan.Core11.Promoted_From_VK_KHR_multiview.PhysicalDeviceMultiviewProperties'::@maxMultiviewInstanceIndex@+--+-- - #VUID-vkCmdDrawIndexedIndirect-sampleLocationsEnable-02689# If the+-- bound graphics pipeline was created with+-- 'Vulkan.Extensions.VK_EXT_sample_locations.PipelineSampleLocationsStateCreateInfoEXT'::@sampleLocationsEnable@+-- set to 'Vulkan.Core10.FundamentalTypes.TRUE' and the current subpass+-- has a depth\/stencil attachment, then that attachment /must/ have+-- been created with the+-- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT'+-- bit set+--+-- - #VUID-vkCmdDrawIndexedIndirect-None-06666# If the bound graphics+-- pipeline state was created with the+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'+-- dynamic state enabled then+-- 'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT'+-- /must/ have been called in the current command buffer prior to this+-- drawing command+--+-- - #VUID-vkCmdDrawIndexedIndirect-viewportCount-03417# If the bound+-- graphics pipeline state was created with the+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'+-- dynamic state enabled, but not the+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT'+-- dynamic state enabled, then+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'+-- /must/ have been called in the current command buffer prior to this+-- drawing command, and the @viewportCount@ parameter of+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'+-- /must/ match the+-- 'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo'::@scissorCount@+-- of the pipeline+--+-- - #VUID-vkCmdDrawIndexedIndirect-scissorCount-03418# If the bound+-- graphics pipeline state was created with the+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT'+-- dynamic state enabled, but not the+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'+-- dynamic state enabled, then+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetScissorWithCount'+-- /must/ have been called in the current command buffer prior to this+-- drawing command, and the @scissorCount@ parameter of+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetScissorWithCount'+-- /must/ match the+-- 'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo'::@viewportCount@+-- of the pipeline+--+-- - #VUID-vkCmdDrawIndexedIndirect-viewportCount-03419# If the bound+-- graphics pipeline state was created with both the+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT'+-- and+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'+-- dynamic states enabled then both+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'+-- and+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetScissorWithCount'+-- /must/ have been called in the current command buffer prior to this+-- drawing command, and the @viewportCount@ parameter of+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'+-- /must/ match the @scissorCount@ parameter of+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetScissorWithCount'+--+-- - #VUID-vkCmdDrawIndexedIndirect-viewportCount-04137# If the bound+-- graphics pipeline state was created with the+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'+-- dynamic state enabled, but not the+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_W_SCALING_NV'+-- dynamic state enabled, then the bound graphics pipeline /must/ have+-- been created with+-- 'Vulkan.Extensions.VK_NV_clip_space_w_scaling.PipelineViewportWScalingStateCreateInfoNV'::@viewportCount@+-- greater or equal to the @viewportCount@ parameter in the last call+-- to+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'+--+-- - #VUID-vkCmdDrawIndexedIndirect-viewportCount-04138# If the bound+-- graphics pipeline state was created with the+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'+-- and+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_W_SCALING_NV'+-- dynamic states enabled then the @viewportCount@ parameter in the+-- last call to+-- 'Vulkan.Extensions.VK_NV_clip_space_w_scaling.cmdSetViewportWScalingNV'+-- /must/ be greater than or equal to the @viewportCount@ parameter in+-- the last call to+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'+--+-- - #VUID-vkCmdDrawIndexedIndirect-viewportCount-04139# If the bound+-- graphics pipeline state was created with the+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'+-- dynamic state enabled, but not the+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV'+-- dynamic state enabled, then the bound graphics pipeline /must/ have+-- been created with+-- 'Vulkan.Extensions.VK_NV_shading_rate_image.PipelineViewportShadingRateImageStateCreateInfoNV'::@viewportCount@+-- greater or equal to the @viewportCount@ parameter in the last call+-- to+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'+--+-- - #VUID-vkCmdDrawIndexedIndirect-viewportCount-04140# If the bound+-- graphics pipeline state was created with the+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'+-- and+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV'+-- dynamic states enabled then the @viewportCount@ parameter in the+-- last call to+-- 'Vulkan.Extensions.VK_NV_shading_rate_image.cmdSetViewportShadingRatePaletteNV'+-- /must/ be greater than or equal to the @viewportCount@ parameter in+-- the last call to+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'+--+-- - #VUID-vkCmdDrawIndexedIndirect-VkPipelineVieportCreateInfo-04141# If+-- the bound graphics pipeline state was created with the+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'+-- dynamic state enabled and a+-- 'Vulkan.Extensions.VK_NV_viewport_swizzle.PipelineViewportSwizzleStateCreateInfoNV'+-- structure chained from+-- 'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo', then the+-- bound graphics pipeline /must/ have been created with+-- 'Vulkan.Extensions.VK_NV_viewport_swizzle.PipelineViewportSwizzleStateCreateInfoNV'::@viewportCount@+-- greater or equal to the @viewportCount@ parameter in the last call+-- to+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'+--+-- - #VUID-vkCmdDrawIndexedIndirect-VkPipelineVieportCreateInfo-04142# If+-- the bound graphics pipeline state was created with the+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'+-- dynamic state enabled and a+-- 'Vulkan.Extensions.VK_NV_scissor_exclusive.PipelineViewportExclusiveScissorStateCreateInfoNV'+-- structure chained from+-- 'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo', then the+-- bound graphics pipeline /must/ have been created with+-- 'Vulkan.Extensions.VK_NV_scissor_exclusive.PipelineViewportExclusiveScissorStateCreateInfoNV'::@exclusiveScissorCount@+-- greater or equal to the @viewportCount@ parameter in the last call+-- to+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'+--+-- - #VUID-vkCmdDrawIndexedIndirect-None-04876# If the bound graphics+-- pipeline state was created with the+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE'+-- dynamic state enabled then+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'+-- /must/ have been called in the current command buffer prior to this+-- drawing command+--+-- - #VUID-vkCmdDrawIndexedIndirect-None-04877# If the bound graphics+-- pipeline state was created with the+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BIAS_ENABLE'+-- dynamic state enabled then+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetDepthBiasEnable'+-- /must/ have been called in the current command buffer prior to this+-- drawing command+--+-- - #VUID-vkCmdDrawIndexedIndirect-logicOp-04878# If the bound graphics+-- pipeline state was created with the+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LOGIC_OP_EXT'+-- dynamic state enabled then+-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetLogicOpEXT'+-- /must/ have been called in the current command buffer prior to this+-- drawing command and the @logicOp@ /must/ be a valid+-- 'Vulkan.Core10.Enums.LogicOp.LogicOp' value+--+-- - #VUID-vkCmdDrawIndexedIndirect-primitiveFragmentShadingRateWithMultipleViewports-04552#+-- If the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-primitiveFragmentShadingRateWithMultipleViewports primitiveFragmentShadingRateWithMultipleViewports>+-- limit is not supported, the bound graphics pipeline was created with+-- the+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'+-- dynamic state enabled, and any of the shader stages of the bound+-- graphics pipeline write to the @PrimitiveShadingRateKHR@ built-in,+-- then+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'+-- /must/ have been called in the current command buffer prior to this+-- drawing command, and the @viewportCount@ parameter of+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'+-- /must/ be @1@+--+-- - #VUID-vkCmdDrawIndexedIndirect-blendEnable-04727# If rasterization+-- is not disabled in the bound graphics pipeline, then for each color+-- attachment in the subpass, if the corresponding image view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- do not contain+-- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT',+-- then the @blendEnable@ member of the corresponding element of the+-- @pAttachments@ member of @pColorBlendState@ /must/ be+-- 'Vulkan.Core10.FundamentalTypes.FALSE'+--+-- - #VUID-vkCmdDrawIndexedIndirect-rasterizationSamples-04740# If+-- rasterization is not disabled in the bound graphics pipeline, and+-- neither the @VK_AMD_mixed_attachment_samples@ nor the+-- @VK_NV_framebuffer_mixed_samples@ extensions are enabled, then+-- 'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'::@rasterizationSamples@+-- /must/ be the same as the current subpass color and\/or+-- depth\/stencil attachments+--+-- - #VUID-vkCmdDrawIndexedIndirect-imageView-06172# If the current+-- render pass instance was begun with+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+-- the @imageView@ member of @pDepthAttachment@ is not+-- 'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of+-- @pDepthAttachment@ is+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL',+-- this command /must/ not write any values to the depth attachment+--+-- - #VUID-vkCmdDrawIndexedIndirect-imageView-06173# If the current+-- render pass instance was begun with+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+-- the @imageView@ member of @pStencilAttachment@ is not+-- 'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of+-- @pStencilAttachment@ is+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL',+-- this command /must/ not write any values to the stencil attachment+--+-- - #VUID-vkCmdDrawIndexedIndirect-imageView-06174# If the current+-- render pass instance was begun with+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+-- the @imageView@ member of @pDepthAttachment@ is not+-- 'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of+-- @pDepthAttachment@ is+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL',+-- this command /must/ not write any values to the depth attachment+--+-- - #VUID-vkCmdDrawIndexedIndirect-imageView-06175# If the current+-- render pass instance was begun with+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+-- the @imageView@ member of @pStencilAttachment@ is not+-- 'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of+-- @pStencilAttachment@ is+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL',+-- this command /must/ not write any values to the stencil attachment+--+-- - #VUID-vkCmdDrawIndexedIndirect-imageView-06176# If the current+-- render pass instance was begun with+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+-- the @imageView@ member of @pDepthAttachment@ is not+-- 'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of+-- @pDepthAttachment@ is+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL',+-- this command /must/ not write any values to the depth attachment+--+-- - #VUID-vkCmdDrawIndexedIndirect-imageView-06177# If the current+-- render pass instance was begun with+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+-- the @imageView@ member of @pStencilAttachment@ is not+-- 'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of+-- @pStencilAttachment@ is+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL',+-- this command /must/ not write any values to the stencil attachment+--+-- - #VUID-vkCmdDrawIndexedIndirect-viewMask-06178# If the current render+-- pass instance was begun with+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+-- the currently bound graphics pipeline /must/ have been created with+-- a+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@viewMask@+-- equal to+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@viewMask@+--+-- - #VUID-vkCmdDrawIndexedIndirect-colorAttachmentCount-06179# If the+-- current render pass instance was begun with+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+-- the currently bound graphics pipeline /must/ have been created with+-- a+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@colorAttachmentCount@+-- equal to+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@+--+-- - #VUID-vkCmdDrawIndexedIndirect-colorAttachmentCount-06180# If the+-- current render pass instance was begun with+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'+-- and+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@+-- greater than @0@, then each element of the+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@+-- array with a @imageView@ not equal to+-- 'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created+-- with a 'Vulkan.Core10.Enums.Format.Format' equal to the+-- corresponding element of+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@+-- used to create the currently bound graphics pipeline+--+-- - #VUID-vkCmdDrawIndexedIndirect-attachmentCount-06667# If the bound+-- graphics pipeline state was created with the+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT'+-- dynamic state enabled then+-- 'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'+-- /must/ have been called in the current command buffer prior to this+-- drawing command, and the @attachmentCount@ parameter of+-- 'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'+-- /must/ be greater than or equal to the+-- 'Vulkan.Core10.Pipeline.PipelineColorBlendStateCreateInfo'::@attachmentCount@+-- of the currently bound graphics pipeline+--+-- - #VUID-vkCmdDrawIndexedIndirect-attachmentCount-06815# If the bound+-- graphics pipeline state was created with the+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT'+-- dynamic state enabled then+-- 'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'+-- /must/ have been called in the current command buffer prior to this+-- drawing command, and the @attachmentCount@ parameter of+-- 'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'+-- /must/ be less than or equal to the @maxColorAttachments@ member of+-- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'+--+-- - #VUID-vkCmdDrawIndexedIndirect-pDepthAttachment-06181# If the+-- current render pass instance was begun with+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'+-- and+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@+-- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@depthAttachmentFormat@+-- used to create the currently bound graphics pipeline /must/ be equal+-- to the 'Vulkan.Core10.Enums.Format.Format' used to create+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@+--+-- - #VUID-vkCmdDrawIndexedIndirect-pStencilAttachment-06182# If the+-- current render pass instance was begun with+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'+-- and+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@+-- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@stencilAttachmentFormat@+-- used to create the currently bound graphics pipeline /must/ be equal+-- to the 'Vulkan.Core10.Enums.Format.Format' used to create+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@+--+-- - #VUID-vkCmdDrawIndexedIndirect-imageView-06183# If the current+-- render pass instance was begun with+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'+-- and+-- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingFragmentShadingRateAttachmentInfoKHR'::@imageView@+-- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the currently+-- bound graphics pipeline /must/ have been created with+-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR'+--+-- - #VUID-vkCmdDrawIndexedIndirect-imageView-06184# If the current+-- render pass instance was begun with+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'+-- and+-- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingFragmentDensityMapAttachmentInfoEXT'::@imageView@+-- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the currently+-- bound graphics pipeline /must/ have been created with+-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT'+--+-- - #VUID-vkCmdDrawIndexedIndirect-colorAttachmentCount-06185# If the+-- currently bound pipeline was created with a+-- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'+-- or+-- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'+-- structure, and the current render pass instance was begun with+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'+-- with a+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@+-- parameter greater than @0@, then each element of the+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@+-- array with a @imageView@ not equal to+-- 'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created+-- with a sample count equal to the corresponding element of the+-- @pColorAttachmentSamples@ member of+-- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'+-- or+-- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'+-- used to create the currently bound graphics pipeline+--+-- - #VUID-vkCmdDrawIndexedIndirect-pDepthAttachment-06186# If the+-- current render pass instance was begun with+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+-- the currently bound pipeline was created with a+-- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'+-- or+-- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'+-- structure, and+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@+-- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of the+-- @depthStencilAttachmentSamples@ member of+-- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'+-- or+-- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'+-- used to create the currently bound graphics pipeline /must/ be equal+-- to the sample count used to create+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@+--+-- - #VUID-vkCmdDrawIndexedIndirect-pStencilAttachment-06187# If the+-- current render pass instance was begun with+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+-- the currently bound pipeline was created with a+-- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'+-- or+-- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'+-- structure, and+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@+-- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of the+-- @depthStencilAttachmentSamples@ member of+-- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'+-- or+-- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'+-- used to create the currently bound graphics pipeline /must/ be equal+-- to the sample count used to create+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@+--+-- - #VUID-vkCmdDrawIndexedIndirect-colorAttachmentCount-06188# If the+-- currently bound pipeline was created without a+-- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'+-- or+-- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'+-- structure, and the current render pass instance was begun with+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'+-- with a+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@+-- parameter greater than @0@, then each element of the+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@+-- array with a @imageView@ not equal to+-- 'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created+-- with a sample count equal to the value of+-- 'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'::@rasterizationSamples@+-- used to create the currently bound graphics pipeline+--+-- - #VUID-vkCmdDrawIndexedIndirect-pDepthAttachment-06189# If the+-- current render pass instance was begun with+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+-- the currently bound pipeline was created without a+-- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'+-- or+-- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'+-- structure, and+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@+-- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of+-- 'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'::@rasterizationSamples@+-- used to create the currently bound graphics pipeline /must/ be equal+-- to the sample count used to create+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@+--+-- - #VUID-vkCmdDrawIndexedIndirect-pStencilAttachment-06190# If the+-- current render pass instance was begun with+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+-- the currently bound pipeline was created without a+-- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'+-- or+-- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'+-- structure, and+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@+-- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of+-- 'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'::@rasterizationSamples@+-- used to create the currently bound graphics pipeline /must/ be equal+-- to the sample count used to create+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@+--+-- - #VUID-vkCmdDrawIndexedIndirect-renderPass-06198# If the current+-- render pass instance was begun with+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+-- the currently bound pipeline /must/ have been created with a+-- 'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo'::@renderPass@+-- equal to 'Vulkan.Core10.APIConstants.NULL_HANDLE'+--+-- - #VUID-vkCmdDrawIndexedIndirect-primitivesGeneratedQueryWithRasterizerDiscard-06708#+-- If the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-primitivesGeneratedQueryWithRasterizerDiscard primitivesGeneratedQueryWithRasterizerDiscard>+-- feature is not enabled and the+-- 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PRIMITIVES_GENERATED_EXT'+-- query is active,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-discard rasterization discard>+-- /must/ not be enabled.+--+-- - #VUID-vkCmdDrawIndexedIndirect-primitivesGeneratedQueryWithNonZeroStreams-06709#+-- If the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-primitivesGeneratedQueryWithNonZeroStreams primitivesGeneratedQueryWithNonZeroStreams>+-- feature is not enabled and the+-- 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PRIMITIVES_GENERATED_EXT'+-- query is active, the bound graphics pipeline /must/ not have been+-- created with a non-zero value in+-- 'Vulkan.Extensions.VK_EXT_transform_feedback.PipelineRasterizationStateStreamCreateInfoEXT'::@rasterizationStream@.+--+-- - #VUID-vkCmdDrawIndexedIndirect-stage-07073# If the currently bound+-- pipeline was created with the+-- 'Vulkan.Core10.Pipeline.PipelineShaderStageCreateInfo'::@stage@+-- member of an element of+-- 'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo'::@pStages@ set+-- to+-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT',+-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_CONTROL_BIT',+-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT'+-- or+-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT',+-- then+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#queries-mesh-shader Mesh Shader Queries>+-- must not be active+--+-- - #VUID-vkCmdDrawIndexedIndirect-None-04007# All vertex input bindings+-- accessed via vertex input variables declared in the vertex shader+-- entry point’s interface /must/ have either valid or+-- 'Vulkan.Core10.APIConstants.NULL_HANDLE' buffers bound+--+-- - #VUID-vkCmdDrawIndexedIndirect-None-04008# If the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-nullDescriptor nullDescriptor>+-- feature is not enabled, all vertex input bindings accessed via+-- vertex input variables declared in the vertex shader entry point’s+-- interface /must/ not be 'Vulkan.Core10.APIConstants.NULL_HANDLE'+--+-- - #VUID-vkCmdDrawIndexedIndirect-None-02721# For a given vertex buffer+-- binding, any attribute data fetched /must/ be entirely contained+-- within the corresponding vertex buffer binding, as described in+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fxvertex-input ???>+--+-- - #VUID-vkCmdDrawIndexedIndirect-primitiveTopology-03420# If the bound+-- graphics pipeline state was created with the+-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT'+-- dynamic state enabled then+-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopologyEXT'+-- /must/ have been called in the current command buffer prior to this+-- drawing command, and the @primitiveTopology@ parameter of+-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopologyEXT'+-- /must/ be of the same+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#drawing-primitive-topology-class topology class>+-- as the pipeline+-- 'Vulkan.Core10.Pipeline.PipelineInputAssemblyStateCreateInfo'::@topology@+-- state+--+-- - #VUID-vkCmdDrawIndexedIndirect-None-04912# If the bound graphics+-- pipeline was created with both the+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'+-- and+-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT'+-- dynamic states enabled, then+-- 'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.cmdSetVertexInputEXT'+-- /must/ have been called in the current command buffer prior to this+-- draw command+--+-- - #VUID-vkCmdDrawIndexedIndirect-pStrides-04913# If the bound graphics+-- pipeline was created with the+-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT'+-- dynamic state enabled, but not the+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'+-- dynamic state enabled, then+-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdBindVertexBuffers2EXT'+-- /must/ have been called in the current command buffer prior to this+-- draw command, and the @pStrides@ parameter of+-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdBindVertexBuffers2EXT'+-- /must/ not be @NULL@+--+-- - #VUID-vkCmdDrawIndexedIndirect-None-04914# If the bound graphics+-- pipeline state was created with the+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'+-- dynamic state enabled, then+-- 'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.cmdSetVertexInputEXT'+-- /must/ have been called in the current command buffer prior to this+-- draw command+--+-- - #VUID-vkCmdDrawIndexedIndirect-None-04875# If the bound graphics+-- pipeline state was created with the+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT'+-- dynamic state enabled then+-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetPatchControlPointsEXT'+-- /must/ have been called in the current command buffer prior to this+-- drawing command+--+-- - #VUID-vkCmdDrawIndexedIndirect-None-04879# If the bound graphics+-- pipeline state was created with the+-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE_EXT'+-- dynamic state enabled then+-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetPrimitiveRestartEnableEXT'+-- /must/ have been called in the current command buffer prior to this+-- drawing command+--+-- - #VUID-vkCmdDrawIndexedIndirect-stage-06481# The bound graphics+-- pipeline /must/ not have been created with the+-- 'Vulkan.Core10.Pipeline.PipelineShaderStageCreateInfo'::@stage@+-- member of an element of+-- 'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo'::@pStages@ set+-- to+-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT'+-- or+-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'+--+-- - #VUID-vkCmdDrawIndexedIndirect-buffer-02708# If @buffer@ is+-- non-sparse then it /must/ be bound completely and contiguously to a+-- single 'Vulkan.Core10.Handles.DeviceMemory' object+--+-- - #VUID-vkCmdDrawIndexedIndirect-buffer-02709# @buffer@ /must/ have+-- been created with the+-- 'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_INDIRECT_BUFFER_BIT'+-- bit set+--+-- - #VUID-vkCmdDrawIndexedIndirect-offset-02710# @offset@ /must/ be a+-- multiple of @4@+--+-- - #VUID-vkCmdDrawIndexedIndirect-commandBuffer-02711# @commandBuffer@+-- /must/ not be a protected command buffer+--+-- - #VUID-vkCmdDrawIndexedIndirect-drawCount-02718# If the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multiDrawIndirect multiDrawIndirect>+-- feature is not enabled, @drawCount@ /must/ be @0@ or @1@+--+-- - #VUID-vkCmdDrawIndexedIndirect-drawCount-02719# @drawCount@ /must/+-- be less than or equal to+-- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxDrawIndirectCount@+--+-- - #VUID-vkCmdDrawIndexedIndirect-drawCount-00528# If @drawCount@ is+-- greater than @1@, @stride@ /must/ be a multiple of @4@ and /must/ be+-- greater than or equal to+-- @sizeof@('Vulkan.Core10.OtherTypes.DrawIndexedIndirectCommand')+--+-- - #VUID-vkCmdDrawIndexedIndirect-drawCount-00539# If @drawCount@ is+-- equal to @1@, (@offset@ ++-- @sizeof@('Vulkan.Core10.OtherTypes.DrawIndexedIndirectCommand'))+-- /must/ be less than or equal to the size of @buffer@+--+-- - #VUID-vkCmdDrawIndexedIndirect-drawCount-00540# If @drawCount@ is+-- greater than @1@, (@stride@ × (@drawCount@ - 1) + @offset@ ++-- @sizeof@('Vulkan.Core10.OtherTypes.DrawIndexedIndirectCommand'))+-- /must/ be less than or equal to the size of @buffer@+--+-- == Valid Usage (Implicit)+--+-- - #VUID-vkCmdDrawIndexedIndirect-commandBuffer-parameter#+-- @commandBuffer@ /must/ be a valid+-- 'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- - #VUID-vkCmdDrawIndexedIndirect-buffer-parameter# @buffer@ /must/ be+-- a valid 'Vulkan.Core10.Handles.Buffer' handle+--+-- - #VUID-vkCmdDrawIndexedIndirect-commandBuffer-recording#+-- @commandBuffer@ /must/ be in the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording state>+--+-- - #VUID-vkCmdDrawIndexedIndirect-commandBuffer-cmdpool# The+-- 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+-- allocated from /must/ support graphics operations+--+-- - #VUID-vkCmdDrawIndexedIndirect-renderpass# This command /must/ only+-- be called inside of a render pass instance+--+-- - #VUID-vkCmdDrawIndexedIndirect-videocoding# This command /must/ only+-- be called outside of a video coding scope+--+-- - #VUID-vkCmdDrawIndexedIndirect-commonparent# Both of @buffer@, and+-- @commandBuffer@ /must/ have been created, allocated, or retrieved+-- from the same 'Vulkan.Core10.Handles.Device'+--+-- == Host Synchronization+--+-- - Host access to @commandBuffer@ /must/ be externally synchronized+--+-- - Host access to the 'Vulkan.Core10.Handles.CommandPool' that+-- @commandBuffer@ was allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- \'+--+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================++-- | Primary | Inside | Outside | Graphics |+-- | Secondary | | | |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,+-- 'Vulkan.Core10.Handles.Buffer', 'Vulkan.Core10.Handles.CommandBuffer',+-- 'Vulkan.Core10.FundamentalTypes.DeviceSize'+cmdDrawIndexedIndirect :: forall io+ . (MonadIO io)+ => -- | @commandBuffer@ is the command buffer into which the command is+ -- recorded.+ CommandBuffer+ -> -- | @buffer@ is the buffer containing draw parameters.+ Buffer+ -> -- | @offset@ is the byte offset into @buffer@ where parameters begin.+ ("offset" ::: DeviceSize)+ -> -- | @drawCount@ is the number of draws to execute, and /can/ be zero.+ ("drawCount" ::: Word32)+ -> -- | @stride@ is the byte stride between successive sets of draw parameters.+ ("stride" ::: Word32)+ -> io ()+cmdDrawIndexedIndirect commandBuffer buffer offset drawCount stride = liftIO $ do+ let vkCmdDrawIndexedIndirectPtr = pVkCmdDrawIndexedIndirect (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)+ unless (vkCmdDrawIndexedIndirectPtr /= nullFunPtr) $+ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdDrawIndexedIndirect is null" Nothing Nothing+ let vkCmdDrawIndexedIndirect' = mkVkCmdDrawIndexedIndirect vkCmdDrawIndexedIndirectPtr+ traceAroundEvent "vkCmdDrawIndexedIndirect" (vkCmdDrawIndexedIndirect' (commandBufferHandle (commandBuffer)) (buffer) (offset) (drawCount) (stride))+ pure $ ()+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+ unsafe+#endif+ "dynamic" mkVkCmdDispatch+ :: FunPtr (Ptr CommandBuffer_T -> Word32 -> Word32 -> Word32 -> IO ()) -> Ptr CommandBuffer_T -> Word32 -> Word32 -> Word32 -> IO ()++-- | vkCmdDispatch - Dispatch compute work items+--+-- = Description+--+-- When the command is executed, a global workgroup consisting of+-- @groupCountX@ × @groupCountY@ × @groupCountZ@ local workgroups is+-- assembled.+--+-- == Valid Usage+--+-- - #VUID-vkCmdDispatch-magFilter-04553# If a+-- 'Vulkan.Core10.Handles.Sampler' created with @magFilter@ or+-- @minFilter@ equal to 'Vulkan.Core10.Enums.Filter.FILTER_LINEAR' and+-- @compareEnable@ equal to 'Vulkan.Core10.FundamentalTypes.FALSE' is+-- used to sample a 'Vulkan.Core10.Handles.ImageView' as a result of+-- this command, then the image view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain+-- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT'+--+-- - #VUID-vkCmdDispatch-mipmapMode-04770# If a+-- 'Vulkan.Core10.Handles.Sampler' created with @mipmapMode@ equal to+-- 'Vulkan.Core10.Enums.SamplerMipmapMode.SAMPLER_MIPMAP_MODE_LINEAR'+-- and @compareEnable@ equal to 'Vulkan.Core10.FundamentalTypes.FALSE'+-- is used to sample a 'Vulkan.Core10.Handles.ImageView' as a result of+-- this command, then the image view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain+-- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT'+--+-- - #VUID-vkCmdDispatch-None-06479# If a+-- 'Vulkan.Core10.Handles.ImageView' is sampled with+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-depth-compare-operation depth comparison>,+-- the image view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT'+--+-- - #VUID-vkCmdDispatch-None-02691# If a+-- 'Vulkan.Core10.Handles.ImageView' is accessed using atomic+-- operations as a result of this command, then the image view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain+-- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT'+--+-- - #VUID-vkCmdDispatch-None-02692# If a+-- 'Vulkan.Core10.Handles.ImageView' is sampled with+-- 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as a result of this+-- command, then the image view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain+-- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT'+--+-- - #VUID-vkCmdDispatch-filterCubic-02694# Any+-- 'Vulkan.Core10.Handles.ImageView' being sampled with+-- 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as a result of this+-- command /must/ have a+-- 'Vulkan.Core10.Enums.ImageViewType.ImageViewType' and format that+-- supports cubic filtering, as specified by+-- 'Vulkan.Extensions.VK_EXT_filter_cubic.FilterCubicImageViewImageFormatPropertiesEXT'::@filterCubic@+-- returned by+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceImageFormatProperties2'+--+-- - #VUID-vkCmdDispatch-filterCubicMinmax-02695# Any+-- 'Vulkan.Core10.Handles.ImageView' being sampled with+-- 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' with a reduction mode+-- of either+-- 'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MIN'+-- or+-- 'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MAX'+-- as a result of this command /must/ have a+-- 'Vulkan.Core10.Enums.ImageViewType.ImageViewType' and format that+-- supports cubic filtering together with minmax filtering, as+-- specified by+-- 'Vulkan.Extensions.VK_EXT_filter_cubic.FilterCubicImageViewImageFormatPropertiesEXT'::@filterCubicMinmax@+-- returned by+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceImageFormatProperties2'+--+-- - #VUID-vkCmdDispatch-flags-02696# Any 'Vulkan.Core10.Handles.Image'+-- created with a 'Vulkan.Core10.Image.ImageCreateInfo'::@flags@+-- containing+-- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_CORNER_SAMPLED_BIT_NV'+-- sampled as a result of this command /must/ only be sampled using a+-- 'Vulkan.Core10.Enums.SamplerAddressMode.SamplerAddressMode' of+-- 'Vulkan.Core10.Enums.SamplerAddressMode.SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE'+--+-- - #VUID-vkCmdDispatch-OpTypeImage-07027# For any+-- 'Vulkan.Core10.Handles.ImageView' being written as a storage image+-- where the image format field of the @OpTypeImage@ is @Unknown@, the+-- view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT'+--+-- - #VUID-vkCmdDispatch-OpTypeImage-07028# For any+-- 'Vulkan.Core10.Handles.ImageView' being read as a storage image+-- where the image format field of the @OpTypeImage@ is @Unknown@, the+-- view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT'+--+-- - #VUID-vkCmdDispatch-OpTypeImage-07029# For any+-- 'Vulkan.Core10.Handles.BufferView' being written as a storage texel+-- buffer where the image format field of the @OpTypeImage@ is+-- @Unknown@, the view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkFormatProperties3 buffer features>+-- /must/ contain+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT'+--+-- - #VUID-vkCmdDispatch-OpTypeImage-07030# Any+-- 'Vulkan.Core10.Handles.BufferView' being read as a storage texel+-- buffer where the image format field of the @OpTypeImage@ is+-- @Unknown@ then the view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkFormatProperties3 buffer features>+-- /must/ contain+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT'+--+-- - #VUID-vkCmdDispatch-None-02697# For each set /n/ that is statically+-- used by the 'Vulkan.Core10.Handles.Pipeline' bound to the pipeline+-- bind point used by this command, a descriptor set /must/ have been+-- bound to /n/ at the same pipeline bind point, with a+-- 'Vulkan.Core10.Handles.PipelineLayout' that is compatible for set+-- /n/, with the 'Vulkan.Core10.Handles.PipelineLayout' used to create+-- the current 'Vulkan.Core10.Handles.Pipeline', as described in+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>+--+-- - #VUID-vkCmdDispatch-maintenance4-06425# If the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-maintenance4 maintenance4>+-- feature is not enabled, then for each push constant that is+-- statically used by the 'Vulkan.Core10.Handles.Pipeline' bound to the+-- pipeline bind point used by this command, a push constant value+-- /must/ have been set for the same pipeline bind point, with a+-- 'Vulkan.Core10.Handles.PipelineLayout' that is compatible for push+-- constants, with the 'Vulkan.Core10.Handles.PipelineLayout' used to+-- create the current 'Vulkan.Core10.Handles.Pipeline', as described in+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>+--+-- - #VUID-vkCmdDispatch-None-02699# Descriptors in each bound descriptor+-- set, specified via 'cmdBindDescriptorSets', /must/ be valid if they+-- are statically used by the 'Vulkan.Core10.Handles.Pipeline' bound to+-- the pipeline bind point used by this command+--+-- - #VUID-vkCmdDispatch-None-02700# A valid pipeline /must/ be bound to+-- the pipeline bind point used by this command+--+-- - #VUID-vkCmdDispatch-commandBuffer-02701# If the+-- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind+-- point used by this command requires any dynamic state, that state+-- /must/ have been set or inherited (if the+-- @VK_NV_inherited_viewport_scissor@ extension is enabled) for+-- @commandBuffer@, and done so after any previously bound pipeline+-- with the corresponding state not specified as dynamic+--+-- - #VUID-vkCmdDispatch-None-02859# There /must/ not have been any calls+-- to dynamic state setting commands for any state not specified as+-- dynamic in the 'Vulkan.Core10.Handles.Pipeline' object bound to the+-- pipeline bind point used by this command, since that pipeline was+-- bound+--+-- - #VUID-vkCmdDispatch-None-02702# If the+-- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind+-- point used by this command accesses a+-- 'Vulkan.Core10.Handles.Sampler' object that uses unnormalized+-- coordinates, that sampler /must/ not be used to sample from any+-- 'Vulkan.Core10.Handles.Image' with a+-- 'Vulkan.Core10.Handles.ImageView' of the type+-- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_3D',+-- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE',+-- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_1D_ARRAY',+-- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_2D_ARRAY' or+-- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE_ARRAY', in+-- any shader stage+--+-- - #VUID-vkCmdDispatch-None-02703# If the+-- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind+-- point used by this command accesses a+-- 'Vulkan.Core10.Handles.Sampler' object that uses unnormalized+-- coordinates, that sampler /must/ not be used with any of the SPIR-V+-- @OpImageSample*@ or @OpImageSparseSample*@ instructions with+-- @ImplicitLod@, @Dref@ or @Proj@ in their name, in any shader stage+--+-- - #VUID-vkCmdDispatch-None-02704# If the+-- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind+-- point used by this command accesses a+-- 'Vulkan.Core10.Handles.Sampler' object that uses unnormalized+-- coordinates, that sampler /must/ not be used with any of the SPIR-V+-- @OpImageSample*@ or @OpImageSparseSample*@ instructions that+-- includes a LOD bias or any offset values, in any shader stage+--+-- - #VUID-vkCmdDispatch-uniformBuffers-06935# If any stage of the+-- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind+-- point used by this command accesses a uniform buffer, and that stage+-- was created without enabling either+-- 'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT'+-- or+-- 'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT'+-- for @uniformBuffers@, and the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>+-- feature is not enabled, that stage /must/ not access values outside+-- of the range of the buffer as specified in the descriptor set bound+-- to the same pipeline bind point+--+-- - #VUID-vkCmdDispatch-storageBuffers-06936# If any stage of the+-- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind+-- point used by this command accesses a storage buffer, and that stage+-- was created without enabling either+-- 'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT'+-- or+-- 'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT'+-- for @storageBuffers@, and the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>+-- feature is not enabled, that stage /must/ not access values outside+-- of the range of the buffer as specified in the descriptor set bound+-- to the same pipeline bind point+--+-- - #VUID-vkCmdDispatch-commandBuffer-02707# If @commandBuffer@ is an+-- unprotected command buffer and+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>+-- is not supported, any resource accessed by the+-- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind+-- point used by this command /must/ not be a protected resource+--+-- - #VUID-vkCmdDispatch-None-06550# If the+-- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind+-- point used by this command accesses a+-- 'Vulkan.Core10.Handles.Sampler' or 'Vulkan.Core10.Handles.ImageView'+-- object that enables+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion>,+-- that object /must/ only be used with @OpImageSample*@ or+-- @OpImageSparseSample*@ instructions+--+-- - #VUID-vkCmdDispatch-ConstOffset-06551# If the+-- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind+-- point used by this command accesses a+-- 'Vulkan.Core10.Handles.Sampler' or 'Vulkan.Core10.Handles.ImageView'+-- object that enables+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion>,+-- that object /must/ not use the @ConstOffset@ and @Offset@ operands+--+-- - #VUID-vkCmdDispatch-None-04115# If a+-- 'Vulkan.Core10.Handles.ImageView' is accessed using @OpImageWrite@+-- as a result of this command, then the @Type@ of the @Texel@ operand+-- of that instruction /must/ have at least as many components as the+-- image view’s format+--+-- - #VUID-vkCmdDispatch-OpImageWrite-04469# If a+-- 'Vulkan.Core10.Handles.BufferView' is accessed using @OpImageWrite@+-- as a result of this command, then the @Type@ of the @Texel@ operand+-- of that instruction /must/ have at least as many components as the+-- buffer view’s format+--+-- - #VUID-vkCmdDispatch-SampledType-04470# If a+-- 'Vulkan.Core10.Handles.ImageView' with a+-- 'Vulkan.Core10.Enums.Format.Format' that has a 64-bit component+-- width is accessed as a result of this command, the @SampledType@ of+-- the @OpTypeImage@ operand of that instruction /must/ have a @Width@+-- of 64+--+-- - #VUID-vkCmdDispatch-SampledType-04471# If a+-- 'Vulkan.Core10.Handles.ImageView' with a+-- 'Vulkan.Core10.Enums.Format.Format' that has a component width less+-- than 64-bit is accessed as a result of this command, the+-- @SampledType@ of the @OpTypeImage@ operand of that instruction+-- /must/ have a @Width@ of 32+--+-- - #VUID-vkCmdDispatch-SampledType-04472# If a+-- 'Vulkan.Core10.Handles.BufferView' with a+-- 'Vulkan.Core10.Enums.Format.Format' that has a 64-bit component+-- width is accessed as a result of this command, the @SampledType@ of+-- the @OpTypeImage@ operand of that instruction /must/ have a @Width@+-- of 64+--+-- - #VUID-vkCmdDispatch-SampledType-04473# If a+-- 'Vulkan.Core10.Handles.BufferView' with a+-- 'Vulkan.Core10.Enums.Format.Format' that has a component width less+-- than 64-bit is accessed as a result of this command, the+-- @SampledType@ of the @OpTypeImage@ operand of that instruction+-- /must/ have a @Width@ of 32+--+-- - #VUID-vkCmdDispatch-sparseImageInt64Atomics-04474# If the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-sparseImageInt64Atomics sparseImageInt64Atomics>+-- feature is not enabled, 'Vulkan.Core10.Handles.Image' objects+-- created with the+-- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SPARSE_RESIDENCY_BIT'+-- flag /must/ not be accessed by atomic instructions through an+-- @OpTypeImage@ with a @SampledType@ with a @Width@ of 64 by this+-- command+--+-- - #VUID-vkCmdDispatch-sparseImageInt64Atomics-04475# If the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-sparseImageInt64Atomics sparseImageInt64Atomics>+-- feature is not enabled, 'Vulkan.Core10.Handles.Buffer' objects+-- created with the+-- 'Vulkan.Core10.Enums.BufferCreateFlagBits.BUFFER_CREATE_SPARSE_RESIDENCY_BIT'+-- flag /must/ not be accessed by atomic instructions through an+-- @OpTypeImage@ with a @SampledType@ with a @Width@ of 64 by this+-- command+--+-- - #VUID-vkCmdDispatch-OpImageWeightedSampleQCOM-06971# If+-- @OpImageWeightedSampleQCOM@ is used to sample a+-- 'Vulkan.Core10.Handles.ImageView' as a result of this command, then+-- the image view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM'+--+-- - #VUID-vkCmdDispatch-OpImageWeightedSampleQCOM-06972# If+-- @OpImageWeightedSampleQCOM@ uses a 'Vulkan.Core10.Handles.ImageView'+-- as a sample weight image as a result of this command, then the image+-- view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM'+--+-- - #VUID-vkCmdDispatch-OpImageBoxFilterQCOM-06973# If+-- @OpImageBoxFilterQCOM@ is used to sample a+-- 'Vulkan.Core10.Handles.ImageView' as a result of this command, then+-- the image view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM'+--+-- - #VUID-vkCmdDispatch-OpImageBlockMatchSSDQCOM-06974# If+-- @OpImageBlockMatchSSDQCOM@ is used to read from an+-- 'Vulkan.Core10.Handles.ImageView' as a result of this command, then+-- the image view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM'+--+-- - #VUID-vkCmdDispatch-OpImageBlockMatchSADQCOM-06975# If+-- @OpImageBlockMatchSADQCOM@ is used to read from an+-- 'Vulkan.Core10.Handles.ImageView' as a result of this command, then+-- the image view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM'+--+-- - #VUID-vkCmdDispatch-OpImageBlockMatchSADQCOM-06976# If+-- @OpImageBlockMatchSADQCOM@ or OpImageBlockMatchSSDQCOM is used to+-- read from a reference image as result of this command, then the+-- specified reference coordinates /must/ not fail+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-integer-coordinate-validation integer texel coordinate validation>.+--+-- - #VUID-vkCmdDispatch-OpImageWeightedSampleQCOM-06977# If+-- @OpImageWeightedSampleQCOM@, @OpImageBoxFilterQCOM@,+-- @OpImageBlockMatchSSDQCOM@, or @OpImageBlockMatchSADQCOM@ uses a+-- 'Vulkan.Core10.Handles.Sampler' as a result of this command, then+-- the sampler /must/ have been created with+-- 'Vulkan.Core10.Enums.SamplerCreateFlagBits.SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM'.+--+-- - #VUID-vkCmdDispatch-OpImageWeightedSampleQCOM-06978# If any command+-- other than @OpImageWeightedSampleQCOM@, @OpImageBoxFilterQCOM@,+-- @OpImageBlockMatchSSDQCOM@, or @OpImageBlockMatchSADQCOM@ uses a+-- 'Vulkan.Core10.Handles.Sampler' as a result of this command, then+-- the sampler /must/ not have been created with+-- 'Vulkan.Core10.Enums.SamplerCreateFlagBits.SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM'.+--+-- - #VUID-vkCmdDispatch-commandBuffer-02712# If @commandBuffer@ is a+-- protected command buffer and+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>+-- is not supported, any resource written to by the+-- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind+-- point used by this command /must/ not be an unprotected resource+--+-- - #VUID-vkCmdDispatch-commandBuffer-02713# If @commandBuffer@ is a+-- protected command buffer and+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>+-- is not supported, pipeline stages other than the framebuffer-space+-- and compute stages in the 'Vulkan.Core10.Handles.Pipeline' object+-- bound to the pipeline bind point used by this command /must/ not+-- write to any resource+--+-- - #VUID-vkCmdDispatch-commandBuffer-04617# If any of the shader stages+-- of the 'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind+-- point used by this command uses the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-RayQueryKHR RayQueryKHR>+-- capability, then @commandBuffer@ /must/ not be a protected command+-- buffer+--+-- - #VUID-vkCmdDispatch-groupCountX-00386# @groupCountX@ /must/ be less+-- than or equal to+-- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxComputeWorkGroupCount@[0]+--+-- - #VUID-vkCmdDispatch-groupCountY-00387# @groupCountY@ /must/ be less+-- than or equal to+-- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxComputeWorkGroupCount@[1]+--+-- - #VUID-vkCmdDispatch-groupCountZ-00388# @groupCountZ@ /must/ be less+-- than or equal to+-- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxComputeWorkGroupCount@[2]+--+-- == Valid Usage (Implicit)+--+-- - #VUID-vkCmdDispatch-commandBuffer-parameter# @commandBuffer@ /must/+-- be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- - #VUID-vkCmdDispatch-commandBuffer-recording# @commandBuffer@ /must/+-- be in the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording state>+--+-- - #VUID-vkCmdDispatch-commandBuffer-cmdpool# The+-- 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+-- allocated from /must/ support compute operations+--+-- - #VUID-vkCmdDispatch-renderpass# This command /must/ only be called+-- outside of a render pass instance+--+-- - #VUID-vkCmdDispatch-videocoding# This command /must/ only be called+-- outside of a video coding scope+--+-- == Host Synchronization+--+-- - Host access to @commandBuffer@ /must/ be externally synchronized+--+-- - Host access to the 'Vulkan.Core10.Handles.CommandPool' that+-- @commandBuffer@ was allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- \'+--+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================++-- | Primary | Outside | Outside | Compute |+-- | Secondary | | | |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,+-- 'Vulkan.Core10.Handles.CommandBuffer'+cmdDispatch :: forall io+ . (MonadIO io)+ => -- | @commandBuffer@ is the command buffer into which the command will be+ -- recorded.+ CommandBuffer+ -> -- | @groupCountX@ is the number of local workgroups to dispatch in the X+ -- dimension.+ ("groupCountX" ::: Word32)+ -> -- | @groupCountY@ is the number of local workgroups to dispatch in the Y+ -- dimension.+ ("groupCountY" ::: Word32)+ -> -- | @groupCountZ@ is the number of local workgroups to dispatch in the Z+ -- dimension.+ ("groupCountZ" ::: Word32)+ -> io ()+cmdDispatch commandBuffer groupCountX groupCountY groupCountZ = liftIO $ do+ let vkCmdDispatchPtr = pVkCmdDispatch (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)+ unless (vkCmdDispatchPtr /= nullFunPtr) $+ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdDispatch is null" Nothing Nothing+ let vkCmdDispatch' = mkVkCmdDispatch vkCmdDispatchPtr+ traceAroundEvent "vkCmdDispatch" (vkCmdDispatch' (commandBufferHandle (commandBuffer)) (groupCountX) (groupCountY) (groupCountZ))+ pure $ ()+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+ unsafe+#endif+ "dynamic" mkVkCmdDispatchIndirect+ :: FunPtr (Ptr CommandBuffer_T -> Buffer -> DeviceSize -> IO ()) -> Ptr CommandBuffer_T -> Buffer -> DeviceSize -> IO ()++-- | vkCmdDispatchIndirect - Dispatch compute work items with indirect+-- parameters+--+-- = Description+--+-- 'cmdDispatchIndirect' behaves similarly to 'cmdDispatch' except that the+-- parameters are read by the device from a buffer during execution. The+-- parameters of the dispatch are encoded in a+-- 'Vulkan.Core10.OtherTypes.DispatchIndirectCommand' structure taken from+-- @buffer@ starting at @offset@.+--+-- == Valid Usage+--+-- - #VUID-vkCmdDispatchIndirect-magFilter-04553# If a+-- 'Vulkan.Core10.Handles.Sampler' created with @magFilter@ or+-- @minFilter@ equal to 'Vulkan.Core10.Enums.Filter.FILTER_LINEAR' and+-- @compareEnable@ equal to 'Vulkan.Core10.FundamentalTypes.FALSE' is+-- used to sample a 'Vulkan.Core10.Handles.ImageView' as a result of+-- this command, then the image view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain+-- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT'+--+-- - #VUID-vkCmdDispatchIndirect-mipmapMode-04770# If a+-- 'Vulkan.Core10.Handles.Sampler' created with @mipmapMode@ equal to+-- 'Vulkan.Core10.Enums.SamplerMipmapMode.SAMPLER_MIPMAP_MODE_LINEAR'+-- and @compareEnable@ equal to 'Vulkan.Core10.FundamentalTypes.FALSE'+-- is used to sample a 'Vulkan.Core10.Handles.ImageView' as a result of+-- this command, then the image view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain+-- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT'+--+-- - #VUID-vkCmdDispatchIndirect-None-06479# If a+-- 'Vulkan.Core10.Handles.ImageView' is sampled with+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-depth-compare-operation depth comparison>,+-- the image view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT'+--+-- - #VUID-vkCmdDispatchIndirect-None-02691# If a+-- 'Vulkan.Core10.Handles.ImageView' is accessed using atomic+-- operations as a result of this command, then the image view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain+-- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT'+--+-- - #VUID-vkCmdDispatchIndirect-None-02692# If a+-- 'Vulkan.Core10.Handles.ImageView' is sampled with+-- 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as a result of this+-- command, then the image view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain+-- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT'+--+-- - #VUID-vkCmdDispatchIndirect-filterCubic-02694# Any+-- 'Vulkan.Core10.Handles.ImageView' being sampled with+-- 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as a result of this+-- command /must/ have a+-- 'Vulkan.Core10.Enums.ImageViewType.ImageViewType' and format that+-- supports cubic filtering, as specified by+-- 'Vulkan.Extensions.VK_EXT_filter_cubic.FilterCubicImageViewImageFormatPropertiesEXT'::@filterCubic@+-- returned by+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceImageFormatProperties2'+--+-- - #VUID-vkCmdDispatchIndirect-filterCubicMinmax-02695# Any+-- 'Vulkan.Core10.Handles.ImageView' being sampled with+-- 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' with a reduction mode+-- of either+-- 'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MIN'+-- or+-- 'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MAX'+-- as a result of this command /must/ have a+-- 'Vulkan.Core10.Enums.ImageViewType.ImageViewType' and format that+-- supports cubic filtering together with minmax filtering, as+-- specified by+-- 'Vulkan.Extensions.VK_EXT_filter_cubic.FilterCubicImageViewImageFormatPropertiesEXT'::@filterCubicMinmax@+-- returned by+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceImageFormatProperties2'+--+-- - #VUID-vkCmdDispatchIndirect-flags-02696# Any+-- 'Vulkan.Core10.Handles.Image' created with a+-- 'Vulkan.Core10.Image.ImageCreateInfo'::@flags@ containing+-- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_CORNER_SAMPLED_BIT_NV'+-- sampled as a result of this command /must/ only be sampled using a+-- 'Vulkan.Core10.Enums.SamplerAddressMode.SamplerAddressMode' of+-- 'Vulkan.Core10.Enums.SamplerAddressMode.SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE'+--+-- - #VUID-vkCmdDispatchIndirect-OpTypeImage-07027# For any+-- 'Vulkan.Core10.Handles.ImageView' being written as a storage image+-- where the image format field of the @OpTypeImage@ is @Unknown@, the+-- view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT'+--+-- - #VUID-vkCmdDispatchIndirect-OpTypeImage-07028# For any+-- 'Vulkan.Core10.Handles.ImageView' being read as a storage image+-- where the image format field of the @OpTypeImage@ is @Unknown@, the+-- view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT'+--+-- - #VUID-vkCmdDispatchIndirect-OpTypeImage-07029# For any+-- 'Vulkan.Core10.Handles.BufferView' being written as a storage texel+-- buffer where the image format field of the @OpTypeImage@ is+-- @Unknown@, the view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkFormatProperties3 buffer features>+-- /must/ contain+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT'+--+-- - #VUID-vkCmdDispatchIndirect-OpTypeImage-07030# Any+-- 'Vulkan.Core10.Handles.BufferView' being read as a storage texel+-- buffer where the image format field of the @OpTypeImage@ is+-- @Unknown@ then the view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkFormatProperties3 buffer features>+-- /must/ contain+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT'+--+-- - #VUID-vkCmdDispatchIndirect-None-02697# For each set /n/ that is+-- statically used by the 'Vulkan.Core10.Handles.Pipeline' bound to the+-- pipeline bind point used by this command, a descriptor set /must/+-- have been bound to /n/ at the same pipeline bind point, with a+-- 'Vulkan.Core10.Handles.PipelineLayout' that is compatible for set+-- /n/, with the 'Vulkan.Core10.Handles.PipelineLayout' used to create+-- the current 'Vulkan.Core10.Handles.Pipeline', as described in+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>+--+-- - #VUID-vkCmdDispatchIndirect-maintenance4-06425# If the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-maintenance4 maintenance4>+-- feature is not enabled, then for each push constant that is+-- statically used by the 'Vulkan.Core10.Handles.Pipeline' bound to the+-- pipeline bind point used by this command, a push constant value+-- /must/ have been set for the same pipeline bind point, with a+-- 'Vulkan.Core10.Handles.PipelineLayout' that is compatible for push+-- constants, with the 'Vulkan.Core10.Handles.PipelineLayout' used to+-- create the current 'Vulkan.Core10.Handles.Pipeline', as described in+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>+--+-- - #VUID-vkCmdDispatchIndirect-None-02699# Descriptors in each bound+-- descriptor set, specified via 'cmdBindDescriptorSets', /must/ be+-- valid if they are statically used by the+-- 'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind point+-- used by this command+--+-- - #VUID-vkCmdDispatchIndirect-None-02700# A valid pipeline /must/ be+-- bound to the pipeline bind point used by this command+--+-- - #VUID-vkCmdDispatchIndirect-commandBuffer-02701# If the+-- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind+-- point used by this command requires any dynamic state, that state+-- /must/ have been set or inherited (if the+-- @VK_NV_inherited_viewport_scissor@ extension is enabled) for+-- @commandBuffer@, and done so after any previously bound pipeline+-- with the corresponding state not specified as dynamic+--+-- - #VUID-vkCmdDispatchIndirect-None-02859# There /must/ not have been+-- any calls to dynamic state setting commands for any state not+-- specified as dynamic in the 'Vulkan.Core10.Handles.Pipeline' object+-- bound to the pipeline bind point used by this command, since that+-- pipeline was bound+--+-- - #VUID-vkCmdDispatchIndirect-None-02702# If the+-- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind+-- point used by this command accesses a+-- 'Vulkan.Core10.Handles.Sampler' object that uses unnormalized+-- coordinates, that sampler /must/ not be used to sample from any+-- 'Vulkan.Core10.Handles.Image' with a+-- 'Vulkan.Core10.Handles.ImageView' of the type+-- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_3D',+-- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE',+-- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_1D_ARRAY',+-- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_2D_ARRAY' or+-- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE_ARRAY', in+-- any shader stage+--+-- - #VUID-vkCmdDispatchIndirect-None-02703# If the+-- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind+-- point used by this command accesses a+-- 'Vulkan.Core10.Handles.Sampler' object that uses unnormalized+-- coordinates, that sampler /must/ not be used with any of the SPIR-V+-- @OpImageSample*@ or @OpImageSparseSample*@ instructions with+-- @ImplicitLod@, @Dref@ or @Proj@ in their name, in any shader stage+--+-- - #VUID-vkCmdDispatchIndirect-None-02704# If the+-- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind+-- point used by this command accesses a+-- 'Vulkan.Core10.Handles.Sampler' object that uses unnormalized+-- coordinates, that sampler /must/ not be used with any of the SPIR-V+-- @OpImageSample*@ or @OpImageSparseSample*@ instructions that+-- includes a LOD bias or any offset values, in any shader stage+--+-- - #VUID-vkCmdDispatchIndirect-uniformBuffers-06935# If any stage of+-- the 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline+-- bind point used by this command accesses a uniform buffer, and that+-- stage was created without enabling either+-- 'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT'+-- or+-- 'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT'+-- for @uniformBuffers@, and the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>+-- feature is not enabled, that stage /must/ not access values outside+-- of the range of the buffer as specified in the descriptor set bound+-- to the same pipeline bind point+--+-- - #VUID-vkCmdDispatchIndirect-storageBuffers-06936# If any stage of+-- the 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline+-- bind point used by this command accesses a storage buffer, and that+-- stage was created without enabling either+-- 'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT'+-- or+-- 'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT'+-- for @storageBuffers@, and the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>+-- feature is not enabled, that stage /must/ not access values outside+-- of the range of the buffer as specified in the descriptor set bound+-- to the same pipeline bind point+--+-- - #VUID-vkCmdDispatchIndirect-commandBuffer-02707# If @commandBuffer@+-- is an unprotected command buffer and+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>+-- is not supported, any resource accessed by the+-- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind+-- point used by this command /must/ not be a protected resource+--+-- - #VUID-vkCmdDispatchIndirect-None-06550# If the+-- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind+-- point used by this command accesses a+-- 'Vulkan.Core10.Handles.Sampler' or 'Vulkan.Core10.Handles.ImageView'+-- object that enables+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion>,+-- that object /must/ only be used with @OpImageSample*@ or+-- @OpImageSparseSample*@ instructions+--+-- - #VUID-vkCmdDispatchIndirect-ConstOffset-06551# If the+-- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind+-- point used by this command accesses a+-- 'Vulkan.Core10.Handles.Sampler' or 'Vulkan.Core10.Handles.ImageView'+-- object that enables+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion>,+-- that object /must/ not use the @ConstOffset@ and @Offset@ operands+--+-- - #VUID-vkCmdDispatchIndirect-None-04115# If a+-- 'Vulkan.Core10.Handles.ImageView' is accessed using @OpImageWrite@+-- as a result of this command, then the @Type@ of the @Texel@ operand+-- of that instruction /must/ have at least as many components as the+-- image view’s format+--+-- - #VUID-vkCmdDispatchIndirect-OpImageWrite-04469# If a+-- 'Vulkan.Core10.Handles.BufferView' is accessed using @OpImageWrite@+-- as a result of this command, then the @Type@ of the @Texel@ operand+-- of that instruction /must/ have at least as many components as the+-- buffer view’s format+--+-- - #VUID-vkCmdDispatchIndirect-SampledType-04470# If a+-- 'Vulkan.Core10.Handles.ImageView' with a+-- 'Vulkan.Core10.Enums.Format.Format' that has a 64-bit component+-- width is accessed as a result of this command, the @SampledType@ of+-- the @OpTypeImage@ operand of that instruction /must/ have a @Width@+-- of 64+--+-- - #VUID-vkCmdDispatchIndirect-SampledType-04471# If a+-- 'Vulkan.Core10.Handles.ImageView' with a+-- 'Vulkan.Core10.Enums.Format.Format' that has a component width less+-- than 64-bit is accessed as a result of this command, the+-- @SampledType@ of the @OpTypeImage@ operand of that instruction+-- /must/ have a @Width@ of 32+--+-- - #VUID-vkCmdDispatchIndirect-SampledType-04472# If a+-- 'Vulkan.Core10.Handles.BufferView' with a+-- 'Vulkan.Core10.Enums.Format.Format' that has a 64-bit component+-- width is accessed as a result of this command, the @SampledType@ of+-- the @OpTypeImage@ operand of that instruction /must/ have a @Width@+-- of 64+--+-- - #VUID-vkCmdDispatchIndirect-SampledType-04473# If a+-- 'Vulkan.Core10.Handles.BufferView' with a+-- 'Vulkan.Core10.Enums.Format.Format' that has a component width less+-- than 64-bit is accessed as a result of this command, the+-- @SampledType@ of the @OpTypeImage@ operand of that instruction+-- /must/ have a @Width@ of 32+--+-- - #VUID-vkCmdDispatchIndirect-sparseImageInt64Atomics-04474# If the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-sparseImageInt64Atomics sparseImageInt64Atomics>+-- feature is not enabled, 'Vulkan.Core10.Handles.Image' objects+-- created with the+-- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SPARSE_RESIDENCY_BIT'+-- flag /must/ not be accessed by atomic instructions through an+-- @OpTypeImage@ with a @SampledType@ with a @Width@ of 64 by this+-- command+--+-- - #VUID-vkCmdDispatchIndirect-sparseImageInt64Atomics-04475# If the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-sparseImageInt64Atomics sparseImageInt64Atomics>+-- feature is not enabled, 'Vulkan.Core10.Handles.Buffer' objects+-- created with the+-- 'Vulkan.Core10.Enums.BufferCreateFlagBits.BUFFER_CREATE_SPARSE_RESIDENCY_BIT'+-- flag /must/ not be accessed by atomic instructions through an+-- @OpTypeImage@ with a @SampledType@ with a @Width@ of 64 by this+-- command+--+-- - #VUID-vkCmdDispatchIndirect-OpImageWeightedSampleQCOM-06971# If+-- @OpImageWeightedSampleQCOM@ is used to sample a+-- 'Vulkan.Core10.Handles.ImageView' as a result of this command, then+-- the image view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM'+--+-- - #VUID-vkCmdDispatchIndirect-OpImageWeightedSampleQCOM-06972# If+-- @OpImageWeightedSampleQCOM@ uses a 'Vulkan.Core10.Handles.ImageView'+-- as a sample weight image as a result of this command, then the image+-- view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM'+--+-- - #VUID-vkCmdDispatchIndirect-OpImageBoxFilterQCOM-06973# If+-- @OpImageBoxFilterQCOM@ is used to sample a+-- 'Vulkan.Core10.Handles.ImageView' as a result of this command, then+-- the image view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM'+--+-- - #VUID-vkCmdDispatchIndirect-OpImageBlockMatchSSDQCOM-06974# If+-- @OpImageBlockMatchSSDQCOM@ is used to read from an+-- 'Vulkan.Core10.Handles.ImageView' as a result of this command, then+-- the image view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM'+--+-- - #VUID-vkCmdDispatchIndirect-OpImageBlockMatchSADQCOM-06975# If+-- @OpImageBlockMatchSADQCOM@ is used to read from an+-- 'Vulkan.Core10.Handles.ImageView' as a result of this command, then+-- the image view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM'+--+-- - #VUID-vkCmdDispatchIndirect-OpImageBlockMatchSADQCOM-06976# If+-- @OpImageBlockMatchSADQCOM@ or OpImageBlockMatchSSDQCOM is used to+-- read from a reference image as result of this command, then the+-- specified reference coordinates /must/ not fail+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-integer-coordinate-validation integer texel coordinate validation>.+--+-- - #VUID-vkCmdDispatchIndirect-OpImageWeightedSampleQCOM-06977# If+-- @OpImageWeightedSampleQCOM@, @OpImageBoxFilterQCOM@,+-- @OpImageBlockMatchSSDQCOM@, or @OpImageBlockMatchSADQCOM@ uses a+-- 'Vulkan.Core10.Handles.Sampler' as a result of this command, then+-- the sampler /must/ have been created with+-- 'Vulkan.Core10.Enums.SamplerCreateFlagBits.SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM'.+--+-- - #VUID-vkCmdDispatchIndirect-OpImageWeightedSampleQCOM-06978# If any+-- command other than @OpImageWeightedSampleQCOM@,+-- @OpImageBoxFilterQCOM@, @OpImageBlockMatchSSDQCOM@, or+-- @OpImageBlockMatchSADQCOM@ uses a 'Vulkan.Core10.Handles.Sampler' as+-- a result of this command, then the sampler /must/ not have been+-- created with+-- 'Vulkan.Core10.Enums.SamplerCreateFlagBits.SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM'.+--+-- - #VUID-vkCmdDispatchIndirect-buffer-02708# If @buffer@ is non-sparse+-- then it /must/ be bound completely and contiguously to a single+-- 'Vulkan.Core10.Handles.DeviceMemory' object+--+-- - #VUID-vkCmdDispatchIndirect-buffer-02709# @buffer@ /must/ have been+-- created with the+-- 'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_INDIRECT_BUFFER_BIT'+-- bit set+--+-- - #VUID-vkCmdDispatchIndirect-offset-02710# @offset@ /must/ be a+-- multiple of @4@+--+-- - #VUID-vkCmdDispatchIndirect-commandBuffer-02711# @commandBuffer@+-- /must/ not be a protected command buffer+--+-- - #VUID-vkCmdDispatchIndirect-offset-00407# The sum of @offset@ and+-- the size of 'Vulkan.Core10.OtherTypes.DispatchIndirectCommand'+-- /must/ be less than or equal to the size of @buffer@+--+-- == Valid Usage (Implicit)+--+-- - #VUID-vkCmdDispatchIndirect-commandBuffer-parameter# @commandBuffer@+-- /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- - #VUID-vkCmdDispatchIndirect-buffer-parameter# @buffer@ /must/ be a+-- valid 'Vulkan.Core10.Handles.Buffer' handle+--+-- - #VUID-vkCmdDispatchIndirect-commandBuffer-recording# @commandBuffer@+-- /must/ be in the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording state>+--+-- - #VUID-vkCmdDispatchIndirect-commandBuffer-cmdpool# The+-- 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+-- allocated from /must/ support compute operations+--+-- - #VUID-vkCmdDispatchIndirect-renderpass# This command /must/ only be+-- called outside of a render pass instance+--+-- - #VUID-vkCmdDispatchIndirect-videocoding# This command /must/ only be+-- called outside of a video coding scope+--+-- - #VUID-vkCmdDispatchIndirect-commonparent# Both of @buffer@, and+-- @commandBuffer@ /must/ have been created, allocated, or retrieved+-- from the same 'Vulkan.Core10.Handles.Device'+--+-- == Host Synchronization+--+-- - Host access to @commandBuffer@ /must/ be externally synchronized+--+-- - Host access to the 'Vulkan.Core10.Handles.CommandPool' that+-- @commandBuffer@ was allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- \'+--+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================++-- | Primary | Outside | Outside | Compute |+-- | Secondary | | | |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,+-- 'Vulkan.Core10.Handles.Buffer', 'Vulkan.Core10.Handles.CommandBuffer',+-- 'Vulkan.Core10.FundamentalTypes.DeviceSize'+cmdDispatchIndirect :: forall io+ . (MonadIO io)+ => -- | @commandBuffer@ is the command buffer into which the command will be+ -- recorded.+ CommandBuffer+ -> -- | @buffer@ is the buffer containing dispatch parameters.+ Buffer+ -> -- | @offset@ is the byte offset into @buffer@ where parameters begin.+ ("offset" ::: DeviceSize)+ -> io ()+cmdDispatchIndirect commandBuffer buffer offset = liftIO $ do+ let vkCmdDispatchIndirectPtr = pVkCmdDispatchIndirect (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)+ unless (vkCmdDispatchIndirectPtr /= nullFunPtr) $+ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdDispatchIndirect is null" Nothing Nothing+ let vkCmdDispatchIndirect' = mkVkCmdDispatchIndirect vkCmdDispatchIndirectPtr+ traceAroundEvent "vkCmdDispatchIndirect" (vkCmdDispatchIndirect' (commandBufferHandle (commandBuffer)) (buffer) (offset))+ pure $ ()+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+ unsafe+#endif+ "dynamic" mkVkCmdCopyBuffer+ :: FunPtr (Ptr CommandBuffer_T -> Buffer -> Buffer -> Word32 -> Ptr BufferCopy -> IO ()) -> Ptr CommandBuffer_T -> Buffer -> Buffer -> Word32 -> Ptr BufferCopy -> IO ()++-- | vkCmdCopyBuffer - Copy data between buffer regions+--+-- = Description+--+-- Each region in @pRegions@ is copied from the source buffer to the same+-- region of the destination buffer. @srcBuffer@ and @dstBuffer@ /can/ be+-- the same buffer or alias the same memory, but the resulting values are+-- undefined if the copy regions overlap in memory.+--+-- == Valid Usage+--+-- - #VUID-vkCmdCopyBuffer-commandBuffer-01822# If @commandBuffer@ is an+-- unprotected command buffer and+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>+-- is not supported, @srcBuffer@ /must/ not be a protected buffer+--+-- - #VUID-vkCmdCopyBuffer-commandBuffer-01823# If @commandBuffer@ is an+-- unprotected command buffer and+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>+-- is not supported, @dstBuffer@ /must/ not be a protected buffer+--+-- - #VUID-vkCmdCopyBuffer-commandBuffer-01824# If @commandBuffer@ is a+-- protected command buffer and+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>+-- is not supported, @dstBuffer@ /must/ not be an unprotected buffer+--+-- - #VUID-vkCmdCopyBuffer-srcOffset-00113# The @srcOffset@ member of+-- each element of @pRegions@ /must/ be less than the size of+-- @srcBuffer@+--+-- - #VUID-vkCmdCopyBuffer-dstOffset-00114# The @dstOffset@ member of+-- each element of @pRegions@ /must/ be less than the size of+-- @dstBuffer@+--+-- - #VUID-vkCmdCopyBuffer-size-00115# The @size@ member of each element+-- of @pRegions@ /must/ be less than or equal to the size of+-- @srcBuffer@ minus @srcOffset@+--+-- - #VUID-vkCmdCopyBuffer-size-00116# The @size@ member of each element+-- of @pRegions@ /must/ be less than or equal to the size of+-- @dstBuffer@ minus @dstOffset@+--+-- - #VUID-vkCmdCopyBuffer-pRegions-00117# The union of the source+-- regions, and the union of the destination regions, specified by the+-- elements of @pRegions@, /must/ not overlap in memory+--+-- - #VUID-vkCmdCopyBuffer-srcBuffer-00118# @srcBuffer@ /must/ have been+-- created with+-- 'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_TRANSFER_SRC_BIT'+-- usage flag+--+-- - #VUID-vkCmdCopyBuffer-srcBuffer-00119# If @srcBuffer@ is non-sparse+-- then it /must/ be bound completely and contiguously to a single+-- 'Vulkan.Core10.Handles.DeviceMemory' object+--+-- - #VUID-vkCmdCopyBuffer-dstBuffer-00120# @dstBuffer@ /must/ have been+-- created with+-- 'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_TRANSFER_DST_BIT'+-- usage flag+--+-- - #VUID-vkCmdCopyBuffer-dstBuffer-00121# If @dstBuffer@ is non-sparse+-- then it /must/ be bound completely and contiguously to a single+-- 'Vulkan.Core10.Handles.DeviceMemory' object+--+-- == Valid Usage (Implicit)+--+-- - #VUID-vkCmdCopyBuffer-commandBuffer-parameter# @commandBuffer@+-- /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- - #VUID-vkCmdCopyBuffer-srcBuffer-parameter# @srcBuffer@ /must/ be a+-- valid 'Vulkan.Core10.Handles.Buffer' handle+--+-- - #VUID-vkCmdCopyBuffer-dstBuffer-parameter# @dstBuffer@ /must/ be a+-- valid 'Vulkan.Core10.Handles.Buffer' handle+--+-- - #VUID-vkCmdCopyBuffer-pRegions-parameter# @pRegions@ /must/ be a+-- valid pointer to an array of @regionCount@ valid 'BufferCopy'+-- structures+--+-- - #VUID-vkCmdCopyBuffer-commandBuffer-recording# @commandBuffer@+-- /must/ be in the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording state>+--+-- - #VUID-vkCmdCopyBuffer-commandBuffer-cmdpool# The+-- 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+-- allocated from /must/ support transfer, graphics, or compute+-- operations+--+-- - #VUID-vkCmdCopyBuffer-renderpass# This command /must/ only be called+-- outside of a render pass instance+--+-- - #VUID-vkCmdCopyBuffer-videocoding# This command /must/ only be+-- called outside of a video coding scope+--+-- - #VUID-vkCmdCopyBuffer-regionCount-arraylength# @regionCount@ /must/+-- be greater than @0@+--+-- - #VUID-vkCmdCopyBuffer-commonparent# Each of @commandBuffer@,+-- @dstBuffer@, and @srcBuffer@ /must/ have been created, allocated, or+-- retrieved from the same 'Vulkan.Core10.Handles.Device'+--+-- == Host Synchronization+--+-- - Host access to @commandBuffer@ /must/ be externally synchronized+--+-- - Host access to the 'Vulkan.Core10.Handles.CommandPool' that+-- @commandBuffer@ was allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- \'+--+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================++-- | Primary | Outside | Outside | Transfer |+-- | Secondary | | | Graphics |+-- | | | | Compute |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,+-- 'Vulkan.Core10.Handles.Buffer', 'BufferCopy',+-- 'Vulkan.Core10.Handles.CommandBuffer'+cmdCopyBuffer :: forall io+ . (MonadIO io)+ => -- | @commandBuffer@ is the command buffer into which the command will be+ -- recorded.+ CommandBuffer+ -> -- | @srcBuffer@ is the source buffer.+ ("srcBuffer" ::: Buffer)+ -> -- | @dstBuffer@ is the destination buffer.+ ("dstBuffer" ::: Buffer)+ -> -- | @pRegions@ is a pointer to an array of 'BufferCopy' structures+ -- specifying the regions to copy.+ ("regions" ::: Vector BufferCopy)+ -> io ()+cmdCopyBuffer commandBuffer srcBuffer dstBuffer regions = liftIO . evalContT $ do+ let vkCmdCopyBufferPtr = pVkCmdCopyBuffer (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)+ lift $ unless (vkCmdCopyBufferPtr /= nullFunPtr) $+ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdCopyBuffer is null" Nothing Nothing+ let vkCmdCopyBuffer' = mkVkCmdCopyBuffer vkCmdCopyBufferPtr+ pPRegions <- ContT $ allocaBytes @BufferCopy ((Data.Vector.length (regions)) * 24)+ lift $ Data.Vector.imapM_ (\i e -> poke (pPRegions `plusPtr` (24 * (i)) :: Ptr BufferCopy) (e)) (regions)+ lift $ traceAroundEvent "vkCmdCopyBuffer" (vkCmdCopyBuffer' (commandBufferHandle (commandBuffer)) (srcBuffer) (dstBuffer) ((fromIntegral (Data.Vector.length $ (regions)) :: Word32)) (pPRegions))+ pure $ ()+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+ unsafe+#endif+ "dynamic" mkVkCmdCopyImage+ :: FunPtr (Ptr CommandBuffer_T -> Image -> ImageLayout -> Image -> ImageLayout -> Word32 -> Ptr ImageCopy -> IO ()) -> Ptr CommandBuffer_T -> Image -> ImageLayout -> Image -> ImageLayout -> Word32 -> Ptr ImageCopy -> IO ()++-- | vkCmdCopyImage - Copy data between images+--+-- = Description+--+-- Each region in @pRegions@ is copied from the source image to the same+-- region of the destination image. @srcImage@ and @dstImage@ /can/ be the+-- same image or alias the same memory.+--+-- The formats of @srcImage@ and @dstImage@ /must/ be compatible. Formats+-- are compatible if they share the same class, as shown in the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#formats-compatibility Compatible Formats>+-- table. Depth\/stencil formats /must/ match exactly.+--+-- If either @srcImage@ or @dstImage@ has a+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar format>,+-- regions of each plane to be copied /must/ be specified separately using+-- the @srcSubresource@ and @dstSubresource@ members of the 'ImageCopy'+-- structure. In this case, the @aspectMask@ of the @srcSubresource@ or+-- @dstSubresource@ that refers to the multi-planar image /must/ be+-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_0_BIT',+-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_1_BIT', or+-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_2_BIT'. For+-- the purposes of 'cmdCopyImage', each plane of a multi-planar image is+-- treated as having the format listed in+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#formats-compatible-planes>+-- for the plane identified by the @aspectMask@ of the corresponding+-- subresource. This applies both to 'Vulkan.Core10.Enums.Format.Format'+-- and to coordinates used in the copy, which correspond to texels in the+-- /plane/ rather than how these texels map to coordinates in the image as+-- a whole.+--+-- Note+--+-- For example, the+-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_1_BIT' plane+-- of a 'Vulkan.Core10.Enums.Format.FORMAT_G8_B8R8_2PLANE_420_UNORM' image+-- is compatible with an image of format+-- 'Vulkan.Core10.Enums.Format.FORMAT_R8G8_UNORM' and (less usefully) with+-- the 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_0_BIT'+-- plane of an image of format+-- 'Vulkan.Core10.Enums.Format.FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16',+-- as each texel is 2 bytes in size.+--+-- 'cmdCopyImage' allows copying between /size-compatible/ compressed and+-- uncompressed internal formats. Formats are size-compatible if the texel+-- block size of the uncompressed format is equal to the texel block size+-- of the compressed format. Such a copy does not perform on-the-fly+-- compression or decompression. When copying from an uncompressed format+-- to a compressed format, each texel of uncompressed data of the source+-- image is copied as a raw value to the corresponding compressed texel+-- block of the destination image. When copying from a compressed format to+-- an uncompressed format, each compressed texel block of the source image+-- is copied as a raw value to the corresponding texel of uncompressed data+-- in the destination image. Thus, for example, it is legal to copy between+-- a 128-bit uncompressed format and a compressed format which has a+-- 128-bit sized compressed texel block representing 4×4 texels (using 8+-- bits per texel), or between a 64-bit uncompressed format and a+-- compressed format which has a 64-bit sized compressed texel block+-- representing 4×4 texels (using 4 bits per texel).+--+-- When copying between compressed and uncompressed formats the @extent@+-- members represent the texel dimensions of the source image and not the+-- destination. When copying from a compressed image to an uncompressed+-- image the image texel dimensions written to the uncompressed image will+-- be source extent divided by the compressed texel block dimensions. When+-- copying from an uncompressed image to a compressed image the image texel+-- dimensions written to the compressed image will be the source extent+-- multiplied by the compressed texel block dimensions. In both cases the+-- number of bytes read and the number of bytes written will be identical.+--+-- Copying to or from block-compressed images is typically done in+-- multiples of the compressed texel block size. For this reason the+-- @extent@ /must/ be a multiple of the compressed texel block dimension.+-- There is one exception to this rule which is /required/ to handle+-- compressed images created with dimensions that are not a multiple of the+-- compressed texel block dimensions: if the @srcImage@ is compressed,+-- then:+--+-- - If @extent.width@ is not a multiple of the compressed texel block+-- width, then (@extent.width@ + @srcOffset.x@) /must/ equal the image+-- subresource width.+--+-- - If @extent.height@ is not a multiple of the compressed texel block+-- height, then (@extent.height@ + @srcOffset.y@) /must/ equal the+-- image subresource height.+--+-- - If @extent.depth@ is not a multiple of the compressed texel block+-- depth, then (@extent.depth@ + @srcOffset.z@) /must/ equal the image+-- subresource depth.+--+-- Similarly, if the @dstImage@ is compressed, then:+--+-- - If @extent.width@ is not a multiple of the compressed texel block+-- width, then (@extent.width@ + @dstOffset.x@) /must/ equal the image+-- subresource width.+--+-- - If @extent.height@ is not a multiple of the compressed texel block+-- height, then (@extent.height@ + @dstOffset.y@) /must/ equal the+-- image subresource height.+--+-- - If @extent.depth@ is not a multiple of the compressed texel block+-- depth, then (@extent.depth@ + @dstOffset.z@) /must/ equal the image+-- subresource depth.+--+-- This allows the last compressed texel block of the image in each+-- non-multiple dimension to be included as a source or destination of the+-- copy.+--+-- “@_422@” image formats that are not+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar>+-- are treated as having a 2×1 compressed texel block for the purposes of+-- these rules.+--+-- 'cmdCopyImage' /can/ be used to copy image data between multisample+-- images, but both images /must/ have the same number of samples.+--+-- == Valid Usage+--+-- - #VUID-vkCmdCopyImage-commandBuffer-01825# If @commandBuffer@ is an+-- unprotected command buffer and+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>+-- is not supported, @srcImage@ /must/ not be a protected image+--+-- - #VUID-vkCmdCopyImage-commandBuffer-01826# If @commandBuffer@ is an+-- unprotected command buffer and+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>+-- is not supported, @dstImage@ /must/ not be a protected image+--+-- - #VUID-vkCmdCopyImage-commandBuffer-01827# If @commandBuffer@ is a+-- protected command buffer and+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>+-- is not supported, @dstImage@ /must/ not be an unprotected image+--+-- - #VUID-vkCmdCopyImage-pRegions-00124# The union of all source+-- regions, and the union of all destination regions, specified by the+-- elements of @pRegions@, /must/ not overlap in memory+--+-- - #VUID-vkCmdCopyImage-srcImage-01995# The+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-format-features format features>+-- of @srcImage@ /must/ contain+-- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_TRANSFER_SRC_BIT'+--+-- - #VUID-vkCmdCopyImage-srcImage-01546# If @srcImage@ is non-sparse+-- then the image or /disjoint/ plane to be copied /must/ be bound+-- completely and contiguously to a single+-- 'Vulkan.Core10.Handles.DeviceMemory' object+--+-- - #VUID-vkCmdCopyImage-srcImageLayout-00128# @srcImageLayout@ /must/+-- specify the layout of the image subresources of @srcImage@ specified+-- in @pRegions@ at the time this command is executed on a+-- 'Vulkan.Core10.Handles.Device'+--+-- - #VUID-vkCmdCopyImage-srcImageLayout-01917# @srcImageLayout@ /must/+-- be+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL',+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_GENERAL', or+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_SHARED_PRESENT_KHR'+--+-- - #VUID-vkCmdCopyImage-dstImage-01996# The+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-format-features format features>+-- of @dstImage@ /must/ contain+-- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_TRANSFER_DST_BIT'+--+-- - #VUID-vkCmdCopyImage-dstImage-01547# If @dstImage@ is non-sparse+-- then the image or /disjoint/ plane that is the destination of the+-- copy /must/ be bound completely and contiguously to a single+-- 'Vulkan.Core10.Handles.DeviceMemory' object+--+-- - #VUID-vkCmdCopyImage-dstImageLayout-00133# @dstImageLayout@ /must/+-- specify the layout of the image subresources of @dstImage@ specified+-- in @pRegions@ at the time this command is executed on a+-- 'Vulkan.Core10.Handles.Device'+--+-- - #VUID-vkCmdCopyImage-dstImageLayout-01395# @dstImageLayout@ /must/+-- be+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL',+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_GENERAL', or+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_SHARED_PRESENT_KHR'+--+-- - #VUID-vkCmdCopyImage-srcImage-01548# If the+-- 'Vulkan.Core10.Enums.Format.Format' of each of @srcImage@ and+-- @dstImage@ is not a+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar format>,+-- the 'Vulkan.Core10.Enums.Format.Format' of each of @srcImage@ and+-- @dstImage@ /must/ be compatible, as defined+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#copies-images-format-compatibility above>+--+-- - #VUID-vkCmdCopyImage-None-01549# In a copy to or from a plane of a+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar image>,+-- the 'Vulkan.Core10.Enums.Format.Format' of the image and plane+-- /must/ be compatible according to+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatible-planes the description of compatible planes>+-- for the plane being copied+--+-- - #VUID-vkCmdCopyImage-srcImage-00136# The sample count of @srcImage@+-- and @dstImage@ /must/ match+--+-- - #VUID-vkCmdCopyImage-srcSubresource-01696# The+-- @srcSubresource.mipLevel@ member of each element of @pRegions@+-- /must/ be less than the @mipLevels@ specified in+-- 'Vulkan.Core10.Image.ImageCreateInfo' when @srcImage@ was created+--+-- - #VUID-vkCmdCopyImage-dstSubresource-01697# The+-- @dstSubresource.mipLevel@ member of each element of @pRegions@+-- /must/ be less than the @mipLevels@ specified in+-- 'Vulkan.Core10.Image.ImageCreateInfo' when @dstImage@ was created+--+-- - #VUID-vkCmdCopyImage-srcSubresource-01698# The+-- @srcSubresource.baseArrayLayer@ + @srcSubresource.layerCount@ of+-- each element of @pRegions@ /must/ be less than or equal to the+-- @arrayLayers@ specified in 'Vulkan.Core10.Image.ImageCreateInfo'+-- when @srcImage@ was created+--+-- - #VUID-vkCmdCopyImage-dstSubresource-01699# The+-- @dstSubresource.baseArrayLayer@ + @dstSubresource.layerCount@ of+-- each element of @pRegions@ /must/ be less than or equal to the+-- @arrayLayers@ specified in 'Vulkan.Core10.Image.ImageCreateInfo'+-- when @dstImage@ was created+--+-- - #VUID-vkCmdCopyImage-srcOffset-01783# The @srcOffset@ and @extent@+-- members of each element of @pRegions@ /must/ respect the image+-- transfer granularity requirements of @commandBuffer@’s command+-- pool’s queue family, as described in+-- 'Vulkan.Core10.DeviceInitialization.QueueFamilyProperties'+--+-- - #VUID-vkCmdCopyImage-dstOffset-01784# The @dstOffset@ and @extent@+-- members of each element of @pRegions@ /must/ respect the image+-- transfer granularity requirements of @commandBuffer@’s command+-- pool’s queue family, as described in+-- 'Vulkan.Core10.DeviceInitialization.QueueFamilyProperties'+--+-- - #VUID-vkCmdCopyImage-dstImage-02542# @dstImage@ and @srcImage@+-- /must/ not have been created with @flags@ containing+-- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SUBSAMPLED_BIT_EXT'+--+-- - #VUID-vkCmdCopyImage-srcImage-01551# If neither @srcImage@ nor+-- @dstImage@ has a+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar image format>+-- then for each element of @pRegions@, @srcSubresource.aspectMask@ and+-- @dstSubresource.aspectMask@ /must/ match+--+-- - #VUID-vkCmdCopyImage-srcImage-01552# If @srcImage@ has a+-- 'Vulkan.Core10.Enums.Format.Format' with+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion two planes>+-- then for each element of @pRegions@, @srcSubresource.aspectMask@+-- /must/ be+-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_0_BIT'+-- or+-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_1_BIT'+--+-- - #VUID-vkCmdCopyImage-srcImage-01553# If @srcImage@ has a+-- 'Vulkan.Core10.Enums.Format.Format' with+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion three planes>+-- then for each element of @pRegions@, @srcSubresource.aspectMask@+-- /must/ be+-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_0_BIT',+-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_1_BIT',+-- or+-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_2_BIT'+--+-- - #VUID-vkCmdCopyImage-dstImage-01554# If @dstImage@ has a+-- 'Vulkan.Core10.Enums.Format.Format' with+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion two planes>+-- then for each element of @pRegions@, @dstSubresource.aspectMask@+-- /must/ be+-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_0_BIT'+-- or+-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_1_BIT'+--+-- - #VUID-vkCmdCopyImage-dstImage-01555# If @dstImage@ has a+-- 'Vulkan.Core10.Enums.Format.Format' with+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion three planes>+-- then for each element of @pRegions@, @dstSubresource.aspectMask@+-- /must/ be+-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_0_BIT',+-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_1_BIT',+-- or+-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_2_BIT'+--+-- - #VUID-vkCmdCopyImage-srcImage-01556# If @srcImage@ has a+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar image format>+-- and the @dstImage@ does not have a multi-planar image format, then+-- for each element of @pRegions@, @dstSubresource.aspectMask@ /must/+-- be 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_COLOR_BIT'+--+-- - #VUID-vkCmdCopyImage-dstImage-01557# If @dstImage@ has a+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar image format>+-- and the @srcImage@ does not have a multi-planar image format, then+-- for each element of @pRegions@, @srcSubresource.aspectMask@ /must/+-- be 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_COLOR_BIT'+--+-- - #VUID-vkCmdCopyImage-srcImage-04443# If @srcImage@ is of type+-- 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_3D', then for each element+-- of @pRegions@, @srcSubresource.baseArrayLayer@ /must/ be @0@ and+-- @srcSubresource.layerCount@ /must/ be @1@+--+-- - #VUID-vkCmdCopyImage-dstImage-04444# If @dstImage@ is of type+-- 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_3D', then for each element+-- of @pRegions@, @dstSubresource.baseArrayLayer@ /must/ be @0@ and+-- @dstSubresource.layerCount@ /must/ be @1@+--+-- - #VUID-vkCmdCopyImage-aspectMask-00142# For each element of+-- @pRegions@, @srcSubresource.aspectMask@ /must/ specify aspects+-- present in @srcImage@+--+-- - #VUID-vkCmdCopyImage-aspectMask-00143# For each element of+-- @pRegions@, @dstSubresource.aspectMask@ /must/ specify aspects+-- present in @dstImage@+--+-- - #VUID-vkCmdCopyImage-srcOffset-00144# For each element of+-- @pRegions@, @srcOffset.x@ and (@extent.width@ + @srcOffset.x@)+-- /must/ both be greater than or equal to @0@ and less than or equal+-- to the width of the specified @srcSubresource@ of @srcImage@+--+-- - #VUID-vkCmdCopyImage-srcOffset-00145# For each element of+-- @pRegions@, @srcOffset.y@ and (@extent.height@ + @srcOffset.y@)+-- /must/ both be greater than or equal to @0@ and less than or equal+-- to the height of the specified @srcSubresource@ of @srcImage@+--+-- - #VUID-vkCmdCopyImage-srcImage-00146# If @srcImage@ is of type+-- 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_1D', then for each element+-- of @pRegions@, @srcOffset.y@ /must/ be @0@ and @extent.height@+-- /must/ be @1@+--+-- - #VUID-vkCmdCopyImage-srcOffset-00147# If @srcImage@ is of type+-- 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_3D', then for each element+-- of @pRegions@, @srcOffset.z@ and (@extent.depth@ + @srcOffset.z@)+-- /must/ both be greater than or equal to @0@ and less than or equal+-- to the depth of the specified @srcSubresource@ of @srcImage@+--+-- - #VUID-vkCmdCopyImage-srcImage-01785# If @srcImage@ is of type+-- 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_1D', then for each element+-- of @pRegions@, @srcOffset.z@ /must/ be @0@ and @extent.depth@ /must/+-- be @1@+--+-- - #VUID-vkCmdCopyImage-dstImage-01786# If @dstImage@ is of type+-- 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_1D', then for each element+-- of @pRegions@, @dstOffset.z@ /must/ be @0@ and @extent.depth@ /must/+-- be @1@+--+-- - #VUID-vkCmdCopyImage-srcImage-01787# If @srcImage@ is of type+-- 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D', then for each element+-- of @pRegions@, @srcOffset.z@ /must/ be @0@+--+-- - #VUID-vkCmdCopyImage-dstImage-01788# If @dstImage@ is of type+-- 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D', then for each element+-- of @pRegions@, @dstOffset.z@ /must/ be @0@+--+-- - #VUID-vkCmdCopyImage-srcImage-01790# If @srcImage@ and @dstImage@+-- are both of type 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D', then+-- for each element of @pRegions@, @extent.depth@ /must/ be @1@+--+-- - #VUID-vkCmdCopyImage-srcImage-01791# If @srcImage@ is of type+-- 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D', and @dstImage@ is of+-- type 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_3D', then for each+-- element of @pRegions@, @extent.depth@ /must/ equal+-- @srcSubresource.layerCount@+--+-- - #VUID-vkCmdCopyImage-dstImage-01792# If @dstImage@ is of type+-- 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D', and @srcImage@ is of+-- type 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_3D', then for each+-- element of @pRegions@, @extent.depth@ /must/ equal+-- @dstSubresource.layerCount@+--+-- - #VUID-vkCmdCopyImage-dstOffset-00150# For each element of+-- @pRegions@, @dstOffset.x@ and (@extent.width@ + @dstOffset.x@)+-- /must/ both be greater than or equal to @0@ and less than or equal+-- to the width of the specified @dstSubresource@ of @dstImage@+--+-- - #VUID-vkCmdCopyImage-dstOffset-00151# For each element of+-- @pRegions@, @dstOffset.y@ and (@extent.height@ + @dstOffset.y@)+-- /must/ both be greater than or equal to @0@ and less than or equal+-- to the height of the specified @dstSubresource@ of @dstImage@+--+-- - #VUID-vkCmdCopyImage-dstImage-00152# If @dstImage@ is of type+-- 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_1D', then for each element+-- of @pRegions@, @dstOffset.y@ /must/ be @0@ and @extent.height@+-- /must/ be @1@+--+-- - #VUID-vkCmdCopyImage-dstOffset-00153# If @dstImage@ is of type+-- 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_3D', then for each element+-- of @pRegions@, @dstOffset.z@ and (@extent.depth@ + @dstOffset.z@)+-- /must/ both be greater than or equal to @0@ and less than or equal+-- to the depth of the specified @dstSubresource@ of @dstImage@+--+-- - #VUID-vkCmdCopyImage-srcImage-01727# If @srcImage@ is a+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#blocked-image blocked image>,+-- then for each element of @pRegions@, all members of @srcOffset@+-- /must/ be a multiple of the corresponding dimensions of the+-- compressed texel block+--+-- - #VUID-vkCmdCopyImage-srcImage-01728# If @srcImage@ is a+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#blocked-image blocked image>,+-- then for each element of @pRegions@, @extent.width@ /must/ be a+-- multiple of the compressed texel block width or (@extent.width@ ++-- @srcOffset.x@) /must/ equal the width of the specified+-- @srcSubresource@ of @srcImage@+--+-- - #VUID-vkCmdCopyImage-srcImage-01729# If @srcImage@ is a+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#blocked-image blocked image>,+-- then for each element of @pRegions@, @extent.height@ /must/ be a+-- multiple of the compressed texel block height or (@extent.height@ ++-- @srcOffset.y@) /must/ equal the height of the specified+-- @srcSubresource@ of @srcImage@+--+-- - #VUID-vkCmdCopyImage-srcImage-01730# If @srcImage@ is a+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#blocked-image blocked image>,+-- then for each element of @pRegions@, @extent.depth@ /must/ be a+-- multiple of the compressed texel block depth or (@extent.depth@ ++-- @srcOffset.z@) /must/ equal the depth of the specified+-- @srcSubresource@ of @srcImage@+--+-- - #VUID-vkCmdCopyImage-dstImage-01731# If @dstImage@ is a+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#blocked-image blocked image>,+-- then for each element of @pRegions@, all members of @dstOffset@+-- /must/ be a multiple of the corresponding dimensions of the+-- compressed texel block+--+-- - #VUID-vkCmdCopyImage-dstImage-01732# If @dstImage@ is a+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#blocked-image blocked image>,+-- then for each element of @pRegions@, @extent.width@ /must/ be a+-- multiple of the compressed texel block width or (@extent.width@ ++-- @dstOffset.x@) /must/ equal the width of the specified+-- @dstSubresource@ of @dstImage@+--+-- - #VUID-vkCmdCopyImage-dstImage-01733# If @dstImage@ is a+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#blocked-image blocked image>,+-- then for each element of @pRegions@, @extent.height@ /must/ be a+-- multiple of the compressed texel block height or (@extent.height@ ++-- @dstOffset.y@) /must/ equal the height of the specified+-- @dstSubresource@ of @dstImage@+--+-- - #VUID-vkCmdCopyImage-dstImage-01734# If @dstImage@ is a+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#blocked-image blocked image>,+-- then for each element of @pRegions@, @extent.depth@ /must/ be a+-- multiple of the compressed texel block depth or (@extent.depth@ ++-- @dstOffset.z@) /must/ equal the depth of the specified+-- @dstSubresource@ of @dstImage@+--+-- - #VUID-vkCmdCopyImage-aspect-06662# If the @aspect@ member of any+-- element of @pRegions@ includes any flag other than+-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_STENCIL_BIT'+-- or @srcImage@ was not created with+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkImageStencilUsageCreateInfo separate stencil usage>,+-- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_TRANSFER_SRC_BIT'+-- /must/ have been included in the+-- 'Vulkan.Core10.Image.ImageCreateInfo'::@usage@ used to create+-- @srcImage@+--+-- - #VUID-vkCmdCopyImage-aspect-06663# If the @aspect@ member of any+-- element of @pRegions@ includes any flag other than+-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_STENCIL_BIT'+-- or @dstImage@ was not created with+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkImageStencilUsageCreateInfo separate stencil usage>,+-- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_TRANSFER_DST_BIT'+-- /must/ have been included in the+-- 'Vulkan.Core10.Image.ImageCreateInfo'::@usage@ used to create+-- @dstImage@+--+-- - #VUID-vkCmdCopyImage-aspect-06664# If the @aspect@ member of any+-- element of @pRegions@ includes+-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_STENCIL_BIT',+-- and @srcImage@ was created with+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkImageStencilUsageCreateInfo separate stencil usage>,+-- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_TRANSFER_SRC_BIT'+-- /must/ have been included in the+-- 'Vulkan.Core12.Promoted_From_VK_EXT_separate_stencil_usage.ImageStencilUsageCreateInfo'::@stencilUsage@+-- used to create @srcImage@+--+-- - #VUID-vkCmdCopyImage-aspect-06665# If the @aspect@ member of any+-- element of @pRegions@ includes+-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_STENCIL_BIT',+-- and @dstImage@ was created with+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkImageStencilUsageCreateInfo separate stencil usage>,+-- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_TRANSFER_DST_BIT'+-- /must/ have been included in the+-- 'Vulkan.Core12.Promoted_From_VK_EXT_separate_stencil_usage.ImageStencilUsageCreateInfo'::@stencilUsage@+-- used to create @dstImage@+--+-- == Valid Usage (Implicit)+--+-- - #VUID-vkCmdCopyImage-commandBuffer-parameter# @commandBuffer@ /must/+-- be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- - #VUID-vkCmdCopyImage-srcImage-parameter# @srcImage@ /must/ be a+-- valid 'Vulkan.Core10.Handles.Image' handle+--+-- - #VUID-vkCmdCopyImage-srcImageLayout-parameter# @srcImageLayout@+-- /must/ be a valid 'Vulkan.Core10.Enums.ImageLayout.ImageLayout'+-- value+--+-- - #VUID-vkCmdCopyImage-dstImage-parameter# @dstImage@ /must/ be a+-- valid 'Vulkan.Core10.Handles.Image' handle+--+-- - #VUID-vkCmdCopyImage-dstImageLayout-parameter# @dstImageLayout@+-- /must/ be a valid 'Vulkan.Core10.Enums.ImageLayout.ImageLayout'+-- value+--+-- - #VUID-vkCmdCopyImage-pRegions-parameter# @pRegions@ /must/ be a+-- valid pointer to an array of @regionCount@ valid 'ImageCopy'+-- structures+--+-- - #VUID-vkCmdCopyImage-commandBuffer-recording# @commandBuffer@ /must/+-- be in the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording state>+--+-- - #VUID-vkCmdCopyImage-commandBuffer-cmdpool# The+-- 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+-- allocated from /must/ support transfer, graphics, or compute+-- operations+--+-- - #VUID-vkCmdCopyImage-renderpass# This command /must/ only be called+-- outside of a render pass instance+--+-- - #VUID-vkCmdCopyImage-videocoding# This command /must/ only be called+-- outside of a video coding scope+--+-- - #VUID-vkCmdCopyImage-regionCount-arraylength# @regionCount@ /must/+-- be greater than @0@+--+-- - #VUID-vkCmdCopyImage-commonparent# Each of @commandBuffer@,+-- @dstImage@, and @srcImage@ /must/ have been created, allocated, or+-- retrieved from the same 'Vulkan.Core10.Handles.Device'+--+-- == Host Synchronization+--+-- - Host access to @commandBuffer@ /must/ be externally synchronized+--+-- - Host access to the 'Vulkan.Core10.Handles.CommandPool' that+-- @commandBuffer@ was allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- \'+--+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================++-- | Primary | Outside | Outside | Transfer |+-- | Secondary | | | Graphics |+-- | | | | Compute |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,+-- 'Vulkan.Core10.Handles.CommandBuffer', 'Vulkan.Core10.Handles.Image',+-- 'ImageCopy', 'Vulkan.Core10.Enums.ImageLayout.ImageLayout'+cmdCopyImage :: forall io+ . (MonadIO io)+ => -- | @commandBuffer@ is the command buffer into which the command will be+ -- recorded.+ CommandBuffer+ -> -- | @srcImage@ is the source image.+ ("srcImage" ::: Image)+ -> -- | @srcImageLayout@ is the current layout of the source image subresource.+ ("srcImageLayout" ::: ImageLayout)+ -> -- | @dstImage@ is the destination image.+ ("dstImage" ::: Image)+ -> -- | @dstImageLayout@ is the current layout of the destination image+ -- subresource.+ ("dstImageLayout" ::: ImageLayout)+ -> -- | @pRegions@ is a pointer to an array of 'ImageCopy' structures specifying+ -- the regions to copy.+ ("regions" ::: Vector ImageCopy)+ -> io ()+cmdCopyImage commandBuffer srcImage srcImageLayout dstImage dstImageLayout regions = liftIO . evalContT $ do+ let vkCmdCopyImagePtr = pVkCmdCopyImage (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)+ lift $ unless (vkCmdCopyImagePtr /= nullFunPtr) $+ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdCopyImage is null" Nothing Nothing+ let vkCmdCopyImage' = mkVkCmdCopyImage vkCmdCopyImagePtr+ pPRegions <- ContT $ allocaBytes @ImageCopy ((Data.Vector.length (regions)) * 68)+ lift $ Data.Vector.imapM_ (\i e -> poke (pPRegions `plusPtr` (68 * (i)) :: Ptr ImageCopy) (e)) (regions)+ lift $ traceAroundEvent "vkCmdCopyImage" (vkCmdCopyImage' (commandBufferHandle (commandBuffer)) (srcImage) (srcImageLayout) (dstImage) (dstImageLayout) ((fromIntegral (Data.Vector.length $ (regions)) :: Word32)) (pPRegions))+ pure $ ()+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+ unsafe+#endif+ "dynamic" mkVkCmdBlitImage+ :: FunPtr (Ptr CommandBuffer_T -> Image -> ImageLayout -> Image -> ImageLayout -> Word32 -> Ptr ImageBlit -> Filter -> IO ()) -> Ptr CommandBuffer_T -> Image -> ImageLayout -> Image -> ImageLayout -> Word32 -> Ptr ImageBlit -> Filter -> IO ()++-- | vkCmdBlitImage - Copy regions of an image, potentially performing format+-- conversion,+--+-- = Description+--+-- 'cmdBlitImage' /must/ not be used for multisampled source or destination+-- images. Use 'cmdResolveImage' for this purpose.+--+-- As the sizes of the source and destination extents /can/ differ in any+-- dimension, texels in the source extent are scaled and filtered to the+-- destination extent. Scaling occurs via the following operations:+--+-- - For each destination texel, the integer coordinate of that texel is+-- converted to an unnormalized texture coordinate, using the effective+-- inverse of the equations described in+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#textures-unnormalized-to-integer unnormalized to integer conversion>:+--+-- - ubase = i + ½+--+-- - vbase = j + ½+--+-- - wbase = k + ½+--+-- - These base coordinates are then offset by the first destination+-- offset:+--+-- - uoffset = ubase - xdst0+--+-- - voffset = vbase - ydst0+--+-- - woffset = wbase - zdst0+--+-- - aoffset = a - @baseArrayCount@dst+--+-- - The scale is determined from the source and destination regions, and+-- applied to the offset coordinates:+--+-- - scaleu = (xsrc1 - xsrc0) \/ (xdst1 - xdst0)+--+-- - scalev = (ysrc1 - ysrc0) \/ (ydst1 - ydst0)+--+-- - scalew = (zsrc1 - zsrc0) \/ (zdst1 - zdst0)+--+-- - uscaled = uoffset × scaleu+--+-- - vscaled = voffset × scalev+--+-- - wscaled = woffset × scalew+--+-- - Finally the source offset is added to the scaled coordinates, to+-- determine the final unnormalized coordinates used to sample from+-- @srcImage@:+--+-- - u = uscaled + xsrc0+--+-- - v = vscaled + ysrc0+--+-- - w = wscaled + zsrc0+--+-- - q = @mipLevel@+--+-- - a = aoffset + @baseArrayCount@src+--+-- These coordinates are used to sample from the source image, as described+-- in+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#textures Image Operations chapter>,+-- with the filter mode equal to that of @filter@, a mipmap mode of+-- 'Vulkan.Core10.Enums.SamplerMipmapMode.SAMPLER_MIPMAP_MODE_NEAREST' and+-- an address mode of+-- 'Vulkan.Core10.Enums.SamplerAddressMode.SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE'.+-- Implementations /must/ clamp at the edge of the source image, and /may/+-- additionally clamp to the edge of the source region.+--+-- Note+--+-- Due to allowable rounding errors in the generation of the source texture+-- coordinates, it is not always possible to guarantee exactly which source+-- texels will be sampled for a given blit. As rounding errors are+-- implementation-dependent, the exact results of a blitting operation are+-- also implementation-dependent.+--+-- Blits are done layer by layer starting with the @baseArrayLayer@ member+-- of @srcSubresource@ for the source and @dstSubresource@ for the+-- destination. @layerCount@ layers are blitted to the destination image.+--+-- When blitting 3D textures, slices in the destination region bounded by+-- @dstOffsets@[0].z and @dstOffsets@[1].z are sampled from slices in the+-- source region bounded by @srcOffsets@[0].z and @srcOffsets@[1].z. If the+-- @filter@ parameter is 'Vulkan.Core10.Enums.Filter.FILTER_LINEAR' then+-- the value sampled from the source image is taken by doing linear+-- filtering using the interpolated __z__ coordinate represented by __w__+-- in the previous equations. If the @filter@ parameter is+-- 'Vulkan.Core10.Enums.Filter.FILTER_NEAREST' then the value sampled from+-- the source image is taken from the single nearest slice, with an+-- implementation-dependent arithmetic rounding mode.+--+-- The following filtering and conversion rules apply:+--+-- - Integer formats /can/ only be converted to other integer formats+-- with the same signedness.+--+-- - No format conversion is supported between depth\/stencil images. The+-- formats /must/ match.+--+-- - Format conversions on unorm, snorm, scaled and packed float formats+-- of the copied aspect of the image are performed by first converting+-- the pixels to float values.+--+-- - For sRGB source formats, nonlinear RGB values are converted to+-- linear representation prior to filtering.+--+-- - After filtering, the float values are first clamped and then cast to+-- the destination image format. In case of sRGB destination format,+-- linear RGB values are converted to nonlinear representation before+-- writing the pixel to the image.+--+-- Signed and unsigned integers are converted by first clamping to the+-- representable range of the destination format, then casting the value.+--+-- == Valid Usage+--+-- - #VUID-vkCmdBlitImage-commandBuffer-01834# If @commandBuffer@ is an+-- unprotected command buffer and+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>+-- is not supported, @srcImage@ /must/ not be a protected image+--+-- - #VUID-vkCmdBlitImage-commandBuffer-01835# If @commandBuffer@ is an+-- unprotected command buffer and+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>+-- is not supported, @dstImage@ /must/ not be a protected image+--+-- - #VUID-vkCmdBlitImage-commandBuffer-01836# If @commandBuffer@ is a+-- protected command buffer and+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>+-- is not supported, @dstImage@ /must/ not be an unprotected image+--+-- - #VUID-vkCmdBlitImage-pRegions-00215# The source region specified by+-- each element of @pRegions@ /must/ be a region that is contained+-- within @srcImage@+--+-- - #VUID-vkCmdBlitImage-pRegions-00216# The destination region+-- specified by each element of @pRegions@ /must/ be a region that is+-- contained within @dstImage@+--+-- - #VUID-vkCmdBlitImage-pRegions-00217# The union of all destination+-- regions, specified by the elements of @pRegions@, /must/ not overlap+-- in memory with any texel that /may/ be sampled during the blit+-- operation+--+-- - #VUID-vkCmdBlitImage-srcImage-01999# The+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-format-features format features>+-- of @srcImage@ /must/ contain+-- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_BLIT_SRC_BIT'+--+-- - #VUID-vkCmdBlitImage-srcImage-06421# @srcImage@ /must/ not use a+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion format that requires a sampler Y′CBCR conversion>+--+-- - #VUID-vkCmdBlitImage-srcImage-00219# @srcImage@ /must/ have been+-- created with+-- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_TRANSFER_SRC_BIT'+-- usage flag+--+-- - #VUID-vkCmdBlitImage-srcImage-00220# If @srcImage@ is non-sparse+-- then it /must/ be bound completely and contiguously to a single+-- 'Vulkan.Core10.Handles.DeviceMemory' object+--+-- - #VUID-vkCmdBlitImage-srcImageLayout-00221# @srcImageLayout@ /must/+-- specify the layout of the image subresources of @srcImage@ specified+-- in @pRegions@ at the time this command is executed on a+-- 'Vulkan.Core10.Handles.Device'+--+-- - #VUID-vkCmdBlitImage-srcImageLayout-01398# @srcImageLayout@ /must/+-- be+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_SHARED_PRESENT_KHR',+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL'+-- or 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_GENERAL'+--+-- - #VUID-vkCmdBlitImage-dstImage-02000# The+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-format-features format features>+-- of @dstImage@ /must/ contain+-- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_BLIT_DST_BIT'+--+-- - #VUID-vkCmdBlitImage-dstImage-06422# @dstImage@ /must/ not use a+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion format that requires a sampler Y′CBCR conversion>+--+-- - #VUID-vkCmdBlitImage-dstImage-00224# @dstImage@ /must/ have been+-- created with+-- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_TRANSFER_DST_BIT'+-- usage flag+--+-- - #VUID-vkCmdBlitImage-dstImage-00225# If @dstImage@ is non-sparse+-- then it /must/ be bound completely and contiguously to a single+-- 'Vulkan.Core10.Handles.DeviceMemory' object+--+-- - #VUID-vkCmdBlitImage-dstImageLayout-00226# @dstImageLayout@ /must/+-- specify the layout of the image subresources of @dstImage@ specified+-- in @pRegions@ at the time this command is executed on a+-- 'Vulkan.Core10.Handles.Device'+--+-- - #VUID-vkCmdBlitImage-dstImageLayout-01399# @dstImageLayout@ /must/+-- be+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_SHARED_PRESENT_KHR',+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL'+-- or 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_GENERAL'+--+-- - #VUID-vkCmdBlitImage-srcImage-00229# If either of @srcImage@ or+-- @dstImage@ was created with a signed integer+-- 'Vulkan.Core10.Enums.Format.Format', the other /must/ also have been+-- created with a signed integer 'Vulkan.Core10.Enums.Format.Format'+--+-- - #VUID-vkCmdBlitImage-srcImage-00230# If either of @srcImage@ or+-- @dstImage@ was created with an unsigned integer+-- 'Vulkan.Core10.Enums.Format.Format', the other /must/ also have been+-- created with an unsigned integer 'Vulkan.Core10.Enums.Format.Format'+--+-- - #VUID-vkCmdBlitImage-srcImage-00231# If either of @srcImage@ or+-- @dstImage@ was created with a depth\/stencil format, the other+-- /must/ have exactly the same format+--+-- - #VUID-vkCmdBlitImage-srcImage-00232# If @srcImage@ was created with+-- a depth\/stencil format, @filter@ /must/ be+-- 'Vulkan.Core10.Enums.Filter.FILTER_NEAREST'+--+-- - #VUID-vkCmdBlitImage-srcImage-00233# @srcImage@ /must/ have been+-- created with a @samples@ value of+-- 'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT'+--+-- - #VUID-vkCmdBlitImage-dstImage-00234# @dstImage@ /must/ have been+-- created with a @samples@ value of+-- 'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT'+--+-- - #VUID-vkCmdBlitImage-filter-02001# If @filter@ is+-- 'Vulkan.Core10.Enums.Filter.FILTER_LINEAR', then the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-format-features format features>+-- of @srcImage@ /must/ contain+-- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT'+--+-- - #VUID-vkCmdBlitImage-filter-02002# If @filter@ is+-- 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT', then the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-format-features format features>+-- of @srcImage@ /must/ contain+-- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT'+--+-- - #VUID-vkCmdBlitImage-filter-00237# If @filter@ is+-- 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT', @srcImage@ /must/ be+-- of type 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D'+--+-- - #VUID-vkCmdBlitImage-srcSubresource-01705# The+-- @srcSubresource.mipLevel@ member of each element of @pRegions@+-- /must/ be less than the @mipLevels@ specified in+-- 'Vulkan.Core10.Image.ImageCreateInfo' when @srcImage@ was created+--+-- - #VUID-vkCmdBlitImage-dstSubresource-01706# The+-- @dstSubresource.mipLevel@ member of each element of @pRegions@+-- /must/ be less than the @mipLevels@ specified in+-- 'Vulkan.Core10.Image.ImageCreateInfo' when @dstImage@ was created+--+-- - #VUID-vkCmdBlitImage-srcSubresource-01707# The+-- @srcSubresource.baseArrayLayer@ + @srcSubresource.layerCount@ of+-- each element of @pRegions@ /must/ be less than or equal to the+-- @arrayLayers@ specified in 'Vulkan.Core10.Image.ImageCreateInfo'+-- when @srcImage@ was created+--+-- - #VUID-vkCmdBlitImage-dstSubresource-01708# The+-- @dstSubresource.baseArrayLayer@ + @dstSubresource.layerCount@ of+-- each element of @pRegions@ /must/ be less than or equal to the+-- @arrayLayers@ specified in 'Vulkan.Core10.Image.ImageCreateInfo'+-- when @dstImage@ was created+--+-- - #VUID-vkCmdBlitImage-dstImage-02545# @dstImage@ and @srcImage@+-- /must/ not have been created with @flags@ containing+-- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SUBSAMPLED_BIT_EXT'+--+-- - #VUID-vkCmdBlitImage-srcImage-00240# If either @srcImage@ or+-- @dstImage@ is of type 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_3D',+-- then for each element of @pRegions@, @srcSubresource.baseArrayLayer@+-- and @dstSubresource.baseArrayLayer@ /must/ each be @0@, and+-- @srcSubresource.layerCount@ and @dstSubresource.layerCount@ /must/+-- each be @1@+--+-- - #VUID-vkCmdBlitImage-aspectMask-00241# For each element of+-- @pRegions@, @srcSubresource.aspectMask@ /must/ specify aspects+-- present in @srcImage@+--+-- - #VUID-vkCmdBlitImage-aspectMask-00242# For each element of+-- @pRegions@, @dstSubresource.aspectMask@ /must/ specify aspects+-- present in @dstImage@+--+-- - #VUID-vkCmdBlitImage-srcOffset-00243# For each element of+-- @pRegions@, @srcOffsets@[0].x and @srcOffsets@[1].x /must/ both be+-- greater than or equal to @0@ and less than or equal to the width of+-- the specified @srcSubresource@ of @srcImage@+--+-- - #VUID-vkCmdBlitImage-srcOffset-00244# For each element of+-- @pRegions@, @srcOffsets@[0].y and @srcOffsets@[1].y /must/ both be+-- greater than or equal to @0@ and less than or equal to the height of+-- the specified @srcSubresource@ of @srcImage@+--+-- - #VUID-vkCmdBlitImage-srcImage-00245# If @srcImage@ is of type+-- 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_1D', then for each element+-- of @pRegions@, @srcOffsets@[0].y /must/ be @0@ and @srcOffsets@[1].y+-- /must/ be @1@+--+-- - #VUID-vkCmdBlitImage-srcOffset-00246# For each element of+-- @pRegions@, @srcOffsets@[0].z and @srcOffsets@[1].z /must/ both be+-- greater than or equal to @0@ and less than or equal to the depth of+-- the specified @srcSubresource@ of @srcImage@+--+-- - #VUID-vkCmdBlitImage-srcImage-00247# If @srcImage@ is of type+-- 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_1D' or+-- 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D', then for each element+-- of @pRegions@, @srcOffsets@[0].z /must/ be @0@ and @srcOffsets@[1].z+-- /must/ be @1@+--+-- - #VUID-vkCmdBlitImage-dstOffset-00248# For each element of+-- @pRegions@, @dstOffsets@[0].x and @dstOffsets@[1].x /must/ both be+-- greater than or equal to @0@ and less than or equal to the width of+-- the specified @dstSubresource@ of @dstImage@+--+-- - #VUID-vkCmdBlitImage-dstOffset-00249# For each element of+-- @pRegions@, @dstOffsets@[0].y and @dstOffsets@[1].y /must/ both be+-- greater than or equal to @0@ and less than or equal to the height of+-- the specified @dstSubresource@ of @dstImage@+--+-- - #VUID-vkCmdBlitImage-dstImage-00250# If @dstImage@ is of type+-- 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_1D', then for each element+-- of @pRegions@, @dstOffsets@[0].y /must/ be @0@ and @dstOffsets@[1].y+-- /must/ be @1@+--+-- - #VUID-vkCmdBlitImage-dstOffset-00251# For each element of+-- @pRegions@, @dstOffsets@[0].z and @dstOffsets@[1].z /must/ both be+-- greater than or equal to @0@ and less than or equal to the depth of+-- the specified @dstSubresource@ of @dstImage@+--+-- - #VUID-vkCmdBlitImage-dstImage-00252# If @dstImage@ is of type+-- 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_1D' or+-- 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D', then for each element+-- of @pRegions@, @dstOffsets@[0].z /must/ be @0@ and @dstOffsets@[1].z+-- /must/ be @1@+--+-- == Valid Usage (Implicit)+--+-- - #VUID-vkCmdBlitImage-commandBuffer-parameter# @commandBuffer@ /must/+-- be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- - #VUID-vkCmdBlitImage-srcImage-parameter# @srcImage@ /must/ be a+-- valid 'Vulkan.Core10.Handles.Image' handle+--+-- - #VUID-vkCmdBlitImage-srcImageLayout-parameter# @srcImageLayout@+-- /must/ be a valid 'Vulkan.Core10.Enums.ImageLayout.ImageLayout'+-- value+--+-- - #VUID-vkCmdBlitImage-dstImage-parameter# @dstImage@ /must/ be a+-- valid 'Vulkan.Core10.Handles.Image' handle+--+-- - #VUID-vkCmdBlitImage-dstImageLayout-parameter# @dstImageLayout@+-- /must/ be a valid 'Vulkan.Core10.Enums.ImageLayout.ImageLayout'+-- value+--+-- - #VUID-vkCmdBlitImage-pRegions-parameter# @pRegions@ /must/ be a+-- valid pointer to an array of @regionCount@ valid 'ImageBlit'+-- structures+--+-- - #VUID-vkCmdBlitImage-filter-parameter# @filter@ /must/ be a valid+-- 'Vulkan.Core10.Enums.Filter.Filter' value+--+-- - #VUID-vkCmdBlitImage-commandBuffer-recording# @commandBuffer@ /must/+-- be in the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording state>+--+-- - #VUID-vkCmdBlitImage-commandBuffer-cmdpool# The+-- 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+-- allocated from /must/ support graphics operations+--+-- - #VUID-vkCmdBlitImage-renderpass# This command /must/ only be called+-- outside of a render pass instance+--+-- - #VUID-vkCmdBlitImage-videocoding# This command /must/ only be called+-- outside of a video coding scope+--+-- - #VUID-vkCmdBlitImage-regionCount-arraylength# @regionCount@ /must/+-- be greater than @0@+--+-- - #VUID-vkCmdBlitImage-commonparent# Each of @commandBuffer@,+-- @dstImage@, and @srcImage@ /must/ have been created, allocated, or+-- retrieved from the same 'Vulkan.Core10.Handles.Device'+--+-- == Host Synchronization+--+-- - Host access to @commandBuffer@ /must/ be externally synchronized+--+-- - Host access to the 'Vulkan.Core10.Handles.CommandPool' that+-- @commandBuffer@ was allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- \'+--+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================++-- | Primary | Outside | Outside | Graphics |+-- | Secondary | | | |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,+-- 'Vulkan.Core10.Handles.CommandBuffer',+-- 'Vulkan.Core10.Enums.Filter.Filter', 'Vulkan.Core10.Handles.Image',+-- 'ImageBlit', 'Vulkan.Core10.Enums.ImageLayout.ImageLayout'+cmdBlitImage :: forall io+ . (MonadIO io)+ => -- | @commandBuffer@ is the command buffer into which the command will be+ -- recorded.+ CommandBuffer+ -> -- | @srcImage@ is the source image.+ ("srcImage" ::: Image)+ -> -- | @srcImageLayout@ is the layout of the source image subresources for the+ -- blit.+ ("srcImageLayout" ::: ImageLayout)+ -> -- | @dstImage@ is the destination image.+ ("dstImage" ::: Image)+ -> -- | @dstImageLayout@ is the layout of the destination image subresources for+ -- the blit.+ ("dstImageLayout" ::: ImageLayout)+ -> -- | @pRegions@ is a pointer to an array of 'ImageBlit' structures specifying+ -- the regions to blit.+ ("regions" ::: Vector ImageBlit)+ -> -- | @filter@ is a 'Vulkan.Core10.Enums.Filter.Filter' specifying the filter+ -- to apply if the blits require scaling.+ Filter+ -> io ()+cmdBlitImage commandBuffer srcImage srcImageLayout dstImage dstImageLayout regions filter' = liftIO . evalContT $ do+ let vkCmdBlitImagePtr = pVkCmdBlitImage (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)+ lift $ unless (vkCmdBlitImagePtr /= nullFunPtr) $+ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdBlitImage is null" Nothing Nothing+ let vkCmdBlitImage' = mkVkCmdBlitImage vkCmdBlitImagePtr+ pPRegions <- ContT $ allocaBytes @ImageBlit ((Data.Vector.length (regions)) * 80)+ lift $ Data.Vector.imapM_ (\i e -> poke (pPRegions `plusPtr` (80 * (i)) :: Ptr ImageBlit) (e)) (regions)+ lift $ traceAroundEvent "vkCmdBlitImage" (vkCmdBlitImage' (commandBufferHandle (commandBuffer)) (srcImage) (srcImageLayout) (dstImage) (dstImageLayout) ((fromIntegral (Data.Vector.length $ (regions)) :: Word32)) (pPRegions) (filter'))+ pure $ ()+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+ unsafe+#endif+ "dynamic" mkVkCmdCopyBufferToImage+ :: FunPtr (Ptr CommandBuffer_T -> Buffer -> Image -> ImageLayout -> Word32 -> Ptr BufferImageCopy -> IO ()) -> Ptr CommandBuffer_T -> Buffer -> Image -> ImageLayout -> Word32 -> Ptr BufferImageCopy -> IO ()++-- | vkCmdCopyBufferToImage - Copy data from a buffer into an image+--+-- = Description+--+-- Each region in @pRegions@ is copied from the specified region of the+-- source buffer to the specified region of the destination image.+--+-- If @dstImage@ has a+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar format>,+-- regions of each plane to be a target of a copy /must/ be specified+-- separately using the @pRegions@ member of the 'BufferImageCopy'+-- structure. In this case, the @aspectMask@ of @imageSubresource@ /must/+-- be 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_0_BIT',+-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_1_BIT', or+-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_2_BIT'. For+-- the purposes of 'cmdCopyBufferToImage', each plane of a multi-planar+-- image is treated as having the format listed in+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#formats-compatible-planes>+-- for the plane identified by the @aspectMask@ of the corresponding+-- subresource. This applies both to 'Vulkan.Core10.Enums.Format.Format'+-- and to coordinates used in the copy, which correspond to texels in the+-- /plane/ rather than how these texels map to coordinates in the image as+-- a whole.+--+-- == Valid Usage+--+-- - #VUID-vkCmdCopyBufferToImage-commandBuffer-01828# If @commandBuffer@+-- is an unprotected command buffer and+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>+-- is not supported, @srcBuffer@ /must/ not be a protected buffer+--+-- - #VUID-vkCmdCopyBufferToImage-commandBuffer-01829# If @commandBuffer@+-- is an unprotected command buffer and+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>+-- is not supported, @dstImage@ /must/ not be a protected image+--+-- - #VUID-vkCmdCopyBufferToImage-commandBuffer-01830# If @commandBuffer@+-- is a protected command buffer and+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>+-- is not supported, @dstImage@ /must/ not be an unprotected image+--+-- - #VUID-vkCmdCopyBufferToImage-pRegions-06217# The image region+-- specified by each element of @pRegions@ /must/ be contained within+-- the specified @imageSubresource@ of @dstImage@+--+-- - #VUID-vkCmdCopyBufferToImage-pRegions-00171# @srcBuffer@ /must/ be+-- large enough to contain all buffer locations that are accessed+-- according to+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#copies-buffers-images-addressing Buffer and Image Addressing>,+-- for each element of @pRegions@+--+-- - #VUID-vkCmdCopyBufferToImage-pRegions-00173# The union of all source+-- regions, and the union of all destination regions, specified by the+-- elements of @pRegions@, /must/ not overlap in memory+--+-- - #VUID-vkCmdCopyBufferToImage-srcBuffer-00174# @srcBuffer@ /must/+-- have been created with+-- 'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_TRANSFER_SRC_BIT'+-- usage flag+--+-- - #VUID-vkCmdCopyBufferToImage-dstImage-01997# The+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-format-features format features>+-- of @dstImage@ /must/ contain+-- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_TRANSFER_DST_BIT'+--+-- - #VUID-vkCmdCopyBufferToImage-srcBuffer-00176# If @srcBuffer@ is+-- non-sparse then it /must/ be bound completely and contiguously to a+-- single 'Vulkan.Core10.Handles.DeviceMemory' object+--+-- - #VUID-vkCmdCopyBufferToImage-dstImage-00177# @dstImage@ /must/ have+-- been created with+-- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_TRANSFER_DST_BIT'+-- usage flag+--+-- - #VUID-vkCmdCopyBufferToImage-dstImage-00178# If @dstImage@ is+-- non-sparse then it /must/ be bound completely and contiguously to a+-- single 'Vulkan.Core10.Handles.DeviceMemory' object+--+-- - #VUID-vkCmdCopyBufferToImage-dstImage-00179# @dstImage@ /must/ have+-- a sample count equal to+-- 'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT'+--+-- - #VUID-vkCmdCopyBufferToImage-dstImageLayout-00180# @dstImageLayout@+-- /must/ specify the layout of the image subresources of @dstImage@+-- specified in @pRegions@ at the time this command is executed on a+-- 'Vulkan.Core10.Handles.Device'+--+-- - #VUID-vkCmdCopyBufferToImage-dstImageLayout-01396# @dstImageLayout@+-- /must/ be+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL',+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_GENERAL', or+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_SHARED_PRESENT_KHR'+--+-- - #VUID-vkCmdCopyBufferToImage-imageSubresource-01701# The+-- @imageSubresource.mipLevel@ member of each element of @pRegions@+-- /must/ be less than the @mipLevels@ specified in+-- 'Vulkan.Core10.Image.ImageCreateInfo' when @dstImage@ was created+--+-- - #VUID-vkCmdCopyBufferToImage-imageSubresource-01702# The+-- @imageSubresource.baseArrayLayer@ + @imageSubresource.layerCount@ of+-- each element of @pRegions@ /must/ be less than or equal to the+-- @arrayLayers@ specified in 'Vulkan.Core10.Image.ImageCreateInfo'+-- when @dstImage@ was created+--+-- - #VUID-vkCmdCopyBufferToImage-imageOffset-01793# The @imageOffset@+-- and @imageExtent@ members of each element of @pRegions@ /must/+-- respect the image transfer granularity requirements of+-- @commandBuffer@’s command pool’s queue family, as described in+-- 'Vulkan.Core10.DeviceInitialization.QueueFamilyProperties'+--+-- - #VUID-vkCmdCopyBufferToImage-dstImage-02543# @dstImage@ /must/ not+-- have been created with @flags@ containing+-- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SUBSAMPLED_BIT_EXT'+--+-- - #VUID-vkCmdCopyBufferToImage-commandBuffer-04477# If the queue+-- family used to create the 'Vulkan.Core10.Handles.CommandPool' which+-- @commandBuffer@ was allocated from does not support+-- 'Vulkan.Core10.Enums.QueueFlagBits.QUEUE_GRAPHICS_BIT', for each+-- element of @pRegions@, the @aspectMask@ member of @imageSubresource@+-- /must/ not be+-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_DEPTH_BIT' or+-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_STENCIL_BIT'+--+-- - #VUID-vkCmdCopyBufferToImage-pRegions-06218# For each element of+-- @pRegions@, @imageOffset.x@ and (@imageExtent.width@ ++-- @imageOffset.x@) /must/ both be greater than or equal to @0@ and+-- less than or equal to the width of the specified @imageSubresource@+-- of @dstImage@+--+-- - #VUID-vkCmdCopyBufferToImage-pRegions-06219# For each element of+-- @pRegions@, @imageOffset.y@ and (@imageExtent.height@ ++-- @imageOffset.y@) /must/ both be greater than or equal to @0@ and+-- less than or equal to the height of the specified @imageSubresource@+-- of @dstImage@+--+-- - #VUID-vkCmdCopyBufferToImage-bufferOffset-01558# If @dstImage@ does+-- not have either a depth\/stencil or a+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar format>,+-- then for each element of @pRegions@, @bufferOffset@ /must/ be a+-- multiple of the format’s texel block size+--+-- - #VUID-vkCmdCopyBufferToImage-bufferOffset-01559# If @dstImage@ has a+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar format>,+-- then for each element of @pRegions@, @bufferOffset@ /must/ be a+-- multiple of the element size of the compatible format for the format+-- and the @aspectMask@ of the @imageSubresource@ as defined in+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatible-planes ???>+--+-- - #VUID-vkCmdCopyBufferToImage-srcImage-00199# If @dstImage@ is of+-- type 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_1D', then for each+-- element of @pRegions@, @imageOffset.y@ /must/ be @0@ and+-- @imageExtent.height@ /must/ be @1@+--+-- - #VUID-vkCmdCopyBufferToImage-imageOffset-00200# For each element of+-- @pRegions@, @imageOffset.z@ and (@imageExtent.depth@ ++-- @imageOffset.z@) /must/ both be greater than or equal to @0@ and+-- less than or equal to the depth of the specified @imageSubresource@+-- of @dstImage@+--+-- - #VUID-vkCmdCopyBufferToImage-srcImage-00201# If @dstImage@ is of+-- type 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_1D' or+-- 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D', then for each element+-- of @pRegions@, @imageOffset.z@ /must/ be @0@ and @imageExtent.depth@+-- /must/ be @1@+--+-- - #VUID-vkCmdCopyBufferToImage-bufferRowLength-00203# If @dstImage@ is+-- a+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#blocked-image blocked image>,+-- for each element of @pRegions@, @bufferRowLength@ /must/ be a+-- multiple of the compressed texel block width+--+-- - #VUID-vkCmdCopyBufferToImage-bufferImageHeight-00204# If @dstImage@+-- is a+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#blocked-image blocked image>,+-- for each element of @pRegions@, @bufferImageHeight@ /must/ be a+-- multiple of the compressed texel block height+--+-- - #VUID-vkCmdCopyBufferToImage-imageOffset-00205# If @dstImage@ is a+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#blocked-image blocked image>,+-- for each element of @pRegions@, all members of @imageOffset@ /must/+-- be a multiple of the corresponding dimensions of the compressed+-- texel block+--+-- - #VUID-vkCmdCopyBufferToImage-bufferOffset-00206# If @dstImage@ is a+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#blocked-image blocked image>,+-- for each element of @pRegions@, @bufferOffset@ /must/ be a multiple+-- of the compressed texel block size in bytes+--+-- - #VUID-vkCmdCopyBufferToImage-imageExtent-00207# If @dstImage@ is a+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#blocked-image blocked image>,+-- for each element of @pRegions@, @imageExtent.width@ /must/ be a+-- multiple of the compressed texel block width or (@imageExtent.width@+-- + @imageOffset.x@) /must/ equal the width of the specified+-- @imageSubresource@ of @dstImage@+--+-- - #VUID-vkCmdCopyBufferToImage-imageExtent-00208# If @dstImage@ is a+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#blocked-image blocked image>,+-- for each element of @pRegions@, @imageExtent.height@ /must/ be a+-- multiple of the compressed texel block height or+-- (@imageExtent.height@ + @imageOffset.y@) /must/ equal the height of+-- the specified @imageSubresource@ of @dstImage@+--+-- - #VUID-vkCmdCopyBufferToImage-imageExtent-00209# If @dstImage@ is a+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#blocked-image blocked image>,+-- for each element of @pRegions@, @imageExtent.depth@ /must/ be a+-- multiple of the compressed texel block depth or (@imageExtent.depth@+-- + @imageOffset.z@) /must/ equal the depth of the specified+-- @imageSubresource@ of @dstImage@+--+-- - #VUID-vkCmdCopyBufferToImage-aspectMask-00211# For each element of+-- @pRegions@, @imageSubresource.aspectMask@ /must/ specify aspects+-- present in @dstImage@+--+-- - #VUID-vkCmdCopyBufferToImage-aspectMask-01560# If @dstImage@ has a+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar format>,+-- then for each element of @pRegions@, @imageSubresource.aspectMask@+-- /must/ be+-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_0_BIT',+-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_1_BIT',+-- or+-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_2_BIT'+-- (with+-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_2_BIT'+-- valid only for image formats with three planes)+--+-- - #VUID-vkCmdCopyBufferToImage-baseArrayLayer-00213# If @dstImage@ is+-- of type 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_3D', for each+-- element of @pRegions@, @imageSubresource.baseArrayLayer@ /must/ be+-- @0@ and @imageSubresource.layerCount@ /must/ be @1@+--+-- - #VUID-vkCmdCopyBufferToImage-pRegions-04725# If @dstImage@ is not a+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#blocked-image blocked image>,+-- for each element of @pRegions@, @bufferRowLength@ multiplied by the+-- texel block size of @dstImage@ /must/ be less than or equal to 231-1+--+-- - #VUID-vkCmdCopyBufferToImage-pRegions-04726# If @dstImage@ is a+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#blocked-image blocked image>,+-- for each element of @pRegions@, @bufferRowLength@ divided by the+-- compressed texel block width and then multiplied by the texel block+-- size of @dstImage@ /must/ be less than or equal to 231-1+--+-- - #VUID-vkCmdCopyBufferToImage-commandBuffer-04052# If the queue+-- family used to create the 'Vulkan.Core10.Handles.CommandPool' which+-- @commandBuffer@ was allocated from does not support+-- 'Vulkan.Core10.Enums.QueueFlagBits.QUEUE_GRAPHICS_BIT' or+-- 'Vulkan.Core10.Enums.QueueFlagBits.QUEUE_COMPUTE_BIT', the+-- @bufferOffset@ member of any element of @pRegions@ /must/ be a+-- multiple of @4@+--+-- - #VUID-vkCmdCopyBufferToImage-srcImage-04053# If @dstImage@ has a+-- depth\/stencil format, the @bufferOffset@ member of any element of+-- @pRegions@ /must/ be a multiple of @4@+--+-- == Valid Usage (Implicit)+--+-- - #VUID-vkCmdCopyBufferToImage-commandBuffer-parameter#+-- @commandBuffer@ /must/ be a valid+-- 'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- - #VUID-vkCmdCopyBufferToImage-srcBuffer-parameter# @srcBuffer@ /must/+-- be a valid 'Vulkan.Core10.Handles.Buffer' handle+--+-- - #VUID-vkCmdCopyBufferToImage-dstImage-parameter# @dstImage@ /must/+-- be a valid 'Vulkan.Core10.Handles.Image' handle+--+-- - #VUID-vkCmdCopyBufferToImage-dstImageLayout-parameter#+-- @dstImageLayout@ /must/ be a valid+-- 'Vulkan.Core10.Enums.ImageLayout.ImageLayout' value+--+-- - #VUID-vkCmdCopyBufferToImage-pRegions-parameter# @pRegions@ /must/+-- be a valid pointer to an array of @regionCount@ valid+-- 'BufferImageCopy' structures+--+-- - #VUID-vkCmdCopyBufferToImage-commandBuffer-recording#+-- @commandBuffer@ /must/ be in the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording state>+--+-- - #VUID-vkCmdCopyBufferToImage-commandBuffer-cmdpool# The+-- 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+-- allocated from /must/ support transfer, graphics, or compute+-- operations+--+-- - #VUID-vkCmdCopyBufferToImage-renderpass# This command /must/ only be+-- called outside of a render pass instance+--+-- - #VUID-vkCmdCopyBufferToImage-videocoding# This command /must/ only+-- be called outside of a video coding scope+--+-- - #VUID-vkCmdCopyBufferToImage-regionCount-arraylength# @regionCount@+-- /must/ be greater than @0@+--+-- - #VUID-vkCmdCopyBufferToImage-commonparent# Each of @commandBuffer@,+-- @dstImage@, and @srcBuffer@ /must/ have been created, allocated, or+-- retrieved from the same 'Vulkan.Core10.Handles.Device'+--+-- == Host Synchronization+--+-- - Host access to @commandBuffer@ /must/ be externally synchronized+--+-- - Host access to the 'Vulkan.Core10.Handles.CommandPool' that+-- @commandBuffer@ was allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- \'+--+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================++-- | Primary | Outside | Outside | Transfer |+-- | Secondary | | | Graphics |+-- | | | | Compute |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,+-- 'Vulkan.Core10.Handles.Buffer', 'BufferImageCopy',+-- 'Vulkan.Core10.Handles.CommandBuffer', 'Vulkan.Core10.Handles.Image',+-- 'Vulkan.Core10.Enums.ImageLayout.ImageLayout'+cmdCopyBufferToImage :: forall io+ . (MonadIO io)+ => -- | @commandBuffer@ is the command buffer into which the command will be+ -- recorded.+ CommandBuffer+ -> -- | @srcBuffer@ is the source buffer.+ ("srcBuffer" ::: Buffer)+ -> -- | @dstImage@ is the destination image.+ ("dstImage" ::: Image)+ -> -- | @dstImageLayout@ is the layout of the destination image subresources for+ -- the copy.+ ("dstImageLayout" ::: ImageLayout)+ -> -- | @pRegions@ is a pointer to an array of 'BufferImageCopy' structures+ -- specifying the regions to copy.+ ("regions" ::: Vector BufferImageCopy)+ -> io ()+cmdCopyBufferToImage commandBuffer srcBuffer dstImage dstImageLayout regions = liftIO . evalContT $ do+ let vkCmdCopyBufferToImagePtr = pVkCmdCopyBufferToImage (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)+ lift $ unless (vkCmdCopyBufferToImagePtr /= nullFunPtr) $+ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdCopyBufferToImage is null" Nothing Nothing+ let vkCmdCopyBufferToImage' = mkVkCmdCopyBufferToImage vkCmdCopyBufferToImagePtr+ pPRegions <- ContT $ allocaBytes @BufferImageCopy ((Data.Vector.length (regions)) * 56)+ lift $ Data.Vector.imapM_ (\i e -> poke (pPRegions `plusPtr` (56 * (i)) :: Ptr BufferImageCopy) (e)) (regions)+ lift $ traceAroundEvent "vkCmdCopyBufferToImage" (vkCmdCopyBufferToImage' (commandBufferHandle (commandBuffer)) (srcBuffer) (dstImage) (dstImageLayout) ((fromIntegral (Data.Vector.length $ (regions)) :: Word32)) (pPRegions))+ pure $ ()+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+ unsafe+#endif+ "dynamic" mkVkCmdCopyImageToBuffer+ :: FunPtr (Ptr CommandBuffer_T -> Image -> ImageLayout -> Buffer -> Word32 -> Ptr BufferImageCopy -> IO ()) -> Ptr CommandBuffer_T -> Image -> ImageLayout -> Buffer -> Word32 -> Ptr BufferImageCopy -> IO ()++-- | vkCmdCopyImageToBuffer - Copy image data into a buffer+--+-- = Description+--+-- Each region in @pRegions@ is copied from the specified region of the+-- source image to the specified region of the destination buffer.+--+-- If @srcImage@ has a+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar format>,+-- regions of each plane to be a source of a copy /must/ be specified+-- separately using the @pRegions@ member of the 'BufferImageCopy'+-- structure. In this case, the @aspectMask@ of @imageSubresource@ /must/+-- be 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_0_BIT',+-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_1_BIT', or+-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_2_BIT'. For+-- the purposes of 'cmdCopyBufferToImage', each plane of a multi-planar+-- image is treated as having the format listed in+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#formats-compatible-planes>+-- for the plane identified by the @aspectMask@ of the corresponding+-- subresource. This applies both to 'Vulkan.Core10.Enums.Format.Format'+-- and to coordinates used in the copy, which correspond to texels in the+-- /plane/ rather than how these texels map to coordinates in the image as+-- a whole.+--+-- == Valid Usage+--+-- - #VUID-vkCmdCopyImageToBuffer-commandBuffer-01831# If @commandBuffer@+-- is an unprotected command buffer and+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>+-- is not supported, @srcImage@ /must/ not be a protected image+--+-- - #VUID-vkCmdCopyImageToBuffer-commandBuffer-01832# If @commandBuffer@+-- is an unprotected command buffer and+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>+-- is not supported, @dstBuffer@ /must/ not be a protected buffer+--+-- - #VUID-vkCmdCopyImageToBuffer-commandBuffer-01833# If @commandBuffer@+-- is a protected command buffer and+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>+-- is not supported, @dstBuffer@ /must/ not be an unprotected buffer+--+-- - #VUID-vkCmdCopyImageToBuffer-pRegions-06220# The image region+-- specified by each element of @pRegions@ /must/ be contained within+-- the specified @imageSubresource@ of @srcImage@+--+-- - #VUID-vkCmdCopyImageToBuffer-pRegions-00183# @dstBuffer@ /must/ be+-- large enough to contain all buffer locations that are accessed+-- according to+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#copies-buffers-images-addressing Buffer and Image Addressing>,+-- for each element of @pRegions@+--+-- - #VUID-vkCmdCopyImageToBuffer-pRegions-00184# The union of all source+-- regions, and the union of all destination regions, specified by the+-- elements of @pRegions@, /must/ not overlap in memory+--+-- - #VUID-vkCmdCopyImageToBuffer-srcImage-00186# @srcImage@ /must/ have+-- been created with+-- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_TRANSFER_SRC_BIT'+-- usage flag+--+-- - #VUID-vkCmdCopyImageToBuffer-srcImage-01998# The+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-format-features format features>+-- of @srcImage@ /must/ contain+-- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_TRANSFER_SRC_BIT'+--+-- - #VUID-vkCmdCopyImageToBuffer-srcImage-00187# If @srcImage@ is+-- non-sparse then it /must/ be bound completely and contiguously to a+-- single 'Vulkan.Core10.Handles.DeviceMemory' object+--+-- - #VUID-vkCmdCopyImageToBuffer-dstBuffer-00191# @dstBuffer@ /must/+-- have been created with+-- 'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_TRANSFER_DST_BIT'+-- usage flag+--+-- - #VUID-vkCmdCopyImageToBuffer-dstBuffer-00192# If @dstBuffer@ is+-- non-sparse then it /must/ be bound completely and contiguously to a+-- single 'Vulkan.Core10.Handles.DeviceMemory' object+--+-- - #VUID-vkCmdCopyImageToBuffer-srcImage-00188# @srcImage@ /must/ have+-- a sample count equal to+-- 'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT'+--+-- - #VUID-vkCmdCopyImageToBuffer-srcImageLayout-00189# @srcImageLayout@+-- /must/ specify the layout of the image subresources of @srcImage@+-- specified in @pRegions@ at the time this command is executed on a+-- 'Vulkan.Core10.Handles.Device'+--+-- - #VUID-vkCmdCopyImageToBuffer-srcImageLayout-01397# @srcImageLayout@+-- /must/ be+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL',+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_GENERAL', or+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_SHARED_PRESENT_KHR'+--+-- - #VUID-vkCmdCopyImageToBuffer-imageSubresource-01703# The+-- @imageSubresource.mipLevel@ member of each element of @pRegions@+-- /must/ be less than the @mipLevels@ specified in+-- 'Vulkan.Core10.Image.ImageCreateInfo' when @srcImage@ was created+--+-- - #VUID-vkCmdCopyImageToBuffer-imageSubresource-01704# The+-- @imageSubresource.baseArrayLayer@ + @imageSubresource.layerCount@ of+-- each element of @pRegions@ /must/ be less than or equal to the+-- @arrayLayers@ specified in 'Vulkan.Core10.Image.ImageCreateInfo'+-- when @srcImage@ was created+--+-- - #VUID-vkCmdCopyImageToBuffer-imageOffset-01794# The @imageOffset@+-- and @imageExtent@ members of each element of @pRegions@ /must/+-- respect the image transfer granularity requirements of+-- @commandBuffer@’s command pool’s queue family, as described in+-- 'Vulkan.Core10.DeviceInitialization.QueueFamilyProperties'+--+-- - #VUID-vkCmdCopyImageToBuffer-srcImage-02544# @srcImage@ /must/ not+-- have been created with @flags@ containing+-- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SUBSAMPLED_BIT_EXT'+--+-- - #VUID-vkCmdCopyImageToBuffer-pRegions-06221# For each element of+-- @pRegions@, @imageOffset.x@ and (@imageExtent.width@ ++-- @imageOffset.x@) /must/ both be greater than or equal to @0@ and+-- less than or equal to the width of the specified @imageSubresource@+-- of @srcImage@+--+-- - #VUID-vkCmdCopyImageToBuffer-pRegions-06222# For each element of+-- @pRegions@, @imageOffset.y@ and (imageExtent.height ++-- @imageOffset.y@) /must/ both be greater than or equal to @0@ and+-- less than or equal to the height of the specified @imageSubresource@+-- of @srcImage@+--+-- - #VUID-vkCmdCopyImageToBuffer-bufferOffset-01558# If @srcImage@ does+-- not have either a depth\/stencil or a+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar format>,+-- then for each element of @pRegions@, @bufferOffset@ /must/ be a+-- multiple of the format’s texel block size+--+-- - #VUID-vkCmdCopyImageToBuffer-bufferOffset-01559# If @srcImage@ has a+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar format>,+-- then for each element of @pRegions@, @bufferOffset@ /must/ be a+-- multiple of the element size of the compatible format for the format+-- and the @aspectMask@ of the @imageSubresource@ as defined in+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatible-planes ???>+--+-- - #VUID-vkCmdCopyImageToBuffer-srcImage-00199# If @srcImage@ is of+-- type 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_1D', then for each+-- element of @pRegions@, @imageOffset.y@ /must/ be @0@ and+-- @imageExtent.height@ /must/ be @1@+--+-- - #VUID-vkCmdCopyImageToBuffer-imageOffset-00200# For each element of+-- @pRegions@, @imageOffset.z@ and (@imageExtent.depth@ ++-- @imageOffset.z@) /must/ both be greater than or equal to @0@ and+-- less than or equal to the depth of the specified @imageSubresource@+-- of @srcImage@+--+-- - #VUID-vkCmdCopyImageToBuffer-srcImage-00201# If @srcImage@ is of+-- type 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_1D' or+-- 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D', then for each element+-- of @pRegions@, @imageOffset.z@ /must/ be @0@ and @imageExtent.depth@+-- /must/ be @1@+--+-- - #VUID-vkCmdCopyImageToBuffer-bufferRowLength-00203# If @srcImage@ is+-- a+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#blocked-image blocked image>,+-- for each element of @pRegions@, @bufferRowLength@ /must/ be a+-- multiple of the compressed texel block width+--+-- - #VUID-vkCmdCopyImageToBuffer-bufferImageHeight-00204# If @srcImage@+-- is a+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#blocked-image blocked image>,+-- for each element of @pRegions@, @bufferImageHeight@ /must/ be a+-- multiple of the compressed texel block height+--+-- - #VUID-vkCmdCopyImageToBuffer-imageOffset-00205# If @srcImage@ is a+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#blocked-image blocked image>,+-- for each element of @pRegions@, all members of @imageOffset@ /must/+-- be a multiple of the corresponding dimensions of the compressed+-- texel block+--+-- - #VUID-vkCmdCopyImageToBuffer-bufferOffset-00206# If @srcImage@ is a+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#blocked-image blocked image>,+-- for each element of @pRegions@, @bufferOffset@ /must/ be a multiple+-- of the compressed texel block size in bytes+--+-- - #VUID-vkCmdCopyImageToBuffer-imageExtent-00207# If @srcImage@ is a+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#blocked-image blocked image>,+-- for each element of @pRegions@, @imageExtent.width@ /must/ be a+-- multiple of the compressed texel block width or (@imageExtent.width@+-- + @imageOffset.x@) /must/ equal the width of the specified+-- @imageSubresource@ of @srcImage@+--+-- - #VUID-vkCmdCopyImageToBuffer-imageExtent-00208# If @srcImage@ is a+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#blocked-image blocked image>,+-- for each element of @pRegions@, @imageExtent.height@ /must/ be a+-- multiple of the compressed texel block height or+-- (@imageExtent.height@ + @imageOffset.y@) /must/ equal the height of+-- the specified @imageSubresource@ of @srcImage@+--+-- - #VUID-vkCmdCopyImageToBuffer-imageExtent-00209# If @srcImage@ is a+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#blocked-image blocked image>,+-- for each element of @pRegions@, @imageExtent.depth@ /must/ be a+-- multiple of the compressed texel block depth or (@imageExtent.depth@+-- + @imageOffset.z@) /must/ equal the depth of the specified+-- @imageSubresource@ of @srcImage@+--+-- - #VUID-vkCmdCopyImageToBuffer-aspectMask-00211# For each element of+-- @pRegions@, @imageSubresource.aspectMask@ /must/ specify aspects+-- present in @srcImage@+--+-- - #VUID-vkCmdCopyImageToBuffer-aspectMask-01560# If @srcImage@ has a+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar format>,+-- then for each element of @pRegions@, @imageSubresource.aspectMask@+-- /must/ be+-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_0_BIT',+-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_1_BIT',+-- or+-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_2_BIT'+-- (with+-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_2_BIT'+-- valid only for image formats with three planes)+--+-- - #VUID-vkCmdCopyImageToBuffer-baseArrayLayer-00213# If @srcImage@ is+-- of type 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_3D', for each+-- element of @pRegions@, @imageSubresource.baseArrayLayer@ /must/ be+-- @0@ and @imageSubresource.layerCount@ /must/ be @1@+--+-- - #VUID-vkCmdCopyImageToBuffer-pRegions-04725# If @srcImage@ is not a+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#blocked-image blocked image>,+-- for each element of @pRegions@, @bufferRowLength@ multiplied by the+-- texel block size of @srcImage@ /must/ be less than or equal to 231-1+--+-- - #VUID-vkCmdCopyImageToBuffer-pRegions-04726# If @srcImage@ is a+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#blocked-image blocked image>,+-- for each element of @pRegions@, @bufferRowLength@ divided by the+-- compressed texel block width and then multiplied by the texel block+-- size of @srcImage@ /must/ be less than or equal to 231-1+--+-- - #VUID-vkCmdCopyImageToBuffer-commandBuffer-04052# If the queue+-- family used to create the 'Vulkan.Core10.Handles.CommandPool' which+-- @commandBuffer@ was allocated from does not support+-- 'Vulkan.Core10.Enums.QueueFlagBits.QUEUE_GRAPHICS_BIT' or+-- 'Vulkan.Core10.Enums.QueueFlagBits.QUEUE_COMPUTE_BIT', the+-- @bufferOffset@ member of any element of @pRegions@ /must/ be a+-- multiple of @4@+--+-- - #VUID-vkCmdCopyImageToBuffer-srcImage-04053# If @srcImage@ has a+-- depth\/stencil format, the @bufferOffset@ member of any element of+-- @pRegions@ /must/ be a multiple of @4@+--+-- == Valid Usage (Implicit)+--+-- - #VUID-vkCmdCopyImageToBuffer-commandBuffer-parameter#+-- @commandBuffer@ /must/ be a valid+-- 'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- - #VUID-vkCmdCopyImageToBuffer-srcImage-parameter# @srcImage@ /must/+-- be a valid 'Vulkan.Core10.Handles.Image' handle+--+-- - #VUID-vkCmdCopyImageToBuffer-srcImageLayout-parameter#+-- @srcImageLayout@ /must/ be a valid+-- 'Vulkan.Core10.Enums.ImageLayout.ImageLayout' value+--+-- - #VUID-vkCmdCopyImageToBuffer-dstBuffer-parameter# @dstBuffer@ /must/+-- be a valid 'Vulkan.Core10.Handles.Buffer' handle+--+-- - #VUID-vkCmdCopyImageToBuffer-pRegions-parameter# @pRegions@ /must/+-- be a valid pointer to an array of @regionCount@ valid+-- 'BufferImageCopy' structures+--+-- - #VUID-vkCmdCopyImageToBuffer-commandBuffer-recording#+-- @commandBuffer@ /must/ be in the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording state>+--+-- - #VUID-vkCmdCopyImageToBuffer-commandBuffer-cmdpool# The+-- 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+-- allocated from /must/ support transfer, graphics, or compute+-- operations+--+-- - #VUID-vkCmdCopyImageToBuffer-renderpass# This command /must/ only be+-- called outside of a render pass instance+--+-- - #VUID-vkCmdCopyImageToBuffer-videocoding# This command /must/ only+-- be called outside of a video coding scope+--+-- - #VUID-vkCmdCopyImageToBuffer-regionCount-arraylength# @regionCount@+-- /must/ be greater than @0@+--+-- - #VUID-vkCmdCopyImageToBuffer-commonparent# Each of @commandBuffer@,+-- @dstBuffer@, and @srcImage@ /must/ have been created, allocated, or+-- retrieved from the same 'Vulkan.Core10.Handles.Device'+--+-- == Host Synchronization+--+-- - Host access to @commandBuffer@ /must/ be externally synchronized+--+-- - Host access to the 'Vulkan.Core10.Handles.CommandPool' that+-- @commandBuffer@ was allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- \'+--+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================++-- | Primary | Outside | Outside | Transfer |+-- | Secondary | | | Graphics |+-- | | | | Compute |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,+-- 'Vulkan.Core10.Handles.Buffer', 'BufferImageCopy',+-- 'Vulkan.Core10.Handles.CommandBuffer', 'Vulkan.Core10.Handles.Image',+-- 'Vulkan.Core10.Enums.ImageLayout.ImageLayout'+cmdCopyImageToBuffer :: forall io+ . (MonadIO io)+ => -- | @commandBuffer@ is the command buffer into which the command will be+ -- recorded.+ CommandBuffer+ -> -- | @srcImage@ is the source image.+ ("srcImage" ::: Image)+ -> -- | @srcImageLayout@ is the layout of the source image subresources for the+ -- copy.+ ("srcImageLayout" ::: ImageLayout)+ -> -- | @dstBuffer@ is the destination buffer.+ ("dstBuffer" ::: Buffer)+ -> -- | @pRegions@ is a pointer to an array of 'BufferImageCopy' structures+ -- specifying the regions to copy.+ ("regions" ::: Vector BufferImageCopy)+ -> io ()+cmdCopyImageToBuffer commandBuffer srcImage srcImageLayout dstBuffer regions = liftIO . evalContT $ do+ let vkCmdCopyImageToBufferPtr = pVkCmdCopyImageToBuffer (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)+ lift $ unless (vkCmdCopyImageToBufferPtr /= nullFunPtr) $+ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdCopyImageToBuffer is null" Nothing Nothing+ let vkCmdCopyImageToBuffer' = mkVkCmdCopyImageToBuffer vkCmdCopyImageToBufferPtr+ pPRegions <- ContT $ allocaBytes @BufferImageCopy ((Data.Vector.length (regions)) * 56)+ lift $ Data.Vector.imapM_ (\i e -> poke (pPRegions `plusPtr` (56 * (i)) :: Ptr BufferImageCopy) (e)) (regions)+ lift $ traceAroundEvent "vkCmdCopyImageToBuffer" (vkCmdCopyImageToBuffer' (commandBufferHandle (commandBuffer)) (srcImage) (srcImageLayout) (dstBuffer) ((fromIntegral (Data.Vector.length $ (regions)) :: Word32)) (pPRegions))+ pure $ ()+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+ unsafe+#endif+ "dynamic" mkVkCmdUpdateBuffer+ :: FunPtr (Ptr CommandBuffer_T -> Buffer -> DeviceSize -> DeviceSize -> Ptr () -> IO ()) -> Ptr CommandBuffer_T -> Buffer -> DeviceSize -> DeviceSize -> Ptr () -> IO ()++-- | vkCmdUpdateBuffer - Update a buffer’s contents from host memory+--+-- = Description+--+-- @dataSize@ /must/ be less than or equal to 65536 bytes. For larger+-- updates, applications /can/ use buffer to buffer+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#copies-buffers copies>.+--+-- Note+--+-- Buffer updates performed with 'cmdUpdateBuffer' first copy the data into+-- command buffer memory when the command is recorded (which requires+-- additional storage and may incur an additional allocation), and then+-- copy the data from the command buffer into @dstBuffer@ when the command+-- is executed on a device.+--+-- The additional cost of this functionality compared to+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#copies-buffers buffer to buffer copies>+-- means it is only recommended for very small amounts of data, and is why+-- it is limited to only 65536 bytes.+--+-- Applications /can/ work around this by issuing multiple+-- 'cmdUpdateBuffer' commands to different ranges of the same buffer, but+-- it is strongly recommended that they /should/ not.+--+-- The source data is copied from the user pointer to the command buffer+-- when the command is called.+--+-- 'cmdUpdateBuffer' is only allowed outside of a render pass. This command+-- is treated as a “transfer” operation for the purposes of synchronization+-- barriers. The+-- 'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_TRANSFER_DST_BIT'+-- /must/ be specified in @usage@ of+-- 'Vulkan.Core10.Buffer.BufferCreateInfo' in order for the buffer to be+-- compatible with 'cmdUpdateBuffer'.+--+-- == Valid Usage+--+-- - #VUID-vkCmdUpdateBuffer-dstOffset-00032# @dstOffset@ /must/ be less+-- than the size of @dstBuffer@+--+-- - #VUID-vkCmdUpdateBuffer-dataSize-00033# @dataSize@ /must/ be less+-- than or equal to the size of @dstBuffer@ minus @dstOffset@+--+-- - #VUID-vkCmdUpdateBuffer-dstBuffer-00034# @dstBuffer@ /must/ have+-- been created with+-- 'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_TRANSFER_DST_BIT'+-- usage flag+--+-- - #VUID-vkCmdUpdateBuffer-dstBuffer-00035# If @dstBuffer@ is+-- non-sparse then it /must/ be bound completely and contiguously to a+-- single 'Vulkan.Core10.Handles.DeviceMemory' object+--+-- - #VUID-vkCmdUpdateBuffer-dstOffset-00036# @dstOffset@ /must/ be a+-- multiple of @4@+--+-- - #VUID-vkCmdUpdateBuffer-dataSize-00037# @dataSize@ /must/ be less+-- than or equal to @65536@+--+-- - #VUID-vkCmdUpdateBuffer-dataSize-00038# @dataSize@ /must/ be a+-- multiple of @4@+--+-- - #VUID-vkCmdUpdateBuffer-commandBuffer-01813# If @commandBuffer@ is+-- an unprotected command buffer and+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>+-- is not supported, @dstBuffer@ /must/ not be a protected buffer+--+-- - #VUID-vkCmdUpdateBuffer-commandBuffer-01814# If @commandBuffer@ is a+-- protected command buffer and+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>+-- is not supported, @dstBuffer@ /must/ not be an unprotected buffer+--+-- == Valid Usage (Implicit)+--+-- - #VUID-vkCmdUpdateBuffer-commandBuffer-parameter# @commandBuffer@+-- /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- - #VUID-vkCmdUpdateBuffer-dstBuffer-parameter# @dstBuffer@ /must/ be a+-- valid 'Vulkan.Core10.Handles.Buffer' handle+--+-- - #VUID-vkCmdUpdateBuffer-pData-parameter# @pData@ /must/ be a valid+-- pointer to an array of @dataSize@ bytes+--+-- - #VUID-vkCmdUpdateBuffer-commandBuffer-recording# @commandBuffer@+-- /must/ be in the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording state>+--+-- - #VUID-vkCmdUpdateBuffer-commandBuffer-cmdpool# The+-- 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+-- allocated from /must/ support transfer, graphics, or compute+-- operations+--+-- - #VUID-vkCmdUpdateBuffer-renderpass# This command /must/ only be+-- called outside of a render pass instance+--+-- - #VUID-vkCmdUpdateBuffer-videocoding# This command /must/ only be+-- called outside of a video coding scope+--+-- - #VUID-vkCmdUpdateBuffer-dataSize-arraylength# @dataSize@ /must/ be+-- greater than @0@+--+-- - #VUID-vkCmdUpdateBuffer-commonparent# Both of @commandBuffer@, and+-- @dstBuffer@ /must/ have been created, allocated, or retrieved from+-- the same 'Vulkan.Core10.Handles.Device'+--+-- == Host Synchronization+--+-- - Host access to @commandBuffer@ /must/ be externally synchronized+--+-- - Host access to the 'Vulkan.Core10.Handles.CommandPool' that+-- @commandBuffer@ was allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- \'+--+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================++-- | Primary | Outside | Outside | Transfer |+-- | Secondary | | | Graphics |+-- | | | | Compute |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,+-- 'Vulkan.Core10.Handles.Buffer', 'Vulkan.Core10.Handles.CommandBuffer',+-- 'Vulkan.Core10.FundamentalTypes.DeviceSize'+cmdUpdateBuffer :: forall io+ . (MonadIO io)+ => -- | @commandBuffer@ is the command buffer into which the command will be+ -- recorded.+ CommandBuffer+ -> -- | @dstBuffer@ is a handle to the buffer to be updated.+ ("dstBuffer" ::: Buffer)+ -> -- | @dstOffset@ is the byte offset into the buffer to start updating, and+ -- /must/ be a multiple of 4.+ ("dstOffset" ::: DeviceSize)+ -> -- | @dataSize@ is the number of bytes to update, and /must/ be a multiple of+ -- 4.+ ("dataSize" ::: DeviceSize)+ -> -- | @pData@ is a pointer to the source data for the buffer update, and+ -- /must/ be at least @dataSize@ bytes in size.+ ("data" ::: Ptr ())+ -> io ()+cmdUpdateBuffer commandBuffer dstBuffer dstOffset dataSize data' = liftIO $ do+ let vkCmdUpdateBufferPtr = pVkCmdUpdateBuffer (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)+ unless (vkCmdUpdateBufferPtr /= nullFunPtr) $+ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdUpdateBuffer is null" Nothing Nothing+ let vkCmdUpdateBuffer' = mkVkCmdUpdateBuffer vkCmdUpdateBufferPtr+ traceAroundEvent "vkCmdUpdateBuffer" (vkCmdUpdateBuffer' (commandBufferHandle (commandBuffer)) (dstBuffer) (dstOffset) (dataSize) (data'))+ pure $ ()+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+ unsafe+#endif+ "dynamic" mkVkCmdFillBuffer+ :: FunPtr (Ptr CommandBuffer_T -> Buffer -> DeviceSize -> DeviceSize -> Word32 -> IO ()) -> Ptr CommandBuffer_T -> Buffer -> DeviceSize -> DeviceSize -> Word32 -> IO ()++-- | vkCmdFillBuffer - Fill a region of a buffer with a fixed value+--+-- = Description+--+-- 'cmdFillBuffer' is treated as a “transfer” operation for the purposes of+-- synchronization barriers. The+-- 'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_TRANSFER_DST_BIT'+-- /must/ be specified in @usage@ of+-- 'Vulkan.Core10.Buffer.BufferCreateInfo' in order for the buffer to be+-- compatible with 'cmdFillBuffer'.+--+-- == Valid Usage+--+-- - #VUID-vkCmdFillBuffer-dstOffset-00024# @dstOffset@ /must/ be less+-- than the size of @dstBuffer@+--+-- - #VUID-vkCmdFillBuffer-dstOffset-00025# @dstOffset@ /must/ be a+-- multiple of @4@+--+-- - #VUID-vkCmdFillBuffer-size-00026# If @size@ is not equal to+-- 'Vulkan.Core10.APIConstants.WHOLE_SIZE', @size@ /must/ be greater+-- than @0@+--+-- - #VUID-vkCmdFillBuffer-size-00027# If @size@ is not equal to+-- 'Vulkan.Core10.APIConstants.WHOLE_SIZE', @size@ /must/ be less than+-- or equal to the size of @dstBuffer@ minus @dstOffset@+--+-- - #VUID-vkCmdFillBuffer-size-00028# If @size@ is not equal to+-- 'Vulkan.Core10.APIConstants.WHOLE_SIZE', @size@ /must/ be a multiple+-- of @4@+--+-- - #VUID-vkCmdFillBuffer-dstBuffer-00029# @dstBuffer@ /must/ have been+-- created with+-- 'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_TRANSFER_DST_BIT'+-- usage flag+--+-- - #VUID-vkCmdFillBuffer-dstBuffer-00031# If @dstBuffer@ is non-sparse+-- then it /must/ be bound completely and contiguously to a single+-- 'Vulkan.Core10.Handles.DeviceMemory' object+--+-- - #VUID-vkCmdFillBuffer-commandBuffer-01811# If @commandBuffer@ is an+-- unprotected command buffer and+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>+-- is not supported, @dstBuffer@ /must/ not be a protected buffer+--+-- - #VUID-vkCmdFillBuffer-commandBuffer-01812# If @commandBuffer@ is a+-- protected command buffer and+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>+-- is not supported, @dstBuffer@ /must/ not be an unprotected buffer+--+-- == Valid Usage (Implicit)+--+-- - #VUID-vkCmdFillBuffer-commandBuffer-parameter# @commandBuffer@+-- /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- - #VUID-vkCmdFillBuffer-dstBuffer-parameter# @dstBuffer@ /must/ be a+-- valid 'Vulkan.Core10.Handles.Buffer' handle+--+-- - #VUID-vkCmdFillBuffer-commandBuffer-recording# @commandBuffer@+-- /must/ be in the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording state>+--+-- - #VUID-vkCmdFillBuffer-commandBuffer-cmdpool# The+-- 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+-- allocated from /must/ support transfer, graphics or compute+-- operations+--+-- - #VUID-vkCmdFillBuffer-renderpass# This command /must/ only be called+-- outside of a render pass instance+--+-- - #VUID-vkCmdFillBuffer-videocoding# This command /must/ only be+-- called outside of a video coding scope+--+-- - #VUID-vkCmdFillBuffer-commonparent# Both of @commandBuffer@, and+-- @dstBuffer@ /must/ have been created, allocated, or retrieved from+-- the same 'Vulkan.Core10.Handles.Device'+--+-- == Host Synchronization+--+-- - Host access to @commandBuffer@ /must/ be externally synchronized+--+-- - Host access to the 'Vulkan.Core10.Handles.CommandPool' that+-- @commandBuffer@ was allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- \'+--+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================++-- | Primary | Outside | Outside | Transfer |+-- | Secondary | | | Graphics |+-- | | | | Compute |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,+-- 'Vulkan.Core10.Handles.Buffer', 'Vulkan.Core10.Handles.CommandBuffer',+-- 'Vulkan.Core10.FundamentalTypes.DeviceSize'+cmdFillBuffer :: forall io+ . (MonadIO io)+ => -- | @commandBuffer@ is the command buffer into which the command will be+ -- recorded.+ CommandBuffer+ -> -- | @dstBuffer@ is the buffer to be filled.+ ("dstBuffer" ::: Buffer)+ -> -- | @dstOffset@ is the byte offset into the buffer at which to start+ -- filling, and /must/ be a multiple of 4.+ ("dstOffset" ::: DeviceSize)+ -> -- | @size@ is the number of bytes to fill, and /must/ be either a multiple+ -- of 4, or 'Vulkan.Core10.APIConstants.WHOLE_SIZE' to fill the range from+ -- @offset@ to the end of the buffer. If+ -- 'Vulkan.Core10.APIConstants.WHOLE_SIZE' is used and the remaining size+ -- of the buffer is not a multiple of 4, then the nearest smaller multiple+ -- is used.+ DeviceSize+ -> -- | @data@ is the 4-byte word written repeatedly to the buffer to fill+ -- @size@ bytes of data. The data word is written to memory according to+ -- the host endianness.+ ("data" ::: Word32)+ -> io ()+cmdFillBuffer commandBuffer dstBuffer dstOffset size data' = liftIO $ do+ let vkCmdFillBufferPtr = pVkCmdFillBuffer (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)+ unless (vkCmdFillBufferPtr /= nullFunPtr) $+ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdFillBuffer is null" Nothing Nothing+ let vkCmdFillBuffer' = mkVkCmdFillBuffer vkCmdFillBufferPtr+ traceAroundEvent "vkCmdFillBuffer" (vkCmdFillBuffer' (commandBufferHandle (commandBuffer)) (dstBuffer) (dstOffset) (size) (data'))+ pure $ ()+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+ unsafe+#endif+ "dynamic" mkVkCmdClearColorImage+ :: FunPtr (Ptr CommandBuffer_T -> Image -> ImageLayout -> Ptr ClearColorValue -> Word32 -> Ptr ImageSubresourceRange -> IO ()) -> Ptr CommandBuffer_T -> Image -> ImageLayout -> Ptr ClearColorValue -> Word32 -> Ptr ImageSubresourceRange -> IO ()++-- | vkCmdClearColorImage - Clear regions of a color image+--+-- = Description+--+-- Each specified range in @pRanges@ is cleared to the value specified by+-- @pColor@.+--+-- == Valid Usage+--+-- - #VUID-vkCmdClearColorImage-image-01993# The+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-format-features format features>+-- of @image@ /must/ contain+-- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_TRANSFER_DST_BIT'+--+-- - #VUID-vkCmdClearColorImage-image-00002# @image@ /must/ have been+-- created with+-- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_TRANSFER_DST_BIT'+-- usage flag+--+-- - #VUID-vkCmdClearColorImage-image-01545# @image@ /must/ not use any+-- of the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion formats that require a sampler Y′CBCR conversion>+--+-- - #VUID-vkCmdClearColorImage-image-00003# If @image@ is non-sparse+-- then it /must/ be bound completely and contiguously to a single+-- 'Vulkan.Core10.Handles.DeviceMemory' object+--+-- - #VUID-vkCmdClearColorImage-imageLayout-00004# @imageLayout@ /must/+-- specify the layout of the image subresource ranges of @image@+-- specified in @pRanges@ at the time this command is executed on a+-- 'Vulkan.Core10.Handles.Device'+--+-- - #VUID-vkCmdClearColorImage-imageLayout-01394# @imageLayout@ /must/+-- be+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL',+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_GENERAL', or+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_SHARED_PRESENT_KHR'+--+-- - #VUID-vkCmdClearColorImage-aspectMask-02498# The+-- 'Vulkan.Core10.ImageView.ImageSubresourceRange'::@aspectMask@+-- members of the elements of the @pRanges@ array /must/ each only+-- include+-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_COLOR_BIT'+--+-- - #VUID-vkCmdClearColorImage-baseMipLevel-01470# The+-- 'Vulkan.Core10.ImageView.ImageSubresourceRange'::@baseMipLevel@+-- members of the elements of the @pRanges@ array /must/ each be less+-- than the @mipLevels@ specified in+-- 'Vulkan.Core10.Image.ImageCreateInfo' when @image@ was created+--+-- - #VUID-vkCmdClearColorImage-pRanges-01692# For each+-- 'Vulkan.Core10.ImageView.ImageSubresourceRange' element of+-- @pRanges@, if the @levelCount@ member is not+-- 'Vulkan.Core10.APIConstants.REMAINING_MIP_LEVELS', then+-- @baseMipLevel@ + @levelCount@ /must/ be less than the @mipLevels@+-- specified in 'Vulkan.Core10.Image.ImageCreateInfo' when @image@ was+-- created+--+-- - #VUID-vkCmdClearColorImage-baseArrayLayer-01472# The+-- 'Vulkan.Core10.ImageView.ImageSubresourceRange'::@baseArrayLayer@+-- members of the elements of the @pRanges@ array /must/ each be less+-- than the @arrayLayers@ specified in+-- 'Vulkan.Core10.Image.ImageCreateInfo' when @image@ was created+--+-- - #VUID-vkCmdClearColorImage-pRanges-01693# For each+-- 'Vulkan.Core10.ImageView.ImageSubresourceRange' element of+-- @pRanges@, if the @layerCount@ member is not+-- 'Vulkan.Core10.APIConstants.REMAINING_ARRAY_LAYERS', then+-- @baseArrayLayer@ + @layerCount@ /must/ be less than the+-- @arrayLayers@ specified in 'Vulkan.Core10.Image.ImageCreateInfo'+-- when @image@ was created+--+-- - #VUID-vkCmdClearColorImage-image-00007# @image@ /must/ not have a+-- compressed or depth\/stencil format+--+-- - #VUID-vkCmdClearColorImage-pColor-04961# @pColor@ /must/ be a valid+-- pointer to a 'ClearColorValue' union+--+-- - #VUID-vkCmdClearColorImage-commandBuffer-01805# If @commandBuffer@+-- is an unprotected command buffer and+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>+-- is not supported, @image@ /must/ not be a protected image+--+-- - #VUID-vkCmdClearColorImage-commandBuffer-01806# If @commandBuffer@+-- is a protected command buffer and+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>+-- is not supported, /must/ not be an unprotected image+--+-- == Valid Usage (Implicit)+--+-- - #VUID-vkCmdClearColorImage-commandBuffer-parameter# @commandBuffer@+-- /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- - #VUID-vkCmdClearColorImage-image-parameter# @image@ /must/ be a+-- valid 'Vulkan.Core10.Handles.Image' handle+--+-- - #VUID-vkCmdClearColorImage-imageLayout-parameter# @imageLayout@+-- /must/ be a valid 'Vulkan.Core10.Enums.ImageLayout.ImageLayout'+-- value+--+-- - #VUID-vkCmdClearColorImage-pRanges-parameter# @pRanges@ /must/ be a+-- valid pointer to an array of @rangeCount@ valid+-- 'Vulkan.Core10.ImageView.ImageSubresourceRange' structures+--+-- - #VUID-vkCmdClearColorImage-commandBuffer-recording# @commandBuffer@+-- /must/ be in the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording state>+--+-- - #VUID-vkCmdClearColorImage-commandBuffer-cmdpool# The+-- 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+-- allocated from /must/ support graphics, or compute operations+--+-- - #VUID-vkCmdClearColorImage-renderpass# This command /must/ only be+-- called outside of a render pass instance+--+-- - #VUID-vkCmdClearColorImage-videocoding# This command /must/ only be+-- called outside of a video coding scope+--+-- - #VUID-vkCmdClearColorImage-rangeCount-arraylength# @rangeCount@+-- /must/ be greater than @0@+--+-- - #VUID-vkCmdClearColorImage-commonparent# Both of @commandBuffer@,+-- and @image@ /must/ have been created, allocated, or retrieved from+-- the same 'Vulkan.Core10.Handles.Device'+--+-- == Host Synchronization+--+-- - Host access to @commandBuffer@ /must/ be externally synchronized+--+-- - Host access to the 'Vulkan.Core10.Handles.CommandPool' that+-- @commandBuffer@ was allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- \'+--+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================++-- | Primary | Outside | Outside | Graphics |+-- | Secondary | | | Compute |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,+-- 'ClearColorValue', 'Vulkan.Core10.Handles.CommandBuffer',+-- 'Vulkan.Core10.Handles.Image',+-- 'Vulkan.Core10.Enums.ImageLayout.ImageLayout',+-- 'Vulkan.Core10.ImageView.ImageSubresourceRange'+cmdClearColorImage :: forall io+ . (MonadIO io)+ => -- | @commandBuffer@ is the command buffer into which the command will be+ -- recorded.+ CommandBuffer+ -> -- | @image@ is the image to be cleared.+ Image+ -> -- | @imageLayout@ specifies the current layout of the image subresource+ -- ranges to be cleared, and /must/ be+ -- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_SHARED_PRESENT_KHR',+ -- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_GENERAL' or+ -- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL'.+ ImageLayout+ -> -- | @pColor@ is a pointer to a 'ClearColorValue' structure containing the+ -- values that the image subresource ranges will be cleared to (see+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#clears-values>+ -- below).+ ClearColorValue+ -> -- | @pRanges@ is a pointer to an array of+ -- 'Vulkan.Core10.ImageView.ImageSubresourceRange' structures describing a+ -- range of mipmap levels, array layers, and aspects to be cleared, as+ -- described in+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-views Image Views>.+ ("ranges" ::: Vector ImageSubresourceRange)+ -> io ()+cmdClearColorImage commandBuffer image imageLayout color ranges = liftIO . evalContT $ do+ let vkCmdClearColorImagePtr = pVkCmdClearColorImage (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)+ lift $ unless (vkCmdClearColorImagePtr /= nullFunPtr) $+ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdClearColorImage is null" Nothing Nothing+ let vkCmdClearColorImage' = mkVkCmdClearColorImage vkCmdClearColorImagePtr+ pColor <- ContT $ withCStruct (color)+ pPRanges <- ContT $ allocaBytes @ImageSubresourceRange ((Data.Vector.length (ranges)) * 20)+ lift $ Data.Vector.imapM_ (\i e -> poke (pPRanges `plusPtr` (20 * (i)) :: Ptr ImageSubresourceRange) (e)) (ranges)+ lift $ traceAroundEvent "vkCmdClearColorImage" (vkCmdClearColorImage' (commandBufferHandle (commandBuffer)) (image) (imageLayout) pColor ((fromIntegral (Data.Vector.length $ (ranges)) :: Word32)) (pPRanges))+ pure $ ()+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+ unsafe+#endif+ "dynamic" mkVkCmdClearDepthStencilImage+ :: FunPtr (Ptr CommandBuffer_T -> Image -> ImageLayout -> Ptr ClearDepthStencilValue -> Word32 -> Ptr ImageSubresourceRange -> IO ()) -> Ptr CommandBuffer_T -> Image -> ImageLayout -> Ptr ClearDepthStencilValue -> Word32 -> Ptr ImageSubresourceRange -> IO ()++-- | vkCmdClearDepthStencilImage - Fill regions of a combined depth\/stencil+-- image+--+-- == Valid Usage+--+-- - #VUID-vkCmdClearDepthStencilImage-image-01994# The+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-format-features format features>+-- of @image@ /must/ contain+-- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_TRANSFER_DST_BIT'+--+-- - #VUID-vkCmdClearDepthStencilImage-pRanges-02658# If the @aspect@+-- member of any element of @pRanges@ includes+-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_STENCIL_BIT',+-- and @image@ was created with+-- <VkImageStencilUsageCreateInfo.html separate stencil usage>,+-- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_TRANSFER_DST_BIT'+-- /must/ have been included in the+-- 'Vulkan.Core12.Promoted_From_VK_EXT_separate_stencil_usage.ImageStencilUsageCreateInfo'::@stencilUsage@+-- used to create @image@+--+-- - #VUID-vkCmdClearDepthStencilImage-pRanges-02659# If the @aspect@+-- member of any element of @pRanges@ includes+-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_STENCIL_BIT',+-- and @image@ was not created with+-- <VkImageStencilUsageCreateInfo.html separate stencil usage>,+-- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_TRANSFER_DST_BIT'+-- /must/ have been included in the+-- 'Vulkan.Core10.Image.ImageCreateInfo'::@usage@ used to create+-- @image@+--+-- - #VUID-vkCmdClearDepthStencilImage-pRanges-02660# If the @aspect@+-- member of any element of @pRanges@ includes+-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_DEPTH_BIT',+-- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_TRANSFER_DST_BIT'+-- /must/ have been included in the+-- 'Vulkan.Core10.Image.ImageCreateInfo'::@usage@ used to create+-- @image@+--+-- - #VUID-vkCmdClearDepthStencilImage-image-00010# If @image@ is+-- non-sparse then it /must/ be bound completely and contiguously to a+-- single 'Vulkan.Core10.Handles.DeviceMemory' object+--+-- - #VUID-vkCmdClearDepthStencilImage-imageLayout-00011# @imageLayout@+-- /must/ specify the layout of the image subresource ranges of @image@+-- specified in @pRanges@ at the time this command is executed on a+-- 'Vulkan.Core10.Handles.Device'+--+-- - #VUID-vkCmdClearDepthStencilImage-imageLayout-00012# @imageLayout@+-- /must/ be either of+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL'+-- or 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_GENERAL'+--+-- - #VUID-vkCmdClearDepthStencilImage-aspectMask-02824# The+-- 'Vulkan.Core10.ImageView.ImageSubresourceRange'::@aspectMask@ member+-- of each element of the @pRanges@ array /must/ not include bits other+-- than+-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_DEPTH_BIT' or+-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_STENCIL_BIT'+--+-- - #VUID-vkCmdClearDepthStencilImage-image-02825# If the @image@’s+-- format does not have a stencil component, then the+-- 'Vulkan.Core10.ImageView.ImageSubresourceRange'::@aspectMask@ member+-- of each element of the @pRanges@ array /must/ not include the+-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_STENCIL_BIT'+-- bit+--+-- - #VUID-vkCmdClearDepthStencilImage-image-02826# If the @image@’s+-- format does not have a depth component, then the+-- 'Vulkan.Core10.ImageView.ImageSubresourceRange'::@aspectMask@ member+-- of each element of the @pRanges@ array /must/ not include the+-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_DEPTH_BIT' bit+--+-- - #VUID-vkCmdClearDepthStencilImage-baseMipLevel-01474# The+-- 'Vulkan.Core10.ImageView.ImageSubresourceRange'::@baseMipLevel@+-- members of the elements of the @pRanges@ array /must/ each be less+-- than the @mipLevels@ specified in+-- 'Vulkan.Core10.Image.ImageCreateInfo' when @image@ was created+--+-- - #VUID-vkCmdClearDepthStencilImage-pRanges-01694# For each+-- 'Vulkan.Core10.ImageView.ImageSubresourceRange' element of+-- @pRanges@, if the @levelCount@ member is not+-- 'Vulkan.Core10.APIConstants.REMAINING_MIP_LEVELS', then+-- @baseMipLevel@ + @levelCount@ /must/ be less than the @mipLevels@+-- specified in 'Vulkan.Core10.Image.ImageCreateInfo' when @image@ was+-- created+--+-- - #VUID-vkCmdClearDepthStencilImage-baseArrayLayer-01476# The+-- 'Vulkan.Core10.ImageView.ImageSubresourceRange'::@baseArrayLayer@+-- members of the elements of the @pRanges@ array /must/ each be less+-- than the @arrayLayers@ specified in+-- 'Vulkan.Core10.Image.ImageCreateInfo' when @image@ was created+--+-- - #VUID-vkCmdClearDepthStencilImage-pRanges-01695# For each+-- 'Vulkan.Core10.ImageView.ImageSubresourceRange' element of+-- @pRanges@, if the @layerCount@ member is not+-- 'Vulkan.Core10.APIConstants.REMAINING_ARRAY_LAYERS', then+-- @baseArrayLayer@ + @layerCount@ /must/ be less than the+-- @arrayLayers@ specified in 'Vulkan.Core10.Image.ImageCreateInfo'+-- when @image@ was created+--+-- - #VUID-vkCmdClearDepthStencilImage-image-00014# @image@ /must/ have a+-- depth\/stencil format+--+-- - #VUID-vkCmdClearDepthStencilImage-commandBuffer-01807# If+-- @commandBuffer@ is an unprotected command buffer and+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>+-- is not supported, @image@ /must/ not be a protected image+--+-- - #VUID-vkCmdClearDepthStencilImage-commandBuffer-01808# If+-- @commandBuffer@ is a protected command buffer and+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>+-- is not supported, @image@ /must/ not be an unprotected image+--+-- == Valid Usage (Implicit)+--+-- - #VUID-vkCmdClearDepthStencilImage-commandBuffer-parameter#+-- @commandBuffer@ /must/ be a valid+-- 'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- - #VUID-vkCmdClearDepthStencilImage-image-parameter# @image@ /must/ be+-- a valid 'Vulkan.Core10.Handles.Image' handle+--+-- - #VUID-vkCmdClearDepthStencilImage-imageLayout-parameter#+-- @imageLayout@ /must/ be a valid+-- 'Vulkan.Core10.Enums.ImageLayout.ImageLayout' value+--+-- - #VUID-vkCmdClearDepthStencilImage-pDepthStencil-parameter#+-- @pDepthStencil@ /must/ be a valid pointer to a valid+-- 'ClearDepthStencilValue' structure+--+-- - #VUID-vkCmdClearDepthStencilImage-pRanges-parameter# @pRanges@+-- /must/ be a valid pointer to an array of @rangeCount@ valid+-- 'Vulkan.Core10.ImageView.ImageSubresourceRange' structures+--+-- - #VUID-vkCmdClearDepthStencilImage-commandBuffer-recording#+-- @commandBuffer@ /must/ be in the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording state>+--+-- - #VUID-vkCmdClearDepthStencilImage-commandBuffer-cmdpool# The+-- 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+-- allocated from /must/ support graphics operations+--+-- - #VUID-vkCmdClearDepthStencilImage-renderpass# This command /must/+-- only be called outside of a render pass instance+--+-- - #VUID-vkCmdClearDepthStencilImage-videocoding# This command /must/+-- only be called outside of a video coding scope+--+-- - #VUID-vkCmdClearDepthStencilImage-rangeCount-arraylength#+-- @rangeCount@ /must/ be greater than @0@+--+-- - #VUID-vkCmdClearDepthStencilImage-commonparent# Both of+-- @commandBuffer@, and @image@ /must/ have been created, allocated, or+-- retrieved from the same 'Vulkan.Core10.Handles.Device'+--+-- == Host Synchronization+--+-- - Host access to @commandBuffer@ /must/ be externally synchronized+--+-- - Host access to the 'Vulkan.Core10.Handles.CommandPool' that+-- @commandBuffer@ was allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- \'+--+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================++-- | Primary | Outside | Outside | Graphics |+-- | Secondary | | | |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,+-- 'ClearDepthStencilValue', 'Vulkan.Core10.Handles.CommandBuffer',+-- 'Vulkan.Core10.Handles.Image',+-- 'Vulkan.Core10.Enums.ImageLayout.ImageLayout',+-- 'Vulkan.Core10.ImageView.ImageSubresourceRange'+cmdClearDepthStencilImage :: forall io+ . (MonadIO io)+ => -- | @commandBuffer@ is the command buffer into which the command will be+ -- recorded.+ CommandBuffer+ -> -- | @image@ is the image to be cleared.+ Image+ -> -- | @imageLayout@ specifies the current layout of the image subresource+ -- ranges to be cleared, and /must/ be+ -- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_GENERAL' or+ -- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL'.+ ImageLayout+ -> -- | @pDepthStencil@ is a pointer to a 'ClearDepthStencilValue' structure+ -- containing the values that the depth and stencil image subresource+ -- ranges will be cleared to (see+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#clears-values>+ -- below).+ ClearDepthStencilValue+ -> -- | @pRanges@ is a pointer to an array of+ -- 'Vulkan.Core10.ImageView.ImageSubresourceRange' structures describing a+ -- range of mipmap levels, array layers, and aspects to be cleared, as+ -- described in+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-views Image Views>.+ ("ranges" ::: Vector ImageSubresourceRange)+ -> io ()+cmdClearDepthStencilImage commandBuffer image imageLayout depthStencil ranges = liftIO . evalContT $ do+ let vkCmdClearDepthStencilImagePtr = pVkCmdClearDepthStencilImage (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)+ lift $ unless (vkCmdClearDepthStencilImagePtr /= nullFunPtr) $+ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdClearDepthStencilImage is null" Nothing Nothing+ let vkCmdClearDepthStencilImage' = mkVkCmdClearDepthStencilImage vkCmdClearDepthStencilImagePtr+ pDepthStencil <- ContT $ withCStruct (depthStencil)+ pPRanges <- ContT $ allocaBytes @ImageSubresourceRange ((Data.Vector.length (ranges)) * 20)+ lift $ Data.Vector.imapM_ (\i e -> poke (pPRanges `plusPtr` (20 * (i)) :: Ptr ImageSubresourceRange) (e)) (ranges)+ lift $ traceAroundEvent "vkCmdClearDepthStencilImage" (vkCmdClearDepthStencilImage' (commandBufferHandle (commandBuffer)) (image) (imageLayout) pDepthStencil ((fromIntegral (Data.Vector.length $ (ranges)) :: Word32)) (pPRanges))+ pure $ ()+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+ unsafe+#endif+ "dynamic" mkVkCmdClearAttachments+ :: FunPtr (Ptr CommandBuffer_T -> Word32 -> Ptr ClearAttachment -> Word32 -> Ptr ClearRect -> IO ()) -> Ptr CommandBuffer_T -> Word32 -> Ptr ClearAttachment -> Word32 -> Ptr ClearRect -> IO ()++-- | vkCmdClearAttachments - Clear regions within bound framebuffer+-- attachments+--+-- = Description+--+-- If the render pass has a+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-fragmentdensitymapattachment fragment density map attachment>,+-- clears follow the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fragmentdensitymapops operations of fragment density maps>+-- as if each clear region was a primitive which generates fragments. The+-- clear color is applied to all pixels inside each fragment’s area+-- regardless if the pixels lie outside of the clear region. Clears /may/+-- have a different set of supported fragment areas than draws.+--+-- Unlike other+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#clears clear commands>,+-- 'cmdClearAttachments' is not a transfer command. It performs its+-- operations in+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-order rasterization order>.+-- For color attachments, the operations are executed as color attachment+-- writes, by the+-- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT'+-- stage. For depth\/stencil attachments, the operations are executed as+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fragops-depth depth writes>+-- and+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fragops-stencil stencil writes>+-- by the+-- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT'+-- and+-- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT'+-- stages.+--+-- 'cmdClearAttachments' is not affected by the bound pipeline state.+--+-- Note+--+-- It is generally preferable to clear attachments by using the+-- 'Vulkan.Core10.Enums.AttachmentLoadOp.ATTACHMENT_LOAD_OP_CLEAR' load+-- operation at the start of rendering, as it is more efficient on some+-- implementations.+--+-- == Valid Usage+--+-- - #VUID-vkCmdClearAttachments-aspectMask-02501# If the @aspectMask@+-- member of any element of @pAttachments@ contains+-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_COLOR_BIT',+-- then the @colorAttachment@ member of that element /must/ either+-- refer to a color attachment which is+-- 'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED', or /must/ be a valid+-- color attachment+--+-- - #VUID-vkCmdClearAttachments-aspectMask-02502# If the @aspectMask@+-- member of any element of @pAttachments@ contains+-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_DEPTH_BIT',+-- then the current subpass\' depth\/stencil attachment /must/ either+-- be 'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED', or /must/ have a+-- depth component+--+-- - #VUID-vkCmdClearAttachments-aspectMask-02503# If the @aspectMask@+-- member of any element of @pAttachments@ contains+-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_STENCIL_BIT',+-- then the current subpass\' depth\/stencil attachment /must/ either+-- be 'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED', or /must/ have a+-- stencil component+--+-- - #VUID-vkCmdClearAttachments-rect-02682# The @rect@ member of each+-- element of @pRects@ /must/ have an @extent.width@ greater than @0@+--+-- - #VUID-vkCmdClearAttachments-rect-02683# The @rect@ member of each+-- element of @pRects@ /must/ have an @extent.height@ greater than @0@+--+-- - #VUID-vkCmdClearAttachments-pRects-00016# The rectangular region+-- specified by each element of @pRects@ /must/ be contained within the+-- render area of the current render pass instance+--+-- - #VUID-vkCmdClearAttachments-pRects-06937# The layers specified by+-- each element of @pRects@ /must/ be contained within every attachment+-- that @pAttachments@ refers to, i.e. for each element of @pRects@,+-- 'ClearRect'::@baseArrayLayer@+-- 'ClearRect'::@layerCount@ /must/ be less than or equal to the number+-- of layers rendered to in the current render pass instance+--+-- - #VUID-vkCmdClearAttachments-layerCount-01934# The @layerCount@+-- member of each element of @pRects@ /must/ not be @0@+--+-- - #VUID-vkCmdClearAttachments-commandBuffer-02504# If @commandBuffer@+-- is an unprotected command buffer and+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>+-- is not supported, each attachment to be cleared /must/ not be a+-- protected image+--+-- - #VUID-vkCmdClearAttachments-commandBuffer-02505# If @commandBuffer@+-- is a protected command buffer and+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>+-- is not supported, each attachment to be cleared /must/ not be an+-- unprotected image+--+-- - #VUID-vkCmdClearAttachments-baseArrayLayer-00018# If the render pass+-- instance this is recorded in uses multiview, then @baseArrayLayer@+-- /must/ be zero and @layerCount@ /must/ be one+--+-- == Valid Usage (Implicit)+--+-- - #VUID-vkCmdClearAttachments-commandBuffer-parameter# @commandBuffer@+-- /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- - #VUID-vkCmdClearAttachments-pAttachments-parameter# @pAttachments@+-- /must/ be a valid pointer to an array of @attachmentCount@ valid+-- 'ClearAttachment' structures+--+-- - #VUID-vkCmdClearAttachments-pRects-parameter# @pRects@ /must/ be a+-- valid pointer to an array of @rectCount@ 'ClearRect' structures+--+-- - #VUID-vkCmdClearAttachments-commandBuffer-recording# @commandBuffer@+-- /must/ be in the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording state>+--+-- - #VUID-vkCmdClearAttachments-commandBuffer-cmdpool# The+-- 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+-- allocated from /must/ support graphics operations+--+-- - #VUID-vkCmdClearAttachments-renderpass# This command /must/ only be+-- called inside of a render pass instance+--+-- - #VUID-vkCmdClearAttachments-videocoding# This command /must/ only be+-- called outside of a video coding scope+--+-- - #VUID-vkCmdClearAttachments-attachmentCount-arraylength#+-- @attachmentCount@ /must/ be greater than @0@+--+-- - #VUID-vkCmdClearAttachments-rectCount-arraylength# @rectCount@+-- /must/ be greater than @0@+--+-- == Host Synchronization+--+-- - Host access to @commandBuffer@ /must/ be externally synchronized+--+-- - Host access to the 'Vulkan.Core10.Handles.CommandPool' that+-- @commandBuffer@ was allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- \'+--+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================++-- | Primary | Inside | Outside | Graphics |+-- | Secondary | | | |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,+-- 'ClearAttachment', 'ClearRect', 'Vulkan.Core10.Handles.CommandBuffer'+cmdClearAttachments :: forall io+ . (MonadIO io)+ => -- | @commandBuffer@ is the command buffer into which the command will be+ -- recorded.+ CommandBuffer+ -> -- | @pAttachments@ is a pointer to an array of 'ClearAttachment' structures+ -- defining the attachments to clear and the clear values to use. If any+ -- attachment index to be cleared is not backed by an image view, then the+ -- clear has no effect.+ ("attachments" ::: Vector ClearAttachment)+ -> -- | @pRects@ is a pointer to an array of 'ClearRect' structures defining+ -- regions within each selected attachment to clear.+ ("rects" ::: Vector ClearRect)+ -> io ()+cmdClearAttachments commandBuffer attachments rects = liftIO . evalContT $ do+ let vkCmdClearAttachmentsPtr = pVkCmdClearAttachments (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)+ lift $ unless (vkCmdClearAttachmentsPtr /= nullFunPtr) $+ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdClearAttachments is null" Nothing Nothing+ let vkCmdClearAttachments' = mkVkCmdClearAttachments vkCmdClearAttachmentsPtr+ pPAttachments <- ContT $ allocaBytes @ClearAttachment ((Data.Vector.length (attachments)) * 24)+ Data.Vector.imapM_ (\i e -> ContT $ pokeCStruct (pPAttachments `plusPtr` (24 * (i)) :: Ptr ClearAttachment) (e) . ($ ())) (attachments)+ pPRects <- ContT $ allocaBytes @ClearRect ((Data.Vector.length (rects)) * 24)+ lift $ Data.Vector.imapM_ (\i e -> poke (pPRects `plusPtr` (24 * (i)) :: Ptr ClearRect) (e)) (rects)+ lift $ traceAroundEvent "vkCmdClearAttachments" (vkCmdClearAttachments' (commandBufferHandle (commandBuffer)) ((fromIntegral (Data.Vector.length $ (attachments)) :: Word32)) (pPAttachments) ((fromIntegral (Data.Vector.length $ (rects)) :: Word32)) (pPRects))+ pure $ ()+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+ unsafe+#endif+ "dynamic" mkVkCmdResolveImage+ :: FunPtr (Ptr CommandBuffer_T -> Image -> ImageLayout -> Image -> ImageLayout -> Word32 -> Ptr ImageResolve -> IO ()) -> Ptr CommandBuffer_T -> Image -> ImageLayout -> Image -> ImageLayout -> Word32 -> Ptr ImageResolve -> IO ()++-- | vkCmdResolveImage - Resolve regions of an image+--+-- = Description+--+-- During the resolve the samples corresponding to each pixel location in+-- the source are converted to a single sample before being written to the+-- destination. If the source formats are floating-point or normalized+-- types, the sample values for each pixel are resolved in an+-- implementation-dependent manner. If the source formats are integer+-- types, a single sample’s value is selected for each pixel.+--+-- @srcOffset@ and @dstOffset@ select the initial @x@, @y@, and @z@ offsets+-- in texels of the sub-regions of the source and destination image data.+-- @extent@ is the size in texels of the source image to resolve in+-- @width@, @height@ and @depth@. Each element of @pRegions@ /must/ be a+-- region that is contained within its corresponding image.+--+-- Resolves are done layer by layer starting with @baseArrayLayer@ member+-- of @srcSubresource@ for the source and @dstSubresource@ for the+-- destination. @layerCount@ layers are resolved to the destination image.+--+-- == Valid Usage+--+-- - #VUID-vkCmdResolveImage-commandBuffer-01837# If @commandBuffer@ is+-- an unprotected command buffer and+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>+-- is not supported, @srcImage@ /must/ not be a protected image+--+-- - #VUID-vkCmdResolveImage-commandBuffer-01838# If @commandBuffer@ is+-- an unprotected command buffer and+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>+-- is not supported, @dstImage@ /must/ not be a protected image+--+-- - #VUID-vkCmdResolveImage-commandBuffer-01839# If @commandBuffer@ is a+-- protected command buffer and+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>+-- is not supported, @dstImage@ /must/ not be an unprotected image+--+-- - #VUID-vkCmdResolveImage-pRegions-00255# The union of all source+-- regions, and the union of all destination regions, specified by the+-- elements of @pRegions@, /must/ not overlap in memory+--+-- - #VUID-vkCmdResolveImage-srcImage-00256# If @srcImage@ is non-sparse+-- then it /must/ be bound completely and contiguously to a single+-- 'Vulkan.Core10.Handles.DeviceMemory' object+--+-- - #VUID-vkCmdResolveImage-srcImage-00257# @srcImage@ /must/ have a+-- sample count equal to any valid sample count value other than+-- 'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT'+--+-- - #VUID-vkCmdResolveImage-dstImage-00258# If @dstImage@ is non-sparse+-- then it /must/ be bound completely and contiguously to a single+-- 'Vulkan.Core10.Handles.DeviceMemory' object+--+-- - #VUID-vkCmdResolveImage-dstImage-00259# @dstImage@ /must/ have a+-- sample count equal to+-- 'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT'+--+-- - #VUID-vkCmdResolveImage-srcImageLayout-00260# @srcImageLayout@+-- /must/ specify the layout of the image subresources of @srcImage@+-- specified in @pRegions@ at the time this command is executed on a+-- 'Vulkan.Core10.Handles.Device'+--+-- - #VUID-vkCmdResolveImage-srcImageLayout-01400# @srcImageLayout@+-- /must/ be+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_SHARED_PRESENT_KHR',+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL'+-- or 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_GENERAL'+--+-- - #VUID-vkCmdResolveImage-dstImageLayout-00262# @dstImageLayout@+-- /must/ specify the layout of the image subresources of @dstImage@+-- specified in @pRegions@ at the time this command is executed on a+-- 'Vulkan.Core10.Handles.Device'+--+-- - #VUID-vkCmdResolveImage-dstImageLayout-01401# @dstImageLayout@+-- /must/ be+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_SHARED_PRESENT_KHR',+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL'+-- or 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_GENERAL'+--+-- - #VUID-vkCmdResolveImage-dstImage-02003# The+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-format-features format features>+-- of @dstImage@ /must/ contain+-- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_COLOR_ATTACHMENT_BIT'+--+-- - #VUID-vkCmdResolveImage-linearColorAttachment-06519# If the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-linearColorAttachment linearColorAttachment>+-- feature is enabled and the image is created with+-- 'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_LINEAR', the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-format-features format features>+-- of @dstImage@ /must/ contain+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV'+--+-- - #VUID-vkCmdResolveImage-srcImage-01386# @srcImage@ and @dstImage@+-- /must/ have been created with the same image format+--+-- - #VUID-vkCmdResolveImage-srcSubresource-01709# The+-- @srcSubresource.mipLevel@ member of each element of @pRegions@+-- /must/ be less than the @mipLevels@ specified in+-- 'Vulkan.Core10.Image.ImageCreateInfo' when @srcImage@ was created+--+-- - #VUID-vkCmdResolveImage-dstSubresource-01710# The+-- @dstSubresource.mipLevel@ member of each element of @pRegions@+-- /must/ be less than the @mipLevels@ specified in+-- 'Vulkan.Core10.Image.ImageCreateInfo' when @dstImage@ was created+--+-- - #VUID-vkCmdResolveImage-srcSubresource-01711# The+-- @srcSubresource.baseArrayLayer@ + @srcSubresource.layerCount@ of+-- each element of @pRegions@ /must/ be less than or equal to the+-- @arrayLayers@ specified in 'Vulkan.Core10.Image.ImageCreateInfo'+-- when @srcImage@ was created+--+-- - #VUID-vkCmdResolveImage-dstSubresource-01712# The+-- @dstSubresource.baseArrayLayer@ + @dstSubresource.layerCount@ of+-- each element of @pRegions@ /must/ be less than or equal to the+-- @arrayLayers@ specified in 'Vulkan.Core10.Image.ImageCreateInfo'+-- when @dstImage@ was created+--+-- - #VUID-vkCmdResolveImage-dstImage-02546# @dstImage@ and @srcImage@+-- /must/ not have been created with @flags@ containing+-- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SUBSAMPLED_BIT_EXT'+--+-- - #VUID-vkCmdResolveImage-srcImage-04446# If either @srcImage@ or+-- @dstImage@ are of type+-- 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_3D', then for each element+-- of @pRegions@, @srcSubresource.baseArrayLayer@ /must/ be @0@ and+-- @srcSubresource.layerCount@ /must/ be @1@+--+-- - #VUID-vkCmdResolveImage-srcImage-04447# If either @srcImage@ or+-- @dstImage@ are of type+-- 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_3D', then for each element+-- of @pRegions@, @dstSubresource.baseArrayLayer@ /must/ be @0@ and+-- @dstSubresource.layerCount@ /must/ be @1@+--+-- - #VUID-vkCmdResolveImage-srcOffset-00269# For each element of+-- @pRegions@, @srcOffset.x@ and (@extent.width@ + @srcOffset.x@)+-- /must/ both be greater than or equal to @0@ and less than or equal+-- to the width of the specified @srcSubresource@ of @srcImage@+--+-- - #VUID-vkCmdResolveImage-srcOffset-00270# For each element of+-- @pRegions@, @srcOffset.y@ and (@extent.height@ + @srcOffset.y@)+-- /must/ both be greater than or equal to @0@ and less than or equal+-- to the height of the specified @srcSubresource@ of @srcImage@+--+-- - #VUID-vkCmdResolveImage-srcImage-00271# If @srcImage@ is of type+-- 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_1D', then for each element+-- of @pRegions@, @srcOffset.y@ /must/ be @0@ and @extent.height@+-- /must/ be @1@+--+-- - #VUID-vkCmdResolveImage-srcOffset-00272# For each element of+-- @pRegions@, @srcOffset.z@ and (@extent.depth@ + @srcOffset.z@)+-- /must/ both be greater than or equal to @0@ and less than or equal+-- to the depth of the specified @srcSubresource@ of @srcImage@+--+-- - #VUID-vkCmdResolveImage-srcImage-00273# If @srcImage@ is of type+-- 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_1D' or+-- 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D', then for each element+-- of @pRegions@, @srcOffset.z@ /must/ be @0@ and @extent.depth@ /must/+-- be @1@+--+-- - #VUID-vkCmdResolveImage-dstOffset-00274# For each element of+-- @pRegions@, @dstOffset.x@ and (@extent.width@ + @dstOffset.x@)+-- /must/ both be greater than or equal to @0@ and less than or equal+-- to the width of the specified @dstSubresource@ of @dstImage@+--+-- - #VUID-vkCmdResolveImage-dstOffset-00275# For each element of+-- @pRegions@, @dstOffset.y@ and (@extent.height@ + @dstOffset.y@)+-- /must/ both be greater than or equal to @0@ and less than or equal+-- to the height of the specified @dstSubresource@ of @dstImage@+--+-- - #VUID-vkCmdResolveImage-dstImage-00276# If @dstImage@ is of type+-- 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_1D', then for each element+-- of @pRegions@, @dstOffset.y@ /must/ be @0@ and @extent.height@+-- /must/ be @1@+--+-- - #VUID-vkCmdResolveImage-dstOffset-00277# For each element of+-- @pRegions@, @dstOffset.z@ and (@extent.depth@ + @dstOffset.z@)+-- /must/ both be greater than or equal to @0@ and less than or equal+-- to the depth of the specified @dstSubresource@ of @dstImage@+--+-- - #VUID-vkCmdResolveImage-dstImage-00278# If @dstImage@ is of type+-- 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_1D' or+-- 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D', then for each element+-- of @pRegions@, @dstOffset.z@ /must/ be @0@ and @extent.depth@ /must/+-- be @1@+--+-- - #VUID-vkCmdResolveImage-srcImage-06762# @srcImage@ /must/ have been+-- created with+-- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_TRANSFER_SRC_BIT'+-- usage flag+--+-- - #VUID-vkCmdResolveImage-srcImage-06763# The+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-format-features format features>+-- of @srcImage@ /must/ contain+-- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_TRANSFER_SRC_BIT'+--+-- - #VUID-vkCmdResolveImage-dstImage-06764# @dstImage@ /must/ have been+-- created with+-- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_TRANSFER_DST_BIT'+-- usage flag+--+-- - #VUID-vkCmdResolveImage-dstImage-06765# The+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-format-features format features>+-- of @dstImage@ /must/ contain+-- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_TRANSFER_DST_BIT'+--+-- == Valid Usage (Implicit)+--+-- - #VUID-vkCmdResolveImage-commandBuffer-parameter# @commandBuffer@+-- /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- - #VUID-vkCmdResolveImage-srcImage-parameter# @srcImage@ /must/ be a+-- valid 'Vulkan.Core10.Handles.Image' handle+--+-- - #VUID-vkCmdResolveImage-srcImageLayout-parameter# @srcImageLayout@+-- /must/ be a valid 'Vulkan.Core10.Enums.ImageLayout.ImageLayout'+-- value+--+-- - #VUID-vkCmdResolveImage-dstImage-parameter# @dstImage@ /must/ be a+-- valid 'Vulkan.Core10.Handles.Image' handle+--+-- - #VUID-vkCmdResolveImage-dstImageLayout-parameter# @dstImageLayout@+-- /must/ be a valid 'Vulkan.Core10.Enums.ImageLayout.ImageLayout'+-- value+--+-- - #VUID-vkCmdResolveImage-pRegions-parameter# @pRegions@ /must/ be a+-- valid pointer to an array of @regionCount@ valid 'ImageResolve'+-- structures+--+-- - #VUID-vkCmdResolveImage-commandBuffer-recording# @commandBuffer@+-- /must/ be in the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording state>+--+-- - #VUID-vkCmdResolveImage-commandBuffer-cmdpool# The+-- 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+-- allocated from /must/ support graphics operations+--+-- - #VUID-vkCmdResolveImage-renderpass# This command /must/ only be+-- called outside of a render pass instance+--+-- - #VUID-vkCmdResolveImage-videocoding# This command /must/ only be+-- called outside of a video coding scope+--+-- - #VUID-vkCmdResolveImage-regionCount-arraylength# @regionCount@+-- /must/ be greater than @0@+--+-- - #VUID-vkCmdResolveImage-commonparent# Each of @commandBuffer@,+-- @dstImage@, and @srcImage@ /must/ have been created, allocated, or+-- retrieved from the same 'Vulkan.Core10.Handles.Device'+--+-- == Host Synchronization+--+-- - Host access to @commandBuffer@ /must/ be externally synchronized+--+-- - Host access to the 'Vulkan.Core10.Handles.CommandPool' that+-- @commandBuffer@ was allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- \'+--+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================++-- | Primary | Outside | Outside | Graphics |+-- | Secondary | | | |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,+-- 'Vulkan.Core10.Handles.CommandBuffer', 'Vulkan.Core10.Handles.Image',+-- 'Vulkan.Core10.Enums.ImageLayout.ImageLayout', 'ImageResolve'+cmdResolveImage :: forall io+ . (MonadIO io)+ => -- | @commandBuffer@ is the command buffer into which the command will be+ -- recorded.+ CommandBuffer+ -> -- | @srcImage@ is the source image.+ ("srcImage" ::: Image)+ -> -- | @srcImageLayout@ is the layout of the source image subresources for the+ -- resolve.+ ("srcImageLayout" ::: ImageLayout)+ -> -- | @dstImage@ is the destination image.+ ("dstImage" ::: Image)+ -> -- | @dstImageLayout@ is the layout of the destination image subresources for+ -- the resolve.+ ("dstImageLayout" ::: ImageLayout)+ -> -- | @pRegions@ is a pointer to an array of 'ImageResolve' structures+ -- specifying the regions to resolve.+ ("regions" ::: Vector ImageResolve)+ -> io ()+cmdResolveImage commandBuffer srcImage srcImageLayout dstImage dstImageLayout regions = liftIO . evalContT $ do+ let vkCmdResolveImagePtr = pVkCmdResolveImage (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)+ lift $ unless (vkCmdResolveImagePtr /= nullFunPtr) $+ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdResolveImage is null" Nothing Nothing+ let vkCmdResolveImage' = mkVkCmdResolveImage vkCmdResolveImagePtr+ pPRegions <- ContT $ allocaBytes @ImageResolve ((Data.Vector.length (regions)) * 68)+ lift $ Data.Vector.imapM_ (\i e -> poke (pPRegions `plusPtr` (68 * (i)) :: Ptr ImageResolve) (e)) (regions)+ lift $ traceAroundEvent "vkCmdResolveImage" (vkCmdResolveImage' (commandBufferHandle (commandBuffer)) (srcImage) (srcImageLayout) (dstImage) (dstImageLayout) ((fromIntegral (Data.Vector.length $ (regions)) :: Word32)) (pPRegions))+ pure $ ()+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+ unsafe+#endif+ "dynamic" mkVkCmdSetEvent+ :: FunPtr (Ptr CommandBuffer_T -> Event -> PipelineStageFlags -> IO ()) -> Ptr CommandBuffer_T -> Event -> PipelineStageFlags -> IO ()++-- | vkCmdSetEvent - Set an event object to signaled state+--+-- = Description+--+-- 'cmdSetEvent' behaves identically to+-- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.cmdSetEvent2',+-- except that it does not define an access scope, and /must/ only be used+-- with 'cmdWaitEvents', not+-- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.cmdWaitEvents2'.+--+-- == Valid Usage+--+-- - #VUID-vkCmdSetEvent-stageMask-04090# If the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryShader geometryShader>+-- feature is not enabled, @stageMask@ /must/ not contain+-- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_GEOMETRY_SHADER_BIT'+--+-- - #VUID-vkCmdSetEvent-stageMask-04091# If the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShader tessellationShader>+-- feature is not enabled, @stageMask@ /must/ not contain+-- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT'+-- or+-- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT'+--+-- - #VUID-vkCmdSetEvent-stageMask-04092# If the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-conditionalRendering conditionalRendering>+-- feature is not enabled, @stageMask@ /must/ not contain+-- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT'+--+-- - #VUID-vkCmdSetEvent-stageMask-04093# If the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-fragmentDensityMap fragmentDensityMap>+-- feature is not enabled, @stageMask@ /must/ not contain+-- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT'+--+-- - #VUID-vkCmdSetEvent-stageMask-04094# If the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-transformFeedback transformFeedback>+-- feature is not enabled, @stageMask@ /must/ not contain+-- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT'+--+-- - #VUID-vkCmdSetEvent-stageMask-04095# If the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader>+-- feature is not enabled, @stageMask@ /must/ not contain+-- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_MESH_SHADER_BIT_EXT'+--+-- - #VUID-vkCmdSetEvent-stageMask-04096# If the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader>+-- feature is not enabled, @stageMask@ /must/ not contain+-- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TASK_SHADER_BIT_EXT'+--+-- - #VUID-vkCmdSetEvent-stageMask-04097# If the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>+-- feature is not enabled, @stageMask@ /must/ not contain+-- 'Vulkan.Extensions.VK_NV_shading_rate_image.PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV'+--+-- - #VUID-vkCmdSetEvent-stageMask-03937# If the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-synchronization2 synchronization2>+-- feature is not enabled, @stageMask@ /must/ not be @0@+--+-- - #VUID-vkCmdSetEvent-stageMask-06457# Any pipeline stage included in+-- @stageMask@ /must/ be supported by the capabilities of the queue+-- family specified by the @queueFamilyIndex@ member of the+-- 'Vulkan.Core10.CommandPool.CommandPoolCreateInfo' structure that was+-- used to create the 'Vulkan.Core10.Handles.CommandPool' that+-- @commandBuffer@ was allocated from, as specified in the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages-supported table of supported pipeline stages>+--+-- - #VUID-vkCmdSetEvent-stageMask-01149# @stageMask@ /must/ not include+-- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_HOST_BIT'+--+-- - #VUID-vkCmdSetEvent-commandBuffer-01152# @commandBuffer@’s current+-- device mask /must/ include exactly one physical device+--+-- == Valid Usage (Implicit)+--+-- - #VUID-vkCmdSetEvent-commandBuffer-parameter# @commandBuffer@ /must/+-- be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- - #VUID-vkCmdSetEvent-event-parameter# @event@ /must/ be a valid+-- 'Vulkan.Core10.Handles.Event' handle+--+-- - #VUID-vkCmdSetEvent-stageMask-parameter# @stageMask@ /must/ be a+-- valid combination of+-- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlagBits'+-- values+--+-- - #VUID-vkCmdSetEvent-commandBuffer-recording# @commandBuffer@ /must/+-- be in the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording state>+--+-- - #VUID-vkCmdSetEvent-commandBuffer-cmdpool# The+-- 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+-- allocated from /must/ support graphics, compute, decode, or encode+-- operations+--+-- - #VUID-vkCmdSetEvent-renderpass# This command /must/ only be called+-- outside of a render pass instance+--+-- - #VUID-vkCmdSetEvent-commonparent# Both of @commandBuffer@, and+-- @event@ /must/ have been created, allocated, or retrieved from the+-- same 'Vulkan.Core10.Handles.Device'+--+-- == Host Synchronization+--+-- - Host access to @commandBuffer@ /must/ be externally synchronized+--+-- - Host access to the 'Vulkan.Core10.Handles.CommandPool' that+-- @commandBuffer@ was allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- \'+--+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================++-- | Primary | Outside | Both | Graphics |+-- | Secondary | | | Compute |+-- | | | | Decode |+-- | | | | Encode |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,+-- 'Vulkan.Core10.Handles.CommandBuffer', 'Vulkan.Core10.Handles.Event',+-- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlags'+cmdSetEvent :: forall io+ . (MonadIO io)+ => -- | @commandBuffer@ is the command buffer into which the command is+ -- recorded.+ CommandBuffer+ -> -- | @event@ is the event that will be signaled.+ Event+ -> -- | @stageMask@ specifies the+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages source stage mask>+ -- used to determine the first+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>.+ ("stageMask" ::: PipelineStageFlags)+ -> io ()+cmdSetEvent commandBuffer event stageMask = liftIO $ do+ let vkCmdSetEventPtr = pVkCmdSetEvent (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)+ unless (vkCmdSetEventPtr /= nullFunPtr) $+ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetEvent is null" Nothing Nothing+ let vkCmdSetEvent' = mkVkCmdSetEvent vkCmdSetEventPtr+ traceAroundEvent "vkCmdSetEvent" (vkCmdSetEvent' (commandBufferHandle (commandBuffer)) (event) (stageMask))+ pure $ ()+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+ unsafe+#endif+ "dynamic" mkVkCmdResetEvent+ :: FunPtr (Ptr CommandBuffer_T -> Event -> PipelineStageFlags -> IO ()) -> Ptr CommandBuffer_T -> Event -> PipelineStageFlags -> IO ()++-- | vkCmdResetEvent - Reset an event object to non-signaled state+--+-- = Description+--+-- 'cmdResetEvent' behaves identically to+-- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.cmdResetEvent2'.+--+-- == Valid Usage+--+-- - #VUID-vkCmdResetEvent-stageMask-04090# If the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryShader geometryShader>+-- feature is not enabled, @stageMask@ /must/ not contain+-- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_GEOMETRY_SHADER_BIT'+--+-- - #VUID-vkCmdResetEvent-stageMask-04091# If the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShader tessellationShader>+-- feature is not enabled, @stageMask@ /must/ not contain+-- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT'+-- or+-- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT'+--+-- - #VUID-vkCmdResetEvent-stageMask-04092# If the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-conditionalRendering conditionalRendering>+-- feature is not enabled, @stageMask@ /must/ not contain+-- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT'+--+-- - #VUID-vkCmdResetEvent-stageMask-04093# If the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-fragmentDensityMap fragmentDensityMap>+-- feature is not enabled, @stageMask@ /must/ not contain+-- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT'+--+-- - #VUID-vkCmdResetEvent-stageMask-04094# If the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-transformFeedback transformFeedback>+-- feature is not enabled, @stageMask@ /must/ not contain+-- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT'+--+-- - #VUID-vkCmdResetEvent-stageMask-04095# If the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader>+-- feature is not enabled, @stageMask@ /must/ not contain+-- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_MESH_SHADER_BIT_EXT'+--+-- - #VUID-vkCmdResetEvent-stageMask-04096# If the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader>+-- feature is not enabled, @stageMask@ /must/ not contain+-- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TASK_SHADER_BIT_EXT'+--+-- - #VUID-vkCmdResetEvent-stageMask-04097# If the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>+-- feature is not enabled, @stageMask@ /must/ not contain+-- 'Vulkan.Extensions.VK_NV_shading_rate_image.PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV'+--+-- - #VUID-vkCmdResetEvent-stageMask-03937# If the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-synchronization2 synchronization2>+-- feature is not enabled, @stageMask@ /must/ not be @0@+--+-- - #VUID-vkCmdResetEvent-stageMask-06458# Any pipeline stage included+-- in @stageMask@ /must/ be supported by the capabilities of the queue+-- family specified by the @queueFamilyIndex@ member of the+-- 'Vulkan.Core10.CommandPool.CommandPoolCreateInfo' structure that was+-- used to create the 'Vulkan.Core10.Handles.CommandPool' that+-- @commandBuffer@ was allocated from, as specified in the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages-supported table of supported pipeline stages>+--+-- - #VUID-vkCmdResetEvent-stageMask-01153# @stageMask@ /must/ not+-- include+-- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_HOST_BIT'+--+-- - #VUID-vkCmdResetEvent-event-03834# There /must/ be an execution+-- dependency between 'cmdResetEvent' and the execution of any+-- 'cmdWaitEvents' that includes @event@ in its @pEvents@ parameter+--+-- - #VUID-vkCmdResetEvent-event-03835# There /must/ be an execution+-- dependency between 'cmdResetEvent' and the execution of any+-- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.cmdWaitEvents2'+-- that includes @event@ in its @pEvents@ parameter+--+-- - #VUID-vkCmdResetEvent-commandBuffer-01157# @commandBuffer@’s current+-- device mask /must/ include exactly one physical device+--+-- == Valid Usage (Implicit)+--+-- - #VUID-vkCmdResetEvent-commandBuffer-parameter# @commandBuffer@+-- /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- - #VUID-vkCmdResetEvent-event-parameter# @event@ /must/ be a valid+-- 'Vulkan.Core10.Handles.Event' handle+--+-- - #VUID-vkCmdResetEvent-stageMask-parameter# @stageMask@ /must/ be a+-- valid combination of+-- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlagBits'+-- values+--+-- - #VUID-vkCmdResetEvent-commandBuffer-recording# @commandBuffer@+-- /must/ be in the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording state>+--+-- - #VUID-vkCmdResetEvent-commandBuffer-cmdpool# The+-- 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+-- allocated from /must/ support graphics, compute, decode, or encode+-- operations+--+-- - #VUID-vkCmdResetEvent-renderpass# This command /must/ only be called+-- outside of a render pass instance+--+-- - #VUID-vkCmdResetEvent-commonparent# Both of @commandBuffer@, and+-- @event@ /must/ have been created, allocated, or retrieved from the+-- same 'Vulkan.Core10.Handles.Device'+--+-- == Host Synchronization+--+-- - Host access to @commandBuffer@ /must/ be externally synchronized+--+-- - Host access to the 'Vulkan.Core10.Handles.CommandPool' that+-- @commandBuffer@ was allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- \'+--+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================++-- | Primary | Outside | Both | Graphics |+-- | Secondary | | | Compute |+-- | | | | Decode |+-- | | | | Encode |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,+-- 'Vulkan.Core10.Handles.CommandBuffer', 'Vulkan.Core10.Handles.Event',+-- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlags'+cmdResetEvent :: forall io+ . (MonadIO io)+ => -- | @commandBuffer@ is the command buffer into which the command is+ -- recorded.+ CommandBuffer+ -> -- | @event@ is the event that will be unsignaled.+ Event+ -> -- | @stageMask@ is a bitmask of+ -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlagBits'+ -- specifying the+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages source stage mask>+ -- used to determine when the @event@ is unsignaled.+ ("stageMask" ::: PipelineStageFlags)+ -> io ()+cmdResetEvent commandBuffer event stageMask = liftIO $ do+ let vkCmdResetEventPtr = pVkCmdResetEvent (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)+ unless (vkCmdResetEventPtr /= nullFunPtr) $+ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdResetEvent is null" Nothing Nothing+ let vkCmdResetEvent' = mkVkCmdResetEvent vkCmdResetEventPtr+ traceAroundEvent "vkCmdResetEvent" (vkCmdResetEvent' (commandBufferHandle (commandBuffer)) (event) (stageMask))+ pure $ ()+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+ unsafe+#endif+ "dynamic" mkVkCmdWaitEventsUnsafe+ :: FunPtr (Ptr CommandBuffer_T -> Word32 -> Ptr Event -> PipelineStageFlags -> PipelineStageFlags -> Word32 -> Ptr MemoryBarrier -> Word32 -> Ptr BufferMemoryBarrier -> Word32 -> Ptr (SomeStruct ImageMemoryBarrier) -> IO ()) -> Ptr CommandBuffer_T -> Word32 -> Ptr Event -> PipelineStageFlags -> PipelineStageFlags -> Word32 -> Ptr MemoryBarrier -> Word32 -> Ptr BufferMemoryBarrier -> Word32 -> Ptr (SomeStruct ImageMemoryBarrier) -> IO ()++foreign import ccall+ "dynamic" mkVkCmdWaitEventsSafe+ :: FunPtr (Ptr CommandBuffer_T -> Word32 -> Ptr Event -> PipelineStageFlags -> PipelineStageFlags -> Word32 -> Ptr MemoryBarrier -> Word32 -> Ptr BufferMemoryBarrier -> Word32 -> Ptr (SomeStruct ImageMemoryBarrier) -> IO ()) -> Ptr CommandBuffer_T -> Word32 -> Ptr Event -> PipelineStageFlags -> PipelineStageFlags -> Word32 -> Ptr MemoryBarrier -> Word32 -> Ptr BufferMemoryBarrier -> Word32 -> Ptr (SomeStruct ImageMemoryBarrier) -> IO ()++-- | cmdWaitEvents with selectable safeness+cmdWaitEventsSafeOrUnsafe :: forall io+ . (MonadIO io)+ => (FunPtr (Ptr CommandBuffer_T -> Word32 -> Ptr Event -> PipelineStageFlags -> PipelineStageFlags -> Word32 -> Ptr MemoryBarrier -> Word32 -> Ptr BufferMemoryBarrier -> Word32 -> Ptr (SomeStruct ImageMemoryBarrier) -> IO ()) -> Ptr CommandBuffer_T -> Word32 -> Ptr Event -> PipelineStageFlags -> PipelineStageFlags -> Word32 -> Ptr MemoryBarrier -> Word32 -> Ptr BufferMemoryBarrier -> Word32 -> Ptr (SomeStruct ImageMemoryBarrier) -> IO ())+ -> -- | @commandBuffer@ is the command buffer into which the command is+ -- recorded.+ CommandBuffer+ -> -- | @pEvents@ is a pointer to an array of event object handles to wait on.+ ("events" ::: Vector Event)+ -> -- | @srcStageMask@ is a bitmask of+ -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlagBits'+ -- specifying the+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages source stage mask>.+ ("srcStageMask" ::: PipelineStageFlags)+ -> -- | @dstStageMask@ is a bitmask of+ -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlagBits'+ -- specifying the+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages destination stage mask>.+ ("dstStageMask" ::: PipelineStageFlags)+ -> -- | @pMemoryBarriers@ is a pointer to an array of+ -- 'Vulkan.Core10.OtherTypes.MemoryBarrier' structures.+ ("memoryBarriers" ::: Vector MemoryBarrier)+ -> -- | @pBufferMemoryBarriers@ is a pointer to an array of+ -- 'Vulkan.Core10.OtherTypes.BufferMemoryBarrier' structures.+ ("bufferMemoryBarriers" ::: Vector BufferMemoryBarrier)+ -> -- | @pImageMemoryBarriers@ is a pointer to an array of+ -- 'Vulkan.Core10.OtherTypes.ImageMemoryBarrier' structures.+ ("imageMemoryBarriers" ::: Vector (SomeStruct ImageMemoryBarrier))+ -> io ()+cmdWaitEventsSafeOrUnsafe mkVkCmdWaitEvents commandBuffer events srcStageMask dstStageMask memoryBarriers bufferMemoryBarriers imageMemoryBarriers = liftIO . evalContT $ do+ let vkCmdWaitEventsPtr = pVkCmdWaitEvents (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)+ lift $ unless (vkCmdWaitEventsPtr /= nullFunPtr) $+ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdWaitEvents is null" Nothing Nothing+ let vkCmdWaitEvents' = mkVkCmdWaitEvents vkCmdWaitEventsPtr+ pPEvents <- ContT $ allocaBytes @Event ((Data.Vector.length (events)) * 8)+ lift $ Data.Vector.imapM_ (\i e -> poke (pPEvents `plusPtr` (8 * (i)) :: Ptr Event) (e)) (events)+ pPMemoryBarriers <- ContT $ allocaBytes @MemoryBarrier ((Data.Vector.length (memoryBarriers)) * 24)+ lift $ Data.Vector.imapM_ (\i e -> poke (pPMemoryBarriers `plusPtr` (24 * (i)) :: Ptr MemoryBarrier) (e)) (memoryBarriers)+ pPBufferMemoryBarriers <- ContT $ allocaBytes @BufferMemoryBarrier ((Data.Vector.length (bufferMemoryBarriers)) * 56)+ lift $ Data.Vector.imapM_ (\i e -> poke (pPBufferMemoryBarriers `plusPtr` (56 * (i)) :: Ptr BufferMemoryBarrier) (e)) (bufferMemoryBarriers)+ pPImageMemoryBarriers <- ContT $ allocaBytes @(ImageMemoryBarrier _) ((Data.Vector.length (imageMemoryBarriers)) * 72)+ Data.Vector.imapM_ (\i e -> ContT $ pokeSomeCStruct (forgetExtensions (pPImageMemoryBarriers `plusPtr` (72 * (i)) :: Ptr (ImageMemoryBarrier _))) (e) . ($ ())) (imageMemoryBarriers)+ lift $ traceAroundEvent "vkCmdWaitEvents" (vkCmdWaitEvents' (commandBufferHandle (commandBuffer)) ((fromIntegral (Data.Vector.length $ (events)) :: Word32)) (pPEvents) (srcStageMask) (dstStageMask) ((fromIntegral (Data.Vector.length $ (memoryBarriers)) :: Word32)) (pPMemoryBarriers) ((fromIntegral (Data.Vector.length $ (bufferMemoryBarriers)) :: Word32)) (pPBufferMemoryBarriers) ((fromIntegral (Data.Vector.length $ (imageMemoryBarriers)) :: Word32)) (forgetExtensions (pPImageMemoryBarriers)))+ pure $ ()++-- | vkCmdWaitEvents - Wait for one or more events and insert a set of memory+--+-- = Description+--+-- 'cmdWaitEvents' is largely similar to+-- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.cmdWaitEvents2',+-- but /can/ only wait on signal operations defined by 'cmdSetEvent'. As+-- 'cmdSetEvent' does not define any access scopes, 'cmdWaitEvents' defines+-- the first access scope for each event signal operation in addition to+-- its own access scopes.+--+-- Note+--+-- Since 'cmdSetEvent' does not have any dependency information beyond a+-- stage mask, implementations do not have the same opportunity to perform+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-available-and-visible availability and visibility operations>+-- or+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-image-layout-transitions image layout transitions>+-- in advance as they do with+-- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.cmdSetEvent2' and+-- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.cmdWaitEvents2'.+--+-- When 'cmdWaitEvents' is submitted to a queue, it defines a memory+-- dependency between prior event signal operations on the same queue or+-- the host, and subsequent commands. 'cmdWaitEvents' /must/ not be used to+-- wait on event signal operations occurring on other queues.+--+-- The first synchronization scope only includes event signal operations+-- that operate on members of @pEvents@, and the operations that+-- happened-before the event signal operations. Event signal operations+-- performed by 'cmdSetEvent' that occur earlier in+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-submission-order submission order>+-- are included in the first synchronization scope, if the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages-order logically latest>+-- pipeline stage in their @stageMask@ parameter is+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages-order logically earlier>+-- than or equal to the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages-order logically latest>+-- pipeline stage in @srcStageMask@. Event signal operations performed by+-- 'Vulkan.Core10.Event.setEvent' are only included in the first+-- synchronization scope if+-- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_HOST_BIT' is+-- included in @srcStageMask@.+--+-- The second+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>+-- includes all commands that occur later in+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-submission-order submission order>.+-- The second synchronization scope is limited to operations on the+-- pipeline stages determined by the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages-masks destination stage mask>+-- specified by @dstStageMask@.+--+-- The first+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-access-scopes access scope>+-- is limited to accesses in the pipeline stages determined by the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages-masks source stage mask>+-- specified by @srcStageMask@. Within that, the first access scope only+-- includes the first access scopes defined by elements of the+-- @pMemoryBarriers@, @pBufferMemoryBarriers@ and @pImageMemoryBarriers@+-- arrays, which each define a set of+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-memory-barriers memory barriers>.+-- If no memory barriers are specified, then the first access scope+-- includes no accesses.+--+-- The second+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-access-scopes access scope>+-- is limited to accesses in the pipeline stages determined by the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages-masks destination stage mask>+-- specified by @dstStageMask@. Within that, the second access scope only+-- includes the second access scopes defined by elements of the+-- @pMemoryBarriers@, @pBufferMemoryBarriers@ and @pImageMemoryBarriers@+-- arrays, which each define a set of+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-memory-barriers memory barriers>.+-- If no memory barriers are specified, then the second access scope+-- includes no accesses.+--+-- == Valid Usage+--+-- - #VUID-vkCmdWaitEvents-srcStageMask-04090# If the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryShader geometryShader>+-- feature is not enabled, @srcStageMask@ /must/ not contain+-- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_GEOMETRY_SHADER_BIT'+--+-- - #VUID-vkCmdWaitEvents-srcStageMask-04091# If the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShader tessellationShader>+-- feature is not enabled, @srcStageMask@ /must/ not contain+-- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT'+-- or+-- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT'+--+-- - #VUID-vkCmdWaitEvents-srcStageMask-04092# If the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-conditionalRendering conditionalRendering>+-- feature is not enabled, @srcStageMask@ /must/ not contain+-- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT'+--+-- - #VUID-vkCmdWaitEvents-srcStageMask-04093# If the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-fragmentDensityMap fragmentDensityMap>+-- feature is not enabled, @srcStageMask@ /must/ not contain+-- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT'+--+-- - #VUID-vkCmdWaitEvents-srcStageMask-04094# If the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-transformFeedback transformFeedback>+-- feature is not enabled, @srcStageMask@ /must/ not contain+-- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT'+--+-- - #VUID-vkCmdWaitEvents-srcStageMask-04095# If the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader>+-- feature is not enabled, @srcStageMask@ /must/ not contain+-- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_MESH_SHADER_BIT_EXT'+--+-- - #VUID-vkCmdWaitEvents-srcStageMask-04096# If the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader>+-- feature is not enabled, @srcStageMask@ /must/ not contain+-- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TASK_SHADER_BIT_EXT'+--+-- - #VUID-vkCmdWaitEvents-srcStageMask-04097# If the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>+-- feature is not enabled, @srcStageMask@ /must/ not contain+-- 'Vulkan.Extensions.VK_NV_shading_rate_image.PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV'+--+-- - #VUID-vkCmdWaitEvents-srcStageMask-03937# If the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-synchronization2 synchronization2>+-- feature is not enabled, @srcStageMask@ /must/ not be @0@+--+-- - #VUID-vkCmdWaitEvents-dstStageMask-04090# If the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryShader geometryShader>+-- feature is not enabled, @dstStageMask@ /must/ not contain+-- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_GEOMETRY_SHADER_BIT'+--+-- - #VUID-vkCmdWaitEvents-dstStageMask-04091# If the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShader tessellationShader>+-- feature is not enabled, @dstStageMask@ /must/ not contain+-- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT'+-- or+-- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT'+--+-- - #VUID-vkCmdWaitEvents-dstStageMask-04092# If the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-conditionalRendering conditionalRendering>+-- feature is not enabled, @dstStageMask@ /must/ not contain+-- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT'+--+-- - #VUID-vkCmdWaitEvents-dstStageMask-04093# If the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-fragmentDensityMap fragmentDensityMap>+-- feature is not enabled, @dstStageMask@ /must/ not contain+-- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT'+--+-- - #VUID-vkCmdWaitEvents-dstStageMask-04094# If the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-transformFeedback transformFeedback>+-- feature is not enabled, @dstStageMask@ /must/ not contain+-- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT'+--+-- - #VUID-vkCmdWaitEvents-dstStageMask-04095# If the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader>+-- feature is not enabled, @dstStageMask@ /must/ not contain+-- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_MESH_SHADER_BIT_EXT'+--+-- - #VUID-vkCmdWaitEvents-dstStageMask-04096# If the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader>+-- feature is not enabled, @dstStageMask@ /must/ not contain+-- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TASK_SHADER_BIT_EXT'+--+-- - #VUID-vkCmdWaitEvents-dstStageMask-04097# If the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>+-- feature is not enabled, @dstStageMask@ /must/ not contain+-- 'Vulkan.Extensions.VK_NV_shading_rate_image.PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV'+--+-- - #VUID-vkCmdWaitEvents-dstStageMask-03937# If the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-synchronization2 synchronization2>+-- feature is not enabled, @dstStageMask@ /must/ not be @0@+--+-- - #VUID-vkCmdWaitEvents-srcAccessMask-02815# The @srcAccessMask@+-- member of each element of @pMemoryBarriers@ /must/ only include+-- access flags that are supported by one or more of the pipeline+-- stages in @srcStageMask@, as specified in the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-access-types-supported table of supported access types>+--+-- - #VUID-vkCmdWaitEvents-dstAccessMask-02816# The @dstAccessMask@+-- member of each element of @pMemoryBarriers@ /must/ only include+-- access flags that are supported by one or more of the pipeline+-- stages in @dstStageMask@, as specified in the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-access-types-supported table of supported access types>+--+-- - #VUID-vkCmdWaitEvents-pBufferMemoryBarriers-02817# For any element+-- of @pBufferMemoryBarriers@, if its @srcQueueFamilyIndex@ and+-- @dstQueueFamilyIndex@ members are equal, or if its+-- @srcQueueFamilyIndex@ is the queue family index that was used to+-- create the command pool that @commandBuffer@ was allocated from,+-- then its @srcAccessMask@ member /must/ only contain access flags+-- that are supported by one or more of the pipeline stages in+-- @srcStageMask@, as specified in the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-access-types-supported table of supported access types>+--+-- - #VUID-vkCmdWaitEvents-pBufferMemoryBarriers-02818# For any element+-- of @pBufferMemoryBarriers@, if its @srcQueueFamilyIndex@ and+-- @dstQueueFamilyIndex@ members are equal, or if its+-- @dstQueueFamilyIndex@ is the queue family index that was used to+-- create the command pool that @commandBuffer@ was allocated from,+-- then its @dstAccessMask@ member /must/ only contain access flags+-- that are supported by one or more of the pipeline stages in+-- @dstStageMask@, as specified in the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-access-types-supported table of supported access types>+--+-- - #VUID-vkCmdWaitEvents-pImageMemoryBarriers-02819# For any element of+-- @pImageMemoryBarriers@, if its @srcQueueFamilyIndex@ and+-- @dstQueueFamilyIndex@ members are equal, or if its+-- @srcQueueFamilyIndex@ is the queue family index that was used to+-- create the command pool that @commandBuffer@ was allocated from,+-- then its @srcAccessMask@ member /must/ only contain access flags+-- that are supported by one or more of the pipeline stages in+-- @srcStageMask@, as specified in the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-access-types-supported table of supported access types>+--+-- - #VUID-vkCmdWaitEvents-pImageMemoryBarriers-02820# For any element of+-- @pImageMemoryBarriers@, if its @srcQueueFamilyIndex@ and+-- @dstQueueFamilyIndex@ members are equal, or if its+-- @dstQueueFamilyIndex@ is the queue family index that was used to+-- create the command pool that @commandBuffer@ was allocated from,+-- then its @dstAccessMask@ member /must/ only contain access flags+-- that are supported by one or more of the pipeline stages in+-- @dstStageMask@, as specified in the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-access-types-supported table of supported access types>+--+-- - #VUID-vkCmdWaitEvents-srcStageMask-06459# Any pipeline stage+-- included in @srcStageMask@ /must/ be supported by the capabilities+-- of the queue family specified by the @queueFamilyIndex@ member of+-- the 'Vulkan.Core10.CommandPool.CommandPoolCreateInfo' structure that+-- was used to create the 'Vulkan.Core10.Handles.CommandPool' that+-- @commandBuffer@ was allocated from, as specified in the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages-supported table of supported pipeline stages>+--+-- - #VUID-vkCmdWaitEvents-dstStageMask-06460# Any pipeline stage+-- included in @dstStageMask@ /must/ be supported by the capabilities+-- of the queue family specified by the @queueFamilyIndex@ member of+-- the 'Vulkan.Core10.CommandPool.CommandPoolCreateInfo' structure that+-- was used to create the 'Vulkan.Core10.Handles.CommandPool' that+-- @commandBuffer@ was allocated from, as specified in the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages-supported table of supported pipeline stages>+--+-- - #VUID-vkCmdWaitEvents-srcStageMask-01158# @srcStageMask@ /must/ be+-- the bitwise OR of the @stageMask@ parameter used in previous calls+-- to 'cmdSetEvent' with any of the elements of @pEvents@ and+-- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_HOST_BIT'+-- if any of the elements of @pEvents@ was set using+-- 'Vulkan.Core10.Event.setEvent'+--+-- - #VUID-vkCmdWaitEvents-pEvents-01163# If @pEvents@ includes one or+-- more events that will be signaled by 'Vulkan.Core10.Event.setEvent'+-- after @commandBuffer@ has been submitted to a queue, then+-- 'cmdWaitEvents' /must/ not be called inside a render pass instance+--+-- - #VUID-vkCmdWaitEvents-srcQueueFamilyIndex-02803# The+-- @srcQueueFamilyIndex@ and @dstQueueFamilyIndex@ members of any+-- element of @pBufferMemoryBarriers@ or @pImageMemoryBarriers@ /must/+-- be equal+--+-- - #VUID-vkCmdWaitEvents-commandBuffer-01167# @commandBuffer@’s current+-- device mask /must/ include exactly one physical device+--+-- - #VUID-vkCmdWaitEvents-pEvents-03847# Elements of @pEvents@ /must/+-- not have been signaled by+-- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.cmdSetEvent2'+--+-- == Valid Usage (Implicit)+--+-- - #VUID-vkCmdWaitEvents-commandBuffer-parameter# @commandBuffer@+-- /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- - #VUID-vkCmdWaitEvents-pEvents-parameter# @pEvents@ /must/ be a valid+-- pointer to an array of @eventCount@ valid+-- 'Vulkan.Core10.Handles.Event' handles+--+-- - #VUID-vkCmdWaitEvents-srcStageMask-parameter# @srcStageMask@ /must/+-- be a valid combination of+-- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlagBits'+-- values+--+-- - #VUID-vkCmdWaitEvents-dstStageMask-parameter# @dstStageMask@ /must/+-- be a valid combination of+-- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlagBits'+-- values+--+-- - #VUID-vkCmdWaitEvents-pMemoryBarriers-parameter# If+-- @memoryBarrierCount@ is not @0@, @pMemoryBarriers@ /must/ be a valid+-- pointer to an array of @memoryBarrierCount@ valid+-- 'Vulkan.Core10.OtherTypes.MemoryBarrier' structures+--+-- - #VUID-vkCmdWaitEvents-pBufferMemoryBarriers-parameter# If+-- @bufferMemoryBarrierCount@ is not @0@, @pBufferMemoryBarriers@+-- /must/ be a valid pointer to an array of @bufferMemoryBarrierCount@+-- valid 'Vulkan.Core10.OtherTypes.BufferMemoryBarrier' structures+--+-- - #VUID-vkCmdWaitEvents-pImageMemoryBarriers-parameter# If+-- @imageMemoryBarrierCount@ is not @0@, @pImageMemoryBarriers@ /must/+-- be a valid pointer to an array of @imageMemoryBarrierCount@ valid+-- 'Vulkan.Core10.OtherTypes.ImageMemoryBarrier' structures+--+-- - #VUID-vkCmdWaitEvents-commandBuffer-recording# @commandBuffer@+-- /must/ be in the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording state>+--+-- - #VUID-vkCmdWaitEvents-commandBuffer-cmdpool# The+-- 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+-- allocated from /must/ support graphics, compute, decode, or encode+-- operations+--+-- - #VUID-vkCmdWaitEvents-eventCount-arraylength# @eventCount@ /must/ be+-- greater than @0@+--+-- - #VUID-vkCmdWaitEvents-commonparent# Both of @commandBuffer@, and the+-- elements of @pEvents@ /must/ have been created, allocated, or+-- retrieved from the same 'Vulkan.Core10.Handles.Device'+--+-- == Host Synchronization+--+-- - Host access to @commandBuffer@ /must/ be externally synchronized+--+-- - Host access to the 'Vulkan.Core10.Handles.CommandPool' that+-- @commandBuffer@ was allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- \'+--+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================++-- | Primary | Both | Both | Graphics |+-- | Secondary | | | Compute |+-- | | | | Decode |+-- | | | | Encode |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,+-- 'Vulkan.Core10.OtherTypes.BufferMemoryBarrier',+-- 'Vulkan.Core10.Handles.CommandBuffer', 'Vulkan.Core10.Handles.Event',+-- 'Vulkan.Core10.OtherTypes.ImageMemoryBarrier',+-- 'Vulkan.Core10.OtherTypes.MemoryBarrier',+-- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlags'+cmdWaitEvents :: forall io+ . (MonadIO io)+ => -- | @commandBuffer@ is the command buffer into which the command is+ -- recorded.+ CommandBuffer+ -> -- | @pEvents@ is a pointer to an array of event object handles to wait on.+ ("events" ::: Vector Event)+ -> -- | @srcStageMask@ is a bitmask of+ -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlagBits'+ -- specifying the+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages source stage mask>.+ ("srcStageMask" ::: PipelineStageFlags)+ -> -- | @dstStageMask@ is a bitmask of+ -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlagBits'+ -- specifying the+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages destination stage mask>.+ ("dstStageMask" ::: PipelineStageFlags)+ -> -- | @pMemoryBarriers@ is a pointer to an array of+ -- 'Vulkan.Core10.OtherTypes.MemoryBarrier' structures.+ ("memoryBarriers" ::: Vector MemoryBarrier)+ -> -- | @pBufferMemoryBarriers@ is a pointer to an array of+ -- 'Vulkan.Core10.OtherTypes.BufferMemoryBarrier' structures.+ ("bufferMemoryBarriers" ::: Vector BufferMemoryBarrier)+ -> -- | @pImageMemoryBarriers@ is a pointer to an array of+ -- 'Vulkan.Core10.OtherTypes.ImageMemoryBarrier' structures.+ ("imageMemoryBarriers" ::: Vector (SomeStruct ImageMemoryBarrier))+ -> io ()+cmdWaitEvents = cmdWaitEventsSafeOrUnsafe mkVkCmdWaitEventsUnsafe++-- | A variant of 'cmdWaitEvents' which makes a *safe* FFI call+cmdWaitEventsSafe :: forall io+ . (MonadIO io)+ => -- | @commandBuffer@ is the command buffer into which the command is+ -- recorded.+ CommandBuffer+ -> -- | @pEvents@ is a pointer to an array of event object handles to wait on.+ ("events" ::: Vector Event)+ -> -- | @srcStageMask@ is a bitmask of+ -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlagBits'+ -- specifying the+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages source stage mask>.+ ("srcStageMask" ::: PipelineStageFlags)+ -> -- | @dstStageMask@ is a bitmask of+ -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlagBits'+ -- specifying the+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages destination stage mask>.+ ("dstStageMask" ::: PipelineStageFlags)+ -> -- | @pMemoryBarriers@ is a pointer to an array of+ -- 'Vulkan.Core10.OtherTypes.MemoryBarrier' structures.+ ("memoryBarriers" ::: Vector MemoryBarrier)+ -> -- | @pBufferMemoryBarriers@ is a pointer to an array of+ -- 'Vulkan.Core10.OtherTypes.BufferMemoryBarrier' structures.+ ("bufferMemoryBarriers" ::: Vector BufferMemoryBarrier)+ -> -- | @pImageMemoryBarriers@ is a pointer to an array of+ -- 'Vulkan.Core10.OtherTypes.ImageMemoryBarrier' structures.+ ("imageMemoryBarriers" ::: Vector (SomeStruct ImageMemoryBarrier))+ -> io ()+cmdWaitEventsSafe = cmdWaitEventsSafeOrUnsafe mkVkCmdWaitEventsSafe+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+ unsafe+#endif+ "dynamic" mkVkCmdPipelineBarrier+ :: FunPtr (Ptr CommandBuffer_T -> PipelineStageFlags -> PipelineStageFlags -> DependencyFlags -> Word32 -> Ptr MemoryBarrier -> Word32 -> Ptr BufferMemoryBarrier -> Word32 -> Ptr (SomeStruct ImageMemoryBarrier) -> IO ()) -> Ptr CommandBuffer_T -> PipelineStageFlags -> PipelineStageFlags -> DependencyFlags -> Word32 -> Ptr MemoryBarrier -> Word32 -> Ptr BufferMemoryBarrier -> Word32 -> Ptr (SomeStruct ImageMemoryBarrier) -> IO ()++-- | vkCmdPipelineBarrier - Insert a memory dependency+--+-- = Description+--+-- 'cmdPipelineBarrier' operates almost identically to+-- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.cmdPipelineBarrier2',+-- except that the scopes and barriers are defined as direct parameters+-- rather than being defined by an+-- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.DependencyInfo'.+--+-- When 'cmdPipelineBarrier' is submitted to a queue, it defines a memory+-- dependency between commands that were submitted before it, and those+-- submitted after it.+--+-- If 'cmdPipelineBarrier' was recorded outside a render pass instance, the+-- first+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>+-- includes all commands that occur earlier in+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-submission-order submission order>.+-- If 'cmdPipelineBarrier' was recorded inside a render pass instance, the+-- first synchronization scope includes only commands that occur earlier in+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-submission-order submission order>+-- within the same subpass. In either case, the first synchronization scope+-- is limited to operations on the pipeline stages determined by the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages-masks source stage mask>+-- specified by @srcStageMask@.+--+-- If 'cmdPipelineBarrier' was recorded outside a render pass instance, the+-- second+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>+-- includes all commands that occur later in+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-submission-order submission order>.+-- If 'cmdPipelineBarrier' was recorded inside a render pass instance, the+-- second synchronization scope includes only commands that occur later in+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-submission-order submission order>+-- within the same subpass. In either case, the second synchronization+-- scope is limited to operations on the pipeline stages determined by the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages-masks destination stage mask>+-- specified by @dstStageMask@.+--+-- The first+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-access-scopes access scope>+-- is limited to accesses in the pipeline stages determined by the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages-masks source stage mask>+-- specified by @srcStageMask@. Within that, the first access scope only+-- includes the first access scopes defined by elements of the+-- @pMemoryBarriers@, @pBufferMemoryBarriers@ and @pImageMemoryBarriers@+-- arrays, which each define a set of+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-memory-barriers memory barriers>.+-- If no memory barriers are specified, then the first access scope+-- includes no accesses.+--+-- The second+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-access-scopes access scope>+-- is limited to accesses in the pipeline stages determined by the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages-masks destination stage mask>+-- specified by @dstStageMask@. Within that, the second access scope only+-- includes the second access scopes defined by elements of the+-- @pMemoryBarriers@, @pBufferMemoryBarriers@ and @pImageMemoryBarriers@+-- arrays, which each define a set of+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-memory-barriers memory barriers>.+-- If no memory barriers are specified, then the second access scope+-- includes no accesses.+--+-- If @dependencyFlags@ includes+-- 'Vulkan.Core10.Enums.DependencyFlagBits.DEPENDENCY_BY_REGION_BIT', then+-- any dependency between+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-framebuffer-regions framebuffer-space>+-- pipeline stages is+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-framebuffer-regions framebuffer-local>+-- - otherwise it is+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-framebuffer-regions framebuffer-global>.+--+-- == Valid Usage+--+-- - #VUID-vkCmdPipelineBarrier-srcStageMask-04090# If the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryShader geometryShader>+-- feature is not enabled, @srcStageMask@ /must/ not contain+-- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_GEOMETRY_SHADER_BIT'+--+-- - #VUID-vkCmdPipelineBarrier-srcStageMask-04091# If the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShader tessellationShader>+-- feature is not enabled, @srcStageMask@ /must/ not contain+-- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT'+-- or+-- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT'+--+-- - #VUID-vkCmdPipelineBarrier-srcStageMask-04092# If the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-conditionalRendering conditionalRendering>+-- feature is not enabled, @srcStageMask@ /must/ not contain+-- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT'+--+-- - #VUID-vkCmdPipelineBarrier-srcStageMask-04093# If the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-fragmentDensityMap fragmentDensityMap>+-- feature is not enabled, @srcStageMask@ /must/ not contain+-- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT'+--+-- - #VUID-vkCmdPipelineBarrier-srcStageMask-04094# If the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-transformFeedback transformFeedback>+-- feature is not enabled, @srcStageMask@ /must/ not contain+-- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT'+--+-- - #VUID-vkCmdPipelineBarrier-srcStageMask-04095# If the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader>+-- feature is not enabled, @srcStageMask@ /must/ not contain+-- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_MESH_SHADER_BIT_EXT'+--+-- - #VUID-vkCmdPipelineBarrier-srcStageMask-04096# If the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader>+-- feature is not enabled, @srcStageMask@ /must/ not contain+-- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TASK_SHADER_BIT_EXT'+--+-- - #VUID-vkCmdPipelineBarrier-srcStageMask-04097# If the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>+-- feature is not enabled, @srcStageMask@ /must/ not contain+-- 'Vulkan.Extensions.VK_NV_shading_rate_image.PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV'+--+-- - #VUID-vkCmdPipelineBarrier-srcStageMask-03937# If the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-synchronization2 synchronization2>+-- feature is not enabled, @srcStageMask@ /must/ not be @0@+--+-- - #VUID-vkCmdPipelineBarrier-dstStageMask-04090# If the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryShader geometryShader>+-- feature is not enabled, @dstStageMask@ /must/ not contain+-- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_GEOMETRY_SHADER_BIT'+--+-- - #VUID-vkCmdPipelineBarrier-dstStageMask-04091# If the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShader tessellationShader>+-- feature is not enabled, @dstStageMask@ /must/ not contain+-- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT'+-- or+-- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT'+--+-- - #VUID-vkCmdPipelineBarrier-dstStageMask-04092# If the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-conditionalRendering conditionalRendering>+-- feature is not enabled, @dstStageMask@ /must/ not contain+-- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT'+--+-- - #VUID-vkCmdPipelineBarrier-dstStageMask-04093# If the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-fragmentDensityMap fragmentDensityMap>+-- feature is not enabled, @dstStageMask@ /must/ not contain+-- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT'+--+-- - #VUID-vkCmdPipelineBarrier-dstStageMask-04094# If the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-transformFeedback transformFeedback>+-- feature is not enabled, @dstStageMask@ /must/ not contain+-- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT'+--+-- - #VUID-vkCmdPipelineBarrier-dstStageMask-04095# If the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader>+-- feature is not enabled, @dstStageMask@ /must/ not contain+-- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_MESH_SHADER_BIT_EXT'+--+-- - #VUID-vkCmdPipelineBarrier-dstStageMask-04096# If the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader>+-- feature is not enabled, @dstStageMask@ /must/ not contain+-- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TASK_SHADER_BIT_EXT'+--+-- - #VUID-vkCmdPipelineBarrier-dstStageMask-04097# If the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>+-- feature is not enabled, @dstStageMask@ /must/ not contain+-- 'Vulkan.Extensions.VK_NV_shading_rate_image.PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV'+--+-- - #VUID-vkCmdPipelineBarrier-dstStageMask-03937# If the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-synchronization2 synchronization2>+-- feature is not enabled, @dstStageMask@ /must/ not be @0@+--+-- - #VUID-vkCmdPipelineBarrier-srcAccessMask-02815# The @srcAccessMask@+-- member of each element of @pMemoryBarriers@ /must/ only include+-- access flags that are supported by one or more of the pipeline+-- stages in @srcStageMask@, as specified in the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-access-types-supported table of supported access types>+--+-- - #VUID-vkCmdPipelineBarrier-dstAccessMask-02816# The @dstAccessMask@+-- member of each element of @pMemoryBarriers@ /must/ only include+-- access flags that are supported by one or more of the pipeline+-- stages in @dstStageMask@, as specified in the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-access-types-supported table of supported access types>+--+-- - #VUID-vkCmdPipelineBarrier-pBufferMemoryBarriers-02817# For any+-- element of @pBufferMemoryBarriers@, if its @srcQueueFamilyIndex@ and+-- @dstQueueFamilyIndex@ members are equal, or if its+-- @srcQueueFamilyIndex@ is the queue family index that was used to+-- create the command pool that @commandBuffer@ was allocated from,+-- then its @srcAccessMask@ member /must/ only contain access flags+-- that are supported by one or more of the pipeline stages in+-- @srcStageMask@, as specified in the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-access-types-supported table of supported access types>+--+-- - #VUID-vkCmdPipelineBarrier-pBufferMemoryBarriers-02818# For any+-- element of @pBufferMemoryBarriers@, if its @srcQueueFamilyIndex@ and+-- @dstQueueFamilyIndex@ members are equal, or if its+-- @dstQueueFamilyIndex@ is the queue family index that was used to+-- create the command pool that @commandBuffer@ was allocated from,+-- then its @dstAccessMask@ member /must/ only contain access flags+-- that are supported by one or more of the pipeline stages in+-- @dstStageMask@, as specified in the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-access-types-supported table of supported access types>+--+-- - #VUID-vkCmdPipelineBarrier-pImageMemoryBarriers-02819# For any+-- element of @pImageMemoryBarriers@, if its @srcQueueFamilyIndex@ and+-- @dstQueueFamilyIndex@ members are equal, or if its+-- @srcQueueFamilyIndex@ is the queue family index that was used to+-- create the command pool that @commandBuffer@ was allocated from,+-- then its @srcAccessMask@ member /must/ only contain access flags+-- that are supported by one or more of the pipeline stages in+-- @srcStageMask@, as specified in the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-access-types-supported table of supported access types>+--+-- - #VUID-vkCmdPipelineBarrier-pImageMemoryBarriers-02820# For any+-- element of @pImageMemoryBarriers@, if its @srcQueueFamilyIndex@ and+-- @dstQueueFamilyIndex@ members are equal, or if its+-- @dstQueueFamilyIndex@ is the queue family index that was used to+-- create the command pool that @commandBuffer@ was allocated from,+-- then its @dstAccessMask@ member /must/ only contain access flags+-- that are supported by one or more of the pipeline stages in+-- @dstStageMask@, as specified in the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-access-types-supported table of supported access types>+--+-- - #VUID-vkCmdPipelineBarrier-pDependencies-02285# If+-- 'cmdPipelineBarrier' is called within a render pass instance, the+-- render pass /must/ have been created with at least one+-- 'Vulkan.Core10.Pass.SubpassDependency' instance in+-- 'Vulkan.Core10.Pass.RenderPassCreateInfo'::@pDependencies@ that+-- expresses a dependency from the current subpass to itself, with+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scopes>+-- and+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies-access-scopes access scopes>+-- that are all supersets of the scopes defined in this command+--+-- - #VUID-vkCmdPipelineBarrier-bufferMemoryBarrierCount-01178# If+-- 'cmdPipelineBarrier' is called within a render pass instance, it+-- /must/ not include any buffer memory barriers+--+-- - #VUID-vkCmdPipelineBarrier-image-04073# If 'cmdPipelineBarrier' is+-- called within a render pass instance, the @image@ member of any+-- image memory barrier included in this command /must/ be an+-- attachment used in the current subpass both as an input attachment,+-- and as either a color or depth\/stencil attachment+--+-- - #VUID-vkCmdPipelineBarrier-oldLayout-01181# If 'cmdPipelineBarrier'+-- is called within a render pass instance, the @oldLayout@ and+-- @newLayout@ members of any image memory barrier included in this+-- command /must/ be equal+--+-- - #VUID-vkCmdPipelineBarrier-srcQueueFamilyIndex-01182# If+-- 'cmdPipelineBarrier' is called within a render pass instance, the+-- @srcQueueFamilyIndex@ and @dstQueueFamilyIndex@ members of any image+-- memory barrier included in this command /must/ be equal+--+-- - #VUID-vkCmdPipelineBarrier-dependencyFlags-01186# If+-- 'cmdPipelineBarrier' is called outside of a render pass instance,+-- 'Vulkan.Core10.Enums.DependencyFlagBits.DEPENDENCY_VIEW_LOCAL_BIT'+-- /must/ not be included in the dependency flags+--+-- - #VUID-vkCmdPipelineBarrier-None-06191# If 'cmdPipelineBarrier' is+-- called within a render pass instance, the render pass /must/ not+-- have been started with+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'+--+-- - #VUID-vkCmdPipelineBarrier-srcStageMask-06461# Any pipeline stage+-- included in @srcStageMask@ /must/ be supported by the capabilities+-- of the queue family specified by the @queueFamilyIndex@ member of+-- the 'Vulkan.Core10.CommandPool.CommandPoolCreateInfo' structure that+-- was used to create the 'Vulkan.Core10.Handles.CommandPool' that+-- @commandBuffer@ was allocated from, as specified in the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages-supported table of supported pipeline stages>+--+-- - #VUID-vkCmdPipelineBarrier-dstStageMask-06462# Any pipeline stage+-- included in @dstStageMask@ /must/ be supported by the capabilities+-- of the queue family specified by the @queueFamilyIndex@ member of+-- the 'Vulkan.Core10.CommandPool.CommandPoolCreateInfo' structure that+-- was used to create the 'Vulkan.Core10.Handles.CommandPool' that+-- @commandBuffer@ was allocated from, as specified in the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages-supported table of supported pipeline stages>+--+-- == Valid Usage (Implicit)+--+-- - #VUID-vkCmdPipelineBarrier-commandBuffer-parameter# @commandBuffer@+-- /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- - #VUID-vkCmdPipelineBarrier-srcStageMask-parameter# @srcStageMask@+-- /must/ be a valid combination of+-- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlagBits'+-- values+--+-- - #VUID-vkCmdPipelineBarrier-dstStageMask-parameter# @dstStageMask@+-- /must/ be a valid combination of+-- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlagBits'+-- values+--+-- - #VUID-vkCmdPipelineBarrier-dependencyFlags-parameter#+-- @dependencyFlags@ /must/ be a valid combination of+-- 'Vulkan.Core10.Enums.DependencyFlagBits.DependencyFlagBits' values+--+-- - #VUID-vkCmdPipelineBarrier-pMemoryBarriers-parameter# If+-- @memoryBarrierCount@ is not @0@, @pMemoryBarriers@ /must/ be a valid+-- pointer to an array of @memoryBarrierCount@ valid+-- 'Vulkan.Core10.OtherTypes.MemoryBarrier' structures+--+-- - #VUID-vkCmdPipelineBarrier-pBufferMemoryBarriers-parameter# If+-- @bufferMemoryBarrierCount@ is not @0@, @pBufferMemoryBarriers@+-- /must/ be a valid pointer to an array of @bufferMemoryBarrierCount@+-- valid 'Vulkan.Core10.OtherTypes.BufferMemoryBarrier' structures+--+-- - #VUID-vkCmdPipelineBarrier-pImageMemoryBarriers-parameter# If+-- @imageMemoryBarrierCount@ is not @0@, @pImageMemoryBarriers@ /must/+-- be a valid pointer to an array of @imageMemoryBarrierCount@ valid+-- 'Vulkan.Core10.OtherTypes.ImageMemoryBarrier' structures+--+-- - #VUID-vkCmdPipelineBarrier-commandBuffer-recording# @commandBuffer@+-- /must/ be in the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording state>+--+-- - #VUID-vkCmdPipelineBarrier-commandBuffer-cmdpool# The+-- 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+-- allocated from /must/ support transfer, graphics, compute, decode,+-- or encode operations+--+-- == Host Synchronization+--+-- - Host access to @commandBuffer@ /must/ be externally synchronized+--+-- - Host access to the 'Vulkan.Core10.Handles.CommandPool' that+-- @commandBuffer@ was allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- \'+--+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================++-- | Primary | Both | Both | Transfer |+-- | Secondary | | | Graphics |+-- | | | | Compute |+-- | | | | Decode |+-- | | | | Encode |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,+-- 'Vulkan.Core10.OtherTypes.BufferMemoryBarrier',+-- 'Vulkan.Core10.Handles.CommandBuffer',+-- 'Vulkan.Core10.Enums.DependencyFlagBits.DependencyFlags',+-- 'Vulkan.Core10.OtherTypes.ImageMemoryBarrier',+-- 'Vulkan.Core10.OtherTypes.MemoryBarrier',+-- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlags'+cmdPipelineBarrier :: forall io+ . (MonadIO io)+ => -- | @commandBuffer@ is the command buffer into which the command is+ -- recorded.+ CommandBuffer+ -> -- | @srcStageMask@ is a bitmask of+ -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlagBits'+ -- specifying the+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages-masks source stages>.+ ("srcStageMask" ::: PipelineStageFlags)+ -> -- | @dstStageMask@ is a bitmask of+ -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlagBits'+ -- specifying the+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages-masks destination stages>.+ ("dstStageMask" ::: PipelineStageFlags)+ -> -- | @dependencyFlags@ is a bitmask of+ -- 'Vulkan.Core10.Enums.DependencyFlagBits.DependencyFlagBits' specifying+ -- how execution and memory dependencies are formed.+ DependencyFlags+ -> -- | @pMemoryBarriers@ is a pointer to an array of+ -- 'Vulkan.Core10.OtherTypes.MemoryBarrier' structures.+ ("memoryBarriers" ::: Vector MemoryBarrier)+ -> -- | @pBufferMemoryBarriers@ is a pointer to an array of+ -- 'Vulkan.Core10.OtherTypes.BufferMemoryBarrier' structures.+ ("bufferMemoryBarriers" ::: Vector BufferMemoryBarrier)+ -> -- | @pImageMemoryBarriers@ is a pointer to an array of+ -- 'Vulkan.Core10.OtherTypes.ImageMemoryBarrier' structures.+ ("imageMemoryBarriers" ::: Vector (SomeStruct ImageMemoryBarrier))+ -> io ()+cmdPipelineBarrier commandBuffer srcStageMask dstStageMask dependencyFlags memoryBarriers bufferMemoryBarriers imageMemoryBarriers = liftIO . evalContT $ do+ let vkCmdPipelineBarrierPtr = pVkCmdPipelineBarrier (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)+ lift $ unless (vkCmdPipelineBarrierPtr /= nullFunPtr) $+ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdPipelineBarrier is null" Nothing Nothing+ let vkCmdPipelineBarrier' = mkVkCmdPipelineBarrier vkCmdPipelineBarrierPtr+ pPMemoryBarriers <- ContT $ allocaBytes @MemoryBarrier ((Data.Vector.length (memoryBarriers)) * 24)+ lift $ Data.Vector.imapM_ (\i e -> poke (pPMemoryBarriers `plusPtr` (24 * (i)) :: Ptr MemoryBarrier) (e)) (memoryBarriers)+ pPBufferMemoryBarriers <- ContT $ allocaBytes @BufferMemoryBarrier ((Data.Vector.length (bufferMemoryBarriers)) * 56)+ lift $ Data.Vector.imapM_ (\i e -> poke (pPBufferMemoryBarriers `plusPtr` (56 * (i)) :: Ptr BufferMemoryBarrier) (e)) (bufferMemoryBarriers)+ pPImageMemoryBarriers <- ContT $ allocaBytes @(ImageMemoryBarrier _) ((Data.Vector.length (imageMemoryBarriers)) * 72)+ Data.Vector.imapM_ (\i e -> ContT $ pokeSomeCStruct (forgetExtensions (pPImageMemoryBarriers `plusPtr` (72 * (i)) :: Ptr (ImageMemoryBarrier _))) (e) . ($ ())) (imageMemoryBarriers)+ lift $ traceAroundEvent "vkCmdPipelineBarrier" (vkCmdPipelineBarrier' (commandBufferHandle (commandBuffer)) (srcStageMask) (dstStageMask) (dependencyFlags) ((fromIntegral (Data.Vector.length $ (memoryBarriers)) :: Word32)) (pPMemoryBarriers) ((fromIntegral (Data.Vector.length $ (bufferMemoryBarriers)) :: Word32)) (pPBufferMemoryBarriers) ((fromIntegral (Data.Vector.length $ (imageMemoryBarriers)) :: Word32)) (forgetExtensions (pPImageMemoryBarriers)))+ pure $ ()+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+ unsafe+#endif+ "dynamic" mkVkCmdBeginQuery+ :: FunPtr (Ptr CommandBuffer_T -> QueryPool -> Word32 -> QueryControlFlags -> IO ()) -> Ptr CommandBuffer_T -> QueryPool -> Word32 -> QueryControlFlags -> IO ()++-- | vkCmdBeginQuery - Begin a query+--+-- = Description+--+-- If the @queryType@ of the pool is+-- 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_OCCLUSION' and @flags@+-- contains+-- 'Vulkan.Core10.Enums.QueryControlFlagBits.QUERY_CONTROL_PRECISE_BIT', an+-- implementation /must/ return a result that matches the actual number of+-- samples passed. This is described in more detail in+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#queries-occlusion Occlusion Queries>.+--+-- Calling 'cmdBeginQuery' is equivalent to calling+-- 'Vulkan.Extensions.VK_EXT_transform_feedback.cmdBeginQueryIndexedEXT'+-- with the @index@ parameter set to zero.+--+-- After beginning a query, that query is considered /active/ within the+-- command buffer it was called in until that same query is ended. Queries+-- active in a primary command buffer when secondary command buffers are+-- executed are considered active for those secondary command buffers.+--+-- This command defines an execution dependency between other query+-- commands that reference the same query.+--+-- The first+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>+-- includes all commands which reference the queries in @queryPool@+-- indicated by @query@ that occur earlier in+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-submission-order submission order>.+--+-- The second+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>+-- includes all commands which reference the queries in @queryPool@+-- indicated by @query@ that occur later in+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-submission-order submission order>.+--+-- The operation of this command happens after the first scope and happens+-- before the second scope.+--+-- == Valid Usage+--+-- - #VUID-vkCmdBeginQuery-None-00807# All queries used by the command+-- /must/ be unavailable+--+-- - #VUID-vkCmdBeginQuery-queryType-02804# The @queryType@ used to+-- create @queryPool@ /must/ not be+-- 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_TIMESTAMP'+--+-- - #VUID-vkCmdBeginQuery-queryType-04728# The @queryType@ used to+-- create @queryPool@ /must/ not be+-- 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR'+-- or+-- 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR'+--+-- - #VUID-vkCmdBeginQuery-queryType-06741# The @queryType@ used to+-- create @queryPool@ /must/ not be+-- 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_ACCELERATION_STRUCTURE_SIZE_KHR'+-- or+-- 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_BOTTOM_LEVEL_POINTERS_KHR'+--+-- - #VUID-vkCmdBeginQuery-queryType-04729# The @queryType@ used to+-- create @queryPool@ /must/ not be+-- 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_NV'+--+-- - #VUID-vkCmdBeginQuery-queryType-00800# If the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-occlusionQueryPrecise occlusionQueryPrecise>+-- feature is not enabled, or the @queryType@ used to create+-- @queryPool@ was not+-- 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_OCCLUSION', @flags@ /must/+-- not contain+-- 'Vulkan.Core10.Enums.QueryControlFlagBits.QUERY_CONTROL_PRECISE_BIT'+--+-- - #VUID-vkCmdBeginQuery-query-00802# @query@ /must/ be less than the+-- number of queries in @queryPool@+--+-- - #VUID-vkCmdBeginQuery-queryType-00803# If the @queryType@ used to+-- create @queryPool@ was+-- 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_OCCLUSION', the+-- 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+-- allocated from /must/ support graphics operations+--+-- - #VUID-vkCmdBeginQuery-queryType-00804# If the @queryType@ used to+-- create @queryPool@ was+-- 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PIPELINE_STATISTICS' and+-- any of the @pipelineStatistics@ indicate graphics operations, the+-- 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+-- allocated from /must/ support graphics operations+--+-- - #VUID-vkCmdBeginQuery-queryType-00805# If the @queryType@ used to+-- create @queryPool@ was+-- 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PIPELINE_STATISTICS' and+-- any of the @pipelineStatistics@ indicate compute operations, the+-- 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+-- allocated from /must/ support compute operations+--+-- - #VUID-vkCmdBeginQuery-commandBuffer-01885# @commandBuffer@ /must/+-- not be a protected command buffer+--+-- - #VUID-vkCmdBeginQuery-query-00808# If called within a render pass+-- instance, the sum of @query@ and the number of bits set in the+-- current subpass’s view mask /must/ be less than or equal to the+-- number of queries in @queryPool@+--+-- - #VUID-vkCmdBeginQuery-queryType-04862# If the @queryType@ used to+-- create @queryPool@ was+-- @VK_QUERY_TYPE_VIDEO_ENCODE_BITSTREAM_BUFFER_RANGE_KHR@ the+-- 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+-- allocated from /must/ support+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#video-encode-operations video encode operations>+--+-- - #VUID-vkCmdBeginQuery-queryPool-01922# @queryPool@ /must/ have been+-- created with a @queryType@ that differs from that of any queries+-- that are+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#queries-operation-active active>+-- within @commandBuffer@+--+-- - #VUID-vkCmdBeginQuery-queryType-07070# If the @queryType@ used to+-- create @queryPool@ was+-- 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_MESH_PRIMITIVES_GENERATED_EXT'+-- the 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+-- allocated from /must/ support graphics operations+--+-- - #VUID-vkCmdBeginQuery-queryType-02327# If the @queryType@ used to+-- create @queryPool@ was+-- 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT'+-- the 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+-- allocated from /must/ support graphics operations+--+-- - #VUID-vkCmdBeginQuery-queryType-02328# If the @queryType@ used to+-- create @queryPool@ was+-- 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT'+-- then+-- 'Vulkan.Extensions.VK_EXT_transform_feedback.PhysicalDeviceTransformFeedbackPropertiesEXT'::@transformFeedbackQueries@+-- /must/ be supported+--+-- - #VUID-vkCmdBeginQuery-queryType-06687# If the @queryType@ used to+-- create @queryPool@ was+-- 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PRIMITIVES_GENERATED_EXT'+-- the 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+-- allocated from /must/ support graphics operations+--+-- - #VUID-vkCmdBeginQuery-queryType-06688# If the @queryType@ used to+-- create @queryPool@ was+-- 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PRIMITIVES_GENERATED_EXT'+-- then+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-primitivesGeneratedQuery primitivesGeneratedQuery>+-- /must/ be enabled+--+-- - #VUID-vkCmdBeginQuery-queryPool-03223# If @queryPool@ was created+-- with a @queryType@ of+-- 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PERFORMANCE_QUERY_KHR',+-- the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#profiling-lock profiling lock>+-- /must/ have been held before+-- 'Vulkan.Core10.CommandBuffer.beginCommandBuffer' was called on+-- @commandBuffer@+--+-- - #VUID-vkCmdBeginQuery-queryPool-03224# If @queryPool@ was created+-- with a @queryType@ of+-- 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PERFORMANCE_QUERY_KHR' and+-- one of the counters used to create @queryPool@ was+-- 'Vulkan.Extensions.VK_KHR_performance_query.PERFORMANCE_COUNTER_SCOPE_COMMAND_BUFFER_KHR',+-- the query begin /must/ be the first recorded command in+-- @commandBuffer@+--+-- - #VUID-vkCmdBeginQuery-queryPool-03225# If @queryPool@ was created+-- with a @queryType@ of+-- 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PERFORMANCE_QUERY_KHR' and+-- one of the counters used to create @queryPool@ was+-- 'Vulkan.Extensions.VK_KHR_performance_query.PERFORMANCE_COUNTER_SCOPE_RENDER_PASS_KHR',+-- the begin command /must/ not be recorded within a render pass+-- instance+--+-- - #VUID-vkCmdBeginQuery-queryPool-03226# If @queryPool@ was created+-- with a @queryType@ of+-- 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PERFORMANCE_QUERY_KHR' and+-- another query pool with a @queryType@+-- 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PERFORMANCE_QUERY_KHR' has+-- been used within @commandBuffer@, its parent primary command buffer+-- or secondary command buffer recorded within the same parent primary+-- command buffer as @commandBuffer@, the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-performanceCounterMultipleQueryPools performanceCounterMultipleQueryPools>+-- feature /must/ be enabled+--+-- - #VUID-vkCmdBeginQuery-None-02863# If @queryPool@ was created with a+-- @queryType@ of+-- 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PERFORMANCE_QUERY_KHR',+-- this command /must/ not be recorded in a command buffer that, either+-- directly or through secondary command buffers, also contains a+-- 'cmdResetQueryPool' command affecting the same query+--+-- == Valid Usage (Implicit)+--+-- - #VUID-vkCmdBeginQuery-commandBuffer-parameter# @commandBuffer@+-- /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- - #VUID-vkCmdBeginQuery-queryPool-parameter# @queryPool@ /must/ be a+-- valid 'Vulkan.Core10.Handles.QueryPool' handle+--+-- - #VUID-vkCmdBeginQuery-flags-parameter# @flags@ /must/ be a valid+-- combination of+-- 'Vulkan.Core10.Enums.QueryControlFlagBits.QueryControlFlagBits'+-- values+--+-- - #VUID-vkCmdBeginQuery-commandBuffer-recording# @commandBuffer@+-- /must/ be in the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording state>+--+-- - #VUID-vkCmdBeginQuery-commandBuffer-cmdpool# The+-- 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+-- allocated from /must/ support graphics, compute, decode, or encode+-- operations+--+-- - #VUID-vkCmdBeginQuery-commonparent# Both of @commandBuffer@, and+-- @queryPool@ /must/ have been created, allocated, or retrieved from+-- the same 'Vulkan.Core10.Handles.Device'+--+-- == Host Synchronization+--+-- - Host access to @commandBuffer@ /must/ be externally synchronized+--+-- - Host access to the 'Vulkan.Core10.Handles.CommandPool' that+-- @commandBuffer@ was allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- \'+--+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================++-- | Primary | Both | Both | Graphics |+-- | Secondary | | | Compute |+-- | | | | Decode |+-- | | | | Encode |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,+-- 'Vulkan.Core10.Handles.CommandBuffer',+-- 'Vulkan.Core10.Enums.QueryControlFlagBits.QueryControlFlags',+-- 'Vulkan.Core10.Handles.QueryPool',+-- 'Vulkan.Extensions.VK_EXT_transform_feedback.cmdBeginQueryIndexedEXT',+-- 'cmdEndQuery',+-- 'Vulkan.Extensions.VK_EXT_transform_feedback.cmdEndQueryIndexedEXT'+cmdBeginQuery :: forall io+ . (MonadIO io)+ => -- | @commandBuffer@ is the command buffer into which this command will be+ -- recorded.+ CommandBuffer+ -> -- | @queryPool@ is the query pool that will manage the results of the query.+ QueryPool+ -> -- | @query@ is the query index within the query pool that will contain the+ -- results.+ ("query" ::: Word32)+ -> -- | @flags@ is a bitmask of+ -- 'Vulkan.Core10.Enums.QueryControlFlagBits.QueryControlFlagBits'+ -- specifying constraints on the types of queries that /can/ be performed.+ QueryControlFlags+ -> io ()+cmdBeginQuery commandBuffer queryPool query flags = liftIO $ do+ let vkCmdBeginQueryPtr = pVkCmdBeginQuery (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)+ unless (vkCmdBeginQueryPtr /= nullFunPtr) $+ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdBeginQuery is null" Nothing Nothing+ let vkCmdBeginQuery' = mkVkCmdBeginQuery vkCmdBeginQueryPtr+ traceAroundEvent "vkCmdBeginQuery" (vkCmdBeginQuery' (commandBufferHandle (commandBuffer)) (queryPool) (query) (flags))+ pure $ ()++-- | This function will call the supplied action between calls to+-- 'cmdBeginQuery' and 'cmdEndQuery'+--+-- Note that 'cmdEndQuery' is *not* called if an exception is thrown by the+-- inner action.+cmdUseQuery :: forall io r . MonadIO io => CommandBuffer -> QueryPool -> Word32 -> QueryControlFlags -> io r -> io r+cmdUseQuery commandBuffer queryPool query flags a =+ (cmdBeginQuery commandBuffer queryPool query flags) *> a <* (cmdEndQuery commandBuffer queryPool query)+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+ unsafe+#endif+ "dynamic" mkVkCmdEndQuery+ :: FunPtr (Ptr CommandBuffer_T -> QueryPool -> Word32 -> IO ()) -> Ptr CommandBuffer_T -> QueryPool -> Word32 -> IO ()++-- | vkCmdEndQuery - Ends a query+--+-- = Description+--+-- The command completes the query in @queryPool@ identified by @query@,+-- and marks it as available.+--+-- This command defines an execution dependency between other query+-- commands that reference the same query.+--+-- The first+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>+-- includes all commands which reference the queries in @queryPool@+-- indicated by @query@ that occur earlier in+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-submission-order submission order>.+--+-- The second+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>+-- includes only the operation of this command.+--+-- Calling 'cmdEndQuery' is equivalent to calling+-- 'Vulkan.Extensions.VK_EXT_transform_feedback.cmdEndQueryIndexedEXT' with+-- the @index@ parameter set to zero.+--+-- == Valid Usage+--+-- - #VUID-vkCmdEndQuery-None-01923# All queries used by the command+-- /must/ be+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#queries-operation-active active>+--+-- - #VUID-vkCmdEndQuery-query-00810# @query@ /must/ be less than the+-- number of queries in @queryPool@+--+-- - #VUID-vkCmdEndQuery-commandBuffer-01886# @commandBuffer@ /must/ not+-- be a protected command buffer+--+-- - #VUID-vkCmdEndQuery-query-00812# If 'cmdEndQuery' is called within a+-- render pass instance, the sum of @query@ and the number of bits set+-- in the current subpass’s view mask /must/ be less than or equal to+-- the number of queries in @queryPool@+--+-- - #VUID-vkCmdEndQuery-queryPool-03227# If @queryPool@ was created with+-- a @queryType@ of+-- 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PERFORMANCE_QUERY_KHR' and+-- one or more of the counters used to create @queryPool@ was+-- 'Vulkan.Extensions.VK_KHR_performance_query.PERFORMANCE_COUNTER_SCOPE_COMMAND_BUFFER_KHR',+-- the 'cmdEndQuery' /must/ be the last recorded command in+-- @commandBuffer@+--+-- - #VUID-vkCmdEndQuery-queryPool-03228# If @queryPool@ was created with+-- a @queryType@ of+-- 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PERFORMANCE_QUERY_KHR' and+-- one or more of the counters used to create @queryPool@ was+-- 'Vulkan.Extensions.VK_KHR_performance_query.PERFORMANCE_COUNTER_SCOPE_RENDER_PASS_KHR',+-- the 'cmdEndQuery' /must/ not be recorded within a render pass+-- instance+--+-- - [[VUID-{refpage}-None-07007]] If called within a subpass of a render+-- pass instance, the corresponding 'cmdBeginQuery'* command /must/+-- have been called previously within the same subpass+--+-- - [[VUID-{refpage}-None-07008]] If called outside of a render pass+-- instance, the corresponding 'cmdBeginQuery'* command /must/ have+-- been called outside of a render pass instance+--+-- == Valid Usage (Implicit)+--+-- - #VUID-vkCmdEndQuery-commandBuffer-parameter# @commandBuffer@ /must/+-- be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- - #VUID-vkCmdEndQuery-queryPool-parameter# @queryPool@ /must/ be a+-- valid 'Vulkan.Core10.Handles.QueryPool' handle+--+-- - #VUID-vkCmdEndQuery-commandBuffer-recording# @commandBuffer@ /must/+-- be in the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording state>+--+-- - #VUID-vkCmdEndQuery-commandBuffer-cmdpool# The+-- 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+-- allocated from /must/ support graphics, compute, decode, or encode+-- operations+--+-- - #VUID-vkCmdEndQuery-commonparent# Both of @commandBuffer@, and+-- @queryPool@ /must/ have been created, allocated, or retrieved from+-- the same 'Vulkan.Core10.Handles.Device'+--+-- == Host Synchronization+--+-- - Host access to @commandBuffer@ /must/ be externally synchronized+--+-- - Host access to the 'Vulkan.Core10.Handles.CommandPool' that+-- @commandBuffer@ was allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- \'+--+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================++-- | Primary | Both | Both | Graphics |+-- | Secondary | | | Compute |+-- | | | | Decode |+-- | | | | Encode |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,+-- 'Vulkan.Core10.Handles.CommandBuffer',+-- 'Vulkan.Core10.Handles.QueryPool', 'cmdBeginQuery',+-- 'Vulkan.Extensions.VK_EXT_transform_feedback.cmdBeginQueryIndexedEXT',+-- 'Vulkan.Extensions.VK_EXT_transform_feedback.cmdEndQueryIndexedEXT'+cmdEndQuery :: forall io+ . (MonadIO io)+ => -- | @commandBuffer@ is the command buffer into which this command will be+ -- recorded.+ CommandBuffer+ -> -- | @queryPool@ is the query pool that is managing the results of the query.+ QueryPool+ -> -- | @query@ is the query index within the query pool where the result is+ -- stored.+ ("query" ::: Word32)+ -> io ()+cmdEndQuery commandBuffer queryPool query = liftIO $ do+ let vkCmdEndQueryPtr = pVkCmdEndQuery (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)+ unless (vkCmdEndQueryPtr /= nullFunPtr) $+ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdEndQuery is null" Nothing Nothing+ let vkCmdEndQuery' = mkVkCmdEndQuery vkCmdEndQueryPtr+ traceAroundEvent "vkCmdEndQuery" (vkCmdEndQuery' (commandBufferHandle (commandBuffer)) (queryPool) (query))+ pure $ ()+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+ unsafe+#endif+ "dynamic" mkVkCmdResetQueryPool+ :: FunPtr (Ptr CommandBuffer_T -> QueryPool -> Word32 -> Word32 -> IO ()) -> Ptr CommandBuffer_T -> QueryPool -> Word32 -> Word32 -> IO ()++-- | vkCmdResetQueryPool - Reset queries in a query pool+--+-- = Description+--+-- When executed on a queue, this command sets the status of query indices+-- [@firstQuery@, @firstQuery@ + @queryCount@ - 1] to unavailable.+--+-- This command defines an execution dependency between other query+-- commands that reference the same query.+--+-- The first+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>+-- includes all commands which reference the queries in @queryPool@+-- indicated by @firstQuery@ and @queryCount@ that occur earlier in+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-submission-order submission order>.+--+-- The second+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>+-- includes all commands which reference the queries in @queryPool@+-- indicated by @firstQuery@ and @queryCount@ that occur later in+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-submission-order submission order>.+--+-- The operation of this command happens after the first scope and happens+-- before the second scope.+--+-- If the @queryType@ used to create @queryPool@ was+-- 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PERFORMANCE_QUERY_KHR', this+-- command sets the status of query indices [@firstQuery@, @firstQuery@ ++-- @queryCount@ - 1] to unavailable for each pass of @queryPool@, as+-- indicated by a call to+-- 'Vulkan.Extensions.VK_KHR_performance_query.getPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR'.+--+-- Note+--+-- Because 'cmdResetQueryPool' resets all the passes of the indicated+-- queries, applications must not record a 'cmdResetQueryPool' command for+-- a @queryPool@ created with+-- 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PERFORMANCE_QUERY_KHR' in a+-- command buffer that needs to be submitted multiple times as indicated by+-- a call to+-- 'Vulkan.Extensions.VK_KHR_performance_query.getPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR'.+-- Otherwise applications will never be able to complete the recorded+-- queries.+--+-- == Valid Usage+--+-- - #VUID-vkCmdResetQueryPool-firstQuery-00796# @firstQuery@ /must/ be+-- less than the number of queries in @queryPool@+--+-- - #VUID-vkCmdResetQueryPool-firstQuery-00797# The sum of @firstQuery@+-- and @queryCount@ /must/ be less than or equal to the number of+-- queries in @queryPool@+--+-- - #VUID-vkCmdResetQueryPool-None-02841# All queries used by the+-- command /must/ not be active+--+-- - #VUID-vkCmdResetQueryPool-firstQuery-02862# If @queryPool@ was+-- created with+-- 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PERFORMANCE_QUERY_KHR',+-- this command /must/ not be recorded in a command buffer that, either+-- directly or through secondary command buffers, also contains begin+-- commands for a query from the set of queries [@firstQuery@,+-- @firstQuery@ + @queryCount@ - 1]+--+-- == Valid Usage (Implicit)+--+-- - #VUID-vkCmdResetQueryPool-commandBuffer-parameter# @commandBuffer@+-- /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- - #VUID-vkCmdResetQueryPool-queryPool-parameter# @queryPool@ /must/ be+-- a valid 'Vulkan.Core10.Handles.QueryPool' handle+--+-- - #VUID-vkCmdResetQueryPool-commandBuffer-recording# @commandBuffer@+-- /must/ be in the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording state>+--+-- - #VUID-vkCmdResetQueryPool-commandBuffer-cmdpool# The+-- 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+-- allocated from /must/ support graphics, compute, decode, or encode+-- operations+--+-- - #VUID-vkCmdResetQueryPool-renderpass# This command /must/ only be+-- called outside of a render pass instance+--+-- - #VUID-vkCmdResetQueryPool-videocoding# This command /must/ only be+-- called outside of a video coding scope+--+-- - #VUID-vkCmdResetQueryPool-commonparent# Both of @commandBuffer@, and+-- @queryPool@ /must/ have been created, allocated, or retrieved from+-- the same 'Vulkan.Core10.Handles.Device'+--+-- == Host Synchronization+--+-- - Host access to @commandBuffer@ /must/ be externally synchronized+--+-- - Host access to the 'Vulkan.Core10.Handles.CommandPool' that+-- @commandBuffer@ was allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- \'+--+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================++-- | Primary | Outside | Outside | Graphics |+-- | Secondary | | | Compute |+-- | | | | Decode |+-- | | | | Encode |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,+-- 'Vulkan.Core10.Handles.CommandBuffer', 'Vulkan.Core10.Handles.QueryPool'+cmdResetQueryPool :: forall io+ . (MonadIO io)+ => -- | @commandBuffer@ is the command buffer into which this command will be+ -- recorded.+ CommandBuffer+ -> -- | @queryPool@ is the handle of the query pool managing the queries being+ -- reset.+ QueryPool+ -> -- | @firstQuery@ is the initial query index to reset.+ ("firstQuery" ::: Word32)+ -> -- | @queryCount@ is the number of queries to reset.+ ("queryCount" ::: Word32)+ -> io ()+cmdResetQueryPool commandBuffer queryPool firstQuery queryCount = liftIO $ do+ let vkCmdResetQueryPoolPtr = pVkCmdResetQueryPool (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)+ unless (vkCmdResetQueryPoolPtr /= nullFunPtr) $+ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdResetQueryPool is null" Nothing Nothing+ let vkCmdResetQueryPool' = mkVkCmdResetQueryPool vkCmdResetQueryPoolPtr+ traceAroundEvent "vkCmdResetQueryPool" (vkCmdResetQueryPool' (commandBufferHandle (commandBuffer)) (queryPool) (firstQuery) (queryCount))+ pure $ ()+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+ unsafe+#endif+ "dynamic" mkVkCmdWriteTimestamp+ :: FunPtr (Ptr CommandBuffer_T -> PipelineStageFlagBits -> QueryPool -> Word32 -> IO ()) -> Ptr CommandBuffer_T -> PipelineStageFlagBits -> QueryPool -> Word32 -> IO ()++-- | vkCmdWriteTimestamp - Write a device timestamp into a query object+--+-- = Description+--+-- When 'cmdWriteTimestamp' is submitted to a queue, it defines an+-- execution dependency on commands that were submitted before it, and+-- writes a timestamp to a query pool.+--+-- The first+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>+-- includes all commands that occur earlier in+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-submission-order submission order>.+-- The synchronization scope is limited to operations on the pipeline stage+-- specified by @pipelineStage@.+--+-- The second+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>+-- includes only the timestamp write operation.+--+-- When the timestamp value is written, the availability status of the+-- query is set to available.+--+-- Note+--+-- If an implementation is unable to detect completion and latch the timer+-- immediately after @stage@ has completed, it /may/ instead do so at any+-- logically later stage.+--+-- Comparisons between timestamps are not meaningful if the timestamps are+-- written by commands submitted to different queues.+--+-- Note+--+-- An example of such a comparison is subtracting an older timestamp from a+-- newer one to determine the execution time of a sequence of commands.+--+-- If 'cmdWriteTimestamp' is called while executing a render pass instance+-- that has multiview enabled, the timestamp uses N consecutive query+-- indices in the query pool (starting at @query@) where N is the number of+-- bits set in the view mask of the subpass the command is executed in. The+-- resulting query values are determined by an implementation-dependent+-- choice of one of the following behaviors:+--+-- - The first query is a timestamp value and (if more than one bit is+-- set in the view mask) zero is written to the remaining queries. If+-- two timestamps are written in the same subpass, the sum of the+-- execution time of all views between those commands is the difference+-- between the first query written by each command.+--+-- - All N queries are timestamp values. If two timestamps are written in+-- the same subpass, the sum of the execution time of all views between+-- those commands is the sum of the difference between corresponding+-- queries written by each command. The difference between+-- corresponding queries /may/ be the execution time of a single view.+--+-- In either case, the application /can/ sum the differences between all N+-- queries to determine the total execution time.+--+-- == Valid Usage+--+-- - #VUID-vkCmdWriteTimestamp-pipelineStage-04074# @pipelineStage@+-- /must/ be a+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-pipeline-stages-supported valid stage>+-- for the queue family that was used to create the command pool that+-- @commandBuffer@ was allocated from+--+-- - #VUID-vkCmdWriteTimestamp-pipelineStage-04075# If the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryShader geometryShader>+-- feature is not enabled, @pipelineStage@ /must/ not be+-- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_GEOMETRY_SHADER_BIT'+--+-- - #VUID-vkCmdWriteTimestamp-pipelineStage-04076# If the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShader tessellationShader>+-- feature is not enabled, @pipelineStage@ /must/ not be+-- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT'+-- or+-- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT'+--+-- - #VUID-vkCmdWriteTimestamp-pipelineStage-04077# If the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-conditionalRendering conditionalRendering>+-- feature is not enabled, @pipelineStage@ /must/ not be+-- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT'+--+-- - #VUID-vkCmdWriteTimestamp-pipelineStage-04078# If the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-fragmentDensityMap fragmentDensityMap>+-- feature is not enabled, @pipelineStage@ /must/ not be+-- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT'+--+-- - #VUID-vkCmdWriteTimestamp-pipelineStage-04079# If the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-transformFeedback transformFeedback>+-- feature is not enabled, @pipelineStage@ /must/ not be+-- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT'+--+-- - #VUID-vkCmdWriteTimestamp-pipelineStage-04080# If the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader>+-- feature is not enabled, @pipelineStage@ /must/ not be+-- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_MESH_SHADER_BIT_EXT'+--+-- - #VUID-vkCmdWriteTimestamp-pipelineStage-07077# If the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader task shaders>+-- feature is not enabled, @pipelineStage@ /must/ not be+-- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TASK_SHADER_BIT_EXT'+--+-- - #VUID-vkCmdWriteTimestamp-pipelineStage-04081# If the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>+-- feature is not enabled, @pipelineStage@ /must/ not be+-- 'Vulkan.Extensions.VK_NV_shading_rate_image.PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV'+--+-- - #VUID-vkCmdWriteTimestamp-synchronization2-06489# If the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-synchronization2 synchronization2>+-- feature is not enabled, @pipelineStage@ /must/ not be+-- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_NONE'+--+-- - #VUID-vkCmdWriteTimestamp-queryPool-01416# @queryPool@ /must/ have+-- been created with a @queryType@ of+-- 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_TIMESTAMP'+--+-- - #VUID-vkCmdWriteTimestamp-queryPool-00828# The query identified by+-- @queryPool@ and @query@ /must/ be /unavailable/+--+-- - #VUID-vkCmdWriteTimestamp-timestampValidBits-00829# The command+-- pool’s queue family /must/ support a non-zero @timestampValidBits@+--+-- - #VUID-vkCmdWriteTimestamp-query-04904# @query@ /must/ be less than+-- the number of queries in @queryPool@+--+-- - #VUID-vkCmdWriteTimestamp-None-00830# All queries used by the+-- command /must/ be unavailable+--+-- - #VUID-vkCmdWriteTimestamp-query-00831# If 'cmdWriteTimestamp' is+-- called within a render pass instance, the sum of @query@ and the+-- number of bits set in the current subpass’s view mask /must/ be less+-- than or equal to the number of queries in @queryPool@+--+-- == Valid Usage (Implicit)+--+-- - #VUID-vkCmdWriteTimestamp-commandBuffer-parameter# @commandBuffer@+-- /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- - #VUID-vkCmdWriteTimestamp-pipelineStage-parameter# @pipelineStage@+-- /must/ be a valid+-- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlagBits'+-- value+--+-- - #VUID-vkCmdWriteTimestamp-queryPool-parameter# @queryPool@ /must/ be+-- a valid 'Vulkan.Core10.Handles.QueryPool' handle+--+-- - #VUID-vkCmdWriteTimestamp-commandBuffer-recording# @commandBuffer@+-- /must/ be in the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording state>+--+-- - #VUID-vkCmdWriteTimestamp-commandBuffer-cmdpool# The+-- 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+-- allocated from /must/ support transfer, graphics, compute, decode,+-- or encode operations+--+-- - #VUID-vkCmdWriteTimestamp-commonparent# Both of @commandBuffer@, and+-- @queryPool@ /must/ have been created, allocated, or retrieved from+-- the same 'Vulkan.Core10.Handles.Device'+--+-- == Host Synchronization+--+-- - Host access to @commandBuffer@ /must/ be externally synchronized+--+-- - Host access to the 'Vulkan.Core10.Handles.CommandPool' that+-- @commandBuffer@ was allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- \'+--+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================++-- | Primary | Both | Both | Transfer |+-- | Secondary | | | Graphics |+-- | | | | Compute |+-- | | | | Decode |+-- | | | | Encode |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,+-- 'Vulkan.Core10.Handles.CommandBuffer',+-- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlagBits',+-- 'Vulkan.Core10.Handles.QueryPool'+cmdWriteTimestamp :: forall io+ . (MonadIO io)+ => -- | @commandBuffer@ is the command buffer into which the command will be+ -- recorded.+ CommandBuffer+ -> -- | @pipelineStage@ is a+ -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlagBits' value,+ -- specifying a stage of the pipeline.+ PipelineStageFlagBits+ -> -- | @queryPool@ is the query pool that will manage the timestamp.+ QueryPool+ -> -- | @query@ is the query within the query pool that will contain the+ -- timestamp.+ ("query" ::: Word32)+ -> io ()+cmdWriteTimestamp commandBuffer pipelineStage queryPool query = liftIO $ do+ let vkCmdWriteTimestampPtr = pVkCmdWriteTimestamp (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)+ unless (vkCmdWriteTimestampPtr /= nullFunPtr) $+ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdWriteTimestamp is null" Nothing Nothing+ let vkCmdWriteTimestamp' = mkVkCmdWriteTimestamp vkCmdWriteTimestampPtr+ traceAroundEvent "vkCmdWriteTimestamp" (vkCmdWriteTimestamp' (commandBufferHandle (commandBuffer)) (pipelineStage) (queryPool) (query))+ pure $ ()+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+ unsafe+#endif+ "dynamic" mkVkCmdCopyQueryPoolResults+ :: FunPtr (Ptr CommandBuffer_T -> QueryPool -> Word32 -> Word32 -> Buffer -> DeviceSize -> DeviceSize -> QueryResultFlags -> IO ()) -> Ptr CommandBuffer_T -> QueryPool -> Word32 -> Word32 -> Buffer -> DeviceSize -> DeviceSize -> QueryResultFlags -> IO ()++-- | vkCmdCopyQueryPoolResults - Copy the results of queries in a query pool+-- to a buffer object+--+-- = Description+--+-- Any results written for a query are written according to+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#queries-operation-memorylayout a layout dependent on the query type>.+--+-- Results for any query in @queryPool@ identified by @firstQuery@ and+-- @queryCount@ that is available are copied to @dstBuffer@.+--+-- If+-- 'Vulkan.Core10.Enums.QueryResultFlagBits.QUERY_RESULT_WITH_AVAILABILITY_BIT'+-- is set, results for all queries in @queryPool@ identified by+-- @firstQuery@ and @queryCount@ are copied to @dstBuffer@, along with an+-- extra availability value written directly after the results of each+-- query and interpreted as an unsigned integer. A value of zero indicates+-- that the results are not yet available, otherwise the query is complete+-- and results are available.+--+-- If @VK_QUERY_RESULT_WITH_STATUS_BIT_KHR@ is set, results for all queries+-- in @queryPool@ identified by @firstQuery@ and @queryCount@ are copied to+-- @dstBuffer@, along with an extra status value written directly after the+-- results of each query and interpreted as a signed integer. A value of+-- zero indicates that the results are not yet available. Positive values+-- indicate that the operations within the query completed successfully,+-- and the query results are valid. Negative values indicate that the+-- operations within the query completed unsuccessfully.+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueryResultStatusKHR VkQueryResultStatusKHR>+-- defines specific meaning for values returned here, though+-- implementations are free to return other values.+--+-- Results for any available query written by this command are final and+-- represent the final result of the query. If+-- 'Vulkan.Core10.Enums.QueryResultFlagBits.QUERY_RESULT_PARTIAL_BIT' is+-- set, then for any query that is unavailable, an intermediate result+-- between zero and the final result value is written for that query.+-- Otherwise, any result written by this command is undefined.+--+-- If 'Vulkan.Core10.Enums.QueryResultFlagBits.QUERY_RESULT_64_BIT' is set,+-- results and availability or status values for all queries are written as+-- an array of 64-bit values. If the @queryPool@ was created with+-- 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PERFORMANCE_QUERY_KHR',+-- results for each query are written as an array of the type indicated by+-- 'Vulkan.Extensions.VK_KHR_performance_query.PerformanceCounterKHR'::@storage@+-- for the counter being queried. Otherwise, results and availability or+-- status values are written as an array of 32-bit values. If an unsigned+-- integer query’s value overflows the result type, the value /may/ either+-- wrap or saturate. If a signed integer query’s value overflows the result+-- type, the value is undefined. If a floating point query’s value is not+-- representable as the result type, the value is undefined.+--+-- This command defines an execution dependency between other query+-- commands that reference the same query.+--+-- The first+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>+-- includes all commands which reference the queries in @queryPool@+-- indicated by @query@ that occur earlier in+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-submission-order submission order>.+-- If @flags@ does not include+-- 'Vulkan.Core10.Enums.QueryResultFlagBits.QUERY_RESULT_WAIT_BIT',+-- 'Vulkan.Extensions.VK_EXT_transform_feedback.cmdEndQueryIndexedEXT',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.cmdWriteTimestamp2',+-- 'cmdEndQuery', and 'cmdWriteTimestamp' are excluded from this scope.+--+-- The second+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>+-- includes all commands which reference the queries in @queryPool@+-- indicated by @query@ that occur later in+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-submission-order submission order>.+--+-- The operation of this command happens after the first scope and happens+-- before the second scope.+--+-- 'cmdCopyQueryPoolResults' is considered to be a transfer operation, and+-- its writes to buffer memory /must/ be synchronized using+-- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TRANSFER_BIT'+-- and 'Vulkan.Core10.Enums.AccessFlagBits.ACCESS_TRANSFER_WRITE_BIT'+-- before using the results.+--+-- == Valid Usage+--+-- - #VUID-vkCmdCopyQueryPoolResults-dstOffset-00819# @dstOffset@ /must/+-- be less than the size of @dstBuffer@+--+-- - #VUID-vkCmdCopyQueryPoolResults-firstQuery-00820# @firstQuery@+-- /must/ be less than the number of queries in @queryPool@+--+-- - #VUID-vkCmdCopyQueryPoolResults-firstQuery-00821# The sum of+-- @firstQuery@ and @queryCount@ /must/ be less than or equal to the+-- number of queries in @queryPool@+--+-- - #VUID-vkCmdCopyQueryPoolResults-flags-00822# If+-- 'Vulkan.Core10.Enums.QueryResultFlagBits.QUERY_RESULT_64_BIT' is not+-- set in @flags@ then @dstOffset@ and @stride@ /must/ be multiples of+-- @4@+--+-- - #VUID-vkCmdCopyQueryPoolResults-flags-00823# If+-- 'Vulkan.Core10.Enums.QueryResultFlagBits.QUERY_RESULT_64_BIT' is set+-- in @flags@ then @dstOffset@ and @stride@ /must/ be multiples of @8@+--+-- - #VUID-vkCmdCopyQueryPoolResults-dstBuffer-00824# @dstBuffer@ /must/+-- have enough storage, from @dstOffset@, to contain the result of each+-- query, as described+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#queries-operation-memorylayout here>+--+-- - #VUID-vkCmdCopyQueryPoolResults-dstBuffer-00825# @dstBuffer@ /must/+-- have been created with+-- 'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_TRANSFER_DST_BIT'+-- usage flag+--+-- - #VUID-vkCmdCopyQueryPoolResults-dstBuffer-00826# If @dstBuffer@ is+-- non-sparse then it /must/ be bound completely and contiguously to a+-- single 'Vulkan.Core10.Handles.DeviceMemory' object+--+-- - #VUID-vkCmdCopyQueryPoolResults-queryType-00827# If the @queryType@+-- used to create @queryPool@ was+-- 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_TIMESTAMP', @flags@ /must/+-- not contain+-- 'Vulkan.Core10.Enums.QueryResultFlagBits.QUERY_RESULT_PARTIAL_BIT'+--+-- - #VUID-vkCmdCopyQueryPoolResults-queryType-03232# If the @queryType@+-- used to create @queryPool@ was+-- 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PERFORMANCE_QUERY_KHR',+-- 'Vulkan.Extensions.VK_KHR_performance_query.PhysicalDevicePerformanceQueryPropertiesKHR'::@allowCommandBufferQueryCopies@+-- /must/ be 'Vulkan.Core10.FundamentalTypes.TRUE'+--+-- - #VUID-vkCmdCopyQueryPoolResults-queryType-03233# If the @queryType@+-- used to create @queryPool@ was+-- 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PERFORMANCE_QUERY_KHR',+-- @flags@ /must/ not contain+-- 'Vulkan.Core10.Enums.QueryResultFlagBits.QUERY_RESULT_WITH_AVAILABILITY_BIT',+-- 'Vulkan.Core10.Enums.QueryResultFlagBits.QUERY_RESULT_PARTIAL_BIT'+-- or 'Vulkan.Core10.Enums.QueryResultFlagBits.QUERY_RESULT_64_BIT'+--+-- - #VUID-vkCmdCopyQueryPoolResults-queryType-03234# If the @queryType@+-- used to create @queryPool@ was+-- 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PERFORMANCE_QUERY_KHR',+-- the @queryPool@ /must/ have been submitted once for each pass as+-- retrieved via a call to+-- 'Vulkan.Extensions.VK_KHR_performance_query.getPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR'+--+-- - #VUID-vkCmdCopyQueryPoolResults-queryType-02734#+-- 'cmdCopyQueryPoolResults' /must/ not be called if the @queryType@+-- used to create @queryPool@ was+-- 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PERFORMANCE_QUERY_INTEL'+--+-- - #VUID-vkCmdCopyQueryPoolResults-queryType-06901# If the @queryType@+-- used to create @queryPool@ was+-- @VK_QUERY_TYPE_RESULT_STATUS_ONLY_KHR@, @flags@ /must/ include+-- @VK_QUERY_RESULT_WITH_STATUS_BIT_KHR@+--+-- - #VUID-vkCmdCopyQueryPoolResults-flags-06902# If @flags@ includes+-- @VK_QUERY_RESULT_WITH_STATUS_BIT_KHR@, it /must/ not include+-- 'Vulkan.Core10.Enums.QueryResultFlagBits.QUERY_RESULT_WITH_AVAILABILITY_BIT'+--+-- - #VUID-vkCmdCopyQueryPoolResults-queryType-06903# If the @queryType@+-- used to create @queryPool@ was+-- 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PERFORMANCE_QUERY_KHR',+-- @flags@ /must/ not contain @VK_QUERY_RESULT_WITH_STATUS_BIT_KHR@+--+-- == Valid Usage (Implicit)+--+-- - #VUID-vkCmdCopyQueryPoolResults-commandBuffer-parameter#+-- @commandBuffer@ /must/ be a valid+-- 'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- - #VUID-vkCmdCopyQueryPoolResults-queryPool-parameter# @queryPool@+-- /must/ be a valid 'Vulkan.Core10.Handles.QueryPool' handle+--+-- - #VUID-vkCmdCopyQueryPoolResults-dstBuffer-parameter# @dstBuffer@+-- /must/ be a valid 'Vulkan.Core10.Handles.Buffer' handle+--+-- - #VUID-vkCmdCopyQueryPoolResults-flags-parameter# @flags@ /must/ be a+-- valid combination of+-- 'Vulkan.Core10.Enums.QueryResultFlagBits.QueryResultFlagBits' values+--+-- - #VUID-vkCmdCopyQueryPoolResults-commandBuffer-recording#+-- @commandBuffer@ /must/ be in the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording state>+--+-- - #VUID-vkCmdCopyQueryPoolResults-commandBuffer-cmdpool# The+-- 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+-- allocated from /must/ support graphics, or compute operations+--+-- - #VUID-vkCmdCopyQueryPoolResults-renderpass# This command /must/ only+-- be called outside of a render pass instance+--+-- - #VUID-vkCmdCopyQueryPoolResults-videocoding# This command /must/+-- only be called outside of a video coding scope+--+-- - #VUID-vkCmdCopyQueryPoolResults-commonparent# Each of+-- @commandBuffer@, @dstBuffer@, and @queryPool@ /must/ have been+-- created, allocated, or retrieved from the same+-- 'Vulkan.Core10.Handles.Device'+--+-- == Host Synchronization+--+-- - Host access to @commandBuffer@ /must/ be externally synchronized+--+-- - Host access to the 'Vulkan.Core10.Handles.CommandPool' that+-- @commandBuffer@ was allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- \'+--+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================++-- | Primary | Outside | Outside | Graphics |+-- | Secondary | | | Compute |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,+-- 'Vulkan.Core10.Handles.Buffer', 'Vulkan.Core10.Handles.CommandBuffer',+-- 'Vulkan.Core10.FundamentalTypes.DeviceSize',+-- 'Vulkan.Core10.Handles.QueryPool',+-- 'Vulkan.Core10.Enums.QueryResultFlagBits.QueryResultFlags'+cmdCopyQueryPoolResults :: forall io+ . (MonadIO io)+ => -- | @commandBuffer@ is the command buffer into which this command will be+ -- recorded.+ CommandBuffer+ -> -- | @queryPool@ is the query pool managing the queries containing the+ -- desired results.+ QueryPool+ -> -- | @firstQuery@ is the initial query index.+ ("firstQuery" ::: Word32)+ -> -- | @queryCount@ is the number of queries. @firstQuery@ and @queryCount@+ -- together define a range of queries.+ ("queryCount" ::: Word32)+ -> -- | @dstBuffer@ is a 'Vulkan.Core10.Handles.Buffer' object that will receive+ -- the results of the copy command.+ ("dstBuffer" ::: Buffer)+ -> -- | @dstOffset@ is an offset into @dstBuffer@.+ ("dstOffset" ::: DeviceSize)+ -> -- | @stride@ is the stride in bytes between results for individual queries+ -- within @dstBuffer@. The required size of the backing memory for+ -- @dstBuffer@ is determined as described above for+ -- 'Vulkan.Core10.Query.getQueryPoolResults'.+ ("stride" ::: DeviceSize)+ -> -- | @flags@ is a bitmask of+ -- 'Vulkan.Core10.Enums.QueryResultFlagBits.QueryResultFlagBits' specifying+ -- how and when results are returned.+ QueryResultFlags+ -> io ()+cmdCopyQueryPoolResults commandBuffer queryPool firstQuery queryCount dstBuffer dstOffset stride flags = liftIO $ do+ let vkCmdCopyQueryPoolResultsPtr = pVkCmdCopyQueryPoolResults (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)+ unless (vkCmdCopyQueryPoolResultsPtr /= nullFunPtr) $+ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdCopyQueryPoolResults is null" Nothing Nothing+ let vkCmdCopyQueryPoolResults' = mkVkCmdCopyQueryPoolResults vkCmdCopyQueryPoolResultsPtr+ traceAroundEvent "vkCmdCopyQueryPoolResults" (vkCmdCopyQueryPoolResults' (commandBufferHandle (commandBuffer)) (queryPool) (firstQuery) (queryCount) (dstBuffer) (dstOffset) (stride) (flags))+ pure $ ()+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+ unsafe+#endif+ "dynamic" mkVkCmdPushConstants+ :: FunPtr (Ptr CommandBuffer_T -> PipelineLayout -> ShaderStageFlags -> Word32 -> Word32 -> Ptr () -> IO ()) -> Ptr CommandBuffer_T -> PipelineLayout -> ShaderStageFlags -> Word32 -> Word32 -> Ptr () -> IO ()++-- | vkCmdPushConstants - Update the values of push constants+--+-- = Description+--+-- When a command buffer begins recording, all push constant values are+-- undefined. Reads of undefined push constant values by the executing+-- shader return undefined values.+--+-- Push constant values /can/ be updated incrementally, causing shader+-- stages in @stageFlags@ to read the new data from @pValues@ for push+-- constants modified by this command, while still reading the previous+-- data for push constants not modified by this command. When a+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-bindpoint-commands bound pipeline command>+-- is issued, the bound pipeline’s layout /must/ be compatible with the+-- layouts used to set the values of all push constants in the pipeline+-- layout’s push constant ranges, as described in+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-compatibility Pipeline Layout Compatibility>.+-- Binding a pipeline with a layout that is not compatible with the push+-- constant layout does not disturb the push constant values.+--+-- Note+--+-- As @stageFlags@ needs to include all flags the relevant push constant+-- ranges were created with, any flags that are not supported by the queue+-- family that the 'Vulkan.Core10.Handles.CommandPool' used to allocate+-- @commandBuffer@ was created on are ignored.+--+-- == Valid Usage+--+-- - #VUID-vkCmdPushConstants-offset-01795# For each byte in the range+-- specified by @offset@ and @size@ and for each shader stage in+-- @stageFlags@, there /must/ be a push constant range in @layout@ that+-- includes that byte and that stage+--+-- - #VUID-vkCmdPushConstants-offset-01796# For each byte in the range+-- specified by @offset@ and @size@ and for each push constant range+-- that overlaps that byte, @stageFlags@ /must/ include all stages in+-- that push constant range’s+-- 'Vulkan.Core10.PipelineLayout.PushConstantRange'::@stageFlags@+--+-- - #VUID-vkCmdPushConstants-offset-00368# @offset@ /must/ be a multiple+-- of @4@+--+-- - #VUID-vkCmdPushConstants-size-00369# @size@ /must/ be a multiple of+-- @4@+--+-- - #VUID-vkCmdPushConstants-offset-00370# @offset@ /must/ be less than+-- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxPushConstantsSize@+--+-- - #VUID-vkCmdPushConstants-size-00371# @size@ /must/ be less than or+-- equal to+-- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxPushConstantsSize@+-- minus @offset@+--+-- == Valid Usage (Implicit)+--+-- - #VUID-vkCmdPushConstants-commandBuffer-parameter# @commandBuffer@+-- /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- - #VUID-vkCmdPushConstants-layout-parameter# @layout@ /must/ be a+-- valid 'Vulkan.Core10.Handles.PipelineLayout' handle+--+-- - #VUID-vkCmdPushConstants-stageFlags-parameter# @stageFlags@ /must/+-- be a valid combination of+-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.ShaderStageFlagBits' values+--+-- - #VUID-vkCmdPushConstants-stageFlags-requiredbitmask# @stageFlags@+-- /must/ not be @0@+--+-- - #VUID-vkCmdPushConstants-pValues-parameter# @pValues@ /must/ be a+-- valid pointer to an array of @size@ bytes+--+-- - #VUID-vkCmdPushConstants-commandBuffer-recording# @commandBuffer@+-- /must/ be in the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording state>+--+-- - #VUID-vkCmdPushConstants-commandBuffer-cmdpool# The+-- 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+-- allocated from /must/ support graphics, or compute operations+--+-- - #VUID-vkCmdPushConstants-videocoding# This command /must/ only be+-- called outside of a video coding scope+--+-- - #VUID-vkCmdPushConstants-size-arraylength# @size@ /must/ be greater+-- than @0@+--+-- - #VUID-vkCmdPushConstants-commonparent# Both of @commandBuffer@, and+-- @layout@ /must/ have been created, allocated, or retrieved from the+-- same 'Vulkan.Core10.Handles.Device'+--+-- == Host Synchronization+--+-- - Host access to @commandBuffer@ /must/ be externally synchronized+--+-- - Host access to the 'Vulkan.Core10.Handles.CommandPool' that+-- @commandBuffer@ was allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- \'+--+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================++-- | Primary | Both | Outside | Graphics |+-- | Secondary | | | Compute |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,+-- 'Vulkan.Core10.Handles.CommandBuffer',+-- 'Vulkan.Core10.Handles.PipelineLayout',+-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.ShaderStageFlags'+cmdPushConstants :: forall io+ . (MonadIO io)+ => -- | @commandBuffer@ is the command buffer in which the push constant update+ -- will be recorded.+ CommandBuffer+ -> -- | @layout@ is the pipeline layout used to program the push constant+ -- updates.+ PipelineLayout+ -> -- | @stageFlags@ is a bitmask of+ -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.ShaderStageFlagBits' specifying+ -- the shader stages that will use the push constants in the updated range.+ ShaderStageFlags+ -> -- | @offset@ is the start offset of the push constant range to update, in+ -- units of bytes.+ ("offset" ::: Word32)+ -> -- | @size@ is the size of the push constant range to update, in units of+ -- bytes.+ ("size" ::: Word32)+ -> -- | @pValues@ is a pointer to an array of @size@ bytes containing the new+ -- push constant values.+ ("values" ::: Ptr ())+ -> io ()+cmdPushConstants commandBuffer layout stageFlags offset size values = liftIO $ do+ let vkCmdPushConstantsPtr = pVkCmdPushConstants (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)+ unless (vkCmdPushConstantsPtr /= nullFunPtr) $+ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdPushConstants is null" Nothing Nothing+ let vkCmdPushConstants' = mkVkCmdPushConstants vkCmdPushConstantsPtr+ traceAroundEvent "vkCmdPushConstants" (vkCmdPushConstants' (commandBufferHandle (commandBuffer)) (layout) (stageFlags) (offset) (size) (values))+ pure $ ()+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+ unsafe+#endif+ "dynamic" mkVkCmdBeginRenderPass+ :: FunPtr (Ptr CommandBuffer_T -> Ptr (SomeStruct RenderPassBeginInfo) -> SubpassContents -> IO ()) -> Ptr CommandBuffer_T -> Ptr (SomeStruct RenderPassBeginInfo) -> SubpassContents -> IO ()++-- | vkCmdBeginRenderPass - Begin a new render pass+--+-- = Description+--+-- After beginning a render pass instance, the command buffer is ready to+-- record the commands for the first subpass of that render pass.+--+-- == Valid Usage+--+-- - #VUID-vkCmdBeginRenderPass-initialLayout-00895# If any of the+-- @initialLayout@ or @finalLayout@ member of the+-- 'Vulkan.Core10.Pass.AttachmentDescription' structures or the+-- @layout@ member of the 'Vulkan.Core10.Pass.AttachmentReference'+-- structures specified when creating the render pass specified in the+-- @renderPass@ member of @pRenderPassBegin@ is+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL'+-- then the corresponding attachment image view of the framebuffer+-- specified in the @framebuffer@ member of @pRenderPassBegin@ /must/+-- have been created with a @usage@ value including+-- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_COLOR_ATTACHMENT_BIT'+--+-- - #VUID-vkCmdBeginRenderPass-initialLayout-01758# If any of the+-- @initialLayout@ or @finalLayout@ member of the+-- 'Vulkan.Core10.Pass.AttachmentDescription' structures or the+-- @layout@ member of the 'Vulkan.Core10.Pass.AttachmentReference'+-- structures specified when creating the render pass specified in the+-- @renderPass@ member of @pRenderPassBegin@ is+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL',+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL',+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL',+-- or+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL'+-- then the corresponding attachment image view of the framebuffer+-- specified in the @framebuffer@ member of @pRenderPassBegin@ /must/+-- have been created with a @usage@ value including+-- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT'+--+-- - #VUID-vkCmdBeginRenderPass-initialLayout-02842# If any of the+-- @initialLayout@ or @finalLayout@ member of the+-- 'Vulkan.Core10.Pass.AttachmentDescription' structures or the+-- @layout@ member of the 'Vulkan.Core10.Pass.AttachmentReference'+-- structures specified when creating the render pass specified in the+-- @renderPass@ member of @pRenderPassBegin@ is+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL',+-- or+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL',+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL',+-- or+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL'+-- then the corresponding attachment image view of the framebuffer+-- specified in the @framebuffer@ member of @pRenderPassBegin@ /must/+-- have been created with a @usage@ value including+-- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT'+--+-- - #VUID-vkCmdBeginRenderPass-stencilInitialLayout-02843# If any of the+-- @stencilInitialLayout@ or @stencilFinalLayout@ member of the+-- 'Vulkan.Core12.Promoted_From_VK_KHR_separate_depth_stencil_layouts.AttachmentDescriptionStencilLayout'+-- structures or the @stencilLayout@ member of the+-- 'Vulkan.Core12.Promoted_From_VK_KHR_separate_depth_stencil_layouts.AttachmentReferenceStencilLayout'+-- structures specified when creating the render pass specified in the+-- @renderPass@ member of @pRenderPassBegin@ is+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL',+-- or+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL'+-- then the corresponding attachment image view of the framebuffer+-- specified in the @framebuffer@ member of @pRenderPassBegin@ /must/+-- have been created with a @usage@ value including+-- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT'+--+-- - #VUID-vkCmdBeginRenderPass-initialLayout-00897# If any of the+-- @initialLayout@ or @finalLayout@ member of the+-- 'Vulkan.Core10.Pass.AttachmentDescription' structures or the+-- @layout@ member of the 'Vulkan.Core10.Pass.AttachmentReference'+-- structures specified when creating the render pass specified in the+-- @renderPass@ member of @pRenderPassBegin@ is+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL'+-- then the corresponding attachment image view of the framebuffer+-- specified in the @framebuffer@ member of @pRenderPassBegin@ /must/+-- have been created with a @usage@ value including+-- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_SAMPLED_BIT' or+-- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_INPUT_ATTACHMENT_BIT'+--+-- - #VUID-vkCmdBeginRenderPass-initialLayout-00898# If any of the+-- @initialLayout@ or @finalLayout@ member of the+-- 'Vulkan.Core10.Pass.AttachmentDescription' structures or the+-- @layout@ member of the 'Vulkan.Core10.Pass.AttachmentReference'+-- structures specified when creating the render pass specified in the+-- @renderPass@ member of @pRenderPassBegin@ is+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL'+-- then the corresponding attachment image view of the framebuffer+-- specified in the @framebuffer@ member of @pRenderPassBegin@ /must/+-- have been created with a @usage@ value including+-- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_TRANSFER_SRC_BIT'+--+-- - #VUID-vkCmdBeginRenderPass-initialLayout-00899# If any of the+-- @initialLayout@ or @finalLayout@ member of the+-- 'Vulkan.Core10.Pass.AttachmentDescription' structures or the+-- @layout@ member of the 'Vulkan.Core10.Pass.AttachmentReference'+-- structures specified when creating the render pass specified in the+-- @renderPass@ member of @pRenderPassBegin@ is+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL'+-- then the corresponding attachment image view of the framebuffer+-- specified in the @framebuffer@ member of @pRenderPassBegin@ /must/+-- have been created with a @usage@ value including+-- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_TRANSFER_DST_BIT'+--+-- - #VUID-vkCmdBeginRenderPass-initialLayout-00900# If the+-- @initialLayout@ member of any of the+-- 'Vulkan.Core10.Pass.AttachmentDescription' structures specified when+-- creating the render pass specified in the @renderPass@ member of+-- @pRenderPassBegin@ is not+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_UNDEFINED', then each+-- such @initialLayout@ /must/ be equal to the current layout of the+-- corresponding attachment image subresource of the framebuffer+-- specified in the @framebuffer@ member of @pRenderPassBegin@+--+-- - #VUID-vkCmdBeginRenderPass-srcStageMask-06451# The @srcStageMask@+-- members of any element of the @pDependencies@ member of+-- 'Vulkan.Core10.Pass.RenderPassCreateInfo' used to create+-- @renderPass@ /must/ be supported by the capabilities of the queue+-- family identified by the @queueFamilyIndex@ member of the+-- 'Vulkan.Core10.CommandPool.CommandPoolCreateInfo' used to create the+-- command pool which @commandBuffer@ was allocated from+--+-- - #VUID-vkCmdBeginRenderPass-dstStageMask-06452# The @dstStageMask@+-- members of any element of the @pDependencies@ member of+-- 'Vulkan.Core10.Pass.RenderPassCreateInfo' used to create+-- @renderPass@ /must/ be supported by the capabilities of the queue+-- family identified by the @queueFamilyIndex@ member of the+-- 'Vulkan.Core10.CommandPool.CommandPoolCreateInfo' used to create the+-- command pool which @commandBuffer@ was allocated from+--+-- - #VUID-vkCmdBeginRenderPass-framebuffer-02532# For any attachment in+-- @framebuffer@ that is used by @renderPass@ and is bound to memory+-- locations that are also bound to another attachment used by+-- @renderPass@, and if at least one of those uses causes either+-- attachment to be written to, both attachments /must/ have had the+-- 'Vulkan.Core10.Enums.AttachmentDescriptionFlagBits.ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT'+-- set+--+-- - #VUID-vkCmdBeginRenderPass-initialLayout-07000# If any of the+-- @initialLayout@ or @finalLayout@ member of the+-- 'Vulkan.Core10.Pass.AttachmentDescription' structures or the+-- @layout@ member of the 'Vulkan.Core10.Pass.AttachmentReference'+-- structures specified when creating the render pass specified in the+-- @renderPass@ member of @pRenderPassBegin@ is+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT'+-- then the corresponding attachment image view of the framebuffer+-- specified in the @framebuffer@ member of @pRenderPassBegin@ /must/+-- have been created with a @usage@ value including either the+-- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_COLOR_ATTACHMENT_BIT'+-- or+-- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT'+-- and either the+-- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_INPUT_ATTACHMENT_BIT'+-- or 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_SAMPLED_BIT'+-- usage bits.+--+-- - #VUID-vkCmdBeginRenderPass-initialLayout-07001# If any of the+-- @initialLayout@ or @finalLayout@ member of the+-- 'Vulkan.Core10.Pass.AttachmentDescription' structures or the+-- @layout@ member of the 'Vulkan.Core10.Pass.AttachmentReference'+-- structures specified when creating the render pass specified in the+-- @renderPass@ member of @pRenderPassBegin@ is+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT'+-- then the corresponding attachment image view of the framebuffer+-- specified in the @framebuffer@ member of @pRenderPassBegin@ /must/+-- have been created with a @usage@ value the+-- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT'+-- usage bit.+--+-- == Valid Usage (Implicit)+--+-- - #VUID-vkCmdBeginRenderPass-commandBuffer-parameter# @commandBuffer@+-- /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- - #VUID-vkCmdBeginRenderPass-pRenderPassBegin-parameter#+-- @pRenderPassBegin@ /must/ be a valid pointer to a valid+-- 'RenderPassBeginInfo' structure+--+-- - #VUID-vkCmdBeginRenderPass-contents-parameter# @contents@ /must/ be+-- a valid 'Vulkan.Core10.Enums.SubpassContents.SubpassContents' value+--+-- - #VUID-vkCmdBeginRenderPass-commandBuffer-recording# @commandBuffer@+-- /must/ be in the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording state>+--+-- - #VUID-vkCmdBeginRenderPass-commandBuffer-cmdpool# The+-- 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+-- allocated from /must/ support graphics operations+--+-- - #VUID-vkCmdBeginRenderPass-renderpass# This command /must/ only be+-- called outside of a render pass instance+--+-- - #VUID-vkCmdBeginRenderPass-videocoding# This command /must/ only be+-- called outside of a video coding scope+--+-- - #VUID-vkCmdBeginRenderPass-bufferlevel# @commandBuffer@ /must/ be a+-- primary 'Vulkan.Core10.Handles.CommandBuffer'+--+-- == Host Synchronization+--+-- - Host access to @commandBuffer@ /must/ be externally synchronized+--+-- - Host access to the 'Vulkan.Core10.Handles.CommandPool' that+-- @commandBuffer@ was allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- \'+--+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================++-- | Primary | Outside | Outside | Graphics |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,+-- 'Vulkan.Core10.Handles.CommandBuffer', 'RenderPassBeginInfo',+-- 'Vulkan.Core10.Enums.SubpassContents.SubpassContents'+cmdBeginRenderPass :: forall a io+ . (Extendss RenderPassBeginInfo a, PokeChain a, MonadIO io)+ => -- | @commandBuffer@ is the command buffer in which to record the command.+ CommandBuffer+ -> -- | @pRenderPassBegin@ is a pointer to a 'RenderPassBeginInfo' structure+ -- specifying the render pass to begin an instance of, and the framebuffer+ -- the instance uses.+ (RenderPassBeginInfo a)+ -> -- | @contents@ is a 'Vulkan.Core10.Enums.SubpassContents.SubpassContents'+ -- value specifying how the commands in the first subpass will be provided.+ SubpassContents+ -> io ()+cmdBeginRenderPass commandBuffer renderPassBegin contents = liftIO . evalContT $ do+ let vkCmdBeginRenderPassPtr = pVkCmdBeginRenderPass (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)+ lift $ unless (vkCmdBeginRenderPassPtr /= nullFunPtr) $+ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdBeginRenderPass is null" Nothing Nothing+ let vkCmdBeginRenderPass' = mkVkCmdBeginRenderPass vkCmdBeginRenderPassPtr+ pRenderPassBegin <- ContT $ withCStruct (renderPassBegin)+ lift $ traceAroundEvent "vkCmdBeginRenderPass" (vkCmdBeginRenderPass' (commandBufferHandle (commandBuffer)) (forgetExtensions pRenderPassBegin) (contents))+ pure $ ()++-- | This function will call the supplied action between calls to+-- 'cmdBeginRenderPass' and 'cmdEndRenderPass'+--+-- Note that 'cmdEndRenderPass' is *not* called if an exception is thrown+-- by the inner action.+cmdUseRenderPass :: forall a io r . (Extendss RenderPassBeginInfo a, PokeChain a, MonadIO io) => CommandBuffer -> RenderPassBeginInfo a -> SubpassContents -> io r -> io r+cmdUseRenderPass commandBuffer pRenderPassBegin contents a =+ (cmdBeginRenderPass commandBuffer pRenderPassBegin contents) *> a <* (cmdEndRenderPass commandBuffer)+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+ unsafe+#endif+ "dynamic" mkVkCmdNextSubpass+ :: FunPtr (Ptr CommandBuffer_T -> SubpassContents -> IO ()) -> Ptr CommandBuffer_T -> SubpassContents -> IO ()++-- | vkCmdNextSubpass - Transition to the next subpass of a render pass+--+-- = Description+--+-- The subpass index for a render pass begins at zero when+-- 'cmdBeginRenderPass' is recorded, and increments each time+-- 'cmdNextSubpass' is recorded.+--+-- Moving to the next subpass automatically performs any multisample+-- resolve operations in the subpass being ended. End-of-subpass+-- multisample resolves are treated as color attachment writes for the+-- purposes of synchronization. This applies to resolve operations for both+-- color and depth\/stencil attachments. That is, they are considered to+-- execute in the+-- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT'+-- pipeline stage and their writes are synchronized with+-- 'Vulkan.Core10.Enums.AccessFlagBits.ACCESS_COLOR_ATTACHMENT_WRITE_BIT'.+-- Synchronization between rendering within a subpass and any resolve+-- operations at the end of the subpass occurs automatically, without need+-- for explicit dependencies or pipeline barriers. However, if the resolve+-- attachment is also used in a different subpass, an explicit dependency+-- is needed.+--+-- After transitioning to the next subpass, the application /can/ record+-- the commands for that subpass.+--+-- == Valid Usage+--+-- - #VUID-vkCmdNextSubpass-None-00909# The current subpass index /must/+-- be less than the number of subpasses in the render pass minus one+--+-- - #VUID-vkCmdNextSubpass-None-02349# This command /must/ not be+-- recorded when transform feedback is active+--+-- == Valid Usage (Implicit)+--+-- - #VUID-vkCmdNextSubpass-commandBuffer-parameter# @commandBuffer@+-- /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- - #VUID-vkCmdNextSubpass-contents-parameter# @contents@ /must/ be a+-- valid 'Vulkan.Core10.Enums.SubpassContents.SubpassContents' value+--+-- - #VUID-vkCmdNextSubpass-commandBuffer-recording# @commandBuffer@+-- /must/ be in the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording state>+--+-- - #VUID-vkCmdNextSubpass-commandBuffer-cmdpool# The+-- 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+-- allocated from /must/ support graphics operations+--+-- - #VUID-vkCmdNextSubpass-renderpass# This command /must/ only be+-- called inside of a render pass instance+--+-- - #VUID-vkCmdNextSubpass-videocoding# This command /must/ only be+-- called outside of a video coding scope+--+-- - #VUID-vkCmdNextSubpass-bufferlevel# @commandBuffer@ /must/ be a+-- primary 'Vulkan.Core10.Handles.CommandBuffer'+--+-- == Host Synchronization+--+-- - Host access to @commandBuffer@ /must/ be externally synchronized+--+-- - Host access to the 'Vulkan.Core10.Handles.CommandPool' that+-- @commandBuffer@ was allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- \'+--+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================++-- | Primary | Inside | Outside | Graphics |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,+-- 'Vulkan.Core10.Handles.CommandBuffer',+-- 'Vulkan.Core10.Enums.SubpassContents.SubpassContents'+cmdNextSubpass :: forall io+ . (MonadIO io)+ => -- | @commandBuffer@ is the command buffer in which to record the command.+ CommandBuffer+ -> -- | @contents@ specifies how the commands in the next subpass will be+ -- provided, in the same fashion as the corresponding parameter of+ -- 'cmdBeginRenderPass'.+ SubpassContents+ -> io ()+cmdNextSubpass commandBuffer contents = liftIO $ do+ let vkCmdNextSubpassPtr = pVkCmdNextSubpass (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)+ unless (vkCmdNextSubpassPtr /= nullFunPtr) $+ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdNextSubpass is null" Nothing Nothing+ let vkCmdNextSubpass' = mkVkCmdNextSubpass vkCmdNextSubpassPtr+ traceAroundEvent "vkCmdNextSubpass" (vkCmdNextSubpass' (commandBufferHandle (commandBuffer)) (contents))+ pure $ ()+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+ unsafe+#endif+ "dynamic" mkVkCmdEndRenderPass+ :: FunPtr (Ptr CommandBuffer_T -> IO ()) -> Ptr CommandBuffer_T -> IO ()++-- | vkCmdEndRenderPass - End the current render pass+--+-- = Description+--+-- Ending a render pass instance performs any multisample resolve+-- operations on the final subpass.+--+-- == Valid Usage+--+-- - #VUID-vkCmdEndRenderPass-None-00910# The current subpass index+-- /must/ be equal to the number of subpasses in the render pass minus+-- one+--+-- - #VUID-vkCmdEndRenderPass-None-02351# This command /must/ not be+-- recorded when transform feedback is active+--+-- - #VUID-vkCmdEndRenderPass-None-06170# The current render pass+-- instance /must/ not have been begun with+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'+--+-- - #VUID-vkCmdEndRenderPass-None-07004# If 'cmdBeginQuery'* was called+-- within a subpass of the render pass, the corresponding+-- 'cmdEndQuery'* /must/ have been called subsequently within the same+-- subpass.+--+-- == Valid Usage (Implicit)+--+-- - #VUID-vkCmdEndRenderPass-commandBuffer-parameter# @commandBuffer@+-- /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- - #VUID-vkCmdEndRenderPass-commandBuffer-recording# @commandBuffer@+-- /must/ be in the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording state>+--+-- - #VUID-vkCmdEndRenderPass-commandBuffer-cmdpool# The+-- 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+-- allocated from /must/ support graphics operations+--+-- - #VUID-vkCmdEndRenderPass-renderpass# This command /must/ only be+-- called inside of a render pass instance+--+-- - #VUID-vkCmdEndRenderPass-videocoding# This command /must/ only be+-- called outside of a video coding scope+--+-- - #VUID-vkCmdEndRenderPass-bufferlevel# @commandBuffer@ /must/ be a+-- primary 'Vulkan.Core10.Handles.CommandBuffer'+--+-- == Host Synchronization+--+-- - Host access to @commandBuffer@ /must/ be externally synchronized+--+-- - Host access to the 'Vulkan.Core10.Handles.CommandPool' that+-- @commandBuffer@ was allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- \'+--+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================++-- | Primary | Inside | Outside | Graphics |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,+-- 'Vulkan.Core10.Handles.CommandBuffer'+cmdEndRenderPass :: forall io+ . (MonadIO io)+ => -- | @commandBuffer@ is the command buffer in which to end the current render+ -- pass instance.+ CommandBuffer+ -> io ()+cmdEndRenderPass commandBuffer = liftIO $ do+ let vkCmdEndRenderPassPtr = pVkCmdEndRenderPass (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)+ unless (vkCmdEndRenderPassPtr /= nullFunPtr) $+ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdEndRenderPass is null" Nothing Nothing+ let vkCmdEndRenderPass' = mkVkCmdEndRenderPass vkCmdEndRenderPassPtr+ traceAroundEvent "vkCmdEndRenderPass" (vkCmdEndRenderPass' (commandBufferHandle (commandBuffer)))+ pure $ ()+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+ unsafe+#endif+ "dynamic" mkVkCmdExecuteCommands+ :: FunPtr (Ptr CommandBuffer_T -> Word32 -> Ptr (Ptr CommandBuffer_T) -> IO ()) -> Ptr CommandBuffer_T -> Word32 -> Ptr (Ptr CommandBuffer_T) -> IO ()++-- | vkCmdExecuteCommands - Execute a secondary command buffer from a primary+-- command buffer+--+-- = Description+--+-- If any element of @pCommandBuffers@ was not recorded with the+-- 'Vulkan.Core10.Enums.CommandBufferUsageFlagBits.COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT'+-- flag, and it was recorded into any other primary command buffer which is+-- currently in the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-lifecycle executable or recording state>,+-- that primary command buffer becomes+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-lifecycle invalid>.+--+-- == Valid Usage+--+-- - #VUID-vkCmdExecuteCommands-pCommandBuffers-00088# Each element of+-- @pCommandBuffers@ /must/ have been allocated with a @level@ of+-- 'Vulkan.Core10.Enums.CommandBufferLevel.COMMAND_BUFFER_LEVEL_SECONDARY'+--+-- - #VUID-vkCmdExecuteCommands-pCommandBuffers-00089# Each element of+-- @pCommandBuffers@ /must/ be in the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-lifecycle pending or executable state>+--+-- - #VUID-vkCmdExecuteCommands-pCommandBuffers-00091# If any element of+-- @pCommandBuffers@ was not recorded with the+-- 'Vulkan.Core10.Enums.CommandBufferUsageFlagBits.COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT'+-- flag, it /must/ not be in the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-lifecycle pending state>+--+-- - #VUID-vkCmdExecuteCommands-pCommandBuffers-00092# If any element of+-- @pCommandBuffers@ was not recorded with the+-- 'Vulkan.Core10.Enums.CommandBufferUsageFlagBits.COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT'+-- flag, it /must/ not have already been recorded to @commandBuffer@+--+-- - #VUID-vkCmdExecuteCommands-pCommandBuffers-00093# If any element of+-- @pCommandBuffers@ was not recorded with the+-- 'Vulkan.Core10.Enums.CommandBufferUsageFlagBits.COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT'+-- flag, it /must/ not appear more than once in @pCommandBuffers@+--+-- - #VUID-vkCmdExecuteCommands-pCommandBuffers-00094# Each element of+-- @pCommandBuffers@ /must/ have been allocated from a+-- 'Vulkan.Core10.Handles.CommandPool' that was created for the same+-- queue family as the 'Vulkan.Core10.Handles.CommandPool' from which+-- @commandBuffer@ was allocated+--+-- - #VUID-vkCmdExecuteCommands-pCommandBuffers-00096# If+-- 'cmdExecuteCommands' is being called within a render pass instance,+-- each element of @pCommandBuffers@ /must/ have been recorded with the+-- 'Vulkan.Core10.Enums.CommandBufferUsageFlagBits.COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT'+--+-- - #VUID-vkCmdExecuteCommands-pCommandBuffers-00099# If+-- 'cmdExecuteCommands' is being called within a render pass instance,+-- and any element of @pCommandBuffers@ was recorded with+-- 'Vulkan.Core10.CommandBuffer.CommandBufferInheritanceInfo'::@framebuffer@+-- not equal to 'Vulkan.Core10.APIConstants.NULL_HANDLE', that+-- 'Vulkan.Core10.Handles.Framebuffer' /must/ match the+-- 'Vulkan.Core10.Handles.Framebuffer' used in the current render pass+-- instance+--+-- - #VUID-vkCmdExecuteCommands-contents-06018# If 'cmdExecuteCommands'+-- is being called within a render pass instance begun with+-- 'cmdBeginRenderPass', its @contents@ parameter /must/ have been set+-- to+-- 'Vulkan.Core10.Enums.SubpassContents.SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS'+--+-- - #VUID-vkCmdExecuteCommands-pCommandBuffers-06019# If+-- 'cmdExecuteCommands' is being called within a render pass instance+-- begun with 'cmdBeginRenderPass', each element of @pCommandBuffers@+-- /must/ have been recorded with+-- 'Vulkan.Core10.CommandBuffer.CommandBufferInheritanceInfo'::@subpass@+-- set to the index of the subpass which the given command buffer will+-- be executed in+--+-- - #VUID-vkCmdExecuteCommands-pBeginInfo-06020# If 'cmdExecuteCommands'+-- is being called within a render pass instance begun with+-- 'cmdBeginRenderPass', the render passes specified in the+-- @pBeginInfo->pInheritanceInfo->renderPass@ members of the+-- 'Vulkan.Core10.CommandBuffer.beginCommandBuffer' commands used to+-- begin recording each element of @pCommandBuffers@ /must/ be+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-compatibility compatible>+-- with the current render pass+--+-- - #VUID-vkCmdExecuteCommands-pNext-02865# If 'cmdExecuteCommands' is+-- being called within a render pass instance that included+-- 'Vulkan.Extensions.VK_QCOM_render_pass_transform.RenderPassTransformBeginInfoQCOM'+-- in the @pNext@ chain of 'RenderPassBeginInfo', then each element of+-- @pCommandBuffers@ /must/ have been recorded with+-- 'Vulkan.Extensions.VK_QCOM_render_pass_transform.CommandBufferInheritanceRenderPassTransformInfoQCOM'+-- in the @pNext@ chain of+-- 'Vulkan.Core10.CommandBuffer.CommandBufferBeginInfo'+--+-- - #VUID-vkCmdExecuteCommands-pNext-02866# If 'cmdExecuteCommands' is+-- being called within a render pass instance that included+-- 'Vulkan.Extensions.VK_QCOM_render_pass_transform.RenderPassTransformBeginInfoQCOM'+-- in the @pNext@ chain of 'RenderPassBeginInfo', then each element of+-- @pCommandBuffers@ /must/ have been recorded with+-- 'Vulkan.Extensions.VK_QCOM_render_pass_transform.CommandBufferInheritanceRenderPassTransformInfoQCOM'::@transform@+-- identical to+-- 'Vulkan.Extensions.VK_QCOM_render_pass_transform.RenderPassTransformBeginInfoQCOM'::@transform@+--+-- - #VUID-vkCmdExecuteCommands-pNext-02867# If 'cmdExecuteCommands' is+-- being called within a render pass instance that included+-- 'Vulkan.Extensions.VK_QCOM_render_pass_transform.RenderPassTransformBeginInfoQCOM'+-- in the @pNext@ chain of 'RenderPassBeginInfo', then each element of+-- @pCommandBuffers@ /must/ have been recorded with+-- 'Vulkan.Extensions.VK_QCOM_render_pass_transform.CommandBufferInheritanceRenderPassTransformInfoQCOM'::@renderArea@+-- identical to 'RenderPassBeginInfo'::@renderArea@+--+-- - #VUID-vkCmdExecuteCommands-pCommandBuffers-00100# If+-- 'cmdExecuteCommands' is not being called within a render pass+-- instance, each element of @pCommandBuffers@ /must/ not have been+-- recorded with the+-- 'Vulkan.Core10.Enums.CommandBufferUsageFlagBits.COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT'+--+-- - #VUID-vkCmdExecuteCommands-commandBuffer-00101# If the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-inheritedQueries inheritedQueries>+-- feature is not enabled, @commandBuffer@ /must/ not have any queries+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#queries-operation-active active>+--+-- - #VUID-vkCmdExecuteCommands-commandBuffer-00102# If @commandBuffer@+-- has a 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_OCCLUSION' query+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#queries-operation-active active>,+-- then each element of @pCommandBuffers@ /must/ have been recorded+-- with+-- 'Vulkan.Core10.CommandBuffer.CommandBufferInheritanceInfo'::@occlusionQueryEnable@+-- set to 'Vulkan.Core10.FundamentalTypes.TRUE'+--+-- - #VUID-vkCmdExecuteCommands-commandBuffer-00103# If @commandBuffer@+-- has a 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_OCCLUSION' query+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#queries-operation-active active>,+-- then each element of @pCommandBuffers@ /must/ have been recorded+-- with+-- 'Vulkan.Core10.CommandBuffer.CommandBufferInheritanceInfo'::@queryFlags@+-- having all bits set that are set for the query+--+-- - #VUID-vkCmdExecuteCommands-commandBuffer-00104# If @commandBuffer@+-- has a 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PIPELINE_STATISTICS'+-- query+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#queries-operation-active active>,+-- then each element of @pCommandBuffers@ /must/ have been recorded+-- with+-- 'Vulkan.Core10.CommandBuffer.CommandBufferInheritanceInfo'::@pipelineStatistics@+-- having all bits set that are set in the+-- 'Vulkan.Core10.Handles.QueryPool' the query uses+--+-- - #VUID-vkCmdExecuteCommands-pCommandBuffers-00105# Each element of+-- @pCommandBuffers@ /must/ not begin any query types that are+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#queries-operation-active active>+-- in @commandBuffer@+--+-- - #VUID-vkCmdExecuteCommands-commandBuffer-01820# If @commandBuffer@+-- is a protected command buffer and+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>+-- is not supported, each element of @pCommandBuffers@ /must/ be a+-- protected command buffer+--+-- - #VUID-vkCmdExecuteCommands-commandBuffer-01821# If @commandBuffer@+-- is an unprotected command buffer and+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>+-- is not supported, each element of @pCommandBuffers@ /must/ be an+-- unprotected command buffer+--+-- - #VUID-vkCmdExecuteCommands-None-02286# This command /must/ not be+-- recorded when transform feedback is active+--+-- - #VUID-vkCmdExecuteCommands-commandBuffer-06533# If+-- 'cmdExecuteCommands' is being called within a render pass instance+-- and any recorded command in @commandBuffer@ in the current subpass+-- will write to an image subresource as an attachment, commands+-- recorded in elements of @pCommandBuffers@ /must/ not read from the+-- memory backing that image subresource in any other way+--+-- - #VUID-vkCmdExecuteCommands-commandBuffer-06534# If+-- 'cmdExecuteCommands' is being called within a render pass instance+-- and any recorded command in @commandBuffer@ in the current subpass+-- will read from an image subresource used as an attachment in any way+-- other than as an attachment, commands recorded in elements of+-- @pCommandBuffers@ /must/ not write to that image subresource as an+-- attachment+--+-- - #VUID-vkCmdExecuteCommands-pCommandBuffers-06535# If+-- 'cmdExecuteCommands' is being called within a render pass instance+-- and any recorded command in a given element of @pCommandBuffers@+-- will write to an image subresource as an attachment, commands+-- recorded in elements of @pCommandBuffers@ at a higher index /must/+-- not read from the memory backing that image subresource in any other+-- way+--+-- - #VUID-vkCmdExecuteCommands-pCommandBuffers-06536# If+-- 'cmdExecuteCommands' is being called within a render pass instance+-- and any recorded command in a given element of @pCommandBuffers@+-- will read from an image subresource used as an attachment in any way+-- other than as an attachment, commands recorded in elements of+-- @pCommandBuffers@ at a higher index /must/ not write to that image+-- subresource as an attachment+--+-- - #VUID-vkCmdExecuteCommands-pCommandBuffers-06021# If+-- @pCommandBuffers@ contains any+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-suspension suspended render pass instances>,+-- there /must/ be no action or synchronization commands between that+-- render pass instance and any render pass instance that resumes it+--+-- - #VUID-vkCmdExecuteCommands-pCommandBuffers-06022# If+-- @pCommandBuffers@ contains any+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-suspension suspended render pass instances>,+-- there /must/ be no render pass instances between that render pass+-- instance and any render pass instance that resumes it+--+-- - #VUID-vkCmdExecuteCommands-variableSampleLocations-06023# If the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-variableSampleLocations variableSampleLocations>+-- limit is not supported, and any element of @pCommandBuffers@+-- contains any+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-suspension suspended render pass instances>,+-- where a graphics pipeline has been bound, any pipelines bound in the+-- render pass instance that resumes it, or any subsequent render pass+-- instances that resume from that one and so on, /must/ use the same+-- sample locations+--+-- - #VUID-vkCmdExecuteCommands-flags-06024# If 'cmdExecuteCommands' is+-- being called within a render pass instance begun with+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+-- its+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@flags@+-- parameter /must/ have included+-- 'Vulkan.Core13.Enums.RenderingFlagBits.RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT'+--+-- - #VUID-vkCmdExecuteCommands-pBeginInfo-06025# If 'cmdExecuteCommands'+-- is being called within a render pass instance begun with+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+-- the render passes specified in the+-- @pBeginInfo->pInheritanceInfo->renderPass@ members of the+-- 'Vulkan.Core10.CommandBuffer.beginCommandBuffer' commands used to+-- begin recording each element of @pCommandBuffers@ /must/ be+-- 'Vulkan.Core10.APIConstants.NULL_HANDLE'+--+-- - #VUID-vkCmdExecuteCommands-flags-06026# If 'cmdExecuteCommands' is+-- being called within a render pass instance begun with+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+-- the @flags@ member of the+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.CommandBufferInheritanceRenderingInfo'+-- structure included in the @pNext@ chain of+-- 'Vulkan.Core10.CommandBuffer.CommandBufferBeginInfo'::@pInheritanceInfo@+-- used to begin recording each element of @pCommandBuffers@ /must/ be+-- equal to the+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@flags@+-- parameter to+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+-- excluding+-- 'Vulkan.Core13.Enums.RenderingFlagBits.RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT'+--+-- - #VUID-vkCmdExecuteCommands-colorAttachmentCount-06027# If+-- 'cmdExecuteCommands' is being called within a render pass instance+-- begun with+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+-- the @colorAttachmentCount@ member of the+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.CommandBufferInheritanceRenderingInfo'+-- structure included in the @pNext@ chain of+-- 'Vulkan.Core10.CommandBuffer.CommandBufferBeginInfo'::@pInheritanceInfo@+-- used to begin recording each element of @pCommandBuffers@ /must/ be+-- equal to the+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@+-- parameter to+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'+--+-- - #VUID-vkCmdExecuteCommands-imageView-06028# If 'cmdExecuteCommands'+-- is being called within a render pass instance begun with+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+-- if the @imageView@ member of an element of the+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@+-- parameter to+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'+-- is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the corresponding+-- element of the @pColorAttachmentFormats@ member of the+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.CommandBufferInheritanceRenderingInfo'+-- structure included in the @pNext@ chain of+-- 'Vulkan.Core10.CommandBuffer.CommandBufferBeginInfo'::@pInheritanceInfo@+-- used to begin recording each element of @pCommandBuffers@ /must/ be+-- equal to the format used to create that image view+--+-- - #VUID-vkCmdExecuteCommands-pDepthAttachment-06029# If+-- 'cmdExecuteCommands' is being called within a render pass instance+-- begun with+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+-- if the+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@+-- parameter to+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'+-- is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of the+-- @depthAttachmentFormat@ member of the+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.CommandBufferInheritanceRenderingInfo'+-- structure included in the @pNext@ chain of+-- 'Vulkan.Core10.CommandBuffer.CommandBufferBeginInfo'::@pInheritanceInfo@+-- used to begin recording each element of @pCommandBuffers@ /must/ be+-- equal to the format used to create that image view+--+-- - #VUID-vkCmdExecuteCommands-pStencilAttachment-06030# If+-- 'cmdExecuteCommands' is being called within a render pass instance+-- begun with+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+-- if the+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@+-- parameter to+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'+-- is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of the+-- @stencilAttachmentFormat@ member of the+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.CommandBufferInheritanceRenderingInfo'+-- structure included in the @pNext@ chain of+-- 'Vulkan.Core10.CommandBuffer.CommandBufferBeginInfo'::@pInheritanceInfo@+-- used to begin recording each element of @pCommandBuffers@ /must/ be+-- equal to the format used to create that image view+--+-- - #VUID-vkCmdExecuteCommands-pDepthAttachment-06774# If+-- 'cmdExecuteCommands' is being called within a render pass instance+-- begun with+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'+-- and the+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@+-- parameter to+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'+-- was 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of the+-- @depthAttachmentFormat@ member of the+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.CommandBufferInheritanceRenderingInfo'+-- structure included in the @pNext@ chain of+-- 'Vulkan.Core10.CommandBuffer.CommandBufferBeginInfo'::@pInheritanceInfo@+-- used to begin recording each element of @pCommandBuffers@ /must/ be+-- 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'+--+-- - #VUID-vkCmdExecuteCommands-pStencilAttachment-06775# If+-- 'cmdExecuteCommands' is being called within a render pass instance+-- begun with+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'+-- and the+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@+-- parameter to+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'+-- was 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of the+-- @stencilAttachmentFormat@ member of the+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.CommandBufferInheritanceRenderingInfo'+-- structure included in the @pNext@ chain of+-- 'Vulkan.Core10.CommandBuffer.CommandBufferBeginInfo'::@pInheritanceInfo@+-- used to begin recording each element of @pCommandBuffers@ /must/ be+-- 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'+--+-- - #VUID-vkCmdExecuteCommands-viewMask-06031# If 'cmdExecuteCommands'+-- is being called within a render pass instance begun with+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+-- the @viewMask@ member of the+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.CommandBufferInheritanceRenderingInfo'+-- structure included in the @pNext@ chain of+-- 'Vulkan.Core10.CommandBuffer.CommandBufferBeginInfo'::@pInheritanceInfo@+-- used to begin recording each element of @pCommandBuffers@ /must/ be+-- equal to the+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@viewMask@+-- parameter to+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'+--+-- - #VUID-vkCmdExecuteCommands-pNext-06032# If 'cmdExecuteCommands' is+-- being called within a render pass instance begun with+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'+-- and the @pNext@ chain of+-- 'Vulkan.Core10.CommandBuffer.CommandBufferInheritanceInfo' includes+-- a+-- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'+-- or+-- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'+-- structure, if the @imageView@ member of an element of the+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@+-- parameter to+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'+-- is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the corresponding+-- element of the @pColorAttachmentSamples@ member of the+-- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'+-- or+-- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'+-- structure included in the @pNext@ chain of+-- 'Vulkan.Core10.CommandBuffer.CommandBufferBeginInfo'::@pInheritanceInfo@+-- used to begin recording each element of @pCommandBuffers@ /must/ be+-- equal to the sample count used to create that image view+--+-- - #VUID-vkCmdExecuteCommands-pNext-06033# If 'cmdExecuteCommands' is+-- being called within a render pass instance begun with+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'+-- and the @pNext@ chain of+-- 'Vulkan.Core10.CommandBuffer.CommandBufferInheritanceInfo' includes+-- a+-- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'+-- or+-- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'+-- structure, if the+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@+-- parameter to+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'+-- is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of the+-- @depthStencilAttachmentSamples@ member of the+-- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'+-- or+-- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'+-- structure included in the @pNext@ chain of+-- 'Vulkan.Core10.CommandBuffer.CommandBufferBeginInfo'::@pInheritanceInfo@+-- used to begin recording each element of @pCommandBuffers@ /must/ be+-- equal to the sample count used to create that image view+--+-- - #VUID-vkCmdExecuteCommands-pNext-06034# If 'cmdExecuteCommands' is+-- being called within a render pass instance begun with+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'+-- and the @pNext@ chain of+-- 'Vulkan.Core10.CommandBuffer.CommandBufferInheritanceInfo' includes+-- a+-- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'+-- or+-- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'+-- structure, if the+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@+-- parameter to+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'+-- is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of the+-- @depthStencilAttachmentSamples@ member of the+-- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'+-- or+-- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'+-- structure included in the @pNext@ chain of+-- 'Vulkan.Core10.CommandBuffer.CommandBufferBeginInfo'::@pInheritanceInfo@+-- used to begin recording each element of @pCommandBuffers@ /must/ be+-- equal to the sample count used to create that image view+--+-- - #VUID-vkCmdExecuteCommands-pNext-06035# If 'cmdExecuteCommands' is+-- being called within a render pass instance begun with+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'+-- and the @pNext@ chain of+-- 'Vulkan.Core10.CommandBuffer.CommandBufferInheritanceInfo' does not+-- include a+-- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'+-- or+-- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'+-- structure, if the @imageView@ member of an element of the+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@+-- parameter to+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'+-- is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.CommandBufferInheritanceRenderingInfo'::@rasterizationSamples@+-- /must/ be equal to the sample count used to create that image view+--+-- - #VUID-vkCmdExecuteCommands-pNext-06036# If 'cmdExecuteCommands' is+-- being called within a render pass instance begun with+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'+-- and the @pNext@ chain of+-- 'Vulkan.Core10.CommandBuffer.CommandBufferInheritanceInfo' does not+-- include a+-- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'+-- or+-- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'+-- structure, if the+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@+-- parameter to+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'+-- is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.CommandBufferInheritanceRenderingInfo'::@rasterizationSamples@+-- /must/ be equal to the sample count used to create that image view+--+-- - #VUID-vkCmdExecuteCommands-pNext-06037# If 'cmdExecuteCommands' is+-- being called within a render pass instance begun with+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'+-- and the @pNext@ chain of+-- 'Vulkan.Core10.CommandBuffer.CommandBufferInheritanceInfo' does not+-- include a+-- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'+-- or+-- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'+-- structure, if the+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@+-- parameter to+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'+-- is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.CommandBufferInheritanceRenderingInfo'::@rasterizationSamples@+-- /must/ be equal to the sample count used to create that image view+--+-- == Valid Usage (Implicit)+--+-- - #VUID-vkCmdExecuteCommands-commandBuffer-parameter# @commandBuffer@+-- /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- - #VUID-vkCmdExecuteCommands-pCommandBuffers-parameter#+-- @pCommandBuffers@ /must/ be a valid pointer to an array of+-- @commandBufferCount@ valid 'Vulkan.Core10.Handles.CommandBuffer'+-- handles+--+-- - #VUID-vkCmdExecuteCommands-commandBuffer-recording# @commandBuffer@+-- /must/ be in the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording state>+--+-- - #VUID-vkCmdExecuteCommands-commandBuffer-cmdpool# The+-- 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+-- allocated from /must/ support transfer, graphics, or compute+-- operations+--+-- - #VUID-vkCmdExecuteCommands-videocoding# This command /must/ only be+-- called outside of a video coding scope+--+-- - #VUID-vkCmdExecuteCommands-bufferlevel# @commandBuffer@ /must/ be a+-- primary 'Vulkan.Core10.Handles.CommandBuffer'+--+-- - #VUID-vkCmdExecuteCommands-commandBufferCount-arraylength#+-- @commandBufferCount@ /must/ be greater than @0@+--+-- - #VUID-vkCmdExecuteCommands-commonparent# Both of @commandBuffer@,+-- and the elements of @pCommandBuffers@ /must/ have been created,+-- allocated, or retrieved from the same 'Vulkan.Core10.Handles.Device'+--+-- == Host Synchronization+--+-- - Host access to @commandBuffer@ /must/ be externally synchronized+--+-- - Host access to the 'Vulkan.Core10.Handles.CommandPool' that+-- @commandBuffer@ was allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- \'+--+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================++-- | Primary | Both | Outside | Transfer |+-- | | | | Graphics |+-- | | | | Compute |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,+-- 'Vulkan.Core10.Handles.CommandBuffer'+cmdExecuteCommands :: forall io+ . (MonadIO io)+ => -- | @commandBuffer@ is a handle to a primary command buffer that the+ -- secondary command buffers are executed in.+ CommandBuffer+ -> -- | @pCommandBuffers@ is a pointer to an array of @commandBufferCount@+ -- secondary command buffer handles, which are recorded to execute in the+ -- primary command buffer in the order they are listed in the array.+ ("commandBuffers" ::: Vector CommandBuffer)+ -> io ()+cmdExecuteCommands commandBuffer commandBuffers = liftIO . evalContT $ do+ let vkCmdExecuteCommandsPtr = pVkCmdExecuteCommands (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)+ lift $ unless (vkCmdExecuteCommandsPtr /= nullFunPtr) $+ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdExecuteCommands is null" Nothing Nothing+ let vkCmdExecuteCommands' = mkVkCmdExecuteCommands vkCmdExecuteCommandsPtr+ pPCommandBuffers <- ContT $ allocaBytes @(Ptr CommandBuffer_T) ((Data.Vector.length (commandBuffers)) * 8)+ lift $ Data.Vector.imapM_ (\i e -> poke (pPCommandBuffers `plusPtr` (8 * (i)) :: Ptr (Ptr CommandBuffer_T)) (commandBufferHandle (e))) (commandBuffers)+ lift $ traceAroundEvent "vkCmdExecuteCommands" (vkCmdExecuteCommands' (commandBufferHandle (commandBuffer)) ((fromIntegral (Data.Vector.length $ (commandBuffers)) :: Word32)) (pPCommandBuffers))+ pure $ ()+++-- | VkClearRect - Structure specifying a clear rectangle+--+-- = Description+--+-- The layers [@baseArrayLayer@, @baseArrayLayer@ + @layerCount@) counting+-- from the base layer of the attachment image view are cleared.+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,+-- 'Vulkan.Core10.FundamentalTypes.Rect2D', 'cmdClearAttachments'+data ClearRect = ClearRect+ { -- | @rect@ is the two-dimensional region to be cleared.+ rect :: Rect2D+ , -- | @baseArrayLayer@ is the first layer to be cleared.+ baseArrayLayer :: Word32+ , -- | @layerCount@ is the number of layers to clear.+ layerCount :: Word32+ }+ deriving (Typeable)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (ClearRect)+#endif+deriving instance Show ClearRect++instance ToCStruct ClearRect where+ withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)+ pokeCStruct p ClearRect{..} f = do+ poke ((p `plusPtr` 0 :: Ptr Rect2D)) (rect)+ poke ((p `plusPtr` 16 :: Ptr Word32)) (baseArrayLayer)+ poke ((p `plusPtr` 20 :: Ptr Word32)) (layerCount)+ f+ cStructSize = 24+ cStructAlignment = 4+ pokeZeroCStruct p f = do+ poke ((p `plusPtr` 0 :: Ptr Rect2D)) (zero)+ poke ((p `plusPtr` 16 :: Ptr Word32)) (zero)+ poke ((p `plusPtr` 20 :: Ptr Word32)) (zero)+ f++instance FromCStruct ClearRect where+ peekCStruct p = do+ rect <- peekCStruct @Rect2D ((p `plusPtr` 0 :: Ptr Rect2D))+ baseArrayLayer <- peek @Word32 ((p `plusPtr` 16 :: Ptr Word32))+ layerCount <- peek @Word32 ((p `plusPtr` 20 :: Ptr Word32))+ pure $ ClearRect+ rect baseArrayLayer layerCount++instance Storable ClearRect where+ sizeOf ~_ = 24+ alignment ~_ = 4+ peek = peekCStruct+ poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero ClearRect where+ zero = ClearRect+ zero+ zero+ zero+++-- | VkImageSubresourceLayers - Structure specifying an image subresource+-- layers+--+-- == Valid Usage+--+-- - #VUID-VkImageSubresourceLayers-aspectMask-00167# If @aspectMask@+-- contains+-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_COLOR_BIT', it+-- /must/ not contain either of+-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_DEPTH_BIT' or+-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_STENCIL_BIT'+--+-- - #VUID-VkImageSubresourceLayers-aspectMask-00168# @aspectMask@ /must/+-- not contain+-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_METADATA_BIT'+--+-- - #VUID-VkImageSubresourceLayers-aspectMask-02247# @aspectMask@ /must/+-- not include @VK_IMAGE_ASPECT_MEMORY_PLANE_i_BIT_EXT@ for any index+-- /i/+--+-- - #VUID-VkImageSubresourceLayers-layerCount-01700# @layerCount@ /must/+-- be greater than 0+--+-- == Valid Usage (Implicit)+--+-- - #VUID-VkImageSubresourceLayers-aspectMask-parameter# @aspectMask@+-- /must/ be a valid combination of+-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.ImageAspectFlagBits' values+--+-- - #VUID-VkImageSubresourceLayers-aspectMask-requiredbitmask#+-- @aspectMask@ /must/ not be @0@+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,+-- 'BufferImageCopy',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.BufferImageCopy2',+-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.ImageAspectFlags', 'ImageBlit',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.ImageBlit2',+-- 'ImageCopy',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.ImageCopy2',+-- 'ImageResolve',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.ImageResolve2'+data ImageSubresourceLayers = ImageSubresourceLayers+ { -- | @aspectMask@ is a combination of+ -- 'Vulkan.Core10.Enums.ImageAspectFlagBits.ImageAspectFlagBits', selecting+ -- the color, depth and\/or stencil aspects to be copied.+ aspectMask :: ImageAspectFlags+ , -- | @mipLevel@ is the mipmap level to copy+ mipLevel :: Word32+ , -- | @baseArrayLayer@ and @layerCount@ are the starting layer and number of+ -- layers to copy.+ baseArrayLayer :: Word32+ , -- No documentation found for Nested "VkImageSubresourceLayers" "layerCount"+ layerCount :: Word32+ }+ deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (ImageSubresourceLayers)+#endif+deriving instance Show ImageSubresourceLayers++instance ToCStruct ImageSubresourceLayers where+ withCStruct x f = allocaBytes 16 $ \p -> pokeCStruct p x (f p)+ pokeCStruct p ImageSubresourceLayers{..} f = do+ poke ((p `plusPtr` 0 :: Ptr ImageAspectFlags)) (aspectMask)+ poke ((p `plusPtr` 4 :: Ptr Word32)) (mipLevel)+ poke ((p `plusPtr` 8 :: Ptr Word32)) (baseArrayLayer)+ poke ((p `plusPtr` 12 :: Ptr Word32)) (layerCount)+ f+ cStructSize = 16+ cStructAlignment = 4+ pokeZeroCStruct p f = do+ poke ((p `plusPtr` 0 :: Ptr ImageAspectFlags)) (zero)+ poke ((p `plusPtr` 4 :: Ptr Word32)) (zero)+ poke ((p `plusPtr` 8 :: Ptr Word32)) (zero)+ poke ((p `plusPtr` 12 :: Ptr Word32)) (zero)+ f++instance FromCStruct ImageSubresourceLayers where+ peekCStruct p = do+ aspectMask <- peek @ImageAspectFlags ((p `plusPtr` 0 :: Ptr ImageAspectFlags))+ mipLevel <- peek @Word32 ((p `plusPtr` 4 :: Ptr Word32))+ baseArrayLayer <- peek @Word32 ((p `plusPtr` 8 :: Ptr Word32))+ layerCount <- peek @Word32 ((p `plusPtr` 12 :: Ptr Word32))+ pure $ ImageSubresourceLayers+ aspectMask mipLevel baseArrayLayer layerCount++instance Storable ImageSubresourceLayers where+ sizeOf ~_ = 16+ alignment ~_ = 4+ peek = peekCStruct+ poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero ImageSubresourceLayers where+ zero = ImageSubresourceLayers+ zero+ zero+ zero+ zero+++-- | VkBufferCopy - Structure specifying a buffer copy operation+--+-- == Valid Usage+--+-- - #VUID-VkBufferCopy-size-01988# The @size@ /must/ be greater than @0@+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,+-- 'Vulkan.Core10.FundamentalTypes.DeviceSize', 'cmdCopyBuffer'+data BufferCopy = BufferCopy+ { -- | @srcOffset@ is the starting offset in bytes from the start of+ -- @srcBuffer@.+ srcOffset :: DeviceSize+ , -- | @dstOffset@ is the starting offset in bytes from the start of+ -- @dstBuffer@.+ dstOffset :: DeviceSize+ , -- | @size@ is the number of bytes to copy.+ size :: DeviceSize+ }+ deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (BufferCopy)+#endif+deriving instance Show BufferCopy++instance ToCStruct BufferCopy where+ withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)+ pokeCStruct p BufferCopy{..} f = do+ poke ((p `plusPtr` 0 :: Ptr DeviceSize)) (srcOffset)+ poke ((p `plusPtr` 8 :: Ptr DeviceSize)) (dstOffset)+ poke ((p `plusPtr` 16 :: Ptr DeviceSize)) (size)+ f+ cStructSize = 24+ cStructAlignment = 8+ pokeZeroCStruct p f = do+ poke ((p `plusPtr` 0 :: Ptr DeviceSize)) (zero)+ poke ((p `plusPtr` 8 :: Ptr DeviceSize)) (zero)+ poke ((p `plusPtr` 16 :: Ptr DeviceSize)) (zero)+ f++instance FromCStruct BufferCopy where+ peekCStruct p = do+ srcOffset <- peek @DeviceSize ((p `plusPtr` 0 :: Ptr DeviceSize))+ dstOffset <- peek @DeviceSize ((p `plusPtr` 8 :: Ptr DeviceSize))+ size <- peek @DeviceSize ((p `plusPtr` 16 :: Ptr DeviceSize))+ pure $ BufferCopy+ srcOffset dstOffset size++instance Storable BufferCopy where+ sizeOf ~_ = 24+ alignment ~_ = 8+ peek = peekCStruct+ poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero BufferCopy where+ zero = BufferCopy+ zero+ zero+ zero+++-- | VkImageCopy - Structure specifying an image copy operation+--+-- = Description+--+-- For 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_3D' images, copies are+-- performed slice by slice starting with the @z@ member of the @srcOffset@+-- or @dstOffset@, and copying @depth@ slices. For images with multiple+-- layers, copies are performed layer by layer starting with the+-- @baseArrayLayer@ member of the @srcSubresource@ or @dstSubresource@ and+-- copying @layerCount@ layers. Image data /can/ be copied between images+-- with different image types. If one image is+-- 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_3D' and the other image is+-- 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D' with multiple layers, then+-- each slice is copied to or from a different layer; @depth@ slices in the+-- 3D image correspond to @layerCount@ layers in the 2D image, with an+-- effective @depth@ of @1@ used for the 2D image.+--+-- Copies involving a+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar image format>+-- specify the region to be copied in terms of the /plane/ to be copied,+-- not the coordinates of the multi-planar image. This means that copies+-- accessing the R\/B planes of “@_422@” format images /must/ fit the+-- copied region within half the @width@ of the parent image, and that+-- copies accessing the R\/B planes of “@_420@” format images /must/ fit+-- the copied region within half the @width@ and @height@ of the parent+-- image.+--+-- == Valid Usage+--+-- - #VUID-VkImageCopy-extent-00140# The number of slices of the @extent@+-- (for 3D) or layers of the @srcSubresource@ (for non-3D) /must/ match+-- the number of slices of the @extent@ (for 3D) or layers of the+-- @dstSubresource@ (for non-3D)+--+-- - #VUID-VkImageCopy-extent-06668# @extent.width@ /must/ not be 0+--+-- - #VUID-VkImageCopy-extent-06669# @extent.height@ /must/ not be 0+--+-- - #VUID-VkImageCopy-extent-06670# @extent.depth@ /must/ not be 0+--+-- == Valid Usage (Implicit)+--+-- - #VUID-VkImageCopy-srcSubresource-parameter# @srcSubresource@ /must/+-- be a valid 'ImageSubresourceLayers' structure+--+-- - #VUID-VkImageCopy-dstSubresource-parameter# @dstSubresource@ /must/+-- be a valid 'ImageSubresourceLayers' structure+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,+-- 'Vulkan.Core10.FundamentalTypes.Extent3D', 'ImageSubresourceLayers',+-- 'Vulkan.Core10.FundamentalTypes.Offset3D', 'cmdCopyImage'+data ImageCopy = ImageCopy+ { -- | @srcSubresource@ and @dstSubresource@ are 'ImageSubresourceLayers'+ -- structures specifying the image subresources of the images used for the+ -- source and destination image data, respectively.+ srcSubresource :: ImageSubresourceLayers+ , -- | @srcOffset@ and @dstOffset@ select the initial @x@, @y@, and @z@ offsets+ -- in texels of the sub-regions of the source and destination image data.+ srcOffset :: Offset3D+ , -- No documentation found for Nested "VkImageCopy" "dstSubresource"+ dstSubresource :: ImageSubresourceLayers+ , -- No documentation found for Nested "VkImageCopy" "dstOffset"+ dstOffset :: Offset3D+ , -- | @extent@ is the size in texels of the image to copy in @width@, @height@+ -- and @depth@.+ extent :: Extent3D+ }+ deriving (Typeable)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (ImageCopy)+#endif+deriving instance Show ImageCopy++instance ToCStruct ImageCopy where+ withCStruct x f = allocaBytes 68 $ \p -> pokeCStruct p x (f p)+ pokeCStruct p ImageCopy{..} f = do+ poke ((p `plusPtr` 0 :: Ptr ImageSubresourceLayers)) (srcSubresource)+ poke ((p `plusPtr` 16 :: Ptr Offset3D)) (srcOffset)+ poke ((p `plusPtr` 28 :: Ptr ImageSubresourceLayers)) (dstSubresource)+ poke ((p `plusPtr` 44 :: Ptr Offset3D)) (dstOffset)+ poke ((p `plusPtr` 56 :: Ptr Extent3D)) (extent)+ f+ cStructSize = 68+ cStructAlignment = 4+ pokeZeroCStruct p f = do+ poke ((p `plusPtr` 0 :: Ptr ImageSubresourceLayers)) (zero)+ poke ((p `plusPtr` 16 :: Ptr Offset3D)) (zero)+ poke ((p `plusPtr` 28 :: Ptr ImageSubresourceLayers)) (zero)+ poke ((p `plusPtr` 44 :: Ptr Offset3D)) (zero)+ poke ((p `plusPtr` 56 :: Ptr Extent3D)) (zero)+ f++instance FromCStruct ImageCopy where+ peekCStruct p = do+ srcSubresource <- peekCStruct @ImageSubresourceLayers ((p `plusPtr` 0 :: Ptr ImageSubresourceLayers))+ srcOffset <- peekCStruct @Offset3D ((p `plusPtr` 16 :: Ptr Offset3D))+ dstSubresource <- peekCStruct @ImageSubresourceLayers ((p `plusPtr` 28 :: Ptr ImageSubresourceLayers))+ dstOffset <- peekCStruct @Offset3D ((p `plusPtr` 44 :: Ptr Offset3D))+ extent <- peekCStruct @Extent3D ((p `plusPtr` 56 :: Ptr Extent3D))+ pure $ ImageCopy+ srcSubresource srcOffset dstSubresource dstOffset extent++instance Storable ImageCopy where+ sizeOf ~_ = 68+ alignment ~_ = 4+ peek = peekCStruct+ poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero ImageCopy where+ zero = ImageCopy+ zero+ zero+ zero+ zero+ zero+++-- | VkImageBlit - Structure specifying an image blit operation+--+-- = Description+--+-- For each element of the @pRegions@ array, a blit operation is performed+-- for the specified source and destination regions.+--+-- == Valid Usage+--+-- - #VUID-VkImageBlit-aspectMask-00238# The @aspectMask@ member of+-- @srcSubresource@ and @dstSubresource@ /must/ match+--+-- - #VUID-VkImageBlit-layerCount-00239# The @layerCount@ member of+-- @srcSubresource@ and @dstSubresource@ /must/ match+--+-- == Valid Usage (Implicit)+--+-- - #VUID-VkImageBlit-srcSubresource-parameter# @srcSubresource@ /must/+-- be a valid 'ImageSubresourceLayers' structure+--+-- - #VUID-VkImageBlit-dstSubresource-parameter# @dstSubresource@ /must/+-- be a valid 'ImageSubresourceLayers' structure+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,+-- 'ImageSubresourceLayers', 'Vulkan.Core10.FundamentalTypes.Offset3D',+-- 'cmdBlitImage'+data ImageBlit = ImageBlit+ { -- | @srcSubresource@ is the subresource to blit from.+ srcSubresource :: ImageSubresourceLayers+ , -- | @srcOffsets@ is a pointer to an array of two+ -- 'Vulkan.Core10.FundamentalTypes.Offset3D' structures specifying the+ -- bounds of the source region within @srcSubresource@.+ srcOffsets :: (Offset3D, Offset3D)+ , -- | @dstSubresource@ is the subresource to blit into.+ dstSubresource :: ImageSubresourceLayers+ , -- | @dstOffsets@ is a pointer to an array of two+ -- 'Vulkan.Core10.FundamentalTypes.Offset3D' structures specifying the+ -- bounds of the destination region within @dstSubresource@.+ dstOffsets :: (Offset3D, Offset3D)+ }+ deriving (Typeable)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (ImageBlit)+#endif+deriving instance Show ImageBlit++instance ToCStruct ImageBlit where+ withCStruct x f = allocaBytes 80 $ \p -> pokeCStruct p x (f p)+ pokeCStruct p ImageBlit{..} f = do+ poke ((p `plusPtr` 0 :: Ptr ImageSubresourceLayers)) (srcSubresource)+ let pSrcOffsets' = lowerArrayPtr ((p `plusPtr` 16 :: Ptr (FixedArray 2 Offset3D)))+ case (srcOffsets) of+ (e0, e1) -> do+ poke (pSrcOffsets' :: Ptr Offset3D) (e0)+ poke (pSrcOffsets' `plusPtr` 12 :: Ptr Offset3D) (e1)+ poke ((p `plusPtr` 40 :: Ptr ImageSubresourceLayers)) (dstSubresource)+ let pDstOffsets' = lowerArrayPtr ((p `plusPtr` 56 :: Ptr (FixedArray 2 Offset3D)))+ case (dstOffsets) of+ (e0, e1) -> do+ poke (pDstOffsets' :: Ptr Offset3D) (e0)+ poke (pDstOffsets' `plusPtr` 12 :: Ptr Offset3D) (e1)+ f+ cStructSize = 80+ cStructAlignment = 4+ pokeZeroCStruct p f = do+ poke ((p `plusPtr` 0 :: Ptr ImageSubresourceLayers)) (zero)+ let pSrcOffsets' = lowerArrayPtr ((p `plusPtr` 16 :: Ptr (FixedArray 2 Offset3D)))+ case ((zero, zero)) of+ (e0, e1) -> do+ poke (pSrcOffsets' :: Ptr Offset3D) (e0)+ poke (pSrcOffsets' `plusPtr` 12 :: Ptr Offset3D) (e1)+ poke ((p `plusPtr` 40 :: Ptr ImageSubresourceLayers)) (zero)+ let pDstOffsets' = lowerArrayPtr ((p `plusPtr` 56 :: Ptr (FixedArray 2 Offset3D)))+ case ((zero, zero)) of+ (e0, e1) -> do+ poke (pDstOffsets' :: Ptr Offset3D) (e0)+ poke (pDstOffsets' `plusPtr` 12 :: Ptr Offset3D) (e1)+ f++instance FromCStruct ImageBlit where+ peekCStruct p = do+ srcSubresource <- peekCStruct @ImageSubresourceLayers ((p `plusPtr` 0 :: Ptr ImageSubresourceLayers))+ let psrcOffsets = lowerArrayPtr @Offset3D ((p `plusPtr` 16 :: Ptr (FixedArray 2 Offset3D)))+ srcOffsets0 <- peekCStruct @Offset3D ((psrcOffsets `advancePtrBytes` 0 :: Ptr Offset3D))+ srcOffsets1 <- peekCStruct @Offset3D ((psrcOffsets `advancePtrBytes` 12 :: Ptr Offset3D))+ dstSubresource <- peekCStruct @ImageSubresourceLayers ((p `plusPtr` 40 :: Ptr ImageSubresourceLayers))+ let pdstOffsets = lowerArrayPtr @Offset3D ((p `plusPtr` 56 :: Ptr (FixedArray 2 Offset3D)))+ dstOffsets0 <- peekCStruct @Offset3D ((pdstOffsets `advancePtrBytes` 0 :: Ptr Offset3D))+ dstOffsets1 <- peekCStruct @Offset3D ((pdstOffsets `advancePtrBytes` 12 :: Ptr Offset3D))+ pure $ ImageBlit+ srcSubresource ((srcOffsets0, srcOffsets1)) dstSubresource ((dstOffsets0, dstOffsets1))++instance Storable ImageBlit where+ sizeOf ~_ = 80+ alignment ~_ = 4+ peek = peekCStruct+ poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero ImageBlit where+ zero = ImageBlit+ zero+ (zero, zero)+ zero+ (zero, zero)+++-- | VkBufferImageCopy - Structure specifying a buffer image copy operation+--+-- = Description+--+-- When copying to or from a depth or stencil aspect, the data in buffer+-- memory uses a layout that is a (mostly) tightly packed representation of+-- the depth or stencil data. Specifically:+--+-- - data copied to or from the stencil aspect of any depth\/stencil+-- format is tightly packed with one+-- 'Vulkan.Core10.Enums.Format.FORMAT_S8_UINT' value per texel.+--+-- - data copied to or from the depth aspect of a+-- 'Vulkan.Core10.Enums.Format.FORMAT_D16_UNORM' or+-- 'Vulkan.Core10.Enums.Format.FORMAT_D16_UNORM_S8_UINT' format is+-- tightly packed with one+-- 'Vulkan.Core10.Enums.Format.FORMAT_D16_UNORM' value per texel.+--+-- - data copied to or from the depth aspect of a+-- 'Vulkan.Core10.Enums.Format.FORMAT_D32_SFLOAT' or+-- 'Vulkan.Core10.Enums.Format.FORMAT_D32_SFLOAT_S8_UINT' format is+-- tightly packed with one+-- 'Vulkan.Core10.Enums.Format.FORMAT_D32_SFLOAT' value per texel.+--+-- - data copied to or from the depth aspect of a+-- 'Vulkan.Core10.Enums.Format.FORMAT_X8_D24_UNORM_PACK32' or+-- 'Vulkan.Core10.Enums.Format.FORMAT_D24_UNORM_S8_UINT' format is+-- packed with one 32-bit word per texel with the D24 value in the LSBs+-- of the word, and undefined values in the eight MSBs.+--+-- Note+--+-- To copy both the depth and stencil aspects of a depth\/stencil format,+-- two entries in @pRegions@ /can/ be used, where one specifies the depth+-- aspect in @imageSubresource@, and the other specifies the stencil+-- aspect.+--+-- Because depth or stencil aspect buffer to image copies /may/ require+-- format conversions on some implementations, they are not supported on+-- queues that do not support graphics.+--+-- When copying to a depth aspect, and the+-- @VK_EXT_depth_range_unrestricted@ extension is not enabled, the data in+-- buffer memory /must/ be in the range [0,1], or the resulting values are+-- undefined.+--+-- Copies are done layer by layer starting with image layer+-- @baseArrayLayer@ member of @imageSubresource@. @layerCount@ layers are+-- copied from the source image or to the destination image.+--+-- For purpose of valid usage statements here and in related copy commands,+-- a /blocked image/ is defined as:+--+-- - an image with a /single-plane/, “@_422@” format, which is treated as+-- a format with a 2 × 1 compressed texel block, or+--+-- - a compressed image.+--+-- == Valid Usage+--+-- - #VUID-VkBufferImageCopy-bufferRowLength-00195# @bufferRowLength@+-- /must/ be @0@, or greater than or equal to the @width@ member of+-- @imageExtent@+--+-- - #VUID-VkBufferImageCopy-bufferImageHeight-00196# @bufferImageHeight@+-- /must/ be @0@, or greater than or equal to the @height@ member of+-- @imageExtent@+--+-- - #VUID-VkBufferImageCopy-aspectMask-00212# The @aspectMask@ member of+-- @imageSubresource@ /must/ only have a single bit set+--+-- - #VUID-VkBufferImageCopy-imageExtent-06659# @imageExtent.width@+-- /must/ not be 0+--+-- - #VUID-VkBufferImageCopy-imageExtent-06660# @imageExtent.height@+-- /must/ not be 0+--+-- - #VUID-VkBufferImageCopy-imageExtent-06661# @imageExtent.depth@+-- /must/ not be 0+--+-- == Valid Usage (Implicit)+--+-- - #VUID-VkBufferImageCopy-imageSubresource-parameter#+-- @imageSubresource@ /must/ be a valid 'ImageSubresourceLayers'+-- structure+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,+-- 'Vulkan.Core10.FundamentalTypes.DeviceSize',+-- 'Vulkan.Core10.FundamentalTypes.Extent3D', 'ImageSubresourceLayers',+-- 'Vulkan.Core10.FundamentalTypes.Offset3D', 'cmdCopyBufferToImage',+-- 'cmdCopyImageToBuffer'+data BufferImageCopy = BufferImageCopy+ { -- | @bufferOffset@ is the offset in bytes from the start of the buffer+ -- object where the image data is copied from or to.+ bufferOffset :: DeviceSize+ , -- | @bufferRowLength@ and @bufferImageHeight@ specify in texels a subregion+ -- of a larger two- or three-dimensional image in buffer memory, and+ -- control the addressing calculations. If either of these values is zero,+ -- that aspect of the buffer memory is considered to be tightly packed+ -- according to the @imageExtent@.+ bufferRowLength :: Word32+ , -- No documentation found for Nested "VkBufferImageCopy" "bufferImageHeight"+ bufferImageHeight :: Word32+ , -- | @imageSubresource@ is a 'ImageSubresourceLayers' used to specify the+ -- specific image subresources of the image used for the source or+ -- destination image data.+ imageSubresource :: ImageSubresourceLayers+ , -- | @imageOffset@ selects the initial @x@, @y@, @z@ offsets in texels of the+ -- sub-region of the source or destination image data.+ imageOffset :: Offset3D+ , -- | @imageExtent@ is the size in texels of the image to copy in @width@,+ -- @height@ and @depth@.+ imageExtent :: Extent3D+ }+ deriving (Typeable)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (BufferImageCopy)+#endif+deriving instance Show BufferImageCopy++instance ToCStruct BufferImageCopy where+ withCStruct x f = allocaBytes 56 $ \p -> pokeCStruct p x (f p)+ pokeCStruct p BufferImageCopy{..} f = do+ poke ((p `plusPtr` 0 :: Ptr DeviceSize)) (bufferOffset)+ poke ((p `plusPtr` 8 :: Ptr Word32)) (bufferRowLength)+ poke ((p `plusPtr` 12 :: Ptr Word32)) (bufferImageHeight)+ poke ((p `plusPtr` 16 :: Ptr ImageSubresourceLayers)) (imageSubresource)+ poke ((p `plusPtr` 32 :: Ptr Offset3D)) (imageOffset)+ poke ((p `plusPtr` 44 :: Ptr Extent3D)) (imageExtent)+ f+ cStructSize = 56+ cStructAlignment = 8+ pokeZeroCStruct p f = do+ poke ((p `plusPtr` 0 :: Ptr DeviceSize)) (zero)+ poke ((p `plusPtr` 8 :: Ptr Word32)) (zero)+ poke ((p `plusPtr` 12 :: Ptr Word32)) (zero)+ poke ((p `plusPtr` 16 :: Ptr ImageSubresourceLayers)) (zero)+ poke ((p `plusPtr` 32 :: Ptr Offset3D)) (zero)+ poke ((p `plusPtr` 44 :: Ptr Extent3D)) (zero)+ f++instance FromCStruct BufferImageCopy where+ peekCStruct p = do+ bufferOffset <- peek @DeviceSize ((p `plusPtr` 0 :: Ptr DeviceSize))+ bufferRowLength <- peek @Word32 ((p `plusPtr` 8 :: Ptr Word32))+ bufferImageHeight <- peek @Word32 ((p `plusPtr` 12 :: Ptr Word32))+ imageSubresource <- peekCStruct @ImageSubresourceLayers ((p `plusPtr` 16 :: Ptr ImageSubresourceLayers))+ imageOffset <- peekCStruct @Offset3D ((p `plusPtr` 32 :: Ptr Offset3D))+ imageExtent <- peekCStruct @Extent3D ((p `plusPtr` 44 :: Ptr Extent3D))+ pure $ BufferImageCopy+ bufferOffset bufferRowLength bufferImageHeight imageSubresource imageOffset imageExtent++instance Storable BufferImageCopy where+ sizeOf ~_ = 56+ alignment ~_ = 8+ peek = peekCStruct+ poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero BufferImageCopy where+ zero = BufferImageCopy+ zero+ zero+ zero+ zero+ zero+ zero+++-- | VkImageResolve - Structure specifying an image resolve operation+--+-- == Valid Usage+--+-- - #VUID-VkImageResolve-aspectMask-00266# The @aspectMask@ member of+-- @srcSubresource@ and @dstSubresource@ /must/ only contain+-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_COLOR_BIT'+--+-- - #VUID-VkImageResolve-layerCount-00267# The @layerCount@ member of+-- @srcSubresource@ and @dstSubresource@ /must/ match+--+-- == Valid Usage (Implicit)+--+-- - #VUID-VkImageResolve-srcSubresource-parameter# @srcSubresource@+-- /must/ be a valid 'ImageSubresourceLayers' structure+--+-- - #VUID-VkImageResolve-dstSubresource-parameter# @dstSubresource@+-- /must/ be a valid 'ImageSubresourceLayers' structure+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,+-- 'Vulkan.Core10.FundamentalTypes.Extent3D', 'ImageSubresourceLayers',+-- 'Vulkan.Core10.FundamentalTypes.Offset3D', 'cmdResolveImage'+data ImageResolve = ImageResolve+ { -- | @srcSubresource@ and @dstSubresource@ are 'ImageSubresourceLayers'+ -- structures specifying the image subresources of the images used for the+ -- source and destination image data, respectively. Resolve of+ -- depth\/stencil images is not supported.+ srcSubresource :: ImageSubresourceLayers+ , -- | @srcOffset@ and @dstOffset@ select the initial @x@, @y@, and @z@ offsets+ -- in texels of the sub-regions of the source and destination image data.+ srcOffset :: Offset3D+ , -- No documentation found for Nested "VkImageResolve" "dstSubresource"+ dstSubresource :: ImageSubresourceLayers+ , -- No documentation found for Nested "VkImageResolve" "dstOffset"+ dstOffset :: Offset3D+ , -- | @extent@ is the size in texels of the source image to resolve in+ -- @width@, @height@ and @depth@.+ extent :: Extent3D+ }+ deriving (Typeable)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (ImageResolve)+#endif+deriving instance Show ImageResolve++instance ToCStruct ImageResolve where+ withCStruct x f = allocaBytes 68 $ \p -> pokeCStruct p x (f p)+ pokeCStruct p ImageResolve{..} f = do+ poke ((p `plusPtr` 0 :: Ptr ImageSubresourceLayers)) (srcSubresource)+ poke ((p `plusPtr` 16 :: Ptr Offset3D)) (srcOffset)+ poke ((p `plusPtr` 28 :: Ptr ImageSubresourceLayers)) (dstSubresource)+ poke ((p `plusPtr` 44 :: Ptr Offset3D)) (dstOffset)+ poke ((p `plusPtr` 56 :: Ptr Extent3D)) (extent)+ f+ cStructSize = 68+ cStructAlignment = 4+ pokeZeroCStruct p f = do+ poke ((p `plusPtr` 0 :: Ptr ImageSubresourceLayers)) (zero)+ poke ((p `plusPtr` 16 :: Ptr Offset3D)) (zero)+ poke ((p `plusPtr` 28 :: Ptr ImageSubresourceLayers)) (zero)+ poke ((p `plusPtr` 44 :: Ptr Offset3D)) (zero)+ poke ((p `plusPtr` 56 :: Ptr Extent3D)) (zero)+ f++instance FromCStruct ImageResolve where+ peekCStruct p = do+ srcSubresource <- peekCStruct @ImageSubresourceLayers ((p `plusPtr` 0 :: Ptr ImageSubresourceLayers))+ srcOffset <- peekCStruct @Offset3D ((p `plusPtr` 16 :: Ptr Offset3D))+ dstSubresource <- peekCStruct @ImageSubresourceLayers ((p `plusPtr` 28 :: Ptr ImageSubresourceLayers))+ dstOffset <- peekCStruct @Offset3D ((p `plusPtr` 44 :: Ptr Offset3D))+ extent <- peekCStruct @Extent3D ((p `plusPtr` 56 :: Ptr Extent3D))+ pure $ ImageResolve+ srcSubresource srcOffset dstSubresource dstOffset extent++instance Storable ImageResolve where+ sizeOf ~_ = 68+ alignment ~_ = 4+ peek = peekCStruct+ poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero ImageResolve where+ zero = ImageResolve+ zero+ zero+ zero+ zero+ zero+++-- | VkRenderPassBeginInfo - Structure specifying render pass begin+-- information+--+-- = Description+--+-- @renderArea@ is the render area that is affected by the render pass+-- instance. The effects of attachment load, store and multisample resolve+-- operations are restricted to the pixels whose x and y coordinates fall+-- within the render area on all attachments. The render area extends to+-- all layers of @framebuffer@. The application /must/ ensure (using+-- scissor if necessary) that all rendering is contained within the render+-- area. The render area, after any transform specified by+-- 'Vulkan.Extensions.VK_QCOM_render_pass_transform.RenderPassTransformBeginInfoQCOM'::@transform@+-- is applied, /must/ be contained within the framebuffer dimensions.+--+-- If+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#vertexpostproc-renderpass-transform render pass transform>+-- is enabled, then @renderArea@ /must/ equal the framebuffer+-- pre-transformed dimensions. After @renderArea@ has been transformed by+-- 'Vulkan.Extensions.VK_QCOM_render_pass_transform.RenderPassTransformBeginInfoQCOM'::@transform@,+-- the resulting render area /must/ be equal to the framebuffer dimensions.+--+-- If the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-subpassShading subpassShading>+-- feature is enabled, then @renderArea@ /must/ equal the framebuffer+-- dimensions.+--+-- When multiview is enabled, the resolve operation at the end of a subpass+-- applies to all views in the view mask.+--+-- Note+--+-- There /may/ be a performance cost for using a render area smaller than+-- the framebuffer, unless it matches the render area granularity for the+-- render pass.+--+-- == Valid Usage+--+-- - #VUID-VkRenderPassBeginInfo-clearValueCount-00902# @clearValueCount@+-- /must/ be greater than the largest attachment index in @renderPass@+-- specifying a @loadOp@ (or @stencilLoadOp@, if the attachment has a+-- depth\/stencil format) of+-- 'Vulkan.Core10.Enums.AttachmentLoadOp.ATTACHMENT_LOAD_OP_CLEAR'+--+-- - #VUID-VkRenderPassBeginInfo-clearValueCount-04962# If+-- @clearValueCount@ is not @0@, @pClearValues@ /must/ be a valid+-- pointer to an array of @clearValueCount@ 'ClearValue' unions+--+-- - #VUID-VkRenderPassBeginInfo-renderPass-00904# @renderPass@ /must/ be+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-compatibility compatible>+-- with the @renderPass@ member of the+-- 'Vulkan.Core10.Pass.FramebufferCreateInfo' structure specified when+-- creating @framebuffer@+--+-- - #VUID-VkRenderPassBeginInfo-pNext-02850# If the @pNext@ chain does+-- not contain+-- 'Vulkan.Core11.Promoted_From_VK_KHR_device_group.DeviceGroupRenderPassBeginInfo'+-- or its @deviceRenderAreaCount@ member is equal to 0,+-- @renderArea.offset.x@ /must/ be greater than or equal to 0+--+-- - #VUID-VkRenderPassBeginInfo-pNext-02851# If the @pNext@ chain does+-- not contain+-- 'Vulkan.Core11.Promoted_From_VK_KHR_device_group.DeviceGroupRenderPassBeginInfo'+-- or its @deviceRenderAreaCount@ member is equal to 0,+-- @renderArea.offset.y@ /must/ be greater than or equal to 0+--+-- - #VUID-VkRenderPassBeginInfo-pNext-02852# If the @pNext@ chain does+-- not contain+-- 'Vulkan.Core11.Promoted_From_VK_KHR_device_group.DeviceGroupRenderPassBeginInfo'+-- or its @deviceRenderAreaCount@ member is equal to 0,+-- @renderArea.offset.x@ + @renderArea.extent.width@ /must/ be less+-- than or equal to 'Vulkan.Core10.Pass.FramebufferCreateInfo'::@width@+-- the @framebuffer@ was created with+--+-- - #VUID-VkRenderPassBeginInfo-pNext-02853# If the @pNext@ chain does+-- not contain+-- 'Vulkan.Core11.Promoted_From_VK_KHR_device_group.DeviceGroupRenderPassBeginInfo'+-- or its @deviceRenderAreaCount@ member is equal to 0,+-- @renderArea.offset.y@ + @renderArea.extent.height@ /must/ be less+-- than or equal to+-- 'Vulkan.Core10.Pass.FramebufferCreateInfo'::@height@ the+-- @framebuffer@ was created with+--+-- - #VUID-VkRenderPassBeginInfo-pNext-02856# If the @pNext@ chain+-- contains+-- 'Vulkan.Core11.Promoted_From_VK_KHR_device_group.DeviceGroupRenderPassBeginInfo',+-- @offset.x@ + @extent.width@ of each element of @pDeviceRenderAreas@+-- /must/ be less than or equal to+-- 'Vulkan.Core10.Pass.FramebufferCreateInfo'::@width@ the+-- @framebuffer@ was created with+--+-- - #VUID-VkRenderPassBeginInfo-pNext-02857# If the @pNext@ chain+-- contains+-- 'Vulkan.Core11.Promoted_From_VK_KHR_device_group.DeviceGroupRenderPassBeginInfo',+-- @offset.y@ + @extent.height@ of each element of @pDeviceRenderAreas@+-- /must/ be less than or equal to+-- 'Vulkan.Core10.Pass.FramebufferCreateInfo'::@height@ the+-- @framebuffer@ was created with+--+-- - #VUID-VkRenderPassBeginInfo-framebuffer-03207# If @framebuffer@ was+-- created with a 'Vulkan.Core10.Pass.FramebufferCreateInfo'::@flags@+-- value that did not include+-- 'Vulkan.Core10.Enums.FramebufferCreateFlagBits.FRAMEBUFFER_CREATE_IMAGELESS_BIT',+-- and the @pNext@ chain includes a+-- 'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.RenderPassAttachmentBeginInfo'+-- structure, its @attachmentCount@ /must/ be zero+--+-- - #VUID-VkRenderPassBeginInfo-framebuffer-03208# If @framebuffer@ was+-- created with a 'Vulkan.Core10.Pass.FramebufferCreateInfo'::@flags@+-- value that included+-- 'Vulkan.Core10.Enums.FramebufferCreateFlagBits.FRAMEBUFFER_CREATE_IMAGELESS_BIT',+-- the @attachmentCount@ of a+-- 'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.RenderPassAttachmentBeginInfo'+-- structure included in the @pNext@ chain /must/ be equal to the value+-- of+-- 'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.FramebufferAttachmentsCreateInfo'::@attachmentImageInfoCount@+-- used to create @framebuffer@+--+-- - #VUID-VkRenderPassBeginInfo-framebuffer-02780# If @framebuffer@ was+-- created with a 'Vulkan.Core10.Pass.FramebufferCreateInfo'::@flags@+-- value that included+-- 'Vulkan.Core10.Enums.FramebufferCreateFlagBits.FRAMEBUFFER_CREATE_IMAGELESS_BIT',+-- each element of the @pAttachments@ member of a+-- 'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.RenderPassAttachmentBeginInfo'+-- structure included in the @pNext@ chain /must/ have been created on+-- the same 'Vulkan.Core10.Handles.Device' as @framebuffer@ and+-- @renderPass@+--+-- - #VUID-VkRenderPassBeginInfo-framebuffer-03209# If @framebuffer@ was+-- created with a 'Vulkan.Core10.Pass.FramebufferCreateInfo'::@flags@+-- value that included+-- 'Vulkan.Core10.Enums.FramebufferCreateFlagBits.FRAMEBUFFER_CREATE_IMAGELESS_BIT',+-- each element of the @pAttachments@ member of a+-- 'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.RenderPassAttachmentBeginInfo'+-- structure included in the @pNext@ chain /must/ be a+-- 'Vulkan.Core10.Handles.ImageView' of an image created with a value+-- of 'Vulkan.Core10.Image.ImageCreateInfo'::@flags@ equal to the+-- @flags@ member of the corresponding element of+-- 'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.FramebufferAttachmentsCreateInfo'::@pAttachmentImageInfos@+-- used to create @framebuffer@+--+-- - #VUID-VkRenderPassBeginInfo-framebuffer-04627# If @framebuffer@ was+-- created with a 'Vulkan.Core10.Pass.FramebufferCreateInfo'::@flags@+-- value that included+-- 'Vulkan.Core10.Enums.FramebufferCreateFlagBits.FRAMEBUFFER_CREATE_IMAGELESS_BIT',+-- each element of the @pAttachments@ member of a+-- 'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.RenderPassAttachmentBeginInfo'+-- structure included in the @pNext@ chain /must/ be a+-- 'Vulkan.Core10.Handles.ImageView' with+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-inherited-usage an inherited usage>+-- equal to the @usage@ member of the corresponding element of+-- 'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.FramebufferAttachmentsCreateInfo'::@pAttachmentImageInfos@+-- used to create @framebuffer@+--+-- - #VUID-VkRenderPassBeginInfo-framebuffer-03211# If @framebuffer@ was+-- created with a 'Vulkan.Core10.Pass.FramebufferCreateInfo'::@flags@+-- value that included+-- 'Vulkan.Core10.Enums.FramebufferCreateFlagBits.FRAMEBUFFER_CREATE_IMAGELESS_BIT',+-- each element of the @pAttachments@ member of a+-- 'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.RenderPassAttachmentBeginInfo'+-- structure included in the @pNext@ chain /must/ be a+-- 'Vulkan.Core10.Handles.ImageView' with a width equal to the @width@+-- member of the corresponding element of+-- 'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.FramebufferAttachmentsCreateInfo'::@pAttachmentImageInfos@+-- used to create @framebuffer@+--+-- - #VUID-VkRenderPassBeginInfo-framebuffer-03212# If @framebuffer@ was+-- created with a 'Vulkan.Core10.Pass.FramebufferCreateInfo'::@flags@+-- value that included+-- 'Vulkan.Core10.Enums.FramebufferCreateFlagBits.FRAMEBUFFER_CREATE_IMAGELESS_BIT',+-- each element of the @pAttachments@ member of a+-- 'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.RenderPassAttachmentBeginInfo'+-- structure included in the @pNext@ chain /must/ be a+-- 'Vulkan.Core10.Handles.ImageView' with a height equal to the+-- @height@ member of the corresponding element of+-- 'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.FramebufferAttachmentsCreateInfo'::@pAttachmentImageInfos@+-- used to create @framebuffer@+--+-- - #VUID-VkRenderPassBeginInfo-framebuffer-03213# If @framebuffer@ was+-- created with a 'Vulkan.Core10.Pass.FramebufferCreateInfo'::@flags@+-- value that included+-- 'Vulkan.Core10.Enums.FramebufferCreateFlagBits.FRAMEBUFFER_CREATE_IMAGELESS_BIT',+-- each element of the @pAttachments@ member of a+-- 'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.RenderPassAttachmentBeginInfo'+-- structure included in the @pNext@ chain /must/ be a+-- 'Vulkan.Core10.Handles.ImageView' of an image created with a value+-- of+-- 'Vulkan.Core10.ImageView.ImageViewCreateInfo'::@subresourceRange.layerCount@+-- equal to the @layerCount@ member of the corresponding element of+-- 'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.FramebufferAttachmentsCreateInfo'::@pAttachmentImageInfos@+-- used to create @framebuffer@+--+-- - #VUID-VkRenderPassBeginInfo-framebuffer-03214# If @framebuffer@ was+-- created with a 'Vulkan.Core10.Pass.FramebufferCreateInfo'::@flags@+-- value that included+-- 'Vulkan.Core10.Enums.FramebufferCreateFlagBits.FRAMEBUFFER_CREATE_IMAGELESS_BIT',+-- each element of the @pAttachments@ member of a+-- 'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.RenderPassAttachmentBeginInfo'+-- structure included in the @pNext@ chain /must/ be a+-- 'Vulkan.Core10.Handles.ImageView' of an image created with a value+-- of+-- 'Vulkan.Core12.Promoted_From_VK_KHR_image_format_list.ImageFormatListCreateInfo'::@viewFormatCount@+-- equal to the @viewFormatCount@ member of the corresponding element+-- of+-- 'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.FramebufferAttachmentsCreateInfo'::@pAttachmentImageInfos@+-- used to create @framebuffer@+--+-- - #VUID-VkRenderPassBeginInfo-framebuffer-03215# If @framebuffer@ was+-- created with a 'Vulkan.Core10.Pass.FramebufferCreateInfo'::@flags@+-- value that included+-- 'Vulkan.Core10.Enums.FramebufferCreateFlagBits.FRAMEBUFFER_CREATE_IMAGELESS_BIT',+-- each element of the @pAttachments@ member of a+-- 'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.RenderPassAttachmentBeginInfo'+-- structure included in the @pNext@ chain /must/ be a+-- 'Vulkan.Core10.Handles.ImageView' of an image created with a set of+-- elements in+-- 'Vulkan.Core12.Promoted_From_VK_KHR_image_format_list.ImageFormatListCreateInfo'::@pViewFormats@+-- equal to the set of elements in the @pViewFormats@ member of the+-- corresponding element of+-- 'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.FramebufferAttachmentsCreateInfo'::@pAttachmentImageInfos@+-- used to create @framebuffer@+--+-- - #VUID-VkRenderPassBeginInfo-framebuffer-03216# If @framebuffer@ was+-- created with a 'Vulkan.Core10.Pass.FramebufferCreateInfo'::@flags@+-- value that included+-- 'Vulkan.Core10.Enums.FramebufferCreateFlagBits.FRAMEBUFFER_CREATE_IMAGELESS_BIT',+-- each element of the @pAttachments@ member of a+-- 'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.RenderPassAttachmentBeginInfo'+-- structure included in the @pNext@ chain /must/ be a+-- 'Vulkan.Core10.Handles.ImageView' of an image created with a value+-- of 'Vulkan.Core10.ImageView.ImageViewCreateInfo'::@format@ equal to+-- the corresponding value of+-- 'Vulkan.Core10.Pass.AttachmentDescription'::@format@ in @renderPass@+--+-- - #VUID-VkRenderPassBeginInfo-framebuffer-03217# If @framebuffer@ was+-- created with a 'Vulkan.Core10.Pass.FramebufferCreateInfo'::@flags@+-- value that included+-- 'Vulkan.Core10.Enums.FramebufferCreateFlagBits.FRAMEBUFFER_CREATE_IMAGELESS_BIT',+-- each element of the @pAttachments@ member of a+-- 'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.RenderPassAttachmentBeginInfo'+-- structure included in the @pNext@ chain /must/ be a+-- 'Vulkan.Core10.Handles.ImageView' of an image created with a value+-- of 'Vulkan.Core10.Image.ImageCreateInfo'::@samples@ equal to the+-- corresponding value of+-- 'Vulkan.Core10.Pass.AttachmentDescription'::@samples@ in+-- @renderPass@+--+-- - #VUID-VkRenderPassBeginInfo-pNext-02869# If the @pNext@ chain+-- includes+-- 'Vulkan.Extensions.VK_QCOM_render_pass_transform.RenderPassTransformBeginInfoQCOM',+-- @renderArea.offset@ /must/ equal (0,0)+--+-- - #VUID-VkRenderPassBeginInfo-pNext-02870# If the @pNext@ chain+-- includes+-- 'Vulkan.Extensions.VK_QCOM_render_pass_transform.RenderPassTransformBeginInfoQCOM',+-- @renderArea.extent@ transformed by+-- 'Vulkan.Extensions.VK_QCOM_render_pass_transform.RenderPassTransformBeginInfoQCOM'::@transform@+-- /must/ equal the @framebuffer@ dimensions+--+-- == Valid Usage (Implicit)+--+-- - #VUID-VkRenderPassBeginInfo-sType-sType# @sType@ /must/ be+-- 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO'+--+-- - #VUID-VkRenderPassBeginInfo-pNext-pNext# Each @pNext@ member of any+-- structure (including this one) in the @pNext@ chain /must/ be either+-- @NULL@ or a pointer to a valid instance of+-- 'Vulkan.Core11.Promoted_From_VK_KHR_device_group.DeviceGroupRenderPassBeginInfo',+-- 'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.RenderPassAttachmentBeginInfo',+-- 'Vulkan.Extensions.VK_EXT_sample_locations.RenderPassSampleLocationsBeginInfoEXT',+-- or+-- 'Vulkan.Extensions.VK_QCOM_render_pass_transform.RenderPassTransformBeginInfoQCOM'+--+-- - #VUID-VkRenderPassBeginInfo-sType-unique# The @sType@ value of each+-- struct in the @pNext@ chain /must/ be unique+--+-- - #VUID-VkRenderPassBeginInfo-renderPass-parameter# @renderPass@+-- /must/ be a valid 'Vulkan.Core10.Handles.RenderPass' handle+--+-- - #VUID-VkRenderPassBeginInfo-framebuffer-parameter# @framebuffer@+-- /must/ be a valid 'Vulkan.Core10.Handles.Framebuffer' handle+--+-- - #VUID-VkRenderPassBeginInfo-commonparent# Both of @framebuffer@, and+-- @renderPass@ /must/ have been created, allocated, or retrieved from+-- the same 'Vulkan.Core10.Handles.Device'+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,+-- 'ClearValue', 'Vulkan.Core10.Handles.Framebuffer',+-- 'Vulkan.Core10.FundamentalTypes.Rect2D',+-- 'Vulkan.Core10.Handles.RenderPass',+-- 'Vulkan.Core10.Enums.StructureType.StructureType', 'cmdBeginRenderPass',+-- 'Vulkan.Core12.Promoted_From_VK_KHR_create_renderpass2.cmdBeginRenderPass2',+-- 'Vulkan.Extensions.VK_KHR_create_renderpass2.cmdBeginRenderPass2KHR'+data RenderPassBeginInfo (es :: [Type]) = RenderPassBeginInfo+ { -- | @pNext@ is @NULL@ or a pointer to a structure extending this structure.+ next :: Chain es+ , -- | @renderPass@ is the render pass to begin an instance of.+ renderPass :: RenderPass+ , -- | @framebuffer@ is the framebuffer containing the attachments that are+ -- used with the render pass.+ framebuffer :: Framebuffer+ , -- | @renderArea@ is the render area that is affected by the render pass+ -- instance, and is described in more detail below.+ renderArea :: Rect2D+ , -- | @pClearValues@ is a pointer to an array of @clearValueCount@+ -- 'ClearValue' structures containing clear values for each attachment, if+ -- the attachment uses a @loadOp@ value of+ -- 'Vulkan.Core10.Enums.AttachmentLoadOp.ATTACHMENT_LOAD_OP_CLEAR' or if+ -- the attachment has a depth\/stencil format and uses a @stencilLoadOp@+ -- value of+ -- 'Vulkan.Core10.Enums.AttachmentLoadOp.ATTACHMENT_LOAD_OP_CLEAR'. The+ -- array is indexed by attachment number. Only elements corresponding to+ -- cleared attachments are used. Other elements of @pClearValues@ are+ -- ignored.+ clearValues :: Vector ClearValue+ }+ deriving (Typeable)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (RenderPassBeginInfo (es :: [Type]))+#endif+deriving instance Show (Chain es) => Show (RenderPassBeginInfo es)++instance Extensible RenderPassBeginInfo where+ extensibleTypeName = "RenderPassBeginInfo"+ setNext RenderPassBeginInfo{..} next' = RenderPassBeginInfo{next = next', ..}+ getNext RenderPassBeginInfo{..} = next+ extends :: forall e b proxy. Typeable e => proxy e -> (Extends RenderPassBeginInfo e => b) -> Maybe b+ extends _ f+ | Just Refl <- eqT @e @RenderPassTransformBeginInfoQCOM = Just f+ | Just Refl <- eqT @e @RenderPassAttachmentBeginInfo = Just f+ | Just Refl <- eqT @e @RenderPassSampleLocationsBeginInfoEXT = Just f+ | Just Refl <- eqT @e @DeviceGroupRenderPassBeginInfo = Just f+ | otherwise = Nothing++instance (Extendss RenderPassBeginInfo es, PokeChain es) => ToCStruct (RenderPassBeginInfo es) where+ withCStruct x f = allocaBytes 64 $ \p -> pokeCStruct p x (f p)+ pokeCStruct p RenderPassBeginInfo{..} f = evalContT $ do+ lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO)+ pNext'' <- fmap castPtr . ContT $ withChain (next)+ lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext''+ lift $ poke ((p `plusPtr` 16 :: Ptr RenderPass)) (renderPass)+ lift $ poke ((p `plusPtr` 24 :: Ptr Framebuffer)) (framebuffer)+ lift $ poke ((p `plusPtr` 32 :: Ptr Rect2D)) (renderArea)+ lift $ poke ((p `plusPtr` 48 :: Ptr Word32)) ((fromIntegral (Data.Vector.length $ (clearValues)) :: Word32))+ pPClearValues' <- ContT $ allocaBytes @ClearValue ((Data.Vector.length (clearValues)) * 16)+ Data.Vector.imapM_ (\i e -> ContT $ pokeCStruct (pPClearValues' `plusPtr` (16 * (i)) :: Ptr ClearValue) (e) . ($ ())) (clearValues)+ lift $ poke ((p `plusPtr` 56 :: Ptr (Ptr ClearValue))) (pPClearValues')+ lift $ f+ cStructSize = 64+ cStructAlignment = 8+ pokeZeroCStruct p f = evalContT $ do+ lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO)+ pNext' <- fmap castPtr . ContT $ withZeroChain @es+ lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext'+ lift $ poke ((p `plusPtr` 16 :: Ptr RenderPass)) (zero)+ lift $ poke ((p `plusPtr` 24 :: Ptr Framebuffer)) (zero)+ lift $ poke ((p `plusPtr` 32 :: Ptr Rect2D)) (zero)+ lift $ f++instance es ~ '[] => Zero (RenderPassBeginInfo es) where+ zero = RenderPassBeginInfo+ ()+ zero+ zero+ zero+ mempty+++-- | VkClearDepthStencilValue - Structure specifying a clear depth stencil+-- value+--+-- == Valid Usage+--+-- - #VUID-VkClearDepthStencilValue-depth-00022# Unless the+-- @VK_EXT_depth_range_unrestricted@ extension is enabled @depth@+-- /must/ be between @0.0@ and @1.0@, inclusive+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,+-- 'ClearValue', 'cmdClearDepthStencilImage'+data ClearDepthStencilValue = ClearDepthStencilValue+ { -- | @depth@ is the clear value for the depth aspect of the depth\/stencil+ -- attachment. It is a floating-point value which is automatically+ -- converted to the attachment’s format.+ depth :: Float+ , -- | @stencil@ is the clear value for the stencil aspect of the+ -- depth\/stencil attachment. It is a 32-bit integer value which is+ -- converted to the attachment’s format by taking the appropriate number of+ -- LSBs.+ stencil :: Word32+ }+ deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (ClearDepthStencilValue)+#endif+deriving instance Show ClearDepthStencilValue++instance ToCStruct ClearDepthStencilValue where+ withCStruct x f = allocaBytes 8 $ \p -> pokeCStruct p x (f p)+ pokeCStruct p ClearDepthStencilValue{..} f = do+ poke ((p `plusPtr` 0 :: Ptr CFloat)) (CFloat (depth))+ poke ((p `plusPtr` 4 :: Ptr Word32)) (stencil)+ f+ cStructSize = 8+ cStructAlignment = 4+ pokeZeroCStruct p f = do+ poke ((p `plusPtr` 0 :: Ptr CFloat)) (CFloat (zero))+ poke ((p `plusPtr` 4 :: Ptr Word32)) (zero)+ f++instance FromCStruct ClearDepthStencilValue where+ peekCStruct p = do+ depth <- peek @CFloat ((p `plusPtr` 0 :: Ptr CFloat))+ stencil <- peek @Word32 ((p `plusPtr` 4 :: Ptr Word32))+ pure $ ClearDepthStencilValue+ (coerce @CFloat @Float depth) stencil++instance Storable ClearDepthStencilValue where+ sizeOf ~_ = 8+ alignment ~_ = 4+ peek = peekCStruct+ poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero ClearDepthStencilValue where+ zero = ClearDepthStencilValue+ zero+ zero+++-- | VkClearAttachment - Structure specifying a clear attachment+--+-- == Valid Usage+--+-- - #VUID-VkClearAttachment-aspectMask-00019# If @aspectMask@ includes+-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_COLOR_BIT', it+-- /must/ not include+-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_DEPTH_BIT' or+-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_STENCIL_BIT'+--+-- - #VUID-VkClearAttachment-aspectMask-00020# @aspectMask@ /must/ not+-- include+-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_METADATA_BIT'+--+-- - #VUID-VkClearAttachment-aspectMask-02246# @aspectMask@ /must/ not+-- include @VK_IMAGE_ASPECT_MEMORY_PLANE_i_BIT_EXT@ for any index /i/+--+-- - #VUID-VkClearAttachment-clearValue-00021# @clearValue@ /must/ be a+-- valid 'ClearValue' union+--+-- == Valid Usage (Implicit)+--+-- - #VUID-VkClearAttachment-aspectMask-parameter# @aspectMask@ /must/ be+-- a valid combination of+-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.ImageAspectFlagBits' values+--+-- - #VUID-VkClearAttachment-aspectMask-requiredbitmask# @aspectMask@+-- /must/ not be @0@+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,+-- 'ClearValue',+-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.ImageAspectFlags',+-- 'cmdClearAttachments'+data ClearAttachment = ClearAttachment+ { -- | @aspectMask@ is a mask selecting the color, depth and\/or stencil+ -- aspects of the attachment to be cleared.+ aspectMask :: ImageAspectFlags+ , -- | @colorAttachment@ is only meaningful if+ -- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_COLOR_BIT' is set+ -- in @aspectMask@, in which case it is an index into the currently bound+ -- color attachments.+ colorAttachment :: Word32+ , -- | @clearValue@ is the color or depth\/stencil value to clear the+ -- attachment to, as described in+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#clears-values Clear Values> -- below. clearValue :: ClearValue }
src/Vulkan/Core10/CommandPool.hs view
@@ -128,7 +128,7 @@ -- specifying the state of the command pool object. CommandPoolCreateInfo -> -- | @pAllocator@ controls host memory allocation as described in the- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation> -- chapter. ("allocator" ::: Maybe AllocationCallbacks) -> io (CommandPool)@@ -177,17 +177,17 @@ -- -- Any primary command buffer allocated from another -- 'Vulkan.Core10.Handles.CommandPool' that is in the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-lifecycle recording or executable state>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-lifecycle recording or executable state> -- and has a secondary command buffer allocated from @commandPool@ recorded -- into it, becomes--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-lifecycle invalid>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-lifecycle invalid>. -- -- == Valid Usage -- -- - #VUID-vkDestroyCommandPool-commandPool-00041# All -- 'Vulkan.Core10.Handles.CommandBuffer' objects allocated from -- @commandPool@ /must/ not be in the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-lifecycle pending state>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-lifecycle pending state> -- -- - #VUID-vkDestroyCommandPool-commandPool-00042# If -- 'Vulkan.Core10.AllocationCallbacks.AllocationCallbacks' were@@ -232,7 +232,7 @@ -> -- | @commandPool@ is the handle of the command pool to destroy. CommandPool -> -- | @pAllocator@ controls host memory allocation as described in the- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation> -- chapter. ("allocator" ::: Maybe AllocationCallbacks) -> io ()@@ -263,21 +263,21 @@ -- command buffers allocated from the command pool back to the command -- pool. All command buffers that have been allocated from the command pool -- are put in the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-lifecycle initial state>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-lifecycle initial state>. -- -- Any primary command buffer allocated from another -- 'Vulkan.Core10.Handles.CommandPool' that is in the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-lifecycle recording or executable state>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-lifecycle recording or executable state> -- and has a secondary command buffer allocated from @commandPool@ recorded -- into it, becomes--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-lifecycle invalid>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-lifecycle invalid>. -- -- == Valid Usage -- -- - #VUID-vkResetCommandPool-commandPool-00040# All -- 'Vulkan.Core10.Handles.CommandBuffer' objects allocated from -- @commandPool@ /must/ not be in the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-lifecycle pending state>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-lifecycle pending state> -- -- == Valid Usage (Implicit) --@@ -340,7 +340,8 @@ -- -- == Valid Usage ----- - #VUID-VkCommandPoolCreateInfo-flags-02860# If the protected memory+-- - #VUID-VkCommandPoolCreateInfo-flags-02860# If the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-protectedMemory protectedMemory> -- feature is not enabled, the -- 'Vulkan.Core10.Enums.CommandPoolCreateFlagBits.COMMAND_POOL_CREATE_PROTECTED_BIT' -- bit of @flags@ /must/ not be set@@ -369,7 +370,7 @@ -- from it. flags :: CommandPoolCreateFlags , -- | @queueFamilyIndex@ designates a queue family as described in section- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#devsandqueues-queueprops Queue Family Properties>.+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#devsandqueues-queueprops Queue Family Properties>. -- All command buffers allocated from this command pool /must/ be submitted -- on queues from the same queue family. queueFamilyIndex :: Word32
src/Vulkan/Core10/DescriptorSet.hs view
@@ -195,7 +195,7 @@ -- structure specifying the state of the descriptor set layout object. (DescriptorSetLayoutCreateInfo a) -> -- | @pAllocator@ controls host memory allocation as described in the- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation> -- chapter. ("allocator" ::: Maybe AllocationCallbacks) -> io (DescriptorSetLayout)@@ -286,7 +286,7 @@ -> -- | @descriptorSetLayout@ is the descriptor set layout to destroy. DescriptorSetLayout -> -- | @pAllocator@ controls host memory allocation as described in the- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation> -- chapter. ("allocator" ::: Maybe AllocationCallbacks) -> io ()@@ -360,7 +360,7 @@ -- specifying the state of the descriptor pool object. (DescriptorPoolCreateInfo a) -> -- | @pAllocator@ controls host memory allocation as described in the- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation> -- chapter. ("allocator" ::: Maybe AllocationCallbacks) -> io (DescriptorPool)@@ -459,7 +459,7 @@ -> -- | @descriptorPool@ is the descriptor pool to destroy. DescriptorPool -> -- | @pAllocator@ controls host memory allocation as described in the- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation> -- chapter. ("allocator" ::: Maybe AllocationCallbacks) -> io ()@@ -570,18 +570,18 @@ -- 'Vulkan.Core12.Enums.DescriptorBindingFlagBits.DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT' -- bit set, all descriptors in that binding that are dynamically used -- /must/ have been populated before the descriptor set is--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-binding consumed>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-binding consumed>. -- -- - For descriptor set bindings created without the -- 'Vulkan.Core12.Enums.DescriptorBindingFlagBits.DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT' -- bit set, all descriptors in that binding that are statically used -- /must/ have been populated before the descriptor set is--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-binding consumed>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-binding consumed>. -- -- - Descriptor bindings with descriptor type of -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK' -- /can/ be undefined when the descriptor set is--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-binding consumed>;+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-binding consumed>; -- though values in that block will be undefined. -- -- - Entries that are not used by a pipeline /can/ have undefined@@ -808,14 +808,14 @@ -- If the @dstSet@ member of any element of @pDescriptorWrites@ or -- @pDescriptorCopies@ is bound, accessed, or modified by any command that -- was recorded to a command buffer which is currently in the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-lifecycle recording or executable state>,+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-lifecycle recording or executable state>, -- and any of the descriptor bindings that are updated were not created -- with the -- 'Vulkan.Core12.Enums.DescriptorBindingFlagBits.DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT' -- or -- 'Vulkan.Core12.Enums.DescriptorBindingFlagBits.DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT' -- bits set, that command buffer becomes--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-lifecycle invalid>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-lifecycle invalid>. -- -- == Valid Usage --@@ -872,6 +872,14 @@ -- structure in the @pNext@ chain of @pDescriptorWrites@[i] /must/ have -- been created on @device@ --+-- - #VUID-vkUpdateDescriptorSets-pDescriptorWrites-06940# For each+-- element i where @pDescriptorWrites@[i].@descriptorType@ is+-- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_SAMPLE_WEIGHT_IMAGE_QCOM'+-- or+-- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_BLOCK_MATCH_IMAGE_QCOM',+-- the @imageView@ member of any element of @pDescriptorWrites@[i]+-- /must/ have been created on @device@+-- -- - #VUID-vkUpdateDescriptorSets-pDescriptorWrites-06493# For each -- element i where @pDescriptorWrites@[i].@descriptorType@ is -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_SAMPLER',@@ -884,6 +892,15 @@ -- array of @pDescriptorWrites@[i].@descriptorCount@ valid -- 'DescriptorImageInfo' structures --+-- - #VUID-vkUpdateDescriptorSets-pDescriptorWrites-06941# For each+-- element i where @pDescriptorWrites@[i].@descriptorType@ is+-- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_SAMPLE_WEIGHT_IMAGE_QCOM'+-- or+-- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_BLOCK_MATCH_IMAGE_QCOM',+-- @pDescriptorWrites@[i].@pImageInfo@ /must/ be a valid pointer to an+-- array of @pDescriptorWrites@[i].@descriptorCount@ valid+-- 'DescriptorImageInfo' structures+-- -- - #VUID-vkUpdateDescriptorSets-None-03047# Descriptor bindings updated -- by this command which were created without the -- 'Vulkan.Core12.Enums.DescriptorBindingFlagBits.DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT'@@ -891,8 +908,14 @@ -- 'Vulkan.Core12.Enums.DescriptorBindingFlagBits.DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT' -- bits set /must/ not be used by any command that was recorded to a -- command buffer which is in the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-lifecycle pending state>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-lifecycle pending state> --+-- - #VUID-vkUpdateDescriptorSets-pDescriptorWrites-06993# Host access to+-- @pDescriptorWrites@[i].@dstSet@ and @pDescriptorCopies@[i].@dstSet@+-- /must/ be+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fundamentals-threadingbehavior externally synchronized>+-- unless explicitly denoted otherwise for specific flags+-- -- == Valid Usage (Implicit) -- -- - #VUID-vkUpdateDescriptorSets-device-parameter# @device@ /must/ be a@@ -908,14 +931,6 @@ -- valid pointer to an array of @descriptorCopyCount@ valid -- 'CopyDescriptorSet' structures ----- == Host Synchronization------ - Host access to @pDescriptorWrites@[].dstSet /must/ be externally--- synchronized------ - Host access to @pDescriptorCopies@[].dstSet /must/ be externally--- synchronized--- -- = See Also -- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,@@ -948,21 +963,21 @@ -- | VkDescriptorBufferInfo - Structure specifying descriptor buffer -- information ----- = Description------ Note+-- = Members -- -- When setting @range@ to 'Vulkan.Core10.APIConstants.WHOLE_SIZE', the--- effective range /must/ not be larger than the maximum range for the--- descriptor type--- (<https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxUniformBufferRange maxUniformBufferRange>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#buffer-info-effective-range effective range>+-- /must/ not be larger than the maximum range for the descriptor type+-- (<https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxUniformBufferRange maxUniformBufferRange> -- or--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxStorageBufferRange maxStorageBufferRange>).+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxStorageBufferRange maxStorageBufferRange>). -- This means that 'Vulkan.Core10.APIConstants.WHOLE_SIZE' is not typically -- useful in the common case where uniform buffer descriptors are -- suballocated from a buffer that is much larger than -- @maxUniformBufferRange@. --+-- = Description+-- -- For -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC' -- and@@ -971,6 +986,10 @@ -- offset is applied and @range@ is the static size used for all dynamic -- offsets. --+-- When @range@ is 'Vulkan.Core10.APIConstants.WHOLE_SIZE' the effective+-- range is calculated at 'updateDescriptorSets' is by taking the size of+-- @buffer@ minus the @offset@.+-- -- == Valid Usage -- -- - #VUID-VkDescriptorBufferInfo-offset-00340# @offset@ /must/ be less@@ -985,7 +1004,7 @@ -- or equal to the size of @buffer@ minus @offset@ -- -- - #VUID-VkDescriptorBufferInfo-buffer-02998# If the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-nullDescriptor nullDescriptor>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-nullDescriptor nullDescriptor> -- feature is not enabled, @buffer@ /must/ not be -- 'Vulkan.Core10.APIConstants.NULL_HANDLE' --@@ -1068,9 +1087,23 @@ -- -- == Valid Usage ----- - #VUID-VkDescriptorImageInfo-imageView-00343# @imageView@ /must/ not--- be 2D or 2D array image view created from a 3D image+-- - #VUID-VkDescriptorImageInfo-imageView-06712# @imageView@ /must/ not+-- be a 2D array image view created from a 3D image --+-- - #VUID-VkDescriptorImageInfo-descriptorType-06713# If the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-image2DViewOf3D image2DViewOf3D>+-- feature is not enabled and @descriptorType@ is+-- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_IMAGE'+-- then @imageView@ /must/ not be a 2D view created from a 3D image+--+-- - #VUID-VkDescriptorImageInfo-descriptorType-06714# If the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-sampler2DViewOf3D sampler2DViewOf3D>+-- feature is not enabled and @descriptorType@ is+-- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_SAMPLED_IMAGE'+-- or+-- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER'+-- then @imageView@ /must/ not be a 2D view created from a 3D image+-- -- - #VUID-VkDescriptorImageInfo-imageView-01976# If @imageView@ is -- created from a depth\/stencil image, the @aspectMask@ used to create -- the @imageView@ /must/ include either@@ -1082,11 +1115,11 @@ -- match the actual 'Vulkan.Core10.Enums.ImageLayout.ImageLayout' of -- each subresource accessible from @imageView@ at the time this -- descriptor is accessed as defined by the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-layouts-matching-rule image layout matching rules>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-layouts-matching-rule image layout matching rules> -- -- - #VUID-VkDescriptorImageInfo-sampler-01564# If @sampler@ is used and -- the 'Vulkan.Core10.Enums.Format.Format' of the image is a--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar format>,+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar format>, -- the image /must/ have been created with -- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_MUTABLE_FORMAT_BIT', -- and the @aspectMask@ of the @imageView@ /must/ be@@ -1211,7 +1244,7 @@ -- below. -- -- If the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-nullDescriptor nullDescriptor>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-nullDescriptor nullDescriptor> -- feature is enabled, the buffer, acceleration structure, imageView, or -- bufferView /can/ be 'Vulkan.Core10.APIConstants.NULL_HANDLE'. Loads from -- a null descriptor return zero values and stores and atomics to a null@@ -1231,7 +1264,12 @@ -- 'Vulkan.Core10.Enums.DescriptorType.DescriptorType', -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.ShaderStageFlags', -- 'Vulkan.Core12.Enums.DescriptorBindingFlagBits.DescriptorBindingFlagBits',--- and immutable samplers references.+-- and immutable samplers references. In addition, if the+-- 'Vulkan.Core10.Enums.DescriptorType.DescriptorType' is+-- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_MUTABLE_VALVE', the+-- supported descriptor types in+-- 'Vulkan.Extensions.VK_VALVE_mutable_descriptor_type.MutableDescriptorTypeCreateInfoVALVE'+-- /must/ be equally defined. -- -- Note --@@ -1275,7 +1313,7 @@ -- to the number of array elements in the descriptor set binding -- specified by @dstBinding@, and all applicable consecutive bindings, -- as described by--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-updates-consecutive>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-updates-consecutive> -- -- - #VUID-VkWriteDescriptorSet-descriptorType-02219# If @descriptorType@ -- is@@ -1302,7 +1340,7 @@ -- or -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER' -- and the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-nullDescriptor nullDescriptor>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-nullDescriptor nullDescriptor> -- feature is not enabled, each element of @pTexelBufferView@ /must/ -- not be 'Vulkan.Core10.APIConstants.NULL_HANDLE' --@@ -1343,7 +1381,7 @@ -- or -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INPUT_ATTACHMENT' -- and the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-nullDescriptor nullDescriptor>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-nullDescriptor nullDescriptor> -- feature is not enabled, the @imageView@ member of each element of -- @pImageInfo@ /must/ not be 'Vulkan.Core10.APIConstants.NULL_HANDLE' --@@ -1398,7 +1436,7 @@ -- samplers for @dstBinding@, then the @imageView@ member of each -- element of @pImageInfo@ which corresponds to an immutable sampler -- that enables--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion> -- /must/ have been created with a -- 'Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion.SamplerYcbcrConversionInfo' -- structure in its @pNext@ chain with an /identically defined/@@ -1461,9 +1499,9 @@ -- or -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC', -- the @range@ member of each element of @pBufferInfo@, or the--- effective range if @range@ is--- 'Vulkan.Core10.APIConstants.WHOLE_SIZE', /must/ be less than or--- equal to+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#buffer-info-effective-range effective range>+-- if @range@ is 'Vulkan.Core10.APIConstants.WHOLE_SIZE', /must/ be+-- less than or equal to -- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxUniformBufferRange@ -- -- - #VUID-VkWriteDescriptorSet-descriptorType-00333# If @descriptorType@@@ -1472,9 +1510,9 @@ -- or -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC', -- the @range@ member of each element of @pBufferInfo@, or the--- effective range if @range@ is--- 'Vulkan.Core10.APIConstants.WHOLE_SIZE', /must/ be less than or--- equal to+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#buffer-info-effective-range effective range>+-- if @range@ is 'Vulkan.Core10.APIConstants.WHOLE_SIZE', /must/ be+-- less than or equal to -- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxStorageBufferRange@ -- -- - #VUID-VkWriteDescriptorSet-descriptorType-00334# If @descriptorType@@@ -1515,28 +1553,28 @@ -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_SAMPLED_IMAGE' -- the @imageLayout@ member of each element of @pImageInfo@ /must/ be a -- member of the list given in--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-sampledimage Sampled Image>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-sampledimage Sampled Image> -- -- - #VUID-VkWriteDescriptorSet-descriptorType-04150# If @descriptorType@ -- is -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER' -- the @imageLayout@ member of each element of @pImageInfo@ /must/ be a -- member of the list given in--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-combinedimagesampler Combined Image Sampler>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-combinedimagesampler Combined Image Sampler> -- -- - #VUID-VkWriteDescriptorSet-descriptorType-04151# If @descriptorType@ -- is -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INPUT_ATTACHMENT' -- the @imageLayout@ member of each element of @pImageInfo@ /must/ be a -- member of the list given in--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-inputattachment Input Attachment>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-inputattachment Input Attachment> -- -- - #VUID-VkWriteDescriptorSet-descriptorType-04152# If @descriptorType@ -- is -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_IMAGE' -- the @imageLayout@ member of each element of @pImageInfo@ /must/ be a -- member of the list given in--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-storageimage Storage Image>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-storageimage Storage Image> -- -- - #VUID-VkWriteDescriptorSet-descriptorType-00338# If @descriptorType@ -- is@@ -1553,6 +1591,18 @@ -- been created with -- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_STORAGE_BIT' set --+-- - #VUID-VkWriteDescriptorSet-descriptorType-06710# If @descriptorType@+-- is+-- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_IMAGE',+-- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_SAMPLED_IMAGE',+-- or+-- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER',+-- each @imageView@ member of each element of @pImageInfo@ that is a 2D+-- image view created from a 3D image /must/ have been created from an+-- image created with+-- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_2D_VIEW_COMPATIBLE_BIT_EXT'+-- set+-- -- - #VUID-VkWriteDescriptorSet-descriptorType-02752# If @descriptorType@ -- is 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_SAMPLER', -- then @dstSet@ /must/ not have been allocated with a layout that@@ -1574,6 +1624,20 @@ -- 'Vulkan.Extensions.VK_EXT_image_view_min_lod.ImageViewMinLodCreateInfoEXT'::@minLod@ -- of @0.0@ --+-- - #VUID-VkWriteDescriptorSet-descriptorType-06942# If @descriptorType@+-- is+-- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_SAMPLE_WEIGHT_IMAGE_QCOM',+-- the @imageView@ member of each element of @pImageInfo@ /must/ have+-- been created with a view created with an @image@ created with+-- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_SAMPLE_WEIGHT_BIT_QCOM'+--+-- - #VUID-VkWriteDescriptorSet-descriptorType-06943# If @descriptorType@+-- is+-- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_BLOCK_MATCH_IMAGE_QCOM',+-- the @imageView@ member of each element of @pImageInfo@ /must/ have+-- been created with a view created with an @image@ created with+-- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_SAMPLE_BLOCK_MATCH_BIT_QCOM'+-- -- == Valid Usage (Implicit) -- -- - #VUID-VkWriteDescriptorSet-sType-sType# @sType@ /must/ be@@ -1665,7 +1729,7 @@ bufferInfo :: Vector DescriptorBufferInfo , -- | @pTexelBufferView@ is a pointer to an array of -- 'Vulkan.Core10.Handles.BufferView' handles as described in the- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#resources-buffer-views Buffer Views>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#resources-buffer-views Buffer Views> -- section or is ignored, as described below. texelBufferView :: Vector BufferView }@@ -1808,7 +1872,7 @@ -- to the number of array elements in the descriptor set binding -- specified by @srcBinding@, and all applicable consecutive bindings, -- as described by--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-updates-consecutive>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-updates-consecutive> -- -- - #VUID-VkCopyDescriptorSet-dstBinding-00347# @dstBinding@ /must/ be a -- valid binding within @dstSet@@@ -1818,7 +1882,7 @@ -- to the number of array elements in the descriptor set binding -- specified by @dstBinding@, and all applicable consecutive bindings, -- as described by--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-updates-consecutive>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-updates-consecutive> -- -- - #VUID-VkCopyDescriptorSet-dstBinding-02632# The type of @dstBinding@ -- within @dstSet@ /must/ be equal to the type of @srcBinding@ within@@ -1828,7 +1892,7 @@ -- @dstSet@, then the source and destination ranges of descriptors -- /must/ not overlap, where the ranges /may/ include array elements -- from consecutive bindings as described by--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-updates-consecutive>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-updates-consecutive> -- -- - #VUID-VkCopyDescriptorSet-srcBinding-02223# If the descriptor type -- of the descriptor set binding specified by @srcBinding@ is@@ -2088,7 +2152,7 @@ -- of @descriptorCount@ valid 'Vulkan.Core10.Handles.Sampler' handles -- -- - #VUID-VkDescriptorSetLayoutBinding-descriptorType-04604# If the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-inlineUniformBlock inlineUniformBlock>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-inlineUniformBlock inlineUniformBlock> -- feature is not enabled, @descriptorType@ /must/ not be -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK' --@@ -2292,12 +2356,13 @@ -- @flags@ /must/ not contain -- 'Vulkan.Core10.Enums.DescriptorSetLayoutCreateFlagBits.DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_VALVE' ----- - #VUID-VkDescriptorSetLayoutCreateInfo-descriptorType-04593# If any--- binding has a @descriptorType@ of+-- - #VUID-VkDescriptorSetLayoutCreateInfo-pBindings-07031# If any+-- element @pBindings@[i] has a @descriptorType@ of -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_MUTABLE_VALVE', -- then a -- 'Vulkan.Extensions.VK_VALVE_mutable_descriptor_type.MutableDescriptorTypeCreateInfoVALVE'--- /must/ be present in the @pNext@ chain+-- /must/ be present in the @pNext@ chain, and+-- @mutableDescriptorTypeCount@ /must/ be greater than i. -- -- - #VUID-VkDescriptorSetLayoutCreateInfo-descriptorType-04594# If a -- binding has a @descriptorType@ value of@@ -2629,12 +2694,9 @@ -- 'Vulkan.Core10.Enums.DescriptorPoolCreateFlagBits.DescriptorPoolCreateFlagBits' -- values ----- - #VUID-VkDescriptorPoolCreateInfo-pPoolSizes-parameter# @pPoolSizes@--- /must/ be a valid pointer to an array of @poolSizeCount@ valid--- 'DescriptorPoolSize' structures------ - #VUID-VkDescriptorPoolCreateInfo-poolSizeCount-arraylength#--- @poolSizeCount@ /must/ be greater than @0@+-- - #VUID-VkDescriptorPoolCreateInfo-pPoolSizes-parameter# If+-- @poolSizeCount@ is not @0@, @pPoolSizes@ /must/ be a valid pointer+-- to an array of @poolSizeCount@ valid 'DescriptorPoolSize' structures -- -- = See Also --
src/Vulkan/Core10/Device.hs view
@@ -93,6 +93,8 @@ import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_8bit_storage (PhysicalDevice8BitStorageFeatures) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_astc_decode_mode (PhysicalDeviceASTCDecodeFeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_acceleration_structure (PhysicalDeviceAccelerationStructureFeaturesKHR)+import {-# SOURCE #-} Vulkan.Extensions.VK_SEC_amigo_profiling (PhysicalDeviceAmigoProfilingFeaturesSEC)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_attachment_feedback_loop_layout (PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_blend_operation_advanced (PhysicalDeviceBlendOperationAdvancedFeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_border_color_swizzle (PhysicalDeviceBorderColorSwizzleFeaturesEXT) import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_buffer_device_address (PhysicalDeviceBufferDeviceAddressFeatures)@@ -106,6 +108,7 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_NV_coverage_reduction_mode (PhysicalDeviceCoverageReductionModeFeaturesNV) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_custom_border_color (PhysicalDeviceCustomBorderColorFeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_dedicated_allocation_image_aliasing (PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_depth_clamp_zero_one (PhysicalDeviceDepthClampZeroOneFeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_depth_clip_control (PhysicalDeviceDepthClipControlFeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_depth_clip_enable (PhysicalDeviceDepthClipEnableFeaturesEXT) import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_EXT_descriptor_indexing (PhysicalDeviceDescriptorIndexingFeatures)@@ -123,13 +126,17 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_fragment_density_map2 (PhysicalDeviceFragmentDensityMap2FeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_fragment_density_map (PhysicalDeviceFragmentDensityMapFeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_QCOM_fragment_density_map_offset (PhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM)-import {-# SOURCE #-} Vulkan.Extensions.VK_NV_fragment_shader_barycentric (PhysicalDeviceFragmentShaderBarycentricFeaturesNV)+import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_fragment_shader_barycentric (PhysicalDeviceFragmentShaderBarycentricFeaturesKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_fragment_shader_interlock (PhysicalDeviceFragmentShaderInterlockFeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_fragment_shading_rate_enums (PhysicalDeviceFragmentShadingRateEnumsFeaturesNV) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_fragment_shading_rate (PhysicalDeviceFragmentShadingRateFeaturesKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_global_priority (PhysicalDeviceGlobalPriorityQueryFeaturesKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_graphics_pipeline_library (PhysicalDeviceGraphicsPipelineLibraryFeaturesEXT) import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_EXT_host_query_reset (PhysicalDeviceHostQueryResetFeatures)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_image_2d_view_of_3d (PhysicalDeviceImage2DViewOf3DFeaturesEXT)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_image_compression_control (PhysicalDeviceImageCompressionControlFeaturesEXT)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_image_compression_control_swapchain (PhysicalDeviceImageCompressionControlSwapchainFeaturesEXT)+import {-# SOURCE #-} Vulkan.Extensions.VK_QCOM_image_processing (PhysicalDeviceImageProcessingFeaturesQCOM) import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_EXT_image_robustness (PhysicalDeviceImageRobustnessFeatures) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_image_view_min_lod (PhysicalDeviceImageViewMinLodFeaturesEXT) import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer (PhysicalDeviceImagelessFramebufferFeatures)@@ -141,14 +148,19 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_NV_linear_color_attachment (PhysicalDeviceLinearColorAttachmentFeaturesNV) import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_KHR_maintenance4 (PhysicalDeviceMaintenance4Features) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_memory_priority (PhysicalDeviceMemoryPriorityFeaturesEXT)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_mesh_shader (PhysicalDeviceMeshShaderFeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_mesh_shader (PhysicalDeviceMeshShaderFeaturesNV) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_multi_draw (PhysicalDeviceMultiDrawFeaturesEXT)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled (PhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT) import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_multiview (PhysicalDeviceMultiviewFeatures) import {-# SOURCE #-} Vulkan.Extensions.VK_VALVE_mutable_descriptor_type (PhysicalDeviceMutableDescriptorTypeFeaturesVALVE)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_non_seamless_cube_map (PhysicalDeviceNonSeamlessCubeMapFeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_pageable_device_local_memory (PhysicalDevicePageableDeviceLocalMemoryFeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_performance_query (PhysicalDevicePerformanceQueryFeaturesKHR) import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_EXT_pipeline_creation_cache_control (PhysicalDevicePipelineCreationCacheControlFeatures) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_pipeline_executable_properties (PhysicalDevicePipelineExecutablePropertiesFeaturesKHR)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_pipeline_properties (PhysicalDevicePipelinePropertiesFeaturesEXT)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_pipeline_robustness (PhysicalDevicePipelineRobustnessFeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_portability_subset (PhysicalDevicePortabilitySubsetFeaturesKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_present_id (PhysicalDevicePresentIdFeaturesKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_present_wait (PhysicalDevicePresentWaitFeaturesKHR)@@ -158,8 +170,9 @@ import {-# SOURCE #-} Vulkan.Core11.Originally_Based_On_VK_KHR_protected_memory (PhysicalDeviceProtectedMemoryFeatures) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_provoking_vertex (PhysicalDeviceProvokingVertexFeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_rgba10x6_formats (PhysicalDeviceRGBA10X6FormatsFeaturesEXT)-import {-# SOURCE #-} Vulkan.Extensions.VK_ARM_rasterization_order_attachment_access (PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_rasterization_order_attachment_access (PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_ray_query (PhysicalDeviceRayQueryFeaturesKHR)+import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_ray_tracing_maintenance1 (PhysicalDeviceRayTracingMaintenance1FeaturesKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_ray_tracing_motion_blur (PhysicalDeviceRayTracingMotionBlurFeaturesNV) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_ray_tracing_pipeline (PhysicalDeviceRayTracingPipelineFeaturesKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_representative_fragment_test (PhysicalDeviceRepresentativeFragmentTestFeaturesNV)@@ -173,21 +186,25 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_shader_clock (PhysicalDeviceShaderClockFeaturesKHR) import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_EXT_shader_demote_to_helper_invocation (PhysicalDeviceShaderDemoteToHelperInvocationFeatures) import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_shader_draw_parameters (PhysicalDeviceShaderDrawParametersFeatures)+import {-# SOURCE #-} Vulkan.Extensions.VK_AMD_shader_early_and_late_fragment_tests (PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD) import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_shader_float16_int8 (PhysicalDeviceShaderFloat16Int8Features) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_shader_image_atomic_int64 (PhysicalDeviceShaderImageAtomicInt64FeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_shader_image_footprint (PhysicalDeviceShaderImageFootprintFeaturesNV) import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_KHR_shader_integer_dot_product (PhysicalDeviceShaderIntegerDotProductFeatures) import {-# SOURCE #-} Vulkan.Extensions.VK_INTEL_shader_integer_functions2 (PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_shader_module_identifier (PhysicalDeviceShaderModuleIdentifierFeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_shader_sm_builtins (PhysicalDeviceShaderSMBuiltinsFeaturesNV) import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_shader_subgroup_extended_types (PhysicalDeviceShaderSubgroupExtendedTypesFeatures) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_shader_subgroup_uniform_control_flow (PhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR) import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_KHR_shader_terminate_invocation (PhysicalDeviceShaderTerminateInvocationFeatures) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_shading_rate_image (PhysicalDeviceShadingRateImageFeaturesNV) import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_EXT_subgroup_size_control (PhysicalDeviceSubgroupSizeControlFeatures)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_subpass_merge_feedback (PhysicalDeviceSubpassMergeFeedbackFeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_HUAWEI_subpass_shading (PhysicalDeviceSubpassShadingFeaturesHUAWEI) import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_KHR_synchronization2 (PhysicalDeviceSynchronization2Features) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_texel_buffer_alignment (PhysicalDeviceTexelBufferAlignmentFeaturesEXT) import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_EXT_texture_compression_astc_hdr (PhysicalDeviceTextureCompressionASTCHDRFeatures)+import {-# SOURCE #-} Vulkan.Extensions.VK_QCOM_tile_properties (PhysicalDeviceTilePropertiesFeaturesQCOM) import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_timeline_semaphore (PhysicalDeviceTimelineSemaphoreFeatures) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_transform_feedback (PhysicalDeviceTransformFeedbackFeaturesEXT) import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_uniform_buffer_standard_layout (PhysicalDeviceUniformBufferStandardLayoutFeatures)@@ -252,7 +269,7 @@ -- == Valid Usage -- -- - #VUID-vkCreateDevice-ppEnabledExtensionNames-01387# All--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#extendingvulkan-extensions-extensiondependencies required device extensions>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#extendingvulkan-extensions-extensiondependencies required device extensions> -- for each extension in the -- 'DeviceCreateInfo'::@ppEnabledExtensionNames@ list /must/ also be -- present in that list@@ -305,13 +322,13 @@ => -- | @physicalDevice@ /must/ be one of the device handles returned from a -- call to 'Vulkan.Core10.DeviceInitialization.enumeratePhysicalDevices' -- (see- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#devsandqueues-physical-device-enumeration Physical Device Enumeration>).+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#devsandqueues-physical-device-enumeration Physical Device Enumeration>). PhysicalDevice -> -- | @pCreateInfo@ is a pointer to a 'DeviceCreateInfo' structure containing -- information about how to create the device. (DeviceCreateInfo a) -> -- | @pAllocator@ controls host memory allocation as described in the- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation> -- chapter. ("allocator" ::: Maybe AllocationCallbacks) -> io (Device)@@ -411,7 +428,7 @@ => -- | @device@ is the logical device to destroy. Device -> -- | @pAllocator@ controls host memory allocation as described in the- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation> -- chapter. ("allocator" ::: Maybe AllocationCallbacks) -> io ()@@ -448,7 +465,7 @@ -- of @pQueuePriorities@ /must/ be between @0.0@ and @1.0@ inclusive -- -- - #VUID-VkDeviceQueueCreateInfo-flags-02861# If the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-protectedMemory protected memory>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-protectedMemory protectedMemory> -- feature is not enabled, the -- 'Vulkan.Core10.Enums.DeviceQueueCreateFlagBits.DEVICE_QUEUE_CREATE_PROTECTED_BIT' -- bit of @flags@ /must/ not be set@@ -492,10 +509,10 @@ data DeviceQueueCreateInfo (es :: [Type]) = DeviceQueueCreateInfo { -- | @pNext@ is @NULL@ or a pointer to a structure extending this structure. next :: Chain es- , -- | @flags@ is a bitmask indicating behavior of the queue.+ , -- | @flags@ is a bitmask indicating behavior of the queues. flags :: DeviceQueueCreateFlags , -- | @queueFamilyIndex@ is an unsigned integer indicating the index of the- -- queue family in which to create the queue on this device. This index+ -- queue family in which to create the queues on this device. This index -- corresponds to the index of an element of the @pQueueFamilyProperties@ -- array that was returned by -- 'Vulkan.Core10.DeviceInitialization.getPhysicalDeviceQueueFamilyProperties'.@@ -503,7 +520,7 @@ , -- | @pQueuePriorities@ is a pointer to an array of @queueCount@ normalized -- floating point values, specifying priorities of work that will be -- submitted to each created queue. See- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#devsandqueues-priority Queue Priority>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#devsandqueues-priority Queue Priority> -- for more information. queuePriorities :: Vector Float }@@ -574,9 +591,19 @@ -- - #VUID-VkDeviceCreateInfo-queueFamilyIndex-02802# The -- @queueFamilyIndex@ member of each element of @pQueueCreateInfos@ -- /must/ be unique within @pQueueCreateInfos@, except that two members--- can share the same @queueFamilyIndex@ if one is a protected-capable--- queue and one is not a protected-capable queue+-- can share the same @queueFamilyIndex@ if one describes+-- protected-capable queues and one describes queues that are not+-- protected-capable --+-- - #VUID-VkDeviceCreateInfo-pQueueCreateInfos-06755# If multiple+-- elements of @pQueueCreateInfos@ share the same @queueFamilyIndex@,+-- the sum of their @queueCount@ members /must/ be less than or equal+-- to the @queueCount@ member of the+-- 'Vulkan.Core10.DeviceInitialization.QueueFamilyProperties'+-- structure, as returned by+-- 'Vulkan.Core10.DeviceInitialization.getPhysicalDeviceQueueFamilyProperties'+-- in the @pQueueFamilyProperties@[queueFamilyIndex]+-- -- - #VUID-VkDeviceCreateInfo-pQueueCreateInfos-06654# If multiple -- elements of @pQueueCreateInfos@ share the same @queueFamilyIndex@, -- then all of such elements /must/ have the same global priority@@ -706,64 +733,64 @@ -- @ppEnabledExtensionNames@ /must/ include -- @\"VK_KHR_portability_subset\"@ ----- - #VUID-VkDeviceCreateInfo-shadingRateImage-04478# If--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>--- is enabled,--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-pipelineFragmentShadingRate pipelineFragmentShadingRate>--- /must/ not be enabled+-- - #VUID-VkDeviceCreateInfo-shadingRateImage-04478# If the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>+-- feature is enabled, the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-pipelineFragmentShadingRate pipelineFragmentShadingRate>+-- feature /must/ not be enabled ----- - #VUID-VkDeviceCreateInfo-shadingRateImage-04479# If--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>--- is enabled,--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-primitiveFragmentShadingRate primitiveFragmentShadingRate>--- /must/ not be enabled+-- - #VUID-VkDeviceCreateInfo-shadingRateImage-04479# If the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>+-- feature is enabled, the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-primitiveFragmentShadingRate primitiveFragmentShadingRate>+-- feature /must/ not be enabled ----- - #VUID-VkDeviceCreateInfo-shadingRateImage-04480# If--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>--- is enabled,--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-attachmentFragmentShadingRate attachmentFragmentShadingRate>--- /must/ not be enabled+-- - #VUID-VkDeviceCreateInfo-shadingRateImage-04480# If the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>+-- feature is enabled, the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-attachmentFragmentShadingRate attachmentFragmentShadingRate>+-- feature /must/ not be enabled ----- - #VUID-VkDeviceCreateInfo-fragmentDensityMap-04481# If--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-fragmentDensityMap fragmentDensityMap>--- is enabled,--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-pipelineFragmentShadingRate pipelineFragmentShadingRate>--- /must/ not be enabled+-- - #VUID-VkDeviceCreateInfo-fragmentDensityMap-04481# If the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-fragmentDensityMap fragmentDensityMap>+-- feature is enabled, the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-pipelineFragmentShadingRate pipelineFragmentShadingRate>+-- feature /must/ not be enabled ----- - #VUID-VkDeviceCreateInfo-fragmentDensityMap-04482# If--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-fragmentDensityMap fragmentDensityMap>--- is enabled,--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-primitiveFragmentShadingRate primitiveFragmentShadingRate>--- /must/ not be enabled+-- - #VUID-VkDeviceCreateInfo-fragmentDensityMap-04482# If the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-fragmentDensityMap fragmentDensityMap>+-- feature is enabled, the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-primitiveFragmentShadingRate primitiveFragmentShadingRate>+-- feature /must/ not be enabled ----- - #VUID-VkDeviceCreateInfo-fragmentDensityMap-04483# If--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-fragmentDensityMap fragmentDensityMap>--- is enabled,--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-attachmentFragmentShadingRate attachmentFragmentShadingRate>--- /must/ not be enabled+-- - #VUID-VkDeviceCreateInfo-fragmentDensityMap-04483# If the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-fragmentDensityMap fragmentDensityMap>+-- feature is enabled, the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-attachmentFragmentShadingRate attachmentFragmentShadingRate>+-- feature /must/ not be enabled -- -- - #VUID-VkDeviceCreateInfo-None-04896# If--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-sparseImageInt64Atomics sparseImageInt64Atomics>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-sparseImageInt64Atomics sparseImageInt64Atomics> -- is enabled,--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-shaderImageInt64Atomics shaderImageInt64Atomics>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-shaderImageInt64Atomics shaderImageInt64Atomics> -- /must/ be enabled -- -- - #VUID-VkDeviceCreateInfo-None-04897# If--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-sparseImageFloat32Atomics sparseImageFloat32Atomics>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-sparseImageFloat32Atomics sparseImageFloat32Atomics> -- is enabled,--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-shaderImageFloat32Atomics shaderImageFloat32Atomics>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-shaderImageFloat32Atomics shaderImageFloat32Atomics> -- /must/ be enabled -- -- - #VUID-VkDeviceCreateInfo-None-04898# If--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-sparseImageFloat32AtomicAdd sparseImageFloat32AtomicAdd>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-sparseImageFloat32AtomicAdd sparseImageFloat32AtomicAdd> -- is enabled,--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-shaderImageFloat32AtomicAdd shaderImageFloat32AtomicAdd>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-shaderImageFloat32AtomicAdd shaderImageFloat32AtomicAdd> -- /must/ be enabled -- -- - #VUID-VkDeviceCreateInfo-sparseImageFloat32AtomicMinMax-04975# If--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-sparseImageFloat32AtomicMinMax sparseImageFloat32AtomicMinMax>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-sparseImageFloat32AtomicMinMax sparseImageFloat32AtomicMinMax> -- is enabled,--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-shaderImageFloat32AtomicMinMax shaderImageFloat32AtomicMinMax>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-shaderImageFloat32AtomicMinMax shaderImageFloat32AtomicMinMax> -- /must/ be enabled -- -- == Valid Usage (Implicit)@@ -784,6 +811,8 @@ -- 'Vulkan.Core12.Promoted_From_VK_KHR_8bit_storage.PhysicalDevice8BitStorageFeatures', -- 'Vulkan.Extensions.VK_EXT_astc_decode_mode.PhysicalDeviceASTCDecodeFeaturesEXT', -- 'Vulkan.Extensions.VK_KHR_acceleration_structure.PhysicalDeviceAccelerationStructureFeaturesKHR',+-- 'Vulkan.Extensions.VK_SEC_amigo_profiling.PhysicalDeviceAmigoProfilingFeaturesSEC',+-- 'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_layout.PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT', -- 'Vulkan.Extensions.VK_EXT_blend_operation_advanced.PhysicalDeviceBlendOperationAdvancedFeaturesEXT', -- 'Vulkan.Extensions.VK_EXT_border_color_swizzle.PhysicalDeviceBorderColorSwizzleFeaturesEXT', -- 'Vulkan.Core12.Promoted_From_VK_KHR_buffer_device_address.PhysicalDeviceBufferDeviceAddressFeatures',@@ -797,6 +826,7 @@ -- 'Vulkan.Extensions.VK_NV_coverage_reduction_mode.PhysicalDeviceCoverageReductionModeFeaturesNV', -- 'Vulkan.Extensions.VK_EXT_custom_border_color.PhysicalDeviceCustomBorderColorFeaturesEXT', -- 'Vulkan.Extensions.VK_NV_dedicated_allocation_image_aliasing.PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV',+-- 'Vulkan.Extensions.VK_EXT_depth_clamp_zero_one.PhysicalDeviceDepthClampZeroOneFeaturesEXT', -- 'Vulkan.Extensions.VK_EXT_depth_clip_control.PhysicalDeviceDepthClipControlFeaturesEXT', -- 'Vulkan.Extensions.VK_EXT_depth_clip_enable.PhysicalDeviceDepthClipEnableFeaturesEXT', -- 'Vulkan.Core12.Promoted_From_VK_EXT_descriptor_indexing.PhysicalDeviceDescriptorIndexingFeatures',@@ -813,13 +843,17 @@ -- 'Vulkan.Extensions.VK_EXT_fragment_density_map2.PhysicalDeviceFragmentDensityMap2FeaturesEXT', -- 'Vulkan.Extensions.VK_EXT_fragment_density_map.PhysicalDeviceFragmentDensityMapFeaturesEXT', -- 'Vulkan.Extensions.VK_QCOM_fragment_density_map_offset.PhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM',--- 'Vulkan.Extensions.VK_NV_fragment_shader_barycentric.PhysicalDeviceFragmentShaderBarycentricFeaturesNV',+-- 'Vulkan.Extensions.VK_KHR_fragment_shader_barycentric.PhysicalDeviceFragmentShaderBarycentricFeaturesKHR', -- 'Vulkan.Extensions.VK_EXT_fragment_shader_interlock.PhysicalDeviceFragmentShaderInterlockFeaturesEXT', -- 'Vulkan.Extensions.VK_NV_fragment_shading_rate_enums.PhysicalDeviceFragmentShadingRateEnumsFeaturesNV', -- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.PhysicalDeviceFragmentShadingRateFeaturesKHR', -- 'Vulkan.Extensions.VK_KHR_global_priority.PhysicalDeviceGlobalPriorityQueryFeaturesKHR', -- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.PhysicalDeviceGraphicsPipelineLibraryFeaturesEXT', -- 'Vulkan.Core12.Promoted_From_VK_EXT_host_query_reset.PhysicalDeviceHostQueryResetFeatures',+-- 'Vulkan.Extensions.VK_EXT_image_2d_view_of_3d.PhysicalDeviceImage2DViewOf3DFeaturesEXT',+-- 'Vulkan.Extensions.VK_EXT_image_compression_control.PhysicalDeviceImageCompressionControlFeaturesEXT',+-- 'Vulkan.Extensions.VK_EXT_image_compression_control_swapchain.PhysicalDeviceImageCompressionControlSwapchainFeaturesEXT',+-- 'Vulkan.Extensions.VK_QCOM_image_processing.PhysicalDeviceImageProcessingFeaturesQCOM', -- 'Vulkan.Core13.Promoted_From_VK_EXT_image_robustness.PhysicalDeviceImageRobustnessFeatures', -- 'Vulkan.Extensions.VK_EXT_image_view_min_lod.PhysicalDeviceImageViewMinLodFeaturesEXT', -- 'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.PhysicalDeviceImagelessFramebufferFeatures',@@ -831,14 +865,19 @@ -- 'Vulkan.Extensions.VK_NV_linear_color_attachment.PhysicalDeviceLinearColorAttachmentFeaturesNV', -- 'Vulkan.Core13.Promoted_From_VK_KHR_maintenance4.PhysicalDeviceMaintenance4Features', -- 'Vulkan.Extensions.VK_EXT_memory_priority.PhysicalDeviceMemoryPriorityFeaturesEXT',+-- 'Vulkan.Extensions.VK_EXT_mesh_shader.PhysicalDeviceMeshShaderFeaturesEXT', -- 'Vulkan.Extensions.VK_NV_mesh_shader.PhysicalDeviceMeshShaderFeaturesNV', -- 'Vulkan.Extensions.VK_EXT_multi_draw.PhysicalDeviceMultiDrawFeaturesEXT',+-- 'Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled.PhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT', -- 'Vulkan.Core11.Promoted_From_VK_KHR_multiview.PhysicalDeviceMultiviewFeatures', -- 'Vulkan.Extensions.VK_VALVE_mutable_descriptor_type.PhysicalDeviceMutableDescriptorTypeFeaturesVALVE',+-- 'Vulkan.Extensions.VK_EXT_non_seamless_cube_map.PhysicalDeviceNonSeamlessCubeMapFeaturesEXT', -- 'Vulkan.Extensions.VK_EXT_pageable_device_local_memory.PhysicalDevicePageableDeviceLocalMemoryFeaturesEXT', -- 'Vulkan.Extensions.VK_KHR_performance_query.PhysicalDevicePerformanceQueryFeaturesKHR', -- 'Vulkan.Core13.Promoted_From_VK_EXT_pipeline_creation_cache_control.PhysicalDevicePipelineCreationCacheControlFeatures', -- 'Vulkan.Extensions.VK_KHR_pipeline_executable_properties.PhysicalDevicePipelineExecutablePropertiesFeaturesKHR',+-- 'Vulkan.Extensions.VK_EXT_pipeline_properties.PhysicalDevicePipelinePropertiesFeaturesEXT',+-- 'Vulkan.Extensions.VK_EXT_pipeline_robustness.PhysicalDevicePipelineRobustnessFeaturesEXT', -- 'Vulkan.Extensions.VK_KHR_portability_subset.PhysicalDevicePortabilitySubsetFeaturesKHR', -- 'Vulkan.Extensions.VK_KHR_present_id.PhysicalDevicePresentIdFeaturesKHR', -- 'Vulkan.Extensions.VK_KHR_present_wait.PhysicalDevicePresentWaitFeaturesKHR',@@ -848,8 +887,9 @@ -- 'Vulkan.Core11.Originally_Based_On_VK_KHR_protected_memory.PhysicalDeviceProtectedMemoryFeatures', -- 'Vulkan.Extensions.VK_EXT_provoking_vertex.PhysicalDeviceProvokingVertexFeaturesEXT', -- 'Vulkan.Extensions.VK_EXT_rgba10x6_formats.PhysicalDeviceRGBA10X6FormatsFeaturesEXT',--- 'Vulkan.Extensions.VK_ARM_rasterization_order_attachment_access.PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM',+-- 'Vulkan.Extensions.VK_EXT_rasterization_order_attachment_access.PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT', -- 'Vulkan.Extensions.VK_KHR_ray_query.PhysicalDeviceRayQueryFeaturesKHR',+-- 'Vulkan.Extensions.VK_KHR_ray_tracing_maintenance1.PhysicalDeviceRayTracingMaintenance1FeaturesKHR', -- 'Vulkan.Extensions.VK_NV_ray_tracing_motion_blur.PhysicalDeviceRayTracingMotionBlurFeaturesNV', -- 'Vulkan.Extensions.VK_KHR_ray_tracing_pipeline.PhysicalDeviceRayTracingPipelineFeaturesKHR', -- 'Vulkan.Extensions.VK_NV_representative_fragment_test.PhysicalDeviceRepresentativeFragmentTestFeaturesNV',@@ -863,21 +903,25 @@ -- 'Vulkan.Extensions.VK_KHR_shader_clock.PhysicalDeviceShaderClockFeaturesKHR', -- 'Vulkan.Core13.Promoted_From_VK_EXT_shader_demote_to_helper_invocation.PhysicalDeviceShaderDemoteToHelperInvocationFeatures', -- 'Vulkan.Core11.Promoted_From_VK_KHR_shader_draw_parameters.PhysicalDeviceShaderDrawParametersFeatures',+-- 'Vulkan.Extensions.VK_AMD_shader_early_and_late_fragment_tests.PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD', -- 'Vulkan.Core12.Promoted_From_VK_KHR_shader_float16_int8.PhysicalDeviceShaderFloat16Int8Features', -- 'Vulkan.Extensions.VK_EXT_shader_image_atomic_int64.PhysicalDeviceShaderImageAtomicInt64FeaturesEXT', -- 'Vulkan.Extensions.VK_NV_shader_image_footprint.PhysicalDeviceShaderImageFootprintFeaturesNV', -- 'Vulkan.Core13.Promoted_From_VK_KHR_shader_integer_dot_product.PhysicalDeviceShaderIntegerDotProductFeatures', -- 'Vulkan.Extensions.VK_INTEL_shader_integer_functions2.PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL',+-- 'Vulkan.Extensions.VK_EXT_shader_module_identifier.PhysicalDeviceShaderModuleIdentifierFeaturesEXT', -- 'Vulkan.Extensions.VK_NV_shader_sm_builtins.PhysicalDeviceShaderSMBuiltinsFeaturesNV', -- 'Vulkan.Core12.Promoted_From_VK_KHR_shader_subgroup_extended_types.PhysicalDeviceShaderSubgroupExtendedTypesFeatures', -- 'Vulkan.Extensions.VK_KHR_shader_subgroup_uniform_control_flow.PhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR', -- 'Vulkan.Core13.Promoted_From_VK_KHR_shader_terminate_invocation.PhysicalDeviceShaderTerminateInvocationFeatures', -- 'Vulkan.Extensions.VK_NV_shading_rate_image.PhysicalDeviceShadingRateImageFeaturesNV', -- 'Vulkan.Core13.Promoted_From_VK_EXT_subgroup_size_control.PhysicalDeviceSubgroupSizeControlFeatures',+-- 'Vulkan.Extensions.VK_EXT_subpass_merge_feedback.PhysicalDeviceSubpassMergeFeedbackFeaturesEXT', -- 'Vulkan.Extensions.VK_HUAWEI_subpass_shading.PhysicalDeviceSubpassShadingFeaturesHUAWEI', -- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.PhysicalDeviceSynchronization2Features', -- 'Vulkan.Extensions.VK_EXT_texel_buffer_alignment.PhysicalDeviceTexelBufferAlignmentFeaturesEXT', -- 'Vulkan.Core13.Promoted_From_VK_EXT_texture_compression_astc_hdr.PhysicalDeviceTextureCompressionASTCHDRFeatures',+-- 'Vulkan.Extensions.VK_QCOM_tile_properties.PhysicalDeviceTilePropertiesFeaturesQCOM', -- 'Vulkan.Core12.Promoted_From_VK_KHR_timeline_semaphore.PhysicalDeviceTimelineSemaphoreFeatures', -- 'Vulkan.Extensions.VK_EXT_transform_feedback.PhysicalDeviceTransformFeedbackFeaturesEXT', -- 'Vulkan.Core12.Promoted_From_VK_KHR_uniform_buffer_standard_layout.PhysicalDeviceUniformBufferStandardLayoutFeatures',@@ -941,23 +985,23 @@ , -- | @pQueueCreateInfos@ is a pointer to an array of 'DeviceQueueCreateInfo' -- structures describing the queues that are requested to be created along -- with the logical device. Refer to the- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#devsandqueues-queue-creation Queue Creation>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#devsandqueues-queue-creation Queue Creation> -- section below for further details. queueCreateInfos :: Vector (SomeStruct DeviceQueueCreateInfo) , -- | @ppEnabledLayerNames@ is deprecated and ignored. See- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#extendingvulkan-layers-devicelayerdeprecation>.+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#extendingvulkan-layers-devicelayerdeprecation>. enabledLayerNames :: Vector ByteString , -- | @ppEnabledExtensionNames@ is a pointer to an array of -- @enabledExtensionCount@ null-terminated UTF-8 strings containing the -- names of extensions to enable for the created device. See the- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#extendingvulkan-extensions>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#extendingvulkan-extensions> -- section for further details. enabledExtensionNames :: Vector ByteString , -- | @pEnabledFeatures@ is @NULL@ or a pointer to a -- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceFeatures' structure -- containing boolean indicators of all the features to be enabled. Refer -- to the- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features Features>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features Features> -- section for further details. enabledFeatures :: Maybe PhysicalDeviceFeatures }@@ -973,18 +1017,33 @@ getNext DeviceCreateInfo{..} = next extends :: forall e b proxy. Typeable e => proxy e -> (Extends DeviceCreateInfo e => b) -> Maybe b extends _ f+ | Just Refl <- eqT @e @PhysicalDeviceDepthClampZeroOneFeaturesEXT = Just f+ | Just Refl <- eqT @e @PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT = Just f+ | Just Refl <- eqT @e @PhysicalDeviceAmigoProfilingFeaturesSEC = Just f+ | Just Refl <- eqT @e @PhysicalDeviceTilePropertiesFeaturesQCOM = Just f+ | Just Refl <- eqT @e @PhysicalDeviceImageProcessingFeaturesQCOM = Just f+ | Just Refl <- eqT @e @PhysicalDevicePipelineRobustnessFeaturesEXT = Just f+ | Just Refl <- eqT @e @PhysicalDeviceNonSeamlessCubeMapFeaturesEXT = Just f+ | Just Refl <- eqT @e @PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD = Just f+ | Just Refl <- eqT @e @PhysicalDevicePipelinePropertiesFeaturesEXT = Just f+ | Just Refl <- eqT @e @PhysicalDeviceSubpassMergeFeedbackFeaturesEXT = Just f+ | Just Refl <- eqT @e @PhysicalDeviceImageCompressionControlSwapchainFeaturesEXT = Just f+ | Just Refl <- eqT @e @PhysicalDeviceImageCompressionControlFeaturesEXT = Just f+ | Just Refl <- eqT @e @PhysicalDeviceShaderModuleIdentifierFeaturesEXT = Just f | Just Refl <- eqT @e @PhysicalDeviceDescriptorSetHostMappingFeaturesVALVE = Just f | Just Refl <- eqT @e @PhysicalDeviceGraphicsPipelineLibraryFeaturesEXT = Just f | Just Refl <- eqT @e @PhysicalDeviceLinearColorAttachmentFeaturesNV = Just f- | Just Refl <- eqT @e @PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM = Just f+ | Just Refl <- eqT @e @PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT = Just f | Just Refl <- eqT @e @PhysicalDeviceImageViewMinLodFeaturesEXT = Just f | Just Refl <- eqT @e @PhysicalDeviceDynamicRenderingFeatures = Just f | Just Refl <- eqT @e @PhysicalDeviceRGBA10X6FormatsFeaturesEXT = Just f | Just Refl <- eqT @e @PhysicalDeviceRayTracingMotionBlurFeaturesNV = Just f+ | Just Refl <- eqT @e @PhysicalDeviceFragmentShaderBarycentricFeaturesKHR = Just f | Just Refl <- eqT @e @PhysicalDeviceShaderIntegerDotProductFeatures = Just f | Just Refl <- eqT @e @PhysicalDeviceProvokingVertexFeaturesEXT = Just f | Just Refl <- eqT @e @PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT = Just f | Just Refl <- eqT @e @PhysicalDeviceInheritedViewportScissorFeaturesNV = Just f+ | Just Refl <- eqT @e @PhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT = Just f | Just Refl <- eqT @e @PhysicalDevicePrimitivesGeneratedQueryFeaturesEXT = Just f | Just Refl <- eqT @e @PhysicalDeviceSynchronization2Features = Just f | Just Refl <- eqT @e @PhysicalDeviceColorWriteEnableFeaturesEXT = Just f@@ -992,6 +1051,7 @@ | Just Refl <- eqT @e @PhysicalDeviceVertexInputDynamicStateFeaturesEXT = Just f | Just Refl <- eqT @e @PhysicalDeviceDepthClipControlFeaturesEXT = Just f | Just Refl <- eqT @e @PhysicalDeviceMutableDescriptorTypeFeaturesVALVE = Just f+ | Just Refl <- eqT @e @PhysicalDeviceImage2DViewOf3DFeaturesEXT = Just f | Just Refl <- eqT @e @PhysicalDeviceFragmentShadingRateEnumsFeaturesNV = Just f | Just Refl <- eqT @e @PhysicalDeviceShaderTerminateInvocationFeatures = Just f | Just Refl <- eqT @e @PhysicalDeviceFragmentShadingRateFeaturesKHR = Just f@@ -1044,15 +1104,16 @@ | Just Refl <- eqT @e @PhysicalDeviceFragmentDensityMap2FeaturesEXT = Just f | Just Refl <- eqT @e @PhysicalDeviceFragmentDensityMapFeaturesEXT = Just f | Just Refl <- eqT @e @DeviceMemoryOverallocationCreateInfoAMD = Just f+ | Just Refl <- eqT @e @PhysicalDeviceRayTracingMaintenance1FeaturesKHR = Just f | Just Refl <- eqT @e @PhysicalDeviceRayQueryFeaturesKHR = Just f | Just Refl <- eqT @e @PhysicalDeviceRayTracingPipelineFeaturesKHR = Just f | Just Refl <- eqT @e @PhysicalDeviceAccelerationStructureFeaturesKHR = Just f+ | Just Refl <- eqT @e @PhysicalDeviceMeshShaderFeaturesEXT = Just f | Just Refl <- eqT @e @PhysicalDeviceMeshShaderFeaturesNV = Just f | Just Refl <- eqT @e @PhysicalDeviceInvocationMaskFeaturesHUAWEI = Just f | Just Refl <- eqT @e @PhysicalDeviceShadingRateImageFeaturesNV = Just f | Just Refl <- eqT @e @PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV = Just f | Just Refl <- eqT @e @PhysicalDeviceShaderImageFootprintFeaturesNV = Just f- | Just Refl <- eqT @e @PhysicalDeviceFragmentShaderBarycentricFeaturesNV = Just f | Just Refl <- eqT @e @PhysicalDeviceComputeShaderDerivativesFeaturesNV = Just f | Just Refl <- eqT @e @PhysicalDeviceCornerSampledImageFeaturesNV = Just f | Just Refl <- eqT @e @PhysicalDeviceExclusiveScissorFeaturesNV = Just f
src/Vulkan/Core10/DeviceInitialization.hs view
@@ -144,6 +144,7 @@ import Vulkan.Dynamic (DeviceCmds(pVkGetDeviceProcAddr)) import Vulkan.Core10.FundamentalTypes (DeviceSize) import Vulkan.Core10.Handles (Device_T)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_metal_objects (ExportMetalObjectCreateInfoEXT) import Vulkan.CStruct.Extends (Extends) import Vulkan.CStruct.Extends (Extendss) import Vulkan.CStruct.Extends (Extensible(..))@@ -267,7 +268,7 @@ -- == Valid Usage -- -- - #VUID-vkCreateInstance-ppEnabledExtensionNames-01388# All--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#extendingvulkan-extensions-extensiondependencies required extensions>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#extendingvulkan-extensions-extensiondependencies required extensions> -- for each extension in the -- 'InstanceCreateInfo'::@ppEnabledExtensionNames@ list /must/ also be -- present in that list@@ -315,7 +316,7 @@ -- controlling creation of the instance. (InstanceCreateInfo a) -> -- | @pAllocator@ controls host memory allocation as described in the- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation> -- chapter. ("allocator" ::: Maybe AllocationCallbacks) -> io (Instance)@@ -400,7 +401,7 @@ => -- | @instance@ is the handle of the instance to destroy. Instance -> -- | @pAllocator@ controls host memory allocation as described in the- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation> -- chapter. ("allocator" ::: Maybe AllocationCallbacks) -> io ()@@ -533,16 +534,17 @@ -- +------------------+------------------+------------------+ -- | device | @NULL@ | undefined | -- +------------------+------------------+------------------+--- | device | core | fp3 |+-- | device | requested core | fp4 |+-- | | version2 | | -- | | device-level | | -- | | dispatchable | |--- | | command2 | |+-- | | command3 | | -- +------------------+------------------+------------------+--- | device | enabled | fp3 |+-- | device | enabled | fp4 | -- | | extension | | -- | | device-level | | -- | | dispatchable | |--- | | command2 | |+-- | | command3 | | -- +------------------+------------------+------------------+ -- | any other case, | | @NULL@ | -- | not covered | | |@@ -556,10 +558,18 @@ -- valid values, invalid values, and @NULL@). -- -- [2]+-- Device-level commands which are part of the core version specified+-- by 'ApplicationInfo'::@apiVersion@ when creating the instance will+-- always return a valid function pointer. Core commands beyond that+-- version which are supported by the implementation /may/ either+-- return @NULL@ or a function pointer, though the function pointer+-- /must/ not be called.+--+-- [3] -- In this function, device-level excludes all physical-device-level -- commands. ----- [3]+-- [4] -- The returned function pointer /must/ only be called with a -- dispatchable object (the first parameter) that is @device@ or a -- child of @device@ e.g. 'Vulkan.Core10.Handles.Device',@@ -1085,7 +1095,7 @@ -- from @driverVersion@. -- -- On implementations that claim support for the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#roadmap-2022 Roadmap 2022>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#roadmap-2022 Roadmap 2022> -- profile, the major and minor version expressed by @apiVersion@ /must/ be -- at least Vulkan 1.3. --@@ -1114,7 +1124,7 @@ -- 16 bits of @vendorID@ /must/ contain that PCI vendor ID, and the -- remaining bits /must/ be set to zero. Otherwise, the value returned -- /must/ be a valid Khronos vendor ID, obtained as described in the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#vulkan-styleguide Vulkan Documentation and Extensions: Procedures and Conventions>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#vulkan-styleguide Vulkan Documentation and Extensions: Procedures and Conventions> -- document in the section “Registering a Vendor ID with Khronos”. Khronos -- vendor IDs are allocated starting at 0x10000, to distinguish them from -- the PCI vendor ID namespace. Khronos vendor IDs are symbolically defined@@ -1148,7 +1158,7 @@ data PhysicalDeviceProperties = PhysicalDeviceProperties { -- | @apiVersion@ is the version of Vulkan supported by the device, encoded -- as described in- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#extendingvulkan-coreversions-versionnumbers>.+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#extendingvulkan-coreversions-versionnumbers>. apiVersion :: Word32 , -- | @driverVersion@ is the vendor-specified version of the driver. driverVersion :: Word32@@ -1173,12 +1183,12 @@ pipelineCacheUUID :: ByteString , -- | @limits@ is the 'PhysicalDeviceLimits' structure specifying -- device-specific limits of the physical device. See- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits Limits>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits Limits> -- for details. limits :: PhysicalDeviceLimits , -- | @sparseProperties@ is the 'PhysicalDeviceSparseProperties' structure -- specifying various sparse related properties of the physical device. See- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#sparsememory-physicalprops Sparse Properties>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#sparsememory-physicalprops Sparse Properties> -- for details. sparseProperties :: PhysicalDeviceSparseProperties }@@ -1301,8 +1311,9 @@ -- the physical device that supports Vulkan 1.2. -- -- Implicit layers /must/ be disabled if they do not support a version at--- least as high as @apiVersion@. See the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#LoaderInterfaceArchitecture “Architecture of the Vulkan Loader Interfaces”>+-- least as high as @apiVersion@ and their version is less than the highest+-- version of the drivers on the system. See the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#LoaderInterfaceArchitecture “Architecture of the Vulkan Loader Interfaces”> -- document for additional information. -- -- Note@@ -1352,7 +1363,7 @@ engineVersion :: Word32 , -- | @apiVersion@ /must/ be the highest version of Vulkan that the -- application is designed to use, encoded as described in- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#extendingvulkan-coreversions-versionnumbers>.+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#extendingvulkan-coreversions-versionnumbers>. -- The patch version number specified in @apiVersion@ is ignored when -- creating an instance object. Only the major and minor versions of the -- instance /must/ match those requested in @apiVersion@.@@ -1435,16 +1446,22 @@ -- 'InstanceCreateInfo' includes a -- 'Vulkan.Extensions.VK_EXT_debug_report.DebugReportCallbackCreateInfoEXT' -- structure, the list of enabled extensions in--- @ppEnabledExtensionNames@ /must/ contain--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_debug_report VK_EXT_debug_report>+-- @ppEnabledExtensionNames@ /must/ contain @VK_EXT_debug_report@ -- -- - #VUID-VkInstanceCreateInfo-pNext-04926# If the @pNext@ chain of -- 'InstanceCreateInfo' includes a -- 'Vulkan.Extensions.VK_EXT_debug_utils.DebugUtilsMessengerCreateInfoEXT' -- structure, the list of enabled extensions in--- @ppEnabledExtensionNames@ /must/ contain--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_debug_utils VK_EXT_debug_utils>+-- @ppEnabledExtensionNames@ /must/ contain @VK_EXT_debug_utils@ --+-- - #VUID-VkInstanceCreateInfo-pNext-06779# If the @pNext@ chain+-- includes a+-- 'Vulkan.Extensions.VK_EXT_metal_objects.ExportMetalObjectCreateInfoEXT'+-- structure, its @exportObjectType@ member /must/ be either+-- 'Vulkan.Extensions.VK_EXT_metal_objects.EXPORT_METAL_OBJECT_TYPE_METAL_DEVICE_BIT_EXT'+-- or+-- 'Vulkan.Extensions.VK_EXT_metal_objects.EXPORT_METAL_OBJECT_TYPE_METAL_COMMAND_QUEUE_BIT_EXT'.+-- -- - #VUID-VkInstanceCreateInfo-flags-06559# If @flags@ has the -- 'Vulkan.Core10.Enums.InstanceCreateFlagBits.INSTANCE_CREATE_ENUMERATE_PORTABILITY_BIT_KHR' -- bit set, the list of enabled extensions in @ppEnabledExtensionNames@@@ -1460,6 +1477,7 @@ -- @NULL@ or a pointer to a valid instance of -- 'Vulkan.Extensions.VK_EXT_debug_report.DebugReportCallbackCreateInfoEXT', -- 'Vulkan.Extensions.VK_EXT_debug_utils.DebugUtilsMessengerCreateInfoEXT',+-- 'Vulkan.Extensions.VK_EXT_metal_objects.ExportMetalObjectCreateInfoEXT', -- 'Vulkan.Extensions.VK_EXT_validation_features.ValidationFeaturesEXT', -- or 'Vulkan.Extensions.VK_EXT_validation_flags.ValidationFlagsEXT' --@@ -1467,6 +1485,8 @@ -- struct in the @pNext@ chain /must/ be unique, with the exception of -- structures of type -- 'Vulkan.Extensions.VK_EXT_debug_utils.DebugUtilsMessengerCreateInfoEXT'+-- or+-- 'Vulkan.Extensions.VK_EXT_metal_objects.ExportMetalObjectCreateInfoEXT' -- -- - #VUID-VkInstanceCreateInfo-flags-parameter# @flags@ /must/ be a -- valid combination of@@ -1511,7 +1531,7 @@ -- listed in this array, with the first array element being the closest to -- the application, and the last array element being the closest to the -- driver. See the- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#extendingvulkan-layers>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#extendingvulkan-layers> -- section for further details. enabledLayerNames :: Vector ByteString , -- | @ppEnabledExtensionNames@ is a pointer to an array of@@ -1531,6 +1551,7 @@ getNext InstanceCreateInfo{..} = next extends :: forall e b proxy. Typeable e => proxy e -> (Extends InstanceCreateInfo e => b) -> Maybe b extends _ f+ | Just Refl <- eqT @e @ExportMetalObjectCreateInfoEXT = Just f | Just Refl <- eqT @e @DebugUtilsMessengerCreateInfoEXT = Just f | Just Refl <- eqT @e @ValidationFeaturesEXT = Just f | Just Refl <- eqT @e @ValidationFlagsEXT = Just f@@ -1656,11 +1677,11 @@ -- families /may/ be (0,0,0). -- -- The--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-device Device Memory>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-device Device Memory> -- section describes memory properties queried from the physical device. -- -- For physical device feature queries see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features Features>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features Features> -- chapter. -- -- = See Also@@ -1916,7 +1937,7 @@ -- type with the -- 'Vulkan.Core10.Enums.MemoryPropertyFlagBits.MEMORY_PROPERTY_DEVICE_LOCAL_BIT' -- bit set in its @propertyFlags@. If the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-deviceCoherentMemory deviceCoherentMemory>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-deviceCoherentMemory deviceCoherentMemory> -- feature is enabled, there /must/ be at least one memory type with the -- 'Vulkan.Core10.Enums.MemoryPropertyFlagBits.MEMORY_PROPERTY_DEVICE_COHERENT_BIT_AMD' -- bit set in its @propertyFlags@.@@ -1944,7 +1965,7 @@ -- the case their @propertyFlags@ members are not in a subset relation. -- That potentially allows more than one possible way to order the same set -- of memory types. Notice that the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-device-bitmask-list list of all allowed memory property flag combinations>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-device-bitmask-list list of all allowed memory property flag combinations> -- is written in a valid order. But if instead -- 'Vulkan.Core10.Enums.MemoryPropertyFlagBits.MEMORY_PROPERTY_DEVICE_LOCAL_BIT' -- was before@@ -2257,7 +2278,7 @@ -- = Members -- -- - @maxExtent@ are the maximum image dimensions. See the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-extentperimagetype Allowed Extent Values>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extentperimagetype Allowed Extent Values> -- section below for how these values are constrained by @type@. -- -- - @maxMipLevels@ is the maximum number of mipmap levels.@@ -2281,7 +2302,7 @@ -- member for which mipmap image support is not required -- -- - image @format@ is one of the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion formats that require a sampler Y′CBCR conversion>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion formats that require a sampler Y′CBCR conversion> -- -- - @flags@ contains -- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SUBSAMPLED_BIT_EXT'@@ -2300,7 +2321,7 @@ -- @type@ is 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_3D' -- -- - @format@ is one of the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion formats that require a sampler Y′CBCR conversion>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion formats that require a sampler Y′CBCR conversion> -- -- - If @tiling@ is -- 'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT',@@ -2310,7 +2331,7 @@ -- 'Vulkan.Core10.Enums.SampleCountFlagBits.SampleCountFlagBits' -- specifying all the supported sample counts for this image as -- described--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-supported-sample-counts below>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-supported-sample-counts below>. -- -- - @maxResourceSize@ is an upper bound on the total image size in -- bytes, inclusive of all image subresources. Implementations /may/@@ -2453,7 +2474,7 @@ -- so all accesses through such pointers are considered to be out -- of bounds. Buffer accesses through buffer device addresses are -- not bounds-checked. If the- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-cooperativeMatrixRobustBufferAccess cooperativeMatrixRobustBufferAccess>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-cooperativeMatrixRobustBufferAccess cooperativeMatrixRobustBufferAccess> -- feature is not enabled, then accesses using -- @OpCooperativeMatrixLoadNV@ and @OpCooperativeMatrixStoreNV@ -- /may/ not be bounds-checked.@@ -2466,7 +2487,7 @@ -- the end are not statically used. -- -- - If- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-robustBufferAccess2 robustBufferAccess2>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-robustBufferAccess2 robustBufferAccess2> -- is not enabled and any buffer access is determined to be out of -- bounds, then any other access of the same type (load, store, or -- atomic) to the same buffer that accesses an address less than 16@@ -2490,31 +2511,31 @@ -- - Out-of-bounds buffer loads will return any of the following values: -- -- - If the access is to a uniform buffer and- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-robustBufferAccess2 robustBufferAccess2>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-robustBufferAccess2 robustBufferAccess2> -- is enabled, loads of offsets between the end of the descriptor -- range and the end of the descriptor range rounded up to a -- multiple of- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-robustUniformBufferAccessSizeAlignment robustUniformBufferAccessSizeAlignment>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-robustUniformBufferAccessSizeAlignment robustUniformBufferAccessSizeAlignment> -- bytes /must/ return either zero values or the contents of the -- memory at the offset being loaded. Loads of offsets past the -- descriptor range rounded up to a multiple of- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-robustUniformBufferAccessSizeAlignment robustUniformBufferAccessSizeAlignment>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-robustUniformBufferAccessSizeAlignment robustUniformBufferAccessSizeAlignment> -- bytes /must/ return zero values. -- -- - If the access is to a storage buffer and- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-robustBufferAccess2 robustBufferAccess2>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-robustBufferAccess2 robustBufferAccess2> -- is enabled, loads of offsets between the end of the descriptor -- range and the end of the descriptor range rounded up to a -- multiple of- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-robustStorageBufferAccessSizeAlignment robustStorageBufferAccessSizeAlignment>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-robustStorageBufferAccessSizeAlignment robustStorageBufferAccessSizeAlignment> -- bytes /must/ return either zero values or the contents of the -- memory at the offset being loaded. Loads of offsets past the -- descriptor range rounded up to a multiple of- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-robustStorageBufferAccessSizeAlignment robustStorageBufferAccessSizeAlignment>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-robustStorageBufferAccessSizeAlignment robustStorageBufferAccessSizeAlignment> -- bytes /must/ return zero values. Similarly, stores to addresses -- between the end of the descriptor range and the end of the -- descriptor range rounded up to a multiple of- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-robustStorageBufferAccessSizeAlignment robustStorageBufferAccessSizeAlignment>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-robustStorageBufferAccessSizeAlignment robustStorageBufferAccessSizeAlignment> -- bytes /may/ be discarded. -- -- - Non-atomic accesses to storage buffers that are a multiple of 32@@ -2522,14 +2543,14 @@ -- individually bounds-checked. -- -- - If the access is to an index buffer and- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-robustBufferAccess2 robustBufferAccess2>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-robustBufferAccess2 robustBufferAccess2> -- is enabled, zero values /must/ be returned. -- -- - If the access is to a uniform texel buffer or storage texel -- buffer and- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-robustBufferAccess2 robustBufferAccess2>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-robustBufferAccess2 robustBufferAccess2> -- is enabled, zero values /must/ be returned, and then- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#textures-conversion-to-rgba Conversion to RGBA>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#textures-conversion-to-rgba Conversion to RGBA> -- is applied based on the buffer view’s format. -- -- - Values from anywhere within the memory range(s) bound to the@@ -2549,7 +2570,7 @@ -- bound to the buffer, but /must/ not modify any other memory. -- -- - If- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-robustBufferAccess2 robustBufferAccess2>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-robustBufferAccess2 robustBufferAccess2> -- is enabled, out of bounds writes /must/ not modify any memory. -- -- - Out-of-bounds atomics /may/ modify values within the memory range(s)@@ -2557,12 +2578,12 @@ -- return an undefined value. -- -- - If- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-robustBufferAccess2 robustBufferAccess2>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-robustBufferAccess2 robustBufferAccess2> -- is enabled, out of bounds atomics /must/ not modify any memory, -- and return an undefined value. -- -- - If- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-robustBufferAccess2 robustBufferAccess2>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-robustBufferAccess2 robustBufferAccess2> -- is disabled, vertex input attributes are considered out of bounds if -- the offset of the attribute in the bound vertex buffer range plus -- the size of the attribute is greater than either:@@ -2592,19 +2613,22 @@ -- - Zero values, or (0,0,0,x) vectors, as described above. -- -- - If- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-robustBufferAccess2 robustBufferAccess2>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-robustBufferAccess2 robustBufferAccess2> -- is enabled, vertex input attributes are considered out of bounds if -- the offset of the attribute in the bound vertex buffer range plus -- the size of the attribute is greater than the byte size of the -- memory range bound to the vertex buffer binding. -- -- - If a vertex input attribute is out of bounds, the- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#fxvertex-input-extraction raw data>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fxvertex-input-extraction raw data> -- extracted are zero values, and missing G, B, or A components are -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fxvertex-input-extraction filled with (0,0,1)>. -- -- - If @robustBufferAccess@ is not enabled, applications /must/ not- -- perform out of bounds accesses.+ -- perform out of bounds accesses except under the conditions enabled+ -- by the+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-pipelineRobustness pipelineRobustness>+ -- feature. . robustBufferAccess :: Bool , -- | #features-fullDrawIndexUint32# @fullDrawIndexUint32@ specifies the full -- 32-bit range of indices is supported for indexed draw calls when using a@@ -2616,7 +2640,7 @@ -- 'Vulkan.Core10.Enums.IndexType.INDEX_TYPE_UINT32'). If this feature is -- supported, @maxDrawIndexedIndexValue@ /must/ be 232-1; otherwise it -- /must/ be no smaller than 224-1. See- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxDrawIndexedIndexValue maxDrawIndexedIndexValue>.+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxDrawIndexedIndexValue maxDrawIndexedIndexValue>. fullDrawIndexUint32 :: Bool , -- | #features-imageCubeArray# @imageCubeArray@ specifies whether image views -- with a 'Vulkan.Core10.Enums.ImageViewType.ImageViewType' of@@ -2652,7 +2676,7 @@ -- modules /can/ declare the @Tessellation@ capability. tessellationShader :: Bool , -- | #features-sampleRateShading# @sampleRateShading@ specifies whether- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-sampleshading Sample Shading>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-sampleshading Sample Shading> -- and multisample interpolation are supported. If this feature is not -- enabled, the @sampleShadingEnable@ member of the -- 'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo' structure@@ -2667,7 +2691,7 @@ -- 'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_SRC1_ALPHA', and -- 'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA' enum -- values /must/ not be used as source or destination blending factors. See- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#framebuffer-dsb>.+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#framebuffer-dsb>. dualSrcBlend :: Bool , -- | #features-logicOp# @logicOp@ specifies whether logic operations are -- supported. If this feature is not enabled, the @logicOpEnable@ member of@@ -2683,7 +2707,7 @@ -- /must/ be 0 or 1. The @maxDrawIndirectCount@ member of the -- 'PhysicalDeviceLimits' structure /must/ also be 1 if this feature is not -- supported. See- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxDrawIndirectCount maxDrawIndirectCount>.+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxDrawIndirectCount maxDrawIndirectCount>. multiDrawIndirect :: Bool , -- | #features-drawIndirectFirstInstance# @drawIndirectFirstInstance@ -- specifies whether indirect drawing calls support the @firstInstance@@@ -2752,7 +2776,7 @@ , -- | #features-alphaToOne# @alphaToOne@ specifies whether the implementation -- is able to replace the alpha value of the fragment shader color output -- in the- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#fragops-covg Multisample Coverage>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fragops-covg Multisample Coverage> -- fragment operation. If this feature is not enabled, then the -- @alphaToOneEnable@ member of the -- 'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo' structure@@ -2997,9 +3021,9 @@ -- evaluation shaders, or if the shader modules /can/ declare the -- @GeometryPointSize@ capability for geometry shaders. An implementation -- supporting this feature /must/ also support one or both of the- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-tessellationShader tessellationShader>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-tessellationShader tessellationShader> -- or- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-geometryShader geometryShader>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-geometryShader geometryShader> -- features. shaderTessellationAndGeometryPointSize :: Bool , -- | #features-shaderImageGatherExtended# @shaderImageGatherExtended@@@ -3080,7 +3104,7 @@ -- 'Vulkan.Core10.Enums.Format.FORMAT_R32G32_SFLOAT' from -- @StorageImageExtendedFormats@ SPIR-V capability, are already covered by -- core Vulkan- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#formats-mandatory-features-32bit mandatory format support>.+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#formats-mandatory-features-32bit mandatory format support>. shaderStorageImageExtendedFormats :: Bool , -- | #features-shaderStorageImageMultisample# @shaderStorageImageMultisample@ -- specifies whether multisampled storage images are supported. If this@@ -3097,7 +3121,7 @@ -- require a format qualifier to be specified when reading. -- @shaderStorageImageReadWithoutFormat@ applies only to formats listed in -- the- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#formats-without-shader-storage-format storage without format>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#formats-without-shader-storage-format storage without format> -- list. shaderStorageImageReadWithoutFormat :: Bool , -- | #features-shaderStorageImageWriteWithoutFormat#@@ -3105,7 +3129,7 @@ -- require a format qualifier to be specified when writing. -- @shaderStorageImageWriteWithoutFormat@ applies only to formats listed in -- the- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#formats-without-shader-storage-format storage without format>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#formats-without-shader-storage-format storage without format> -- list. shaderStorageImageWriteWithoutFormat :: Bool , -- | #features-shaderUniformBufferArrayDynamicIndexing#@@ -3219,7 +3243,7 @@ -- set in the @flags@ member of the 'Vulkan.Core10.Buffer.BufferCreateInfo' -- and 'Vulkan.Core10.Image.ImageCreateInfo' structures, respectively. -- Otherwise resource memory /can/ be managed as described in- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#sparsememory-sparseresourcefeatures Sparse Resource Features>.+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#sparsememory-sparseresourcefeatures Sparse Resource Features>. sparseBinding :: Bool , -- | #features-sparseResidencyBuffer# @sparseResidencyBuffer@ specifies -- whether the device /can/ access partially resident buffers. If this@@ -3303,7 +3327,7 @@ sparseResidencyAliased :: Bool , -- | #features-variableMultisampleRate# @variableMultisampleRate@ specifies -- whether all pipelines that will be bound to a command buffer during a- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-noattachments subpass which uses no attachments>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-noattachments subpass which uses no attachments> -- /must/ have the same value for -- 'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'::@rasterizationSamples@. -- If set to 'Vulkan.Core10.FundamentalTypes.TRUE', the implementation@@ -3578,7 +3602,7 @@ -- if the physical device will access all single-sample 2D sparse resources -- using the standard sparse image block shapes (based on image format), as -- described in the- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#sparsememory-sparseblockshapessingle Standard Sparse Image Block Shapes (Single Sample)>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#sparsememory-sparseblockshapessingle Standard Sparse Image Block Shapes (Single Sample)> -- table. If this property is not supported the value returned in the -- @imageGranularity@ member of the -- 'Vulkan.Core10.SparseResourceMemoryManagement.SparseImageFormatProperties'@@ -3589,7 +3613,7 @@ -- 'Vulkan.Core10.FundamentalTypes.TRUE' if the physical device will access -- all multisample 2D sparse resources using the standard sparse image -- block shapes (based on image format), as described in the- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#sparsememory-sparseblockshapesmsaa Standard Sparse Image Block Shapes (MSAA)>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#sparsememory-sparseblockshapesmsaa Standard Sparse Image Block Shapes (MSAA)> -- table. If this property is not supported, the value returned in the -- @imageGranularity@ member of the -- 'Vulkan.Core10.SparseResourceMemoryManagement.SparseImageFormatProperties'@@ -3600,7 +3624,7 @@ -- if the physical device will access all 3D sparse resources using the -- standard sparse image block shapes (based on image format), as described -- in the- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#sparsememory-sparseblockshapessingle Standard Sparse Image Block Shapes (Single Sample)>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#sparsememory-sparseblockshapessingle Standard Sparse Image Block Shapes (Single Sample)> -- table. If this property is not supported, the value returned in the -- @imageGranularity@ member of the -- 'Vulkan.Core10.SparseResourceMemoryManagement.SparseImageFormatProperties'@@ -3776,7 +3800,7 @@ -- granularity, in bytes, at which buffer or linear image resources, and -- optimal image resources /can/ be bound to adjacent offsets in the same -- 'Vulkan.Core10.Handles.DeviceMemory' object without aliasing. See- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#resources-bufferimagegranularity Buffer-Image Granularity>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#resources-bufferimagegranularity Buffer-Image Granularity> -- for more details. bufferImageGranularity :: DeviceSize , -- | #limits-sparseAddressSpaceSize# @sparseAddressSpaceSize@ is the total@@ -3789,7 +3813,7 @@ -- pipeline. All 'Vulkan.Core10.Handles.DescriptorSet' decorations in -- shader modules /must/ have a value less than @maxBoundDescriptorSets@. -- See- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-sets>.+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-sets>. maxBoundDescriptorSets :: Word32 , -- | #limits-maxPerStageDescriptorSamplers# @maxPerStageDescriptorSamplers@ -- is the maximum number of samplers that /can/ be accessible to a single@@ -3803,9 +3827,9 @@ -- stage when the @stageFlags@ member of the -- 'Vulkan.Core10.DescriptorSet.DescriptorSetLayoutBinding' structure has -- the bit for that shader stage set. See- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-sampler>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-sampler> -- and- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-combinedimagesampler>.+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-combinedimagesampler>. maxPerStageDescriptorSamplers :: Word32 , -- | #limits-maxPerStageDescriptorUniformBuffers# -- @maxPerStageDescriptorUniformBuffers@ is the maximum number of uniform@@ -3820,9 +3844,9 @@ -- stage when the @stageFlags@ member of the -- 'Vulkan.Core10.DescriptorSet.DescriptorSetLayoutBinding' structure has -- the bit for that shader stage set. See- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-uniformbuffer>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-uniformbuffer> -- and- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-uniformbufferdynamic>.+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-uniformbufferdynamic>. maxPerStageDescriptorUniformBuffers :: Word32 , -- | #limits-maxPerStageDescriptorStorageBuffers# -- @maxPerStageDescriptorStorageBuffers@ is the maximum number of storage@@ -3837,9 +3861,9 @@ -- pipeline shader stage when the @stageFlags@ member of the -- 'Vulkan.Core10.DescriptorSet.DescriptorSetLayoutBinding' structure has -- the bit for that shader stage set. See- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-storagebuffer>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-storagebuffer> -- and- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-storagebufferdynamic>.+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-storagebufferdynamic>. maxPerStageDescriptorStorageBuffers :: Word32 , -- | #limits-maxPerStageDescriptorSampledImages# -- @maxPerStageDescriptorSampledImages@ is the maximum number of sampled@@ -3855,10 +3879,10 @@ -- pipeline shader stage when the @stageFlags@ member of the -- 'Vulkan.Core10.DescriptorSet.DescriptorSetLayoutBinding' structure has -- the bit for that shader stage set. See- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-combinedimagesampler>,- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-sampledimage>,+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-combinedimagesampler>,+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-sampledimage>, -- and- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-uniformtexelbuffer>.+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-uniformtexelbuffer>. maxPerStageDescriptorSampledImages :: Word32 , -- | #limits-maxPerStageDescriptorStorageImages# -- @maxPerStageDescriptorStorageImages@ is the maximum number of storage@@ -3873,9 +3897,9 @@ -- pipeline shader stage when the @stageFlags@ member of the -- 'Vulkan.Core10.DescriptorSet.DescriptorSetLayoutBinding' structure has -- the bit for that shader stage set. See- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-storageimage>,+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-storageimage>, -- and- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-storagetexelbuffer>.+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-storagetexelbuffer>. maxPerStageDescriptorStorageImages :: Word32 , -- | #limits-maxPerStageDescriptorInputAttachments# -- @maxPerStageDescriptorInputAttachments@ is the maximum number of input@@ -3890,7 +3914,7 @@ -- 'Vulkan.Core10.DescriptorSet.DescriptorSetLayoutBinding' structure has -- the bit for that shader stage set. These are only supported for the -- fragment stage. See- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-inputattachment>.+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-inputattachment>. maxPerStageDescriptorInputAttachments :: Word32 , -- | #limits-maxPerStageResources# @maxPerStageResources@ is the maximum -- number of resources that /can/ be accessible to a single shader stage in@@ -3920,9 +3944,9 @@ -- created without the -- 'Vulkan.Core10.Enums.DescriptorSetLayoutCreateFlagBits.DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT' -- bit set count against this limit. See- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-sampler>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-sampler> -- and- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-combinedimagesampler>.+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-combinedimagesampler>. maxDescriptorSetSamplers :: Word32 , -- | #limits-maxDescriptorSetUniformBuffers# @maxDescriptorSetUniformBuffers@ -- is the maximum number of uniform buffers that /can/ be included in a@@ -3933,9 +3957,9 @@ -- created without the -- 'Vulkan.Core10.Enums.DescriptorSetLayoutCreateFlagBits.DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT' -- bit set count against this limit. See- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-uniformbuffer>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-uniformbuffer> -- and- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-uniformbufferdynamic>.+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-uniformbufferdynamic>. maxDescriptorSetUniformBuffers :: Word32 , -- | #limits-maxDescriptorSetUniformBuffersDynamic# -- @maxDescriptorSetUniformBuffersDynamic@ is the maximum number of dynamic@@ -3946,7 +3970,7 @@ -- created without the -- 'Vulkan.Core10.Enums.DescriptorSetLayoutCreateFlagBits.DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT' -- bit set count against this limit. See- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-uniformbufferdynamic>.+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-uniformbufferdynamic>. maxDescriptorSetUniformBuffersDynamic :: Word32 , -- | #limits-maxDescriptorSetStorageBuffers# @maxDescriptorSetStorageBuffers@ -- is the maximum number of storage buffers that /can/ be included in a@@ -3957,9 +3981,9 @@ -- created without the -- 'Vulkan.Core10.Enums.DescriptorSetLayoutCreateFlagBits.DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT' -- bit set count against this limit. See- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-storagebuffer>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-storagebuffer> -- and- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-storagebufferdynamic>.+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-storagebufferdynamic>. maxDescriptorSetStorageBuffers :: Word32 , -- | #limits-maxDescriptorSetStorageBuffersDynamic# -- @maxDescriptorSetStorageBuffersDynamic@ is the maximum number of dynamic@@ -3970,7 +3994,7 @@ -- created without the -- 'Vulkan.Core10.Enums.DescriptorSetLayoutCreateFlagBits.DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT' -- bit set count against this limit. See- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-storagebufferdynamic>.+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-storagebufferdynamic>. maxDescriptorSetStorageBuffersDynamic :: Word32 , -- | #limits-maxDescriptorSetSampledImages# @maxDescriptorSetSampledImages@ -- is the maximum number of sampled images that /can/ be included in a@@ -3982,10 +4006,10 @@ -- created without the -- 'Vulkan.Core10.Enums.DescriptorSetLayoutCreateFlagBits.DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT' -- bit set count against this limit. See- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-combinedimagesampler>,- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-sampledimage>,+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-combinedimagesampler>,+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-sampledimage>, -- and- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-uniformtexelbuffer>.+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-uniformtexelbuffer>. maxDescriptorSetSampledImages :: Word32 , -- | #limits-maxDescriptorSetStorageImages# @maxDescriptorSetStorageImages@ -- is the maximum number of storage images that /can/ be included in a@@ -3996,9 +4020,9 @@ -- created without the -- 'Vulkan.Core10.Enums.DescriptorSetLayoutCreateFlagBits.DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT' -- bit set count against this limit. See- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-storageimage>,+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-storageimage>, -- and- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-storagetexelbuffer>.+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-storagetexelbuffer>. maxDescriptorSetStorageImages :: Word32 , -- | #limits-maxDescriptorSetInputAttachments# -- @maxDescriptorSetInputAttachments@ is the maximum number of input@@ -4009,7 +4033,7 @@ -- created without the -- 'Vulkan.Core10.Enums.DescriptorSetLayoutCreateFlagBits.DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT' -- bit set count against this limit. See- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-inputattachment>.+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-inputattachment>. maxDescriptorSetInputAttachments :: Word32 , -- | #limits-maxVertexInputAttributes# @maxVertexInputAttributes@ is the -- maximum number of vertex input attributes that /can/ be specified for a@@ -4019,9 +4043,9 @@ -- @pVertexAttributeDescriptions@ member of the -- 'Vulkan.Core10.Pipeline.PipelineVertexInputStateCreateInfo' structure. -- See- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#fxvertex-attrib>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fxvertex-attrib> -- and- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#fxvertex-input>.+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fxvertex-input>. maxVertexInputAttributes :: Word32 , -- | #limits-maxVertexInputBindings# @maxVertexInputBindings@ is the maximum -- number of vertex buffers that /can/ be specified for providing vertex@@ -4033,31 +4057,31 @@ -- The @binding@ member of -- 'Vulkan.Core10.Pipeline.VertexInputBindingDescription' /must/ be less -- than this limit. See- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#fxvertex-input>.+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fxvertex-input>. maxVertexInputBindings :: Word32 , -- | #limits-maxVertexInputAttributeOffset# @maxVertexInputAttributeOffset@ -- is the maximum vertex input attribute offset that /can/ be added to the -- vertex input binding stride. The @offset@ member of the -- 'Vulkan.Core10.Pipeline.VertexInputAttributeDescription' structure -- /must/ be less than or equal to this limit. See- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#fxvertex-input>.+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fxvertex-input>. maxVertexInputAttributeOffset :: Word32 , -- | #limits-maxVertexInputBindingStride# @maxVertexInputBindingStride@ is -- the maximum vertex input binding stride that /can/ be specified in a -- vertex input binding. The @stride@ member of the -- 'Vulkan.Core10.Pipeline.VertexInputBindingDescription' structure /must/ -- be less than or equal to this limit. See- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#fxvertex-input>.+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fxvertex-input>. maxVertexInputBindingStride :: Word32 , -- | #limits-maxVertexOutputComponents# @maxVertexOutputComponents@ is the -- maximum number of components of output variables which /can/ be output -- by a vertex shader. See- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-vertex>.+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-vertex>. maxVertexOutputComponents :: Word32 , -- | #limits-maxTessellationGenerationLevel# @maxTessellationGenerationLevel@ -- is the maximum tessellation generation level supported by the -- fixed-function tessellation primitive generator. See- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#tessellation>.+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#tessellation>. maxTessellationGenerationLevel :: Word32 , -- | #limits-maxTessellationPatchSize# @maxTessellationPatchSize@ is the -- maximum patch size, in vertices, of patches that /can/ be processed by@@ -4067,7 +4091,7 @@ -- specified at pipeline creation time and the value provided in the -- @OutputVertices@ execution mode of shader modules /must/ be less than or -- equal to this limit. See- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#tessellation>.+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#tessellation>. maxTessellationPatchSize :: Word32 , -- | #limits-maxTessellationControlPerVertexInputComponents# -- @maxTessellationControlPerVertexInputComponents@ is the maximum number@@ -4103,7 +4127,7 @@ -- the maximum invocation count supported for instanced geometry shaders. -- The value provided in the @Invocations@ execution mode of shader modules -- /must/ be less than or equal to this limit. See- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#geometry>.+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#geometry>. maxGeometryShaderInvocations :: Word32 , -- | #limits-maxGeometryInputComponents# @maxGeometryInputComponents@ is the -- maximum number of components of input variables which /can/ be provided@@ -4134,15 +4158,15 @@ -- is the maximum number of output attachments which /can/ be written to by -- the fragment shader stage when blending is enabled and one of the dual -- source blend modes is in use. See- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#framebuffer-dsb>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#framebuffer-dsb> -- and- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-dualSrcBlend dualSrcBlend>.+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-dualSrcBlend dualSrcBlend>. maxFragmentDualSrcAttachments :: Word32 , -- | #limits-maxFragmentCombinedOutputResources# -- @maxFragmentCombinedOutputResources@ is the total number of storage -- buffers, storage images, and output @Location@ decorated color -- attachments (described in- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-fragmentoutput Fragment Output Interface>)+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-fragmentoutput Fragment Output Interface>) -- which /can/ be used in the fragment shader stage. maxFragmentCombinedOutputResources :: Word32 , -- | #limits-maxComputeSharedMemorySize# @maxComputeSharedMemorySize@ is the@@ -4159,7 +4183,7 @@ -- non-Block variables declared with @Workgroup@ storage class were -- assigned offsets in an arbitrary order by successively taking the -- smallest valid offset according to the- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-resources-standard-layout Standard Storage Buffer Layout>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-resources-standard-layout Standard Storage Buffer Layout> -- rules. (This is equivalent to using the GLSL std430 layout rules.) maxComputeSharedMemorySize :: Word32 , -- | #limits-maxComputeWorkGroupCount# @maxComputeWorkGroupCount@[3] is the@@ -4168,7 +4192,7 @@ -- local workgroups for the X, Y, and Z dimensions, respectively. The -- workgroup count parameters to the dispatching commands /must/ be less -- than or equal to the corresponding limit. See- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#dispatch>.+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#dispatch>. maxComputeWorkGroupCount :: (Word32, Word32, Word32) , -- | #limits-maxComputeWorkGroupInvocations# @maxComputeWorkGroupInvocations@ -- is the maximum total number of compute shader invocations in a single@@ -4187,7 +4211,7 @@ maxComputeWorkGroupSize :: (Word32, Word32, Word32) , -- | #limits-subPixelPrecisionBits# @subPixelPrecisionBits@ is the number of -- bits of subpixel precision in framebuffer coordinates xf and yf. See- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast>.+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast>. subPixelPrecisionBits :: Word32 , -- | #limits-subTexelPrecisionBits# @subTexelPrecisionBits@ is the number of -- bits of precision in the division along an axis of an image used for@@ -4206,11 +4230,11 @@ -- maximum index value that /can/ be used for indexed draw calls when using -- 32-bit indices. This excludes the primitive restart index value of -- 0xFFFFFFFF. See- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-fullDrawIndexUint32 fullDrawIndexUint32>.+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-fullDrawIndexUint32 fullDrawIndexUint32>. maxDrawIndexedIndexValue :: Word32 , -- | #limits-maxDrawIndirectCount# @maxDrawIndirectCount@ is the maximum draw -- count that is supported for indirect drawing calls. See- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-multiDrawIndirect multiDrawIndirect>.+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-multiDrawIndirect multiDrawIndirect>. maxDrawIndirectCount :: Word32 , -- | #limits-maxSamplerLodBias# @maxSamplerLodBias@ is the maximum absolute -- sampler LOD bias. The sum of the @mipLodBias@ member of the@@ -4218,14 +4242,14 @@ -- operand of image sampling operations in shader modules (or 0 if no -- @Bias@ operand is provided to an image sampling operation) are clamped -- to the range [-@maxSamplerLodBias@,+@maxSamplerLodBias@]. See- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#samplers-mipLodBias>.+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#samplers-mipLodBias>. maxSamplerLodBias :: Float , -- | #limits-maxSamplerAnisotropy# @maxSamplerAnisotropy@ is the maximum -- degree of sampler anisotropy. The maximum degree of anisotropic -- filtering used for an image sampling operation is the minimum of the -- @maxAnisotropy@ member of the 'Vulkan.Core10.Sampler.SamplerCreateInfo' -- structure and this limit. See- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#samplers-maxAnisotropy>.+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#samplers-maxAnisotropy>. maxSamplerAnisotropy :: Float , -- | #limits-maxViewports# @maxViewports@ is the maximum number of active -- viewports. The @viewportCount@ member of the@@ -4238,14 +4262,14 @@ -- respectively. The maximum viewport dimensions /must/ be greater than or -- equal to the largest image which /can/ be created and used as a -- framebuffer attachment. See- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#vertexpostproc-viewport Controlling the Viewport>.+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#vertexpostproc-viewport Controlling the Viewport>. maxViewportDimensions :: (Word32, Word32) , -- | #limits-viewportboundsrange# @viewportBoundsRange@[2] is the [minimum, -- maximum] range that the corners of a viewport /must/ be contained in. -- This range /must/ be at least [-2 × @size@, 2 × @size@ - 1], where -- @size@ = max(@maxViewportDimensions@[0], @maxViewportDimensions@[1]). -- See- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#vertexpostproc-viewport Controlling the Viewport>.+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#vertexpostproc-viewport Controlling the Viewport>. -- -- Note --@@ -4269,26 +4293,26 @@ -- 'Vulkan.Core10.Memory.mapMemory', subtracting @offset@ bytes from the -- returned pointer will always produce an integer multiple of this limit. -- See- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-device-hostaccess>.+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-device-hostaccess>. -- The value /must/ be a power of two. minMemoryMapAlignment :: Word64 , -- | #limits-minTexelBufferOffsetAlignment# @minTexelBufferOffsetAlignment@ -- is the minimum /required/ alignment, in bytes, for the @offset@ member -- of the 'Vulkan.Core10.BufferView.BufferViewCreateInfo' structure for -- texel buffers. The value /must/ be a power of two. If- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-texelBufferAlignment texelBufferAlignment>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-texelBufferAlignment texelBufferAlignment> -- is enabled, this limit is equivalent to the maximum of the- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-uniformTexelBufferOffsetAlignmentBytes uniformTexelBufferOffsetAlignmentBytes>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-uniformTexelBufferOffsetAlignmentBytes uniformTexelBufferOffsetAlignmentBytes> -- and- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-storageTexelBufferOffsetAlignmentBytes storageTexelBufferOffsetAlignmentBytes>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-storageTexelBufferOffsetAlignmentBytes storageTexelBufferOffsetAlignmentBytes> -- members of -- 'Vulkan.Core13.Promoted_From_VK_EXT_texel_buffer_alignment.PhysicalDeviceTexelBufferAlignmentProperties', -- but smaller alignment is /optionally/ allowed by- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-storageTexelBufferOffsetSingleTexelAlignment storageTexelBufferOffsetSingleTexelAlignment>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-storageTexelBufferOffsetSingleTexelAlignment storageTexelBufferOffsetSingleTexelAlignment> -- and- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-uniformTexelBufferOffsetSingleTexelAlignment uniformTexelBufferOffsetSingleTexelAlignment>.+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-uniformTexelBufferOffsetSingleTexelAlignment uniformTexelBufferOffsetSingleTexelAlignment>. -- If- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-texelBufferAlignment texelBufferAlignment>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-texelBufferAlignment texelBufferAlignment> -- is not enabled, -- 'Vulkan.Core10.BufferView.BufferViewCreateInfo'::@offset@ /must/ be a -- multiple of this value.@@ -4365,7 +4389,7 @@ -- the color sample counts that are supported for all framebuffer color -- attachments with floating- or fixed-point formats. For color attachments -- with integer formats, see- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-framebufferIntegerColorSampleCounts framebufferIntegerColorSampleCounts>.+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-framebufferIntegerColorSampleCounts framebufferIntegerColorSampleCounts>. framebufferColorSampleCounts :: SampleCountFlags , -- | #limits-framebufferDepthSampleCounts# @framebufferDepthSampleCounts@ is -- a bitmask1 of@@ -4383,7 +4407,7 @@ -- @framebufferNoAttachmentsSampleCounts@ is a bitmask1 of -- 'Vulkan.Core10.Enums.SampleCountFlagBits.SampleCountFlagBits' indicating -- the supported sample counts for a- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-noattachments subpass which uses no attachments>.+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-noattachments subpass which uses no attachments>. framebufferNoAttachmentsSampleCounts :: SampleCountFlags , -- | #limits-maxColorAttachments# @maxColorAttachments@ is the maximum number -- of color attachments that /can/ be used by a subpass in a render pass.@@ -4448,11 +4472,11 @@ -- 'Vulkan.Core10.Enums.QueueFlagBits.QUEUE_COMPUTE_BIT' in the -- 'QueueFamilyProperties'::@queueFlags@ support -- 'QueueFamilyProperties'::@timestampValidBits@ of at least 36. See- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#queries-timestamps Timestamp Queries>.+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#queries-timestamps Timestamp Queries>. timestampComputeAndGraphics :: Bool , -- | #limits-timestampPeriod# @timestampPeriod@ is the number of nanoseconds -- /required/ for a timestamp query to be incremented by 1. See- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#queries-timestamps Timestamp Queries>.+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#queries-timestamps Timestamp Queries>. timestampPeriod :: Float , -- | #limits-maxClipDistances# @maxClipDistances@ is the maximum number of -- clip distances that /can/ be used in a single shader stage. The size of@@ -4477,7 +4501,7 @@ -- 'Vulkan.Core10.Device.DeviceQueueCreateInfo'::@pQueuePriorities@. This -- /must/ be at least 2, and levels /must/ be spread evenly over the range, -- with at least one level at 1.0, and another at 0.0. See- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#devsandqueues-priority>.+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#devsandqueues-priority>. discreteQueuePriorities :: Word32 , -- | #limits-pointSizeRange# @pointSizeRange@[2] is the range -- [@minimum@,@maximum@] of supported sizes for points. Values written to@@ -4507,12 +4531,12 @@ -- 'Vulkan.Core10.FundamentalTypes.FALSE', lines /may/ be rasterized under -- a relaxed set of rules. If set to 'Vulkan.Core10.FundamentalTypes.TRUE', -- lines are rasterized as per the strict definition. See- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-lines-basic Basic Line Segment Rasterization>.+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-lines-basic Basic Line Segment Rasterization>. strictLines :: Bool , -- | #limits-standardSampleLocations# @standardSampleLocations@ specifies -- whether rasterization uses the standard sample locations as documented -- in- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-multisampling Multisampling>.+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-multisampling Multisampling>. -- If set to 'Vulkan.Core10.FundamentalTypes.TRUE', the implementation uses -- the documented sample locations. If set to -- 'Vulkan.Core10.FundamentalTypes.FALSE', the implementation /may/ use@@ -4544,7 +4568,7 @@ optimalBufferCopyRowPitchAlignment :: DeviceSize , -- | #limits-nonCoherentAtomSize# @nonCoherentAtomSize@ is the size and -- alignment in bytes that bounds concurrent access to- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-device-hostaccess host-mapped device memory>.+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-device-hostaccess host-mapped device memory>. -- The value /must/ be a power of two. -- -- [1]@@ -4554,7 +4578,7 @@ -- sample counts for each image type. Individual images /may/ support -- additional sample counts, which are queried using -- 'getPhysicalDeviceImageFormatProperties' as described in- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-supported-sample-counts Supported Sample Counts>.+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-supported-sample-counts Supported Sample Counts>. nonCoherentAtomSize :: DeviceSize } deriving (Typeable, Eq)
src/Vulkan/Core10/Enums/AccessFlagBits.hs view
@@ -58,7 +58,7 @@ -- Certain access types are only performed by a subset of pipeline stages. -- Any synchronization command that takes both stage masks and access masks -- uses both to define the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-access-scopes access scopes>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-access-scopes access scopes> -- - only the specified access types performed by the specified stages are -- included in the access scope. An application /must/ not specify an -- access flag in a synchronization command if it does not include a@@ -76,8 +76,8 @@ -- +-----------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+ -- | 'ACCESS_VERTEX_ATTRIBUTE_READ_BIT' | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_VERTEX_INPUT_BIT' | -- +-----------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+--- | 'ACCESS_UNIFORM_READ_BIT' | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TASK_SHADER_BIT_NV', |--- | | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_MESH_SHADER_BIT_NV', |+-- | 'ACCESS_UNIFORM_READ_BIT' | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TASK_SHADER_BIT_EXT', |+-- | | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_MESH_SHADER_BIT_EXT', | -- | | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR', | -- | | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_VERTEX_SHADER_BIT', | -- | | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT', |@@ -87,8 +87,8 @@ -- | | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_COMPUTE_SHADER_BIT' | -- +-----------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+ -- | 'ACCESS_SHADER_READ_BIT' | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR', |--- | | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TASK_SHADER_BIT_NV', |--- | | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_MESH_SHADER_BIT_NV', |+-- | | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TASK_SHADER_BIT_EXT', |+-- | | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_MESH_SHADER_BIT_EXT', | -- | | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR', | -- | | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_VERTEX_SHADER_BIT', | -- | | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT', |@@ -97,8 +97,8 @@ -- | | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_SHADER_BIT', or | -- | | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_COMPUTE_SHADER_BIT' | -- +-----------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+--- | 'ACCESS_SHADER_WRITE_BIT' | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TASK_SHADER_BIT_NV', |--- | | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_MESH_SHADER_BIT_NV', |+-- | 'ACCESS_SHADER_WRITE_BIT' | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TASK_SHADER_BIT_EXT', |+-- | | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_MESH_SHADER_BIT_EXT', | -- | | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR', | -- | | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_VERTEX_SHADER_BIT', | -- | | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT', |@@ -153,8 +153,8 @@ -- | 'ACCESS_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT' | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT', | -- | | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_DRAW_INDIRECT_BIT' | -- +-----------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+--- | 'ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR' | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TASK_SHADER_BIT_NV', |--- | | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_MESH_SHADER_BIT_NV', |+-- | 'ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR' | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TASK_SHADER_BIT_EXT', |+-- | | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_MESH_SHADER_BIT_EXT', | -- | | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_VERTEX_SHADER_BIT', | -- | | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT', | -- | | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT', |@@ -199,11 +199,11 @@ -- pipeline stage. pattern ACCESS_VERTEX_ATTRIBUTE_READ_BIT = AccessFlagBits 0x00000004 -- | 'ACCESS_UNIFORM_READ_BIT' specifies read access to a--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-uniformbuffer uniform buffer>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-uniformbuffer uniform buffer> -- in any shader pipeline stage. pattern ACCESS_UNIFORM_READ_BIT = AccessFlagBits 0x00000008 -- | 'ACCESS_INPUT_ATTACHMENT_READ_BIT' specifies read access to an--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass input attachment>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass input attachment> -- within a render pass during subpass shading or fragment shading. Such -- access occurs in the -- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI'@@ -212,34 +212,34 @@ -- pipeline stage. pattern ACCESS_INPUT_ATTACHMENT_READ_BIT = AccessFlagBits 0x00000010 -- | 'ACCESS_SHADER_READ_BIT' specifies read access to a--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-uniformbuffer uniform buffer>,--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-uniformtexelbuffer uniform texel buffer>,--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-sampledimage sampled image>,--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-storagebuffer storage buffer>,--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-physical-storage-buffer physical storage buffer>,--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#shader-binding-table shader binding table>,--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-storagetexelbuffer storage texel buffer>,+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-uniformbuffer uniform buffer>,+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-uniformtexelbuffer uniform texel buffer>,+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-sampledimage sampled image>,+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-storagebuffer storage buffer>,+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-physical-storage-buffer physical storage buffer>,+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#shader-binding-table shader binding table>,+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-storagetexelbuffer storage texel buffer>, -- or--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-storageimage storage image>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-storageimage storage image> -- in any shader pipeline stage. pattern ACCESS_SHADER_READ_BIT = AccessFlagBits 0x00000020 -- | 'ACCESS_SHADER_WRITE_BIT' specifies write access to a--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-storagebuffer storage buffer>,--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-physical-storage-buffer physical storage buffer>,--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-storagetexelbuffer storage texel buffer>,+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-storagebuffer storage buffer>,+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-physical-storage-buffer physical storage buffer>,+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-storagetexelbuffer storage texel buffer>, -- or--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-storageimage storage image>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-storageimage storage image> -- in any shader pipeline stage. pattern ACCESS_SHADER_WRITE_BIT = AccessFlagBits 0x00000040 -- | 'ACCESS_COLOR_ATTACHMENT_READ_BIT' specifies read access to a--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass color attachment>,+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass color attachment>, -- such as via--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#framebuffer-blending blending>,--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#framebuffer-logicop logic operations>,+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#framebuffer-blending blending>,+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#framebuffer-logicop logic operations>, -- or via certain--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-load-store-ops subpass load operations>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-load-store-ops subpass load operations>. -- It does not include--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#framebuffer-blend-advanced advanced blend operations>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#framebuffer-blend-advanced advanced blend operations>. -- Such access occurs in the -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT' -- pipeline stage.@@ -247,19 +247,19 @@ -- | 'ACCESS_COLOR_ATTACHMENT_WRITE_BIT' specifies write access to a -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass color, resolve, or depth\/stencil resolve attachment> -- during a--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass render pass>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass render pass> -- or via certain--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-load-store-ops subpass load and store operations>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-load-store-ops subpass load and store operations>. -- Such access occurs in the -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT' -- pipeline stage. pattern ACCESS_COLOR_ATTACHMENT_WRITE_BIT = AccessFlagBits 0x00000100 -- | 'ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT' specifies read access to a--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass depth\/stencil attachment>,+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass depth\/stencil attachment>, -- via--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#fragops-ds-state depth or stencil operations>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fragops-ds-state depth or stencil operations> -- or via certain--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-load-store-ops subpass load operations>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-load-store-ops subpass load operations>. -- Such access occurs in the -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT' -- or@@ -267,11 +267,11 @@ -- pipeline stages. pattern ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT = AccessFlagBits 0x00000200 -- | 'ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT' specifies write access to a--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass depth\/stencil attachment>,+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass depth\/stencil attachment>, -- via--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#fragops-ds-state depth or stencil operations>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fragops-ds-state depth or stencil operations> -- or via certain--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-load-store-ops subpass load and store operations>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-load-store-ops subpass load and store operations>. -- Such access occurs in the -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT' -- or@@ -280,16 +280,16 @@ pattern ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT = AccessFlagBits 0x00000400 -- | 'ACCESS_TRANSFER_READ_BIT' specifies read access to an image or buffer -- in a--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#copies copy>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#copies copy> -- operation. Such access occurs in the -- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_TRANSFER_BIT' -- pipeline stage. pattern ACCESS_TRANSFER_READ_BIT = AccessFlagBits 0x00000800 -- | 'ACCESS_TRANSFER_WRITE_BIT' specifies write access to an image or buffer -- in a--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#clears clear>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#clears clear> -- or--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#copies copy>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#copies copy> -- operation. Such access occurs in the -- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_TRANSFER_BIT' -- pipeline stage.@@ -335,16 +335,16 @@ -- pipeline stage. pattern ACCESS_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR = AccessFlagBits 0x00800000 -- | 'ACCESS_FRAGMENT_DENSITY_MAP_READ_BIT_EXT' specifies read access to a--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-fragmentdensitymapattachment fragment density map attachment>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-fragmentdensitymapattachment fragment density map attachment> -- during dynamic--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#fragmentdensitymapops fragment density map operations>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fragmentdensitymapops fragment density map operations> -- Such access occurs in the -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT' -- pipeline stage. pattern ACCESS_FRAGMENT_DENSITY_MAP_READ_BIT_EXT = AccessFlagBits 0x01000000 -- | 'ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_KHR' specifies write access to -- an acceleration structure or--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#acceleration-structure-scratch acceleration structure scratch buffer>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#acceleration-structure-scratch acceleration structure scratch buffer> -- as part of a build or copy command. Such access occurs in the -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR' -- pipeline stage.@@ -352,7 +352,7 @@ -- | 'ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR' specifies read access to an -- acceleration structure as part of a trace, build, or copy command, or to -- an--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#acceleration-structure-scratch acceleration structure scratch buffer>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#acceleration-structure-scratch acceleration structure scratch buffer> -- as part of a build command. Such access occurs in the -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR' -- pipeline stage or@@ -361,9 +361,9 @@ pattern ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR = AccessFlagBits 0x00200000 -- | 'ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT' specifies read access -- to--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass color attachments>,+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass color attachments>, -- including--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#framebuffer-blend-advanced advanced blend operations>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#framebuffer-blend-advanced advanced blend operations>. -- Such access occurs in the -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT' -- pipeline stage.
src/Vulkan/Core10/Enums/BorderColor.hs view
@@ -25,7 +25,7 @@ -- = Description -- -- These colors are described in detail in--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#textures-texel-replacement Texel Replacement>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#textures-texel-replacement Texel Replacement>. -- -- = See Also --
src/Vulkan/Core10/Enums/BufferCreateFlagBits.hs view
@@ -29,9 +29,9 @@ -- = Description -- -- See--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#sparsememory-sparseresourcefeatures Sparse Resource Features>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#sparsememory-sparseresourcefeatures Sparse Resource Features> -- and--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features Physical Device Features>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features Physical Device Features> -- for details of the sparse memory features supported on a device. -- -- = See Also
src/Vulkan/Core10/Enums/BufferUsageFlagBits.hs view
@@ -45,7 +45,7 @@ -- | 'BUFFER_USAGE_TRANSFER_SRC_BIT' specifies that the buffer /can/ be used -- as the source of a /transfer command/ (see the definition of--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages-transfer >).+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages-transfer >). pattern BUFFER_USAGE_TRANSFER_SRC_BIT = BufferUsageFlagBits 0x00000001 -- | 'BUFFER_USAGE_TRANSFER_DST_BIT' specifies that the buffer /can/ be used -- as the destination of a transfer command.@@ -88,6 +88,8 @@ -- 'Vulkan.Core10.CommandBufferBuilding.cmdDrawIndexedIndirect', -- 'Vulkan.Extensions.VK_NV_mesh_shader.cmdDrawMeshTasksIndirectNV', -- 'Vulkan.Extensions.VK_NV_mesh_shader.cmdDrawMeshTasksIndirectCountNV',+-- 'Vulkan.Extensions.VK_EXT_mesh_shader.cmdDrawMeshTasksIndirectEXT',+-- 'Vulkan.Extensions.VK_EXT_mesh_shader.cmdDrawMeshTasksIndirectCountEXT', -- or 'Vulkan.Core10.CommandBufferBuilding.cmdDispatchIndirect'. It is also -- suitable for passing as the @buffer@ member of -- 'Vulkan.Extensions.VK_NV_device_generated_commands.IndirectCommandsStreamNV',@@ -97,7 +99,7 @@ pattern BUFFER_USAGE_INDIRECT_BUFFER_BIT = BufferUsageFlagBits 0x00000100 -- | 'BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR' specifies that the buffer is -- suitable for use as a--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#shader-binding-table Shader Binding Table>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#shader-binding-table Shader Binding Table>. pattern BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR = BufferUsageFlagBits 0x00000400 -- | 'BUFFER_USAGE_ACCELERATION_STRUCTURE_STORAGE_BIT_KHR' specifies that the -- buffer is suitable for storage space for a@@ -105,7 +107,7 @@ pattern BUFFER_USAGE_ACCELERATION_STRUCTURE_STORAGE_BIT_KHR = BufferUsageFlagBits 0x00100000 -- | 'BUFFER_USAGE_ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_BIT_KHR' -- specifies that the buffer is suitable for use as a read-only input to an--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#acceleration-structure-building acceleration structure build>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#acceleration-structure-building acceleration structure build>. pattern BUFFER_USAGE_ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_BIT_KHR = BufferUsageFlagBits 0x00080000 -- | 'BUFFER_USAGE_CONDITIONAL_RENDERING_BIT_EXT' specifies that the buffer -- is suitable for passing as the @buffer@ parameter to
src/Vulkan/Core10/Enums/ColorComponentFlagBits.hs view
@@ -31,7 +31,7 @@ -- is enabled. -- -- The color write mask operation is applied only if--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#framebuffer-color-write-enable Color Write Enable>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#framebuffer-color-write-enable Color Write Enable> -- is enabled for the respective attachment. Otherwise the color write mask -- is ignored and writes to all components of the attachment are disabled. --
src/Vulkan/Core10/Enums/CommandBufferResetFlagBits.hs view
@@ -34,7 +34,7 @@ -- returned to the parent command pool. If this flag is not set, then the -- command buffer /may/ hold onto memory resources and reuse them when -- recording commands. @commandBuffer@ is moved to the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-lifecycle initial state>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-lifecycle initial state>. pattern COMMAND_BUFFER_RESET_RELEASE_RESOURCES_BIT = CommandBufferResetFlagBits 0x00000001 conNameCommandBufferResetFlagBits :: String
src/Vulkan/Core10/Enums/CommandPoolCreateFlagBits.hs view
@@ -39,7 +39,7 @@ pattern COMMAND_POOL_CREATE_TRANSIENT_BIT = CommandPoolCreateFlagBits 0x00000001 -- | 'COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT' allows any command buffer -- allocated from a pool to be individually reset to the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-lifecycle initial state>;+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-lifecycle initial state>; -- either by calling 'Vulkan.Core10.CommandBuffer.resetCommandBuffer', or -- via the implicit reset when calling -- 'Vulkan.Core10.CommandBuffer.beginCommandBuffer'. If this flag is not
src/Vulkan/Core10/Enums/CompareOp.hs view
@@ -20,8 +20,60 @@ import GHC.Read (Read(readPrec)) import GHC.Show (Show(showsPrec)) --- | VkCompareOp - Stencil comparison function+-- | VkCompareOp - Comparison operator for depth, stencil, and sampler+-- operations --+-- = Description+--+-- - 'COMPARE_OP_NEVER' specifies that the comparison always evaluates+-- false.+--+-- - 'COMPARE_OP_LESS' specifies that the comparison evaluates+-- /reference/ \< /test/.+--+-- - 'COMPARE_OP_EQUAL' specifies that the comparison evaluates+-- /reference/ = /test/.+--+-- - 'COMPARE_OP_LESS_OR_EQUAL' specifies that the comparison evaluates+-- /reference/ ≤ /test/.+--+-- - 'COMPARE_OP_GREATER' specifies that the comparison evaluates+-- /reference/ > /test/.+--+-- - 'COMPARE_OP_NOT_EQUAL' specifies that the comparison evaluates+-- /reference/ ≠ /test/.+--+-- - 'COMPARE_OP_GREATER_OR_EQUAL' specifies that the comparison+-- evaluates /reference/ ≥ /test/.+--+-- - 'COMPARE_OP_ALWAYS' specifies that the comparison always evaluates+-- true.+--+-- Comparison operators are used for:+--+-- - The+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#textures-depth-compare-operation Depth Compare Operation>+-- operator for a sampler, specified by+-- 'Vulkan.Core10.Sampler.SamplerCreateInfo'::@compareOp@.+--+-- - The stencil comparison operator for the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fragops-stencil stencil test>,+-- specified by+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilOp'::@compareOp@+-- or 'Vulkan.Core10.Pipeline.StencilOpState'::@compareOp@.+--+-- - The+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fragops-depth-comparison Depth Comparison>+-- operator for the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fragops-depth depth test>,+-- specified by+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthCompareOp'::@depthCompareOp@+-- or+-- 'Vulkan.Core10.Pipeline.PipelineDepthStencilStateCreateInfo'::@depthCompareOp@.+--+-- Each such use describes how the /reference/ and /test/ values for that+-- comparison are determined.+-- -- = See Also -- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,@@ -35,21 +87,21 @@ newtype CompareOp = CompareOp Int32 deriving newtype (Eq, Ord, Storable, Zero) --- | 'COMPARE_OP_NEVER' specifies that the test evaluates to false.+-- No documentation found for Nested "VkCompareOp" "VK_COMPARE_OP_NEVER" pattern COMPARE_OP_NEVER = CompareOp 0--- | 'COMPARE_OP_LESS' specifies that the test evaluates A \< B.+-- No documentation found for Nested "VkCompareOp" "VK_COMPARE_OP_LESS" pattern COMPARE_OP_LESS = CompareOp 1--- | 'COMPARE_OP_EQUAL' specifies that the test evaluates A = B.+-- No documentation found for Nested "VkCompareOp" "VK_COMPARE_OP_EQUAL" pattern COMPARE_OP_EQUAL = CompareOp 2--- | 'COMPARE_OP_LESS_OR_EQUAL' specifies that the test evaluates A ≤ B.+-- No documentation found for Nested "VkCompareOp" "VK_COMPARE_OP_LESS_OR_EQUAL" pattern COMPARE_OP_LESS_OR_EQUAL = CompareOp 3--- | 'COMPARE_OP_GREATER' specifies that the test evaluates A > B.+-- No documentation found for Nested "VkCompareOp" "VK_COMPARE_OP_GREATER" pattern COMPARE_OP_GREATER = CompareOp 4--- | 'COMPARE_OP_NOT_EQUAL' specifies that the test evaluates A ≠ B.+-- No documentation found for Nested "VkCompareOp" "VK_COMPARE_OP_NOT_EQUAL" pattern COMPARE_OP_NOT_EQUAL = CompareOp 5--- | 'COMPARE_OP_GREATER_OR_EQUAL' specifies that the test evaluates A ≥ B.+-- No documentation found for Nested "VkCompareOp" "VK_COMPARE_OP_GREATER_OR_EQUAL" pattern COMPARE_OP_GREATER_OR_EQUAL = CompareOp 6--- | 'COMPARE_OP_ALWAYS' specifies that the test evaluates to true.+-- No documentation found for Nested "VkCompareOp" "VK_COMPARE_OP_ALWAYS" pattern COMPARE_OP_ALWAYS = CompareOp 7 {-# complete COMPARE_OP_NEVER, COMPARE_OP_LESS,
src/Vulkan/Core10/Enums/ComponentSwizzle.hs view
@@ -55,7 +55,7 @@ -- | 'COMPONENT_SWIZZLE_ONE' specifies that the component is set to either 1 -- or 1.0, depending on whether the type of the image view format is -- integer or floating-point respectively, as determined by the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#formats-definition Format Definition>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#formats-definition Format Definition> -- section for each 'Vulkan.Core10.Enums.Format.Format'. pattern COMPONENT_SWIZZLE_ONE = ComponentSwizzle 2 -- | 'COMPONENT_SWIZZLE_R' specifies that the component is set to the value
src/Vulkan/Core10/Enums/DependencyFlagBits.hs view
@@ -2,6 +2,7 @@ -- No documentation found for Chapter "DependencyFlagBits" module Vulkan.Core10.Enums.DependencyFlagBits ( DependencyFlags , DependencyFlagBits( DEPENDENCY_BY_REGION_BIT+ , DEPENDENCY_FEEDBACK_LOOP_BIT_EXT , DEPENDENCY_VIEW_LOCAL_BIT , DEPENDENCY_DEVICE_GROUP_BIT , ..@@ -32,14 +33,19 @@ deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits) -- | 'DEPENDENCY_BY_REGION_BIT' specifies that dependencies will be--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-framebuffer-regions framebuffer-local>.-pattern DEPENDENCY_BY_REGION_BIT = DependencyFlagBits 0x00000001+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-framebuffer-regions framebuffer-local>.+pattern DEPENDENCY_BY_REGION_BIT = DependencyFlagBits 0x00000001+-- | 'DEPENDENCY_FEEDBACK_LOOP_BIT_EXT' specifies that the render pass will+-- write to and read from the same image using the+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT'+-- layout.+pattern DEPENDENCY_FEEDBACK_LOOP_BIT_EXT = DependencyFlagBits 0x00000008 -- | 'DEPENDENCY_VIEW_LOCAL_BIT' specifies that a--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-barriers-subpass-self-dependencies subpass has more than one view>.-pattern DEPENDENCY_VIEW_LOCAL_BIT = DependencyFlagBits 0x00000002+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-barriers-subpass-self-dependencies subpass has more than one view>.+pattern DEPENDENCY_VIEW_LOCAL_BIT = DependencyFlagBits 0x00000002 -- | 'DEPENDENCY_DEVICE_GROUP_BIT' specifies that dependencies are--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-device-local-dependencies non-device-local>.-pattern DEPENDENCY_DEVICE_GROUP_BIT = DependencyFlagBits 0x00000004+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-device-local-dependencies non-device-local>.+pattern DEPENDENCY_DEVICE_GROUP_BIT = DependencyFlagBits 0x00000004 conNameDependencyFlagBits :: String conNameDependencyFlagBits = "DependencyFlagBits"@@ -49,9 +55,10 @@ showTableDependencyFlagBits :: [(DependencyFlagBits, String)] showTableDependencyFlagBits =- [ (DEPENDENCY_BY_REGION_BIT , "BY_REGION_BIT")- , (DEPENDENCY_VIEW_LOCAL_BIT , "VIEW_LOCAL_BIT")- , (DEPENDENCY_DEVICE_GROUP_BIT, "DEVICE_GROUP_BIT")+ [ (DEPENDENCY_BY_REGION_BIT , "BY_REGION_BIT")+ , (DEPENDENCY_FEEDBACK_LOOP_BIT_EXT, "FEEDBACK_LOOP_BIT_EXT")+ , (DEPENDENCY_VIEW_LOCAL_BIT , "VIEW_LOCAL_BIT")+ , (DEPENDENCY_DEVICE_GROUP_BIT , "DEVICE_GROUP_BIT") ] instance Show DependencyFlagBits where
src/Vulkan/Core10/Enums/DescriptorSetLayoutCreateFlagBits.hs view
@@ -36,7 +36,7 @@ -- pool created with the -- 'Vulkan.Core10.Enums.DescriptorPoolCreateFlagBits.DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_VALVE' -- bit set. Descriptor set layouts created with this bit have no--- expressable limit for maximum number of descriptors per-stage. Host+-- expressible limit for maximum number of descriptors per-stage. Host -- descriptor sets are limited only by available host memory, but /may/ be -- limited for implementation specific reasons. Implementations /may/ limit -- the number of supported descriptors to UpdateAfterBind limits or
src/Vulkan/Core10/Enums/DescriptorType.hs view
@@ -11,6 +11,8 @@ , DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC , DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC , DESCRIPTOR_TYPE_INPUT_ATTACHMENT+ , DESCRIPTOR_TYPE_BLOCK_MATCH_IMAGE_QCOM+ , DESCRIPTOR_TYPE_SAMPLE_WEIGHT_IMAGE_QCOM , DESCRIPTOR_TYPE_MUTABLE_VALVE , DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV , DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR@@ -33,44 +35,50 @@ -- = Description -- -- - 'DESCRIPTOR_TYPE_SAMPLER' specifies a--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-sampler sampler descriptor>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-sampler sampler descriptor>. -- -- - 'DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER' specifies a--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-combinedimagesampler combined image sampler descriptor>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-combinedimagesampler combined image sampler descriptor>. -- -- - 'DESCRIPTOR_TYPE_SAMPLED_IMAGE' specifies a--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-sampledimage sampled image descriptor>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-sampledimage sampled image descriptor>. -- -- - 'DESCRIPTOR_TYPE_STORAGE_IMAGE' specifies a--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-storageimage storage image descriptor>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-storageimage storage image descriptor>. -- -- - 'DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER' specifies a--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-uniformtexelbuffer uniform texel buffer descriptor>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-uniformtexelbuffer uniform texel buffer descriptor>. -- -- - 'DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER' specifies a--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-storagetexelbuffer storage texel buffer descriptor>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-storagetexelbuffer storage texel buffer descriptor>. -- -- - 'DESCRIPTOR_TYPE_UNIFORM_BUFFER' specifies a--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-uniformbuffer uniform buffer descriptor>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-uniformbuffer uniform buffer descriptor>. -- -- - 'DESCRIPTOR_TYPE_STORAGE_BUFFER' specifies a--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-storagebuffer storage buffer descriptor>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-storagebuffer storage buffer descriptor>. -- -- - 'DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC' specifies a--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-uniformbufferdynamic dynamic uniform buffer descriptor>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-uniformbufferdynamic dynamic uniform buffer descriptor>. -- -- - 'DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC' specifies a--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-storagebufferdynamic dynamic storage buffer descriptor>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-storagebufferdynamic dynamic storage buffer descriptor>. -- -- - 'DESCRIPTOR_TYPE_INPUT_ATTACHMENT' specifies an--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-inputattachment input attachment descriptor>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-inputattachment input attachment descriptor>. -- -- - 'DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK' specifies an--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-inlineuniformblock inline uniform block>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-inlineuniformblock inline uniform block>. -- -- - 'DESCRIPTOR_TYPE_MUTABLE_VALVE' specifies a--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-mutable descriptor of mutable type>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-mutable descriptor of mutable type>. --+-- - 'DESCRIPTOR_TYPE_SAMPLE_WEIGHT_IMAGE_QCOM' specifies a+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-weightimage sampled weight image descriptor>.+--+-- - 'DESCRIPTOR_TYPE_BLOCK_MATCH_IMAGE_QCOM' specifies a+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-blockmatching block matching image descriptor>.+-- -- When a descriptor set is updated via elements of -- 'Vulkan.Core10.DescriptorSet.WriteDescriptorSet', members of -- @pImageInfo@, @pBufferInfo@ and @pTexelBufferView@ are only accessed by@@ -164,6 +172,10 @@ pattern DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC = DescriptorType 9 -- No documentation found for Nested "VkDescriptorType" "VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT" pattern DESCRIPTOR_TYPE_INPUT_ATTACHMENT = DescriptorType 10+-- No documentation found for Nested "VkDescriptorType" "VK_DESCRIPTOR_TYPE_BLOCK_MATCH_IMAGE_QCOM"+pattern DESCRIPTOR_TYPE_BLOCK_MATCH_IMAGE_QCOM = DescriptorType 1000440001+-- No documentation found for Nested "VkDescriptorType" "VK_DESCRIPTOR_TYPE_SAMPLE_WEIGHT_IMAGE_QCOM"+pattern DESCRIPTOR_TYPE_SAMPLE_WEIGHT_IMAGE_QCOM = DescriptorType 1000440000 -- No documentation found for Nested "VkDescriptorType" "VK_DESCRIPTOR_TYPE_MUTABLE_VALVE" pattern DESCRIPTOR_TYPE_MUTABLE_VALVE = DescriptorType 1000351000 -- No documentation found for Nested "VkDescriptorType" "VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV"@@ -183,6 +195,8 @@ DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC, DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC, DESCRIPTOR_TYPE_INPUT_ATTACHMENT,+ DESCRIPTOR_TYPE_BLOCK_MATCH_IMAGE_QCOM,+ DESCRIPTOR_TYPE_SAMPLE_WEIGHT_IMAGE_QCOM, DESCRIPTOR_TYPE_MUTABLE_VALVE, DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV, DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR,@@ -207,6 +221,8 @@ , (DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC , "UNIFORM_BUFFER_DYNAMIC") , (DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC , "STORAGE_BUFFER_DYNAMIC") , (DESCRIPTOR_TYPE_INPUT_ATTACHMENT , "INPUT_ATTACHMENT")+ , (DESCRIPTOR_TYPE_BLOCK_MATCH_IMAGE_QCOM , "BLOCK_MATCH_IMAGE_QCOM")+ , (DESCRIPTOR_TYPE_SAMPLE_WEIGHT_IMAGE_QCOM , "SAMPLE_WEIGHT_IMAGE_QCOM") , (DESCRIPTOR_TYPE_MUTABLE_VALVE , "MUTABLE_VALVE") , (DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV , "ACCELERATION_STRUCTURE_NV") , (DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR, "ACCELERATION_STRUCTURE_KHR")
src/Vulkan/Core10/Enums/DynamicState.hs view
@@ -322,7 +322,7 @@ -- | 'DYNAMIC_STATE_PRIMITIVE_TOPOLOGY' specifies that the @topology@ state -- in 'Vulkan.Core10.Pipeline.PipelineInputAssemblyStateCreateInfo' only -- specifies the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#drawing-primitive-topology-class topology class>,+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#drawing-primitive-topology-class topology class>, -- and the specific topology order and adjacency /must/ be set dynamically -- with -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopology'
src/Vulkan/Core10/Enums/Filter.hs view
@@ -2,7 +2,7 @@ -- No documentation found for Chapter "Filter" module Vulkan.Core10.Enums.Filter (Filter( FILTER_NEAREST , FILTER_LINEAR- , FILTER_CUBIC_IMG+ , FILTER_CUBIC_EXT , .. )) where @@ -20,7 +20,7 @@ -- = Description -- -- These filters are described in detail in--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#textures-texel-filtering Texel Filtering>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#textures-texel-filtering Texel Filtering>. -- -- = See Also --@@ -36,11 +36,11 @@ pattern FILTER_NEAREST = Filter 0 -- | 'FILTER_LINEAR' specifies linear filtering. pattern FILTER_LINEAR = Filter 1--- No documentation found for Nested "VkFilter" "VK_FILTER_CUBIC_IMG"-pattern FILTER_CUBIC_IMG = Filter 1000015000+-- | 'FILTER_CUBIC_EXT' specifies cubic filtering.+pattern FILTER_CUBIC_EXT = Filter 1000015000 {-# complete FILTER_NEAREST, FILTER_LINEAR,- FILTER_CUBIC_IMG :: Filter #-}+ FILTER_CUBIC_EXT :: Filter #-} conNameFilter :: String conNameFilter = "Filter"@@ -49,7 +49,7 @@ enumPrefixFilter = "FILTER_" showTableFilter :: [(Filter, String)]-showTableFilter = [(FILTER_NEAREST, "NEAREST"), (FILTER_LINEAR, "LINEAR"), (FILTER_CUBIC_IMG, "CUBIC_IMG")]+showTableFilter = [(FILTER_NEAREST, "NEAREST"), (FILTER_LINEAR, "LINEAR"), (FILTER_CUBIC_EXT, "CUBIC_EXT")] instance Show Filter where showsPrec = enumShowsPrec enumPrefixFilter showTableFilter conNameFilter (\(Filter x) -> x) (showsPrec 11)
src/Vulkan/Core10/Enums/Format.hs view
@@ -833,9 +833,9 @@ -- packed unsigned floating-point format that has a 10-bit B component in -- bits 22..31, an 11-bit G component in bits 11..21, an 11-bit R component -- in bits 0..10. See--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#fundamentals-fp10>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fundamentals-fp10> -- and--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#fundamentals-fp11>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fundamentals-fp11>. pattern FORMAT_B10G11R11_UFLOAT_PACK32 = Format 122 -- | 'FORMAT_E5B9G9R9_UFLOAT_PACK32' specifies a three-component, 32-bit -- packed unsigned floating-point format that has a 5-bit shared exponent
src/Vulkan/Core10/Enums/FormatFeatureFlagBits.hs view
@@ -16,8 +16,8 @@ , FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT , FORMAT_FEATURE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR , FORMAT_FEATURE_FRAGMENT_DENSITY_MAP_BIT_EXT+ , FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT , FORMAT_FEATURE_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR- , FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG , FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT , FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT , FORMAT_FEATURE_DISJOINT_BIT@@ -62,11 +62,11 @@ -- -- - 'FORMAT_FEATURE_SAMPLED_IMAGE_BIT' specifies that an image view -- /can/ be--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-sampledimage sampled from>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-sampledimage sampled from>. -- -- - 'FORMAT_FEATURE_STORAGE_IMAGE_BIT' specifies that an image view -- /can/ be used as a--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-storageimage storage image>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-storageimage storage image>. -- -- - 'FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT' specifies that an image -- view /can/ be used as storage image that supports atomic operations.@@ -121,13 +121,13 @@ -- -- - 'FORMAT_FEATURE_TRANSFER_SRC_BIT' specifies that an image /can/ be -- used as a source image for--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#copies copy commands>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#copies copy commands>. -- -- - 'FORMAT_FEATURE_TRANSFER_DST_BIT' specifies that an image /can/ be -- used as a destination image for--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#copies copy commands>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#copies copy commands> -- and--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#clears clear commands>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#clears clear commands>. -- -- - 'FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT' specifies -- 'Vulkan.Core10.Handles.Image' /can/ be used as a sampled image with@@ -136,20 +136,20 @@ -- This bit /must/ only be exposed for formats that also support the -- 'FORMAT_FEATURE_SAMPLED_IMAGE_BIT'. ----- - 'Vulkan.Extensions.VK_EXT_filter_cubic.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT'--- specifies that 'Vulkan.Core10.Handles.Image' /can/ be used with a--- sampler that has either of @magFilter@ or @minFilter@ set to--- 'Vulkan.Extensions.VK_EXT_filter_cubic.FILTER_CUBIC_EXT', or be the--- source image for a blit with @filter@ set to--- 'Vulkan.Extensions.VK_EXT_filter_cubic.FILTER_CUBIC_EXT'. This bit--- /must/ only be exposed for formats that also support the+-- - 'FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT' specifies that+-- 'Vulkan.Core10.Handles.Image' /can/ be used with a sampler that has+-- either of @magFilter@ or @minFilter@ set to+-- 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT', or be the source+-- image for a blit with @filter@ set to+-- 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT'. This bit /must/ only+-- be exposed for formats that also support the -- 'FORMAT_FEATURE_SAMPLED_IMAGE_BIT'. If the format being queried is a -- depth\/stencil format, this only specifies that the depth aspect is -- cubic filterable. -- -- - 'FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT' specifies that an -- application /can/ define a--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion> -- using this format as a source, and that an image of this format -- /can/ be used with a -- 'Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion.SamplerYcbcrConversionCreateInfo'@@ -164,7 +164,7 @@ -- -- - 'FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT' specifies that an -- application /can/ define a--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion> -- using this format as a source, and that an image of this format -- /can/ be used with a -- 'Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion.SamplerYcbcrConversionCreateInfo'@@ -175,12 +175,12 @@ -- neither 'FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT' nor -- 'FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT' is set, the application -- /must/ not define a--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion> -- using this format as a source. -- -- - 'FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT' -- specifies that an application /can/ define a--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion> -- using this format as a source with @chromaFilter@ set to -- 'Vulkan.Core10.Enums.Filter.FILTER_LINEAR'. --@@ -190,7 +190,7 @@ -- -- - 'FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT' -- specifies that reconstruction is explicit, as described in--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#textures-chroma-reconstruction>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#textures-chroma-reconstruction>. -- If this bit is not present, reconstruction is implicit by default. -- -- - 'FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT'@@ -211,14 +211,40 @@ -- -- - 'FORMAT_FEATURE_FRAGMENT_DENSITY_MAP_BIT_EXT' specifies that an -- image view /can/ be used as a--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-fragmentdensitymapattachment fragment density map attachment>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-fragmentdensitymapattachment fragment density map attachment>. -- -- - 'FORMAT_FEATURE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR' specifies -- that an image view /can/ be used as a--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-fragment-shading-rate-attachment fragment shading rate attachment>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-fragment-shading-rate-attachment fragment shading rate attachment>. -- An implementation /must/ not set this feature for formats with -- numeric type other than @*UINT@, or set it as a buffer feature. --+-- - @VK_FORMAT_FEATURE_VIDEO_DECODE_OUTPUT_BIT_KHR@ specifies that an+-- image view with this format /can/ be used as an output for+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#video-decode-operations video decode operations>+--+-- - @VK_FORMAT_FEATURE_VIDEO_DECODE_DPB_BIT_KHR@ specifies that an image+-- view with this format /can/ be used as a DPB for+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#video-decode-operations video decode operations>+--+-- - @VK_FORMAT_FEATURE_VIDEO_ENCODE_INPUT_BIT_KHR@ specifies that an+-- image view with this format /can/ be used as an input to+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#video-encode-operations video encode operations>+--+-- - @VK_FORMAT_FEATURE_VIDEO_ENCODE_DPB_BIT_KHR@ specifies that an image+-- view with this format /can/ be used as a DPB for+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#video-encode-operations video encode operations>+--+-- Note+--+-- Specific video profiles /may/ have additional restrictions on the+-- format and other image creation parameters corresponding to image+-- views used by video coding operations that /can/ be enumerated using+-- the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkGetPhysicalDeviceVideoFormatPropertiesKHR vkGetPhysicalDeviceVideoFormatPropertiesKHR>+-- command, as described in+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#supported-video-input-output-dpb-formats-enumeration Enumeration of Supported Video Output, Input and DPB Formats>.+-- -- The following bits /may/ be set in @bufferFeatures@, specifying that the -- features are supported by <VkBuffer.html buffers> or -- <VkBufferView.html buffer views> created with the queried@@ -246,11 +272,11 @@ -- - 'FORMAT_FEATURE_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR' -- specifies that the format /can/ be used as the vertex format when -- creating an--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#acceleration-structure acceleration structure>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#acceleration-structure acceleration structure> -- ('Vulkan.Extensions.VK_KHR_acceleration_structure.AccelerationStructureGeometryTrianglesDataKHR'::@vertexFormat@). -- This format /can/ also be used as the vertex format in host memory -- when doing--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#host-acceleration-structure host acceleration structure>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#host-acceleration-structure host acceleration structure> -- builds. -- -- = See Also@@ -261,11 +287,11 @@ deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits) -- | 'FORMAT_FEATURE_SAMPLED_IMAGE_BIT' specifies that an image view /can/ be--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-sampledimage sampled from>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-sampledimage sampled from>. pattern FORMAT_FEATURE_SAMPLED_IMAGE_BIT = FormatFeatureFlagBits 0x00000001 -- | 'FORMAT_FEATURE_STORAGE_IMAGE_BIT' specifies that an image view /can/ be -- used as a--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-storageimage storage image>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-storageimage storage image>. pattern FORMAT_FEATURE_STORAGE_IMAGE_BIT = FormatFeatureFlagBits 0x00000002 -- | 'FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT' specifies that an image view -- /can/ be used as storage image that supports atomic operations.@@ -337,25 +363,34 @@ pattern FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT = FormatFeatureFlagBits 0x00001000 -- | 'FORMAT_FEATURE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR' specifies that -- an image view /can/ be used as a--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-fragment-shading-rate-attachment fragment shading rate attachment>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-fragment-shading-rate-attachment fragment shading rate attachment>. -- An implementation /must/ not set this feature for formats with numeric -- type other than @*UINT@, or set it as a buffer feature. pattern FORMAT_FEATURE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = FormatFeatureFlagBits 0x40000000 -- | 'FORMAT_FEATURE_FRAGMENT_DENSITY_MAP_BIT_EXT' specifies that an image -- view /can/ be used as a--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-fragmentdensitymapattachment fragment density map attachment>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-fragmentdensitymapattachment fragment density map attachment>. pattern FORMAT_FEATURE_FRAGMENT_DENSITY_MAP_BIT_EXT = FormatFeatureFlagBits 0x01000000+-- | 'FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT' specifies that+-- 'Vulkan.Core10.Handles.Image' /can/ be used with a sampler that has+-- either of @magFilter@ or @minFilter@ set to+-- 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT', or be the source image+-- for a blit with @filter@ set to+-- 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT'. This bit /must/ only be+-- exposed for formats that also support the+-- 'FORMAT_FEATURE_SAMPLED_IMAGE_BIT'. If the format being queried is a+-- depth\/stencil format, this only specifies that the depth aspect is+-- cubic filterable.+pattern FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT = FormatFeatureFlagBits 0x00002000 -- | 'FORMAT_FEATURE_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR' specifies -- that the format /can/ be used as the vertex format when creating an--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#acceleration-structure acceleration structure>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#acceleration-structure acceleration structure> -- ('Vulkan.Extensions.VK_KHR_acceleration_structure.AccelerationStructureGeometryTrianglesDataKHR'::@vertexFormat@). -- This format /can/ also be used as the vertex format in host memory when -- doing--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#host-acceleration-structure host acceleration structure>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#host-acceleration-structure host acceleration structure> -- builds. pattern FORMAT_FEATURE_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR = FormatFeatureFlagBits 0x20000000--- No documentation found for Nested "VkFormatFeatureFlagBits" "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG"-pattern FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG = FormatFeatureFlagBits 0x00002000 -- | 'FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT' specifies -- 'Vulkan.Core10.Handles.Image' /can/ be used as a sampled image with a -- min or max@@ -365,7 +400,7 @@ pattern FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT = FormatFeatureFlagBits 0x00010000 -- | 'FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT' specifies that an -- application /can/ define a--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion> -- using this format as a source, and that an image of this format /can/ be -- used with a -- 'Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion.SamplerYcbcrConversionCreateInfo'@@ -376,7 +411,7 @@ -- neither 'FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT' nor -- 'FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT' is set, the application -- /must/ not define a--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion> -- using this format as a source. pattern FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT = FormatFeatureFlagBits 0x00800000 -- | 'FORMAT_FEATURE_DISJOINT_BIT' specifies that a multi-planar image /can/@@ -397,7 +432,7 @@ FormatFeatureFlagBits 0x00200000 -- | 'FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT' -- specifies that reconstruction is explicit, as described in--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#textures-chroma-reconstruction>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#textures-chroma-reconstruction>. -- If this bit is not present, reconstruction is implicit by default. pattern FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT = FormatFeatureFlagBits 0x00100000@@ -408,13 +443,13 @@ FormatFeatureFlagBits 0x00080000 -- | 'FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT' -- specifies that an application /can/ define a--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion> -- using this format as a source with @chromaFilter@ set to -- 'Vulkan.Core10.Enums.Filter.FILTER_LINEAR'. pattern FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT = FormatFeatureFlagBits 0x00040000 -- | 'FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT' specifies that an -- application /can/ define a--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion> -- using this format as a source, and that an image of this format /can/ be -- used with a -- 'Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion.SamplerYcbcrConversionCreateInfo'@@ -429,13 +464,13 @@ pattern FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT = FormatFeatureFlagBits 0x00020000 -- | 'FORMAT_FEATURE_TRANSFER_DST_BIT' specifies that an image /can/ be used -- as a destination image for--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#copies copy commands>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#copies copy commands> -- and--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#clears clear commands>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#clears clear commands>. pattern FORMAT_FEATURE_TRANSFER_DST_BIT = FormatFeatureFlagBits 0x00008000 -- | 'FORMAT_FEATURE_TRANSFER_SRC_BIT' specifies that an image /can/ be used -- as a source image for--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#copies copy commands>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#copies copy commands>. pattern FORMAT_FEATURE_TRANSFER_SRC_BIT = FormatFeatureFlagBits 0x00004000 conNameFormatFeatureFlagBits :: String@@ -461,8 +496,8 @@ , (FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT , "SAMPLED_IMAGE_FILTER_LINEAR_BIT") , (FORMAT_FEATURE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR, "FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR") , (FORMAT_FEATURE_FRAGMENT_DENSITY_MAP_BIT_EXT , "FRAGMENT_DENSITY_MAP_BIT_EXT")+ , (FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT , "SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT") , (FORMAT_FEATURE_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR, "ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR")- , (FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG , "SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG") , (FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT , "SAMPLED_IMAGE_FILTER_MINMAX_BIT") , (FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT , "COSITED_CHROMA_SAMPLES_BIT") , (FORMAT_FEATURE_DISJOINT_BIT , "DISJOINT_BIT")
src/Vulkan/Core10/Enums/ImageAspectFlagBits.hs view
@@ -38,8 +38,10 @@ -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>, -- 'Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion.BindImagePlaneMemoryInfo', -- 'Vulkan.Core13.Promoted_From_VK_KHR_maintenance4.DeviceImageMemoryRequirements',+-- 'Vulkan.Extensions.VK_EXT_metal_objects.ExportMetalTextureInfoEXT', -- 'ImageAspectFlags',--- 'Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion.ImagePlaneMemoryRequirementsInfo'+-- 'Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion.ImagePlaneMemoryRequirementsInfo',+-- 'Vulkan.Extensions.VK_EXT_metal_objects.ImportMetalTextureInfoEXT' newtype ImageAspectFlagBits = ImageAspectFlagBits Flags deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits) @@ -50,7 +52,7 @@ -- | 'IMAGE_ASPECT_STENCIL_BIT' specifies the stencil aspect. pattern IMAGE_ASPECT_STENCIL_BIT = ImageAspectFlagBits 0x00000004 -- | 'IMAGE_ASPECT_METADATA_BIT' specifies the metadata aspect, used for--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#sparsememory sparse resource>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#sparsememory sparse resource> -- operations. pattern IMAGE_ASPECT_METADATA_BIT = ImageAspectFlagBits 0x00000008 -- | 'IMAGE_ASPECT_MEMORY_PLANE_3_BIT_EXT' specifies /memory plane/ 3.
src/Vulkan/Core10/Enums/ImageCreateFlagBits.hs view
@@ -7,6 +7,8 @@ , IMAGE_CREATE_MUTABLE_FORMAT_BIT , IMAGE_CREATE_CUBE_COMPATIBLE_BIT , IMAGE_CREATE_FRAGMENT_DENSITY_MAP_OFFSET_BIT_QCOM+ , IMAGE_CREATE_2D_VIEW_COMPATIBLE_BIT_EXT+ , IMAGE_CREATE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_BIT_EXT , IMAGE_CREATE_SUBSAMPLED_BIT_EXT , IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT , IMAGE_CREATE_CORNER_SAMPLED_BIT_NV@@ -40,9 +42,9 @@ -- = Description -- -- See--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#sparsememory-sparseresourcefeatures Sparse Resource Features>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#sparsememory-sparseresourcefeatures Sparse Resource Features> -- and--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#sparsememory-physicalfeatures Sparse Physical Device Features>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#sparsememory-physicalfeatures Sparse Physical Device Features> -- for more details. -- -- = See Also@@ -69,7 +71,7 @@ -- | 'IMAGE_CREATE_MUTABLE_FORMAT_BIT' specifies that the image /can/ be used -- to create a 'Vulkan.Core10.Handles.ImageView' with a different format -- from the image. For--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar> -- formats, 'IMAGE_CREATE_MUTABLE_FORMAT_BIT' specifies that a -- 'Vulkan.Core10.Handles.ImageView' can be created of a /plane/ of the -- image.@@ -81,12 +83,18 @@ pattern IMAGE_CREATE_CUBE_COMPATIBLE_BIT = ImageCreateFlagBits 0x00000010 -- | 'IMAGE_CREATE_FRAGMENT_DENSITY_MAP_OFFSET_BIT_QCOM' specifies that an -- image /can/ be used in a render pass with non-zero--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-fragmentdensitymapoffsets fragment density map offsets>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-fragmentdensitymapoffsets fragment density map offsets>. -- In a renderpass with non-zero offsets, fragment density map attachments, -- input attachments, color attachments, depth\/stencil attachment, resolve -- attachments, and preserve attachments /must/ be created with--- VK_IMAGE_CREATE_FRAGMENT_DENSITY_MAP_OFFSET_BIT_QCOM.+-- 'IMAGE_CREATE_FRAGMENT_DENSITY_MAP_OFFSET_BIT_QCOM'. pattern IMAGE_CREATE_FRAGMENT_DENSITY_MAP_OFFSET_BIT_QCOM = ImageCreateFlagBits 0x00008000+-- No documentation found for Nested "VkImageCreateFlagBits" "VK_IMAGE_CREATE_2D_VIEW_COMPATIBLE_BIT_EXT"+pattern IMAGE_CREATE_2D_VIEW_COMPATIBLE_BIT_EXT = ImageCreateFlagBits 0x00020000+-- | 'IMAGE_CREATE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_BIT_EXT' specifies+-- that an image /can/ be used with+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#multisampled-render-to-single-sampled multisampled rendering as a single-sampled framebuffer attachment>+pattern IMAGE_CREATE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_BIT_EXT = ImageCreateFlagBits 0x00040000 -- | 'IMAGE_CREATE_SUBSAMPLED_BIT_EXT' specifies that an image /can/ be in a -- subsampled format which /may/ be more optimal when written as an -- attachment by a render pass that has a fragment density map attachment.@@ -107,14 +115,14 @@ -- additionally be read by the device during -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_VERTEX_SHADER_BIT' -- if--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-subsampledCoarseReconstructionEarlyAccess ::subsampledCoarseReconstructionEarlyAccess>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-subsampledCoarseReconstructionEarlyAccess ::subsampledCoarseReconstructionEarlyAccess> -- is 'Vulkan.Core10.FundamentalTypes.TRUE' and the sampler was created -- with @flags@ containing -- 'Vulkan.Core10.Enums.SamplerCreateFlagBits.SAMPLER_CREATE_SUBSAMPLED_COARSE_RECONSTRUCTION_BIT_EXT'. -- -- - Image data read with load operations are resampled to the fragment -- density of the render pass if--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-subsampledLoads ::subsampledLoads>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-subsampledLoads ::subsampledLoads> -- is 'Vulkan.Core10.FundamentalTypes.TRUE'. Otherwise, values of image -- data are undefined. --@@ -126,10 +134,10 @@ -- sample locations when used as a depth\/stencil attachment. pattern IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT = ImageCreateFlagBits 0x00001000 -- | 'IMAGE_CREATE_CORNER_SAMPLED_BIT_NV' specifies that the image is a--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#resources-images-corner-sampled corner-sampled image>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#resources-images-corner-sampled corner-sampled image>. pattern IMAGE_CREATE_CORNER_SAMPLED_BIT_NV = ImageCreateFlagBits 0x00002000 -- | 'IMAGE_CREATE_DISJOINT_BIT' specifies that an image with a--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar format>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar format> -- /must/ have each plane separately bound to memory, rather than having a -- single memory binding for the whole image; the presence of this bit -- distinguishes a /disjoint image/ from an image without this bit set.@@ -166,13 +174,13 @@ -- creation parameters and aliased to the same memory /can/ interpret the -- contents of the memory consistently with each other, subject to the -- rules described in the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#resources-memory-aliasing Memory Aliasing>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#resources-memory-aliasing Memory Aliasing> -- section. This flag further specifies that each plane of a /disjoint/ -- image /can/ share an in-memory non-linear representation with -- single-plane images, and that a single-plane image /can/ share an -- in-memory non-linear representation with a plane of a multi-planar -- disjoint image, according to the rules in--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#formats-compatible-planes>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#formats-compatible-planes>. -- If the @pNext@ chain includes a -- 'Vulkan.Core11.Promoted_From_VK_KHR_external_memory.ExternalMemoryImageCreateInfo' -- or@@ -195,6 +203,8 @@ , (IMAGE_CREATE_MUTABLE_FORMAT_BIT , "MUTABLE_FORMAT_BIT") , (IMAGE_CREATE_CUBE_COMPATIBLE_BIT , "CUBE_COMPATIBLE_BIT") , (IMAGE_CREATE_FRAGMENT_DENSITY_MAP_OFFSET_BIT_QCOM, "FRAGMENT_DENSITY_MAP_OFFSET_BIT_QCOM")+ , (IMAGE_CREATE_2D_VIEW_COMPATIBLE_BIT_EXT , "2D_VIEW_COMPATIBLE_BIT_EXT")+ , (IMAGE_CREATE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_BIT_EXT, "MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_BIT_EXT") , (IMAGE_CREATE_SUBSAMPLED_BIT_EXT , "SUBSAMPLED_BIT_EXT") , (IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT, "SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT") , (IMAGE_CREATE_CORNER_SAMPLED_BIT_NV , "CORNER_SAMPLED_BIT_NV")
src/Vulkan/Core10/Enums/ImageLayout.hs view
@@ -9,6 +9,7 @@ , IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL , IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL , IMAGE_LAYOUT_PREINITIALIZED+ , IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT , IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR , IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT , IMAGE_LAYOUT_SHARED_PRESENT_KHR@@ -46,15 +47,15 @@ -- indicates which image layout the image subresource(s) are considered to -- be in when the image will be accessed. For transfer commands, this is a -- parameter to the command (see--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#clears>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#clears> -- and--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#copies>).+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#copies>). -- For use as a framebuffer attachment, this is a member in the -- substructures of the 'Vulkan.Core10.Pass.RenderPassCreateInfo' (see--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass Render Pass>).+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass Render Pass>). -- For use in a descriptor set, this is a member in the -- 'Vulkan.Core10.DescriptorSet.DescriptorImageInfo' structure (see--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-updates>).+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-updates>). -- -- = See Also --@@ -95,28 +96,28 @@ -- 'Vulkan.Core10.Image.ImageCreateInfo'. This layout /can/ be used in -- place of the current image layout in a layout transition, but doing so -- will cause the contents of the image’s memory to be undefined.-pattern IMAGE_LAYOUT_UNDEFINED = ImageLayout 0+pattern IMAGE_LAYOUT_UNDEFINED = ImageLayout 0 -- | 'IMAGE_LAYOUT_GENERAL' supports all types of device access.-pattern IMAGE_LAYOUT_GENERAL = ImageLayout 1+pattern IMAGE_LAYOUT_GENERAL = ImageLayout 1 -- | 'IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL' /must/ only be used as a color -- or resolve attachment in a 'Vulkan.Core10.Handles.Framebuffer'. This -- layout is valid only for image subresources of images created with the -- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_COLOR_ATTACHMENT_BIT' -- usage bit enabled.-pattern IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL = ImageLayout 2+pattern IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL = ImageLayout 2 -- | 'IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL' specifies a layout for -- both the depth and stencil aspects of a depth\/stencil format image -- allowing read and write access as a depth\/stencil attachment. It is -- equivalent to 'IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL' and -- 'IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL'.-pattern IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL = ImageLayout 3+pattern IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL = ImageLayout 3 -- | 'IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL' specifies a layout for -- both the depth and stencil aspects of a depth\/stencil format image -- allowing read only access as a depth\/stencil attachment or in shaders -- as a sampled image, combined image\/sampler, or input attachment. It is -- equivalent to 'IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL' and -- 'IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL'.-pattern IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL = ImageLayout 4+pattern IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL = ImageLayout 4 -- | 'IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL' specifies a layout allowing -- read-only access in a shader as a sampled image, combined -- image\/sampler, or input attachment. This layout is valid only for image@@ -124,21 +125,21 @@ -- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_SAMPLED_BIT' or -- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_INPUT_ATTACHMENT_BIT' -- usage bits enabled.-pattern IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL = ImageLayout 5+pattern IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL = ImageLayout 5 -- | 'IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL' /must/ only be used as a source -- image of a transfer command (see the definition of--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages-transfer >).+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages-transfer >). -- This layout is valid only for image subresources of images created with -- the -- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_TRANSFER_SRC_BIT' -- usage bit enabled.-pattern IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL = ImageLayout 6+pattern IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL = ImageLayout 6 -- | 'IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL' /must/ only be used as a destination -- image of a transfer command. This layout is valid only for image -- subresources of images created with the -- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_TRANSFER_DST_BIT' -- usage bit enabled.-pattern IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL = ImageLayout 7+pattern IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL = ImageLayout 7 -- | 'IMAGE_LAYOUT_PREINITIALIZED' specifies that an image’s memory is in a -- defined layout and /can/ be populated by data, but that it has not yet -- been initialized by the driver. Image memory /cannot/ be transitioned@@ -148,15 +149,30 @@ -- by the host, and hence the data /can/ be written to memory immediately, -- without first executing a layout transition. Currently, -- 'IMAGE_LAYOUT_PREINITIALIZED' is only useful with--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#glossary-linear-resource linear>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#glossary-linear-resource linear> -- images because there is not a standard layout defined for -- 'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_OPTIMAL' images.-pattern IMAGE_LAYOUT_PREINITIALIZED = ImageLayout 8+pattern IMAGE_LAYOUT_PREINITIALIZED = ImageLayout 8+-- | 'IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT' /must/ only be used+-- as either a color attachment or depth\/stencil attachment in a+-- 'Vulkan.Core10.Handles.Framebuffer' and\/or read-only access in a shader+-- as a sampled image, combined image\/sampler, or input attachment. This+-- layout is valid only for image subresources of images created with the+-- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT'+-- usage bit enabled and either the+-- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_COLOR_ATTACHMENT_BIT'+-- or+-- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT'+-- and either the+-- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_INPUT_ATTACHMENT_BIT'+-- or 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_SAMPLED_BIT'+-- usage bits enabled.+pattern IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT = ImageLayout 1000339000 -- | 'IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR' /must/ only -- be used as a--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-fragment-shading-rate-attachment fragment shading rate attachment>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-fragment-shading-rate-attachment fragment shading rate attachment> -- or--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-shading-rate-image shading rate image>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-shading-rate-image shading rate image>. -- This layout is valid only for image subresources of images created with -- the -- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR'@@ -168,42 +184,42 @@ -- the -- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT' -- usage bit enabled.-pattern IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT = ImageLayout 1000218000+pattern IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT = ImageLayout 1000218000 -- | 'IMAGE_LAYOUT_SHARED_PRESENT_KHR' is valid only for shared presentable -- images, and /must/ be used for any usage the image supports.-pattern IMAGE_LAYOUT_SHARED_PRESENT_KHR = ImageLayout 1000111000+pattern IMAGE_LAYOUT_SHARED_PRESENT_KHR = ImageLayout 1000111000 -- | 'IMAGE_LAYOUT_PRESENT_SRC_KHR' /must/ only be used for presenting a -- presentable image for display. A swapchain’s image /must/ be -- transitioned to this layout before calling -- 'Vulkan.Extensions.VK_KHR_swapchain.queuePresentKHR', and /must/ be -- transitioned away from this layout after calling -- 'Vulkan.Extensions.VK_KHR_swapchain.acquireNextImageKHR'.-pattern IMAGE_LAYOUT_PRESENT_SRC_KHR = ImageLayout 1000001002+pattern IMAGE_LAYOUT_PRESENT_SRC_KHR = ImageLayout 1000001002 -- | 'IMAGE_LAYOUT_ATTACHMENT_OPTIMAL' specifies a layout that /must/ only be -- used with attachment accesses in the graphics pipeline.-pattern IMAGE_LAYOUT_ATTACHMENT_OPTIMAL = ImageLayout 1000314001+pattern IMAGE_LAYOUT_ATTACHMENT_OPTIMAL = ImageLayout 1000314001 -- | 'IMAGE_LAYOUT_READ_ONLY_OPTIMAL' specifies a layout allowing read only -- access as an attachment, or in shaders as a sampled image, combined -- image\/sampler, or input attachment.-pattern IMAGE_LAYOUT_READ_ONLY_OPTIMAL = ImageLayout 1000314000+pattern IMAGE_LAYOUT_READ_ONLY_OPTIMAL = ImageLayout 1000314000 -- | 'IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL' specifies a layout for the -- stencil aspect of a depth\/stencil format image allowing read-only -- access as a stencil attachment or in shaders as a sampled image, -- combined image\/sampler, or input attachment.-pattern IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL = ImageLayout 1000241003+pattern IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL = ImageLayout 1000241003 -- | 'IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL' specifies a layout for the -- stencil aspect of a depth\/stencil format image allowing read and write -- access as a stencil attachment.-pattern IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL = ImageLayout 1000241002+pattern IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL = ImageLayout 1000241002 -- | 'IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL' specifies a layout for the depth -- aspect of a depth\/stencil format image allowing read-only access as a -- depth attachment or in shaders as a sampled image, combined -- image\/sampler, or input attachment.-pattern IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL = ImageLayout 1000241001+pattern IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL = ImageLayout 1000241001 -- | 'IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL' specifies a layout for the depth -- aspect of a depth\/stencil format image allowing read and write access -- as a depth attachment.-pattern IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL = ImageLayout 1000241000+pattern IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL = ImageLayout 1000241000 -- | 'IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL' specifies a -- layout for depth\/stencil format images allowing read and write access -- to the depth aspect as a depth attachment, and read only access to the@@ -229,6 +245,7 @@ IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL, IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, IMAGE_LAYOUT_PREINITIALIZED,+ IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT, IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR, IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT, IMAGE_LAYOUT_SHARED_PRESENT_KHR,@@ -250,25 +267,26 @@ showTableImageLayout :: [(ImageLayout, String)] showTableImageLayout =- [ (IMAGE_LAYOUT_UNDEFINED , "UNDEFINED")- , (IMAGE_LAYOUT_GENERAL , "GENERAL")- , (IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL , "COLOR_ATTACHMENT_OPTIMAL")- , (IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL, "DEPTH_STENCIL_ATTACHMENT_OPTIMAL")- , (IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL , "DEPTH_STENCIL_READ_ONLY_OPTIMAL")- , (IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL , "SHADER_READ_ONLY_OPTIMAL")- , (IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL , "TRANSFER_SRC_OPTIMAL")- , (IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL , "TRANSFER_DST_OPTIMAL")- , (IMAGE_LAYOUT_PREINITIALIZED , "PREINITIALIZED")+ [ (IMAGE_LAYOUT_UNDEFINED , "UNDEFINED")+ , (IMAGE_LAYOUT_GENERAL , "GENERAL")+ , (IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL , "COLOR_ATTACHMENT_OPTIMAL")+ , (IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL , "DEPTH_STENCIL_ATTACHMENT_OPTIMAL")+ , (IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL , "DEPTH_STENCIL_READ_ONLY_OPTIMAL")+ , (IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL , "SHADER_READ_ONLY_OPTIMAL")+ , (IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL , "TRANSFER_SRC_OPTIMAL")+ , (IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL , "TRANSFER_DST_OPTIMAL")+ , (IMAGE_LAYOUT_PREINITIALIZED , "PREINITIALIZED")+ , (IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT, "ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT") , (IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR, "FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR")- , (IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT, "FRAGMENT_DENSITY_MAP_OPTIMAL_EXT")- , (IMAGE_LAYOUT_SHARED_PRESENT_KHR , "SHARED_PRESENT_KHR")- , (IMAGE_LAYOUT_PRESENT_SRC_KHR , "PRESENT_SRC_KHR")- , (IMAGE_LAYOUT_ATTACHMENT_OPTIMAL , "ATTACHMENT_OPTIMAL")- , (IMAGE_LAYOUT_READ_ONLY_OPTIMAL , "READ_ONLY_OPTIMAL")- , (IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL , "STENCIL_READ_ONLY_OPTIMAL")- , (IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL , "STENCIL_ATTACHMENT_OPTIMAL")- , (IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL , "DEPTH_READ_ONLY_OPTIMAL")- , (IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL , "DEPTH_ATTACHMENT_OPTIMAL")+ , (IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT , "FRAGMENT_DENSITY_MAP_OPTIMAL_EXT")+ , (IMAGE_LAYOUT_SHARED_PRESENT_KHR , "SHARED_PRESENT_KHR")+ , (IMAGE_LAYOUT_PRESENT_SRC_KHR , "PRESENT_SRC_KHR")+ , (IMAGE_LAYOUT_ATTACHMENT_OPTIMAL , "ATTACHMENT_OPTIMAL")+ , (IMAGE_LAYOUT_READ_ONLY_OPTIMAL , "READ_ONLY_OPTIMAL")+ , (IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL , "STENCIL_READ_ONLY_OPTIMAL")+ , (IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL , "STENCIL_ATTACHMENT_OPTIMAL")+ , (IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL , "DEPTH_READ_ONLY_OPTIMAL")+ , (IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL , "DEPTH_ATTACHMENT_OPTIMAL") , (IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL, "DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL") , (IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL, "DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL") ]
src/Vulkan/Core10/Enums/ImageTiling.hs view
@@ -23,6 +23,7 @@ -- 'Vulkan.Core10.Image.ImageCreateInfo', -- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceImageFormatInfo2', -- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceSparseImageFormatInfo2',+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoFormatPropertiesKHR VkVideoFormatPropertiesKHR>, -- 'Vulkan.Extensions.VK_NV_external_memory_capabilities.getPhysicalDeviceExternalImageFormatPropertiesNV', -- 'Vulkan.Core10.DeviceInitialization.getPhysicalDeviceImageFormatProperties', -- 'Vulkan.Core10.SparseResourceMemoryManagement.getPhysicalDeviceSparseImageFormatProperties'@@ -38,7 +39,7 @@ pattern IMAGE_TILING_LINEAR = ImageTiling 1 -- | 'IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT' indicates that the image’s tiling -- is defined by a--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#glossary-drm-format-modifier Linux DRM format modifier>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#glossary-drm-format-modifier Linux DRM format modifier>. -- The modifier is specified at image creation with -- 'Vulkan.Extensions.VK_EXT_image_drm_format_modifier.ImageDrmFormatModifierListCreateInfoEXT' -- or
src/Vulkan/Core10/Enums/ImageType.hs view
@@ -23,6 +23,7 @@ -- 'Vulkan.Core10.Image.ImageCreateInfo', -- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceImageFormatInfo2', -- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceSparseImageFormatInfo2',+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoFormatPropertiesKHR VkVideoFormatPropertiesKHR>, -- 'Vulkan.Extensions.VK_NV_external_memory_capabilities.getPhysicalDeviceExternalImageFormatPropertiesNV', -- 'Vulkan.Core10.DeviceInitialization.getPhysicalDeviceImageFormatProperties', -- 'Vulkan.Core10.SparseResourceMemoryManagement.getPhysicalDeviceSparseImageFormatProperties'
src/Vulkan/Core10/Enums/ImageUsageFlagBits.hs view
@@ -9,7 +9,10 @@ , IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT , IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT , IMAGE_USAGE_INPUT_ATTACHMENT_BIT+ , IMAGE_USAGE_SAMPLE_BLOCK_MATCH_BIT_QCOM+ , IMAGE_USAGE_SAMPLE_WEIGHT_BIT_QCOM , IMAGE_USAGE_INVOCATION_MASK_BIT_HUAWEI+ , IMAGE_USAGE_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT , IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR , IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT , ..@@ -67,7 +70,7 @@ pattern IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT = ImageUsageFlagBits 0x00000020 -- | 'IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT' specifies that implementations -- /may/ support using--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory memory allocations>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory memory allocations> -- with the -- 'Vulkan.Core10.Enums.MemoryPropertyFlagBits.MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT' -- to back an image with this usage. This bit /can/ be set for any image@@ -82,19 +85,31 @@ -- be read from a shader as an input attachment; and be used as an input -- attachment in a framebuffer. pattern IMAGE_USAGE_INPUT_ATTACHMENT_BIT = ImageUsageFlagBits 0x00000080+-- No documentation found for Nested "VkImageUsageFlagBits" "VK_IMAGE_USAGE_SAMPLE_BLOCK_MATCH_BIT_QCOM"+pattern IMAGE_USAGE_SAMPLE_BLOCK_MATCH_BIT_QCOM = ImageUsageFlagBits 0x00200000+-- No documentation found for Nested "VkImageUsageFlagBits" "VK_IMAGE_USAGE_SAMPLE_WEIGHT_BIT_QCOM"+pattern IMAGE_USAGE_SAMPLE_WEIGHT_BIT_QCOM = ImageUsageFlagBits 0x00100000 -- No documentation found for Nested "VkImageUsageFlagBits" "VK_IMAGE_USAGE_INVOCATION_MASK_BIT_HUAWEI" pattern IMAGE_USAGE_INVOCATION_MASK_BIT_HUAWEI = ImageUsageFlagBits 0x00040000+-- | 'IMAGE_USAGE_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT' specifies that the image+-- /can/ be transitioned to the+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT'+-- layout to be used as a color or depth\/stencil attachment in a+-- 'Vulkan.Core10.Handles.Framebuffer' and\/or as a read-only input+-- resource in a shader (sampled image, combined image sampler or input+-- attachment) in the same render pass.+pattern IMAGE_USAGE_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT = ImageUsageFlagBits 0x00080000 -- | 'IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR' specifies that -- the image /can/ be used to create a 'Vulkan.Core10.Handles.ImageView' -- suitable for use as a--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-fragment-shading-rate-attachment fragment shading rate attachment>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-fragment-shading-rate-attachment fragment shading rate attachment> -- or--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-shading-rate-image shading rate image>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-shading-rate-image shading rate image> pattern IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = ImageUsageFlagBits 0x00000100 -- | 'IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT' specifies that the image -- /can/ be used to create a 'Vulkan.Core10.Handles.ImageView' suitable for -- use as a--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#fragmentdensitymapops fragment density map image>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fragmentdensitymapops fragment density map image>. pattern IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT = ImageUsageFlagBits 0x00000200 conNameImageUsageFlagBits :: String@@ -113,7 +128,10 @@ , (IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT , "DEPTH_STENCIL_ATTACHMENT_BIT") , (IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT , "TRANSIENT_ATTACHMENT_BIT") , (IMAGE_USAGE_INPUT_ATTACHMENT_BIT , "INPUT_ATTACHMENT_BIT")+ , (IMAGE_USAGE_SAMPLE_BLOCK_MATCH_BIT_QCOM , "SAMPLE_BLOCK_MATCH_BIT_QCOM")+ , (IMAGE_USAGE_SAMPLE_WEIGHT_BIT_QCOM , "SAMPLE_WEIGHT_BIT_QCOM") , (IMAGE_USAGE_INVOCATION_MASK_BIT_HUAWEI , "INVOCATION_MASK_BIT_HUAWEI")+ , (IMAGE_USAGE_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT , "ATTACHMENT_FEEDBACK_LOOP_BIT_EXT") , (IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR, "FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR") , (IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT , "FRAGMENT_DENSITY_MAP_BIT_EXT") ]
src/Vulkan/Core10/Enums/LogicOp.hs view
@@ -89,7 +89,7 @@ -- -- The result of the logical operation is then written to the color -- attachment as controlled by the component write mask, described in--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#framebuffer-blendoperations Blend Operations>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#framebuffer-blendoperations Blend Operations>. -- -- = See Also --
src/Vulkan/Core10/Enums/MemoryPropertyFlagBits.hs view
@@ -86,7 +86,7 @@ -- 'MEMORY_PROPERTY_HOST_VISIBLE_BIT' set. Additionally, the object’s -- backing memory /may/ be provided by the implementation lazily as -- specified in--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-device-lazy_allocation Lazily Allocated Memory>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-device-lazy_allocation Lazily Allocated Memory>. pattern MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT = MemoryPropertyFlagBits 0x00000010 -- | 'MEMORY_PROPERTY_RDMA_CAPABLE_BIT_NV' bit specifies that external -- devices can access this memory directly.
src/Vulkan/Core10/Enums/PipelineCacheCreateFlagBits.hs view
@@ -32,7 +32,7 @@ -- | 'PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT' specifies that all -- commands that modify the created 'Vulkan.Core10.Handles.PipelineCache' -- will be--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#fundamentals-threadingbehavior externally synchronized>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fundamentals-threadingbehavior externally synchronized>. -- When set, the implementation /may/ skip any unnecessary processing -- needed to support simultaneous modification from multiple threads where -- allowed.
src/Vulkan/Core10/Enums/PipelineColorBlendStateCreateFlagBits.hs view
@@ -1,7 +1,7 @@ {-# language CPP #-} -- No documentation found for Chapter "PipelineColorBlendStateCreateFlagBits" module Vulkan.Core10.Enums.PipelineColorBlendStateCreateFlagBits ( PipelineColorBlendStateCreateFlags- , PipelineColorBlendStateCreateFlagBits( PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_ARM+ , PipelineColorBlendStateCreateFlagBits( PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_EXT , .. ) ) where@@ -24,18 +24,18 @@ -- -- = See Also ----- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_ARM_rasterization_order_attachment_access VK_ARM_rasterization_order_attachment_access>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_rasterization_order_attachment_access VK_EXT_rasterization_order_attachment_access>, -- 'PipelineColorBlendStateCreateFlags' newtype PipelineColorBlendStateCreateFlagBits = PipelineColorBlendStateCreateFlagBits Flags deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits) --- | 'PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_ARM'+-- | 'PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_EXT' -- indicates that access to color and input attachments will have implicit -- framebuffer-local memory dependencies, allowing applications to express -- custom blending operations in a fragment shader. See--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-feedbackloop renderpass feedback loops>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-feedbackloop renderpass feedback loops> -- for more information.-pattern PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_ARM =+pattern PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_EXT = PipelineColorBlendStateCreateFlagBits 0x00000001 conNamePipelineColorBlendStateCreateFlagBits :: String@@ -43,11 +43,11 @@ enumPrefixPipelineColorBlendStateCreateFlagBits :: String enumPrefixPipelineColorBlendStateCreateFlagBits =- "PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_ARM"+ "PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_EXT" showTablePipelineColorBlendStateCreateFlagBits :: [(PipelineColorBlendStateCreateFlagBits, String)] showTablePipelineColorBlendStateCreateFlagBits =- [(PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_ARM, "")]+ [(PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_EXT, "")] instance Show PipelineColorBlendStateCreateFlagBits where showsPrec = enumShowsPrec enumPrefixPipelineColorBlendStateCreateFlagBits
src/Vulkan/Core10/Enums/PipelineCreateFlagBits.hs view
@@ -4,6 +4,8 @@ , PipelineCreateFlagBits( PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT , PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT , PIPELINE_CREATE_DERIVATIVE_BIT+ , PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT+ , PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT , PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV , PIPELINE_CREATE_LINK_TIME_OPTIMIZATION_BIT_EXT , PIPELINE_CREATE_RETAIN_LINK_TIME_OPTIMIZATION_INFO_BIT_EXT@@ -97,7 +99,7 @@ -- /cannot/ be used directly, and instead defines a /pipeline library/ -- that /can/ be combined with other pipelines using the -- 'Vulkan.Extensions.VK_KHR_pipeline_library.PipelineLibraryCreateInfoKHR'--- structure. This is available in ray tracing pipelines.+-- structure. This is available in ray tracing and graphics pipelines. -- -- - 'PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR' -- specifies that an any-hit shader will always be present when an@@ -139,7 +141,7 @@ -- -- - 'PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV' specifies that the -- pipeline can be used in combination with--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#device-generated-commands>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#device-generated-commands>. -- -- - 'PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT' specifies -- that pipeline creation will fail if a compile is required for@@ -175,14 +177,22 @@ -- necessary to later perform an optimal link with -- 'PIPELINE_CREATE_LINK_TIME_OPTIMIZATION_BIT_EXT'. --+-- - 'PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT' specifies+-- that the pipeline /may/ be used with an attachment feedback loop+-- including color attachments.+--+-- - 'PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT'+-- specifies that the pipeline /may/ be used with an attachment+-- feedback loop including depth-stencil attachments.+-- -- It is valid to set both 'PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT' and -- 'PIPELINE_CREATE_DERIVATIVE_BIT'. This allows a pipeline to be both a -- parent and possibly a child in a pipeline hierarchy. See--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-pipeline-derivatives Pipeline Derivatives>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-pipeline-derivatives Pipeline Derivatives> -- for more information. -- -- When an implementation is looking up a pipeline in a--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-cache pipeline cache>,+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-cache pipeline cache>, -- if that pipeline is being created using linked libraries, -- implementations /should/ always return an equivalent pipeline created -- with 'PIPELINE_CREATE_LINK_TIME_OPTIMIZATION_BIT_EXT' if available,@@ -215,6 +225,10 @@ pattern PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT = PipelineCreateFlagBits 0x00000002 -- No documentation found for Nested "VkPipelineCreateFlagBits" "VK_PIPELINE_CREATE_DERIVATIVE_BIT" pattern PIPELINE_CREATE_DERIVATIVE_BIT = PipelineCreateFlagBits 0x00000004+-- No documentation found for Nested "VkPipelineCreateFlagBits" "VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT"+pattern PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT = PipelineCreateFlagBits 0x04000000+-- No documentation found for Nested "VkPipelineCreateFlagBits" "VK_PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT"+pattern PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT = PipelineCreateFlagBits 0x02000000 -- No documentation found for Nested "VkPipelineCreateFlagBits" "VK_PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV" pattern PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV = PipelineCreateFlagBits 0x00100000 -- No documentation found for Nested "VkPipelineCreateFlagBits" "VK_PIPELINE_CREATE_LINK_TIME_OPTIMIZATION_BIT_EXT"@@ -269,6 +283,8 @@ [ (PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT , "DISABLE_OPTIMIZATION_BIT") , (PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT , "ALLOW_DERIVATIVES_BIT") , (PIPELINE_CREATE_DERIVATIVE_BIT , "DERIVATIVE_BIT")+ , (PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT, "DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT")+ , (PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT , "COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT") , (PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV , "RAY_TRACING_ALLOW_MOTION_BIT_NV") , (PIPELINE_CREATE_LINK_TIME_OPTIMIZATION_BIT_EXT , "LINK_TIME_OPTIMIZATION_BIT_EXT") , (PIPELINE_CREATE_RETAIN_LINK_TIME_OPTIMIZATION_INFO_BIT_EXT, "RETAIN_LINK_TIME_OPTIMIZATION_INFO_BIT_EXT")
src/Vulkan/Core10/Enums/PipelineDepthStencilStateCreateFlagBits.hs view
@@ -1,8 +1,8 @@ {-# language CPP #-} -- No documentation found for Chapter "PipelineDepthStencilStateCreateFlagBits" module Vulkan.Core10.Enums.PipelineDepthStencilStateCreateFlagBits ( PipelineDepthStencilStateCreateFlags- , PipelineDepthStencilStateCreateFlagBits( PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_ARM- , PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_ARM+ , PipelineDepthStencilStateCreateFlagBits( PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT+ , PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT , .. ) ) where@@ -25,26 +25,26 @@ -- -- = See Also ----- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_ARM_rasterization_order_attachment_access VK_ARM_rasterization_order_attachment_access>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_rasterization_order_attachment_access VK_EXT_rasterization_order_attachment_access>, -- 'PipelineDepthStencilStateCreateFlags' newtype PipelineDepthStencilStateCreateFlagBits = PipelineDepthStencilStateCreateFlagBits Flags deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits) --- | 'PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_ARM'+-- | 'PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT' -- indicates that access to the stencil aspects of depth\/stencil and input -- attachments will have implicit framebuffer-local memory dependencies. -- See--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-feedbackloop renderpass feedback loops>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-feedbackloop renderpass feedback loops> -- for more information.-pattern PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_ARM =+pattern PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT = PipelineDepthStencilStateCreateFlagBits 0x00000002--- | 'PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_ARM'+-- | 'PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT' -- indicates that access to the depth aspects of depth\/stencil and input -- attachments will have implicit framebuffer-local memory dependencies. -- See--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-feedbackloop renderpass feedback loops>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-feedbackloop renderpass feedback loops> -- for more information.-pattern PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_ARM =+pattern PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT = PipelineDepthStencilStateCreateFlagBits 0x00000001 conNamePipelineDepthStencilStateCreateFlagBits :: String@@ -56,10 +56,10 @@ showTablePipelineDepthStencilStateCreateFlagBits :: [(PipelineDepthStencilStateCreateFlagBits, String)] showTablePipelineDepthStencilStateCreateFlagBits =- [ ( PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_ARM- , "STENCIL_ACCESS_BIT_ARM"+ [ ( PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT+ , "STENCIL_ACCESS_BIT_EXT" )- , (PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_ARM, "DEPTH_ACCESS_BIT_ARM")+ , (PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT, "DEPTH_ACCESS_BIT_EXT") ] instance Show PipelineDepthStencilStateCreateFlagBits where
src/Vulkan/Core10/Enums/PipelineLayoutCreateFlagBits.hs view
@@ -21,15 +21,6 @@ -- | VkPipelineLayoutCreateFlagBits - Pipeline layout creation flag bits ----- = Description------ - VK_PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT specifies that--- implementations /must/ ensure that the properties and\/or absence of--- a particular descriptor set do not influence any other properties of--- the pipeline layout. This allows pipelines libraries linked without--- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_LINK_TIME_OPTIMIZATION_BIT_EXT'--- to be created with a subset of the total descriptor sets.--- -- = See Also -- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_graphics_pipeline_library VK_EXT_graphics_pipeline_library>,@@ -37,7 +28,12 @@ newtype PipelineLayoutCreateFlagBits = PipelineLayoutCreateFlagBits Flags deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits) --- No documentation found for Nested "VkPipelineLayoutCreateFlagBits" "VK_PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT"+-- | 'PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT' specifies that+-- implementations /must/ ensure that the properties and\/or absence of a+-- particular descriptor set do not influence any other properties of the+-- pipeline layout. This allows pipelines libraries linked without+-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_LINK_TIME_OPTIMIZATION_BIT_EXT'+-- to be created with a subset of the total descriptor sets. pattern PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT = PipelineLayoutCreateFlagBits 0x00000002 conNamePipelineLayoutCreateFlagBits :: String
src/Vulkan/Core10/Enums/PipelineShaderStageCreateFlagBits.hs view
@@ -32,14 +32,14 @@ -- and -- 'Vulkan.Extensions.VK_EXT_subgroup_size_control.PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT' -- are specified and--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-minSubgroupSize minSubgroupSize>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-minSubgroupSize minSubgroupSize> -- does not equal--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxSubgroupSize maxSubgroupSize>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxSubgroupSize maxSubgroupSize> -- and no--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-required-subgroup-size required subgroup size>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-required-subgroup-size required subgroup size> -- is specified, then the only way to guarantee that the \'X\' dimension of -- the local workgroup size is a multiple of--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-sgs SubgroupSize>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-sgs SubgroupSize> -- is to make it a multiple of @maxSubgroupSize@. Under these conditions, -- you are guaranteed full subgroups but not any particular subgroup size. --@@ -56,7 +56,7 @@ pattern PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT = PipelineShaderStageCreateFlagBits 0x00000002 -- | 'PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT' specifies -- that the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-sgs SubgroupSize>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-sgs SubgroupSize> -- /may/ vary in the shader stage. pattern PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT = PipelineShaderStageCreateFlagBits 0x00000001
src/Vulkan/Core10/Enums/PipelineStageFlagBits.hs view
@@ -18,11 +18,11 @@ , PIPELINE_STAGE_HOST_BIT , PIPELINE_STAGE_ALL_GRAPHICS_BIT , PIPELINE_STAGE_ALL_COMMANDS_BIT+ , PIPELINE_STAGE_MESH_SHADER_BIT_EXT+ , PIPELINE_STAGE_TASK_SHADER_BIT_EXT , PIPELINE_STAGE_COMMAND_PREPROCESS_BIT_NV , PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR , PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT- , PIPELINE_STAGE_MESH_SHADER_BIT_NV- , PIPELINE_STAGE_TASK_SHADER_BIT_NV , PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR , PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR , PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT@@ -94,21 +94,22 @@ -- | 'PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT' specifies the stage of the -- pipeline where early fragment tests (depth and stencil tests before -- fragment shading) are performed. This stage also includes--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-load-store-ops subpass load operations>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-load-store-ops subpass load operations> -- for framebuffer attachments with a depth\/stencil format. pattern PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT = PipelineStageFlagBits 0x00000100 -- | 'PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT' specifies the stage of the -- pipeline where late fragment tests (depth and stencil tests after -- fragment shading) are performed. This stage also includes--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-load-store-ops subpass store operations>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-load-store-ops subpass store operations> -- for framebuffer attachments with a depth\/stencil format. pattern PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT = PipelineStageFlagBits 0x00000200 -- | 'PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT' specifies the stage of the -- pipeline after blending where the final color values are output from the -- pipeline. This stage also includes--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-load-store-ops subpass load and store operations>--- and multisample resolve operations for framebuffer attachments with a--- color or depth\/stencil format.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-load-store-ops subpass load and store operations>,+-- multisample resolve operations for framebuffer attachments with a color+-- or depth\/stencil format, and+-- 'Vulkan.Core10.CommandBufferBuilding.cmdClearAttachments'. pattern PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT = PipelineStageFlagBits 0x00000400 -- | 'PIPELINE_STAGE_COMPUTE_SHADER_BIT' specifies the execution of a compute -- shader.@@ -117,7 +118,7 @@ -- specifies the following commands: -- -- - All--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#copies copy commands>,+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#copies copy commands>, -- including -- 'Vulkan.Core10.CommandBufferBuilding.cmdCopyQueryPoolResults' --@@ -128,7 +129,7 @@ -- and 'Vulkan.Core10.CommandBufferBuilding.cmdResolveImage' -- -- - All--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#clears clear commands>,+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#clears clear commands>, -- with the exception of -- 'Vulkan.Core10.CommandBufferBuilding.cmdClearAttachments' pattern PIPELINE_STAGE_TRANSFER_BIT = PipelineStageFlagBits 0x00001000@@ -147,9 +148,9 @@ -- -- - 'PIPELINE_STAGE_DRAW_INDIRECT_BIT' ----- - 'PIPELINE_STAGE_TASK_SHADER_BIT_NV'+-- - 'PIPELINE_STAGE_TASK_SHADER_BIT_EXT' ----- - 'PIPELINE_STAGE_MESH_SHADER_BIT_NV'+-- - 'PIPELINE_STAGE_MESH_SHADER_BIT_EXT' -- -- - 'PIPELINE_STAGE_VERTEX_INPUT_BIT' --@@ -180,6 +181,10 @@ -- | 'PIPELINE_STAGE_ALL_COMMANDS_BIT' specifies all operations performed by -- all commands supported on the queue it is used with. pattern PIPELINE_STAGE_ALL_COMMANDS_BIT = PipelineStageFlagBits 0x00010000+-- | 'PIPELINE_STAGE_MESH_SHADER_BIT_EXT' specifies the mesh shader stage.+pattern PIPELINE_STAGE_MESH_SHADER_BIT_EXT = PipelineStageFlagBits 0x00100000+-- | 'PIPELINE_STAGE_TASK_SHADER_BIT_EXT' specifies the task shader stage.+pattern PIPELINE_STAGE_TASK_SHADER_BIT_EXT = PipelineStageFlagBits 0x00080000 -- | 'PIPELINE_STAGE_COMMAND_PREPROCESS_BIT_NV' specifies the stage of the -- pipeline where device-side preprocessing for generated commands via -- 'Vulkan.Extensions.VK_NV_device_generated_commands.cmdPreprocessGeneratedCommandsNV'@@ -187,20 +192,16 @@ pattern PIPELINE_STAGE_COMMAND_PREPROCESS_BIT_NV = PipelineStageFlagBits 0x00020000 -- | 'PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR' specifies the -- stage of the pipeline where the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-fragment-shading-rate-attachment fragment shading rate attachment>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-fragment-shading-rate-attachment fragment shading rate attachment> -- or--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-shading-rate-image shading rate image>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-shading-rate-image shading rate image> -- is read to determine the fragment shading rate for portions of a -- rasterized primitive. pattern PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = PipelineStageFlagBits 0x00400000 -- | 'PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT' specifies the stage of -- the pipeline where the fragment density map is read to--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#fragmentdensitymapops generate the fragment areas>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fragmentdensitymapops generate the fragment areas>. pattern PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT = PipelineStageFlagBits 0x00800000--- | 'PIPELINE_STAGE_MESH_SHADER_BIT_NV' specifies the mesh shader stage.-pattern PIPELINE_STAGE_MESH_SHADER_BIT_NV = PipelineStageFlagBits 0x00100000--- | 'PIPELINE_STAGE_TASK_SHADER_BIT_NV' specifies the task shader stage.-pattern PIPELINE_STAGE_TASK_SHADER_BIT_NV = PipelineStageFlagBits 0x00080000 -- | 'PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR' specifies the execution of -- the ray tracing shader stages, via -- 'Vulkan.Extensions.VK_NV_ray_tracing.cmdTraceRaysNV' ,@@ -256,11 +257,11 @@ , (PIPELINE_STAGE_HOST_BIT , "HOST_BIT") , (PIPELINE_STAGE_ALL_GRAPHICS_BIT , "ALL_GRAPHICS_BIT") , (PIPELINE_STAGE_ALL_COMMANDS_BIT , "ALL_COMMANDS_BIT")+ , (PIPELINE_STAGE_MESH_SHADER_BIT_EXT , "MESH_SHADER_BIT_EXT")+ , (PIPELINE_STAGE_TASK_SHADER_BIT_EXT , "TASK_SHADER_BIT_EXT") , (PIPELINE_STAGE_COMMAND_PREPROCESS_BIT_NV , "COMMAND_PREPROCESS_BIT_NV") , (PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR, "FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR") , (PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT , "FRAGMENT_DENSITY_PROCESS_BIT_EXT")- , (PIPELINE_STAGE_MESH_SHADER_BIT_NV , "MESH_SHADER_BIT_NV")- , (PIPELINE_STAGE_TASK_SHADER_BIT_NV , "TASK_SHADER_BIT_NV") , (PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR , "RAY_TRACING_SHADER_BIT_KHR") , (PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, "ACCELERATION_STRUCTURE_BUILD_BIT_KHR") , (PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT , "CONDITIONAL_RENDERING_BIT_EXT")
src/Vulkan/Core10/Enums/PrimitiveTopology.hs view
@@ -31,25 +31,25 @@ -- is described in detail below with a supporting diagram, according to the -- following key: ----- +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------+--------------------------------------------------------------------------------------------------------------------------------+--- | <<data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhLS0gQ3JlYXRlZCB3aXRoIElua3NjYXBlIChodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy8pIC0tPgoKPHN2ZwogICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgIHhtbG5zOmNjPSJodHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9ucyMiCiAgIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyIKICAgeG1sbnM6c3ZnPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogICB4bWxuczpzb2RpcG9kaT0iaHR0cDovL3NvZGlwb2RpLnNvdXJjZWZvcmdlLm5ldC9EVEQvc29kaXBvZGktMC5kdGQiCiAgIHhtbG5zOmlua3NjYXBlPSJodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy9uYW1lc3BhY2VzL2lua3NjYXBlIgogICB3aWR0aD0iOC45ODE3ODY3IgogICBoZWlnaHQ9IjguOTgxNzg2NyIKICAgdmlld0JveD0iMCAwIDguOTgxNzg2OCA4Ljk4MTc4NyIKICAgdmVyc2lvbj0iMS4xIgogICBpZD0ic3ZnODY1MyIKICAgaW5rc2NhcGU6dmVyc2lvbj0iMC45Mi40ICg1ZGE2ODljMzEzLCAyMDE5LTAxLTE0KSIKICAgc29kaXBvZGk6ZG9jbmFtZT0icHJpbWl0aXZlX3RvcG9sb2d5X2tleV92ZXJ0ZXguc3ZnIj4KICA8ZGVmcwogICAgIGlkPSJkZWZzODY0NyIgLz4KICA8c29kaXBvZGk6bmFtZWR2aWV3CiAgICAgaWQ9ImJhc2UiCiAgICAgcGFnZWNvbG9yPSIjZmZmZmZmIgogICAgIGJvcmRlcmNvbG9yPSIjNjY2NjY2IgogICAgIGJvcmRlcm9wYWNpdHk9IjEuMCIKICAgICBpbmtzY2FwZTpwYWdlb3BhY2l0eT0iMC4wIgogICAgIGlua3NjYXBlOnBhZ2VzaGFkb3c9IjIiCiAgICAgaW5rc2NhcGU6em9vbT0iMi44Mjg0MjcxIgogICAgIGlua3NjYXBlOmN4PSIxMDAuMjYxNiIKICAgICBpbmtzY2FwZTpjeT0iLTEwNC40NTE0NyIKICAgICBpbmtzY2FwZTpkb2N1bWVudC11bml0cz0icHgiCiAgICAgaW5rc2NhcGU6Y3VycmVudC1sYXllcj0ibGF5ZXIxIgogICAgIHNob3dncmlkPSJ0cnVlIgogICAgIGlua3NjYXBlOndpbmRvdy13aWR0aD0iMTkyMCIKICAgICBpbmtzY2FwZTp3aW5kb3ctaGVpZ2h0PSIxMDAxIgogICAgIGlua3NjYXBlOndpbmRvdy14PSItOSIKICAgICBpbmtzY2FwZTp3aW5kb3cteT0iLTkiCiAgICAgaW5rc2NhcGU6d2luZG93LW1heGltaXplZD0iMCIKICAgICBmaXQtbWFyZ2luLXRvcD0iMSIKICAgICBmaXQtbWFyZ2luLWxlZnQ9IjEiCiAgICAgZml0LW1hcmdpbi1yaWdodD0iMSIKICAgICBmaXQtbWFyZ2luLWJvdHRvbT0iMSIKICAgICBpbmtzY2FwZTpzbmFwLWdyaWRzPSJ0cnVlIgogICAgIGlua3NjYXBlOnNuYXAtdGV4dC1iYXNlbGluZT0idHJ1ZSIKICAgICBpbmtzY2FwZTpzbmFwLW9iamVjdC1taWRwb2ludHM9InRydWUiCiAgICAgdW5pdHM9InB4IgogICAgIGJvcmRlcmxheWVyPSJmYWxzZSI+CiAgICA8aW5rc2NhcGU6Z3JpZAogICAgICAgdHlwZT0ieHlncmlkIgogICAgICAgaWQ9ImdyaWQ5NjI2IgogICAgICAgb3JpZ2lueD0iLTkwLjUwOTExIgogICAgICAgb3JpZ2lueT0iLTY0NS41MDkyMiIgLz4KICA8L3NvZGlwb2RpOm5hbWVkdmlldz4KICA8bWV0YWRhdGEKICAgICBpZD0ibWV0YWRhdGE4NjUwIj4KICAgIDxyZGY6UkRGPgogICAgICA8Y2M6V29yawogICAgICAgICByZGY6YWJvdXQ9IiI+CiAgICAgICAgPGRjOmZvcm1hdD5pbWFnZS9zdmcreG1sPC9kYzpmb3JtYXQ+CiAgICAgICAgPGRjOnR5cGUKICAgICAgICAgICByZGY6cmVzb3VyY2U9Imh0dHA6Ly9wdXJsLm9yZy9kYy9kY21pdHlwZS9TdGlsbEltYWdlIiAvPgogICAgICAgIDxkYzp0aXRsZSAvPgogICAgICA8L2NjOldvcms+CiAgICA8L3JkZjpSREY+CiAgPC9tZXRhZGF0YT4KICA8ZwogICAgIGlua3NjYXBlOmxhYmVsPSJMYXllciAxIgogICAgIGlua3NjYXBlOmdyb3VwbW9kZT0ibGF5ZXIiCiAgICAgaWQ9ImxheWVyMSIKICAgICB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMTAzLjA0MzUsMjMyLjUyNikiPgogICAgPGNpcmNsZQogICAgICAgc3R5bGU9ImZpbGw6IzAwMDAwMDtmaWxsLW9wYWNpdHk6MTtzdHJva2U6bm9uZTtzdHJva2Utd2lkdGg6MTtzdHJva2UtbWl0ZXJsaW1pdDo0O3N0cm9rZS1kYXNoYXJyYXk6bm9uZTtzdHJva2Utb3BhY2l0eToxIgogICAgICAgaWQ9InBhdGg0NTE3LTAtOC01LTItMyIKICAgICAgIGN4PSIxMDcuNTM0MzkiCiAgICAgICBjeT0iLTIyOC4wMzUxMSIKICAgICAgIHI9IjMuNDkwODkzMSIgLz4KICA8L2c+Cjwvc3ZnPgo= primitive topology key vertex>> | Vertex | A point in 3-dimensional space. Positions chosen within the diagrams are arbitrary and for illustration only. |--- +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------+--------------------------------------------------------------------------------------------------------------------------------+--- | <<data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhLS0gQ3JlYXRlZCB3aXRoIElua3NjYXBlIChodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy8pIC0tPgoKPHN2ZwogICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgIHhtbG5zOmNjPSJodHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9ucyMiCiAgIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyIKICAgeG1sbnM6c3ZnPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogICB4bWxuczpzb2RpcG9kaT0iaHR0cDovL3NvZGlwb2RpLnNvdXJjZWZvcmdlLm5ldC9EVEQvc29kaXBvZGktMC5kdGQiCiAgIHhtbG5zOmlua3NjYXBlPSJodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy9uYW1lc3BhY2VzL2lua3NjYXBlIgogICB3aWR0aD0iOS41NzgxMjUiCiAgIGhlaWdodD0iMTMuODc1IgogICB2aWV3Qm94PSIwIDAgOS41NzgxMjUxIDEzLjg3NSIKICAgdmVyc2lvbj0iMS4xIgogICBpZD0ic3ZnODY1MyIKICAgaW5rc2NhcGU6dmVyc2lvbj0iMC45Mi40ICg1ZGE2ODljMzEzLCAyMDE5LTAxLTE0KSIKICAgc29kaXBvZGk6ZG9jbmFtZT0icHJpbWl0aXZlX3RvcG9sb2d5X2tleV92ZXJ0ZXhfbnVtYmVyLnN2ZyI+CiAgPGRlZnMKICAgICBpZD0iZGVmczg2NDciIC8+CiAgPHNvZGlwb2RpOm5hbWVkdmlldwogICAgIGlkPSJiYXNlIgogICAgIHBhZ2Vjb2xvcj0iI2ZmZmZmZiIKICAgICBib3JkZXJjb2xvcj0iIzY2NjY2NiIKICAgICBib3JkZXJvcGFjaXR5PSIxLjAiCiAgICAgaW5rc2NhcGU6cGFnZW9wYWNpdHk9IjAuMCIKICAgICBpbmtzY2FwZTpwYWdlc2hhZG93PSIyIgogICAgIGlua3NjYXBlOnpvb209IjIuODI4NDI3MSIKICAgICBpbmtzY2FwZTpjeD0iNzguNTg2NDQiCiAgICAgaW5rc2NhcGU6Y3k9Ii02OS41NjgzODgiCiAgICAgaW5rc2NhcGU6ZG9jdW1lbnQtdW5pdHM9InB4IgogICAgIGlua3NjYXBlOmN1cnJlbnQtbGF5ZXI9ImxheWVyMSIKICAgICBzaG93Z3JpZD0idHJ1ZSIKICAgICBpbmtzY2FwZTp3aW5kb3ctd2lkdGg9IjE5MjAiCiAgICAgaW5rc2NhcGU6d2luZG93LWhlaWdodD0iMTAwMSIKICAgICBpbmtzY2FwZTp3aW5kb3cteD0iLTkiCiAgICAgaW5rc2NhcGU6d2luZG93LXk9Ii05IgogICAgIGlua3NjYXBlOndpbmRvdy1tYXhpbWl6ZWQ9IjAiCiAgICAgZml0LW1hcmdpbi10b3A9IjEiCiAgICAgZml0LW1hcmdpbi1sZWZ0PSIxIgogICAgIGZpdC1tYXJnaW4tcmlnaHQ9IjEiCiAgICAgZml0LW1hcmdpbi1ib3R0b209IjEiCiAgICAgaW5rc2NhcGU6c25hcC1ncmlkcz0idHJ1ZSIKICAgICBpbmtzY2FwZTpzbmFwLXRleHQtYmFzZWxpbmU9InRydWUiCiAgICAgaW5rc2NhcGU6c25hcC1vYmplY3QtbWlkcG9pbnRzPSJ0cnVlIgogICAgIHVuaXRzPSJweCIKICAgICBib3JkZXJsYXllcj0iZmFsc2UiPgogICAgPGlua3NjYXBlOmdyaWQKICAgICAgIHR5cGU9Inh5Z3JpZCIKICAgICAgIGlkPSJncmlkOTYyNiIKICAgICAgIG9yaWdpbng9Ii05MC4zNjcxOTEiCiAgICAgICBvcmlnaW55PSItNjE4Ljc1Nzg0IiAvPgogIDwvc29kaXBvZGk6bmFtZWR2aWV3PgogIDxtZXRhZGF0YQogICAgIGlkPSJtZXRhZGF0YTg2NTAiPgogICAgPHJkZjpSREY+CiAgICAgIDxjYzpXb3JrCiAgICAgICAgIHJkZjphYm91dD0iIj4KICAgICAgICA8ZGM6Zm9ybWF0PmltYWdlL3N2Zyt4bWw8L2RjOmZvcm1hdD4KICAgICAgICA8ZGM6dHlwZQogICAgICAgICAgIHJkZjpyZXNvdXJjZT0iaHR0cDovL3B1cmwub3JnL2RjL2RjbWl0eXBlL1N0aWxsSW1hZ2UiIC8+CiAgICAgICAgPGRjOnRpdGxlPjwvZGM6dGl0bGU+CiAgICAgIDwvY2M6V29yaz4KICAgIDwvcmRmOlJERj4KICA8L21ldGFkYXRhPgogIDxnCiAgICAgaW5rc2NhcGU6bGFiZWw9IkxheWVyIDEiCiAgICAgaW5rc2NhcGU6Z3JvdXBtb2RlPSJsYXllciIKICAgICBpZD0ibGF5ZXIxIgogICAgIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0xMDIuOTAxNTgsMjEwLjY2Nzg2KSI+CiAgICA8dGV4dAogICAgICAgeG1sOnNwYWNlPSJwcmVzZXJ2ZSIKICAgICAgIHN0eWxlPSJmb250LXN0eWxlOm5vcm1hbDtmb250LXZhcmlhbnQ6bm9ybWFsO2ZvbnQtd2VpZ2h0Om5vcm1hbDtmb250LXN0cmV0Y2g6bm9ybWFsO2ZvbnQtc2l6ZToxNnB4O2xpbmUtaGVpZ2h0OjEuMjU7Zm9udC1mYW1pbHk6c2Fucy1zZXJpZjstaW5rc2NhcGUtZm9udC1zcGVjaWZpY2F0aW9uOidzYW5zLXNlcmlmLCBOb3JtYWwnO2ZvbnQtdmFyaWFudC1saWdhdHVyZXM6bm9ybWFsO2ZvbnQtdmFyaWFudC1jYXBzOm5vcm1hbDtmb250LXZhcmlhbnQtbnVtZXJpYzpub3JtYWw7Zm9udC1mZWF0dXJlLXNldHRpbmdzOm5vcm1hbDt0ZXh0LWFsaWduOmNlbnRlcjtsZXR0ZXItc3BhY2luZzowcHg7d29yZC1zcGFjaW5nOjBweDt3cml0aW5nLW1vZGU6bHItdGI7dGV4dC1hbmNob3I6bWlkZGxlO2ZpbGw6IzAwMDAwMDtmaWxsLW9wYWNpdHk6MTtzdHJva2U6bm9uZTtzdHJva2Utd2lkdGg6MS4xNjQyNzM5OCIKICAgICAgIHg9IjEwNy41MzQzOSIKICAgICAgIHk9Ii0xOTguMDM1MDUiCiAgICAgICBpZD0idGV4dDUwNzAtMi0yLTktOS00MS05Ij48dHNwYW4KICAgICAgICAgc29kaXBvZGk6cm9sZT0ibGluZSIKICAgICAgICAgaWQ9InRzcGFuNTA2OC0wLTMtMzYtOS0xLTUiCiAgICAgICAgIHg9IjEwNy41MzQzOSIKICAgICAgICAgeT0iLTE5OC4wMzUwNSIKICAgICAgICAgc3R5bGU9ImZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtdmFyaWFudDpub3JtYWw7Zm9udC13ZWlnaHQ6bm9ybWFsO2ZvbnQtc3RyZXRjaDpub3JtYWw7Zm9udC1zaXplOjE2cHg7Zm9udC1mYW1pbHk6c2Fucy1zZXJpZjstaW5rc2NhcGUtZm9udC1zcGVjaWZpY2F0aW9uOidzYW5zLXNlcmlmLCBOb3JtYWwnO2ZvbnQtdmFyaWFudC1saWdhdHVyZXM6bm9ybWFsO2ZvbnQtdmFyaWFudC1jYXBzOm5vcm1hbDtmb250LXZhcmlhbnQtbnVtZXJpYzpub3JtYWw7Zm9udC1mZWF0dXJlLXNldHRpbmdzOm5vcm1hbDt0ZXh0LWFsaWduOmNlbnRlcjt3cml0aW5nLW1vZGU6bHItdGI7dGV4dC1hbmNob3I6bWlkZGxlO2ZpbGw6IzAwMDAwMDtmaWxsLW9wYWNpdHk6MTtzdHJva2Utd2lkdGg6MS4xNjQyNzM5OCI+NTwvdHNwYW4+PC90ZXh0PgogIDwvZz4KPC9zdmc+Cg== primitive topology key vertex number>> | Vertex | Sequence position of a vertex within the provided vertex data. |--- | | Number | |--- +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------+--------------------------------------------------------------------------------------------------------------------------------+--- | <<data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhLS0gQ3JlYXRlZCB3aXRoIElua3NjYXBlIChodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy8pIC0tPgoKPHN2ZwogICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgIHhtbG5zOmNjPSJodHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9ucyMiCiAgIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyIKICAgeG1sbnM6c3ZnPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogICB4bWxuczpzb2RpcG9kaT0iaHR0cDovL3NvZGlwb2RpLnNvdXJjZWZvcmdlLm5ldC9EVEQvc29kaXBvZGktMC5kdGQiCiAgIHhtbG5zOmlua3NjYXBlPSJodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy9uYW1lc3BhY2VzL2lua3NjYXBlIgogICB3aWR0aD0iMTUuNzE0ODQ5IgogICBoZWlnaHQ9IjEwLjkzODc2MiIKICAgdmlld0JveD0iMCAwIDE1LjcxNDg0OSAxMC45Mzg3NjIiCiAgIHZlcnNpb249IjEuMSIKICAgaWQ9InN2Zzg2NTMiCiAgIGlua3NjYXBlOnZlcnNpb249IjAuOTIuNCAoNWRhNjg5YzMxMywgMjAxOS0wMS0xNCkiCiAgIHNvZGlwb2RpOmRvY25hbWU9InByaW1pdGl2ZV90b3BvbG9neV9rZXlfcHJvdm9raW5nX3ZlcnRleC5zdmciPgogIDxkZWZzCiAgICAgaWQ9ImRlZnM4NjQ3IiAvPgogIDxzb2RpcG9kaTpuYW1lZHZpZXcKICAgICBpZD0iYmFzZSIKICAgICBwYWdlY29sb3I9IiNmZmZmZmYiCiAgICAgYm9yZGVyY29sb3I9IiM2NjY2NjYiCiAgICAgYm9yZGVyb3BhY2l0eT0iMS4wIgogICAgIGlua3NjYXBlOnBhZ2VvcGFjaXR5PSIwLjAiCiAgICAgaW5rc2NhcGU6cGFnZXNoYWRvdz0iMiIKICAgICBpbmtzY2FwZTp6b29tPSIyLjgyODQyNzEiCiAgICAgaW5rc2NhcGU6Y3g9Ii0xMzguNzA4NDQiCiAgICAgaW5rc2NhcGU6Y3k9Ii01NS44NjU2MjgiCiAgICAgaW5rc2NhcGU6ZG9jdW1lbnQtdW5pdHM9InB4IgogICAgIGlua3NjYXBlOmN1cnJlbnQtbGF5ZXI9ImxheWVyMSIKICAgICBzaG93Z3JpZD0idHJ1ZSIKICAgICBpbmtzY2FwZTp3aW5kb3ctd2lkdGg9IjI1OTUiCiAgICAgaW5rc2NhcGU6d2luZG93LWhlaWdodD0iMTQ5NSIKICAgICBpbmtzY2FwZTp3aW5kb3cteD0iNDgxIgogICAgIGlua3NjYXBlOndpbmRvdy15PSIxOTEiCiAgICAgaW5rc2NhcGU6d2luZG93LW1heGltaXplZD0iMCIKICAgICBmaXQtbWFyZ2luLXRvcD0iMSIKICAgICBmaXQtbWFyZ2luLWxlZnQ9IjEiCiAgICAgZml0LW1hcmdpbi1yaWdodD0iMSIKICAgICBmaXQtbWFyZ2luLWJvdHRvbT0iMSIKICAgICBpbmtzY2FwZTpzbmFwLWdyaWRzPSJ0cnVlIgogICAgIGlua3NjYXBlOnNuYXAtdGV4dC1iYXNlbGluZT0idHJ1ZSIKICAgICBpbmtzY2FwZTpzbmFwLW9iamVjdC1taWRwb2ludHM9InRydWUiCiAgICAgdW5pdHM9InB4IgogICAgIGJvcmRlcmxheWVyPSJmYWxzZSI+CiAgICA8aW5rc2NhcGU6Z3JpZAogICAgICAgdHlwZT0ieHlncmlkIgogICAgICAgaWQ9ImdyaWQ5NjI2IgogICAgICAgb3JpZ2lueD0iLTkwLjUwOTEwNyIKICAgICAgIG9yaWdpbnk9Ii01OTUuNTA5MTciIC8+CiAgPC9zb2RpcG9kaTpuYW1lZHZpZXc+CiAgPG1ldGFkYXRhCiAgICAgaWQ9Im1ldGFkYXRhODY1MCI+CiAgICA8cmRmOlJERj4KICAgICAgPGNjOldvcmsKICAgICAgICAgcmRmOmFib3V0PSIiPgogICAgICAgIDxkYzpmb3JtYXQ+aW1hZ2Uvc3ZnK3htbDwvZGM6Zm9ybWF0PgogICAgICAgIDxkYzp0eXBlCiAgICAgICAgICAgcmRmOnJlc291cmNlPSJodHRwOi8vcHVybC5vcmcvZGMvZGNtaXR5cGUvU3RpbGxJbWFnZSIgLz4KICAgICAgICA8ZGM6dGl0bGUgLz4KICAgICAgPC9jYzpXb3JrPgogICAgPC9yZGY6UkRGPgogIDwvbWV0YWRhdGE+CiAgPGcKICAgICBpbmtzY2FwZTpsYWJlbD0iTGF5ZXIgMSIKICAgICBpbmtzY2FwZTpncm91cG1vZGU9ImxheWVyIgogICAgIGlkPSJsYXllcjEiCiAgICAgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTEwMy4wNDM1LDE4NC40ODI5MikiPgogICAgPGNpcmNsZQogICAgICAgc3R5bGU9ImZpbGw6I2ZmMDAwMDtmaWxsLW9wYWNpdHk6MTtzdHJva2U6bm9uZTtzdHJva2Utd2lkdGg6MTtzdHJva2UtbWl0ZXJsaW1pdDo0O3N0cm9rZS1kYXNoYXJyYXk6bm9uZTtzdHJva2Utb3BhY2l0eToxIgogICAgICAgaWQ9InBhdGg0NTE3LTAtOC01LTkxLTAtMy04IgogICAgICAgY3g9IjEwNy41MzQzOSIKICAgICAgIGN5PSItMTc4LjAzNTA1IgogICAgICAgcj0iMy40OTA4OTMxIiAvPgogICAgPHBhdGgKICAgICAgIHN0eWxlPSJmaWxsOm5vbmU7c3Ryb2tlOiNmYTAwMDA7c3Ryb2tlLXdpZHRoOjEuMDAxNTc0NzU7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46bWl0ZXI7c3Ryb2tlLW1pdGVybGltaXQ6NDtzdHJva2UtZGFzaGFycmF5Om5vbmU7c3Ryb2tlLW9wYWNpdHk6MSIKICAgICAgIGQ9Im0gMTA3LjUzNDM5LC0xNzguMDM1IDEwLC01IgogICAgICAgaWQ9InBhdGg0NjcyIgogICAgICAgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIgLz4KICA8L2c+Cjwvc3ZnPgo= primitive topology key provoking vertex>> | Provoking | Provoking vertex within the main primitive. The tail is angled towards the relevant primitive. Used in |--- | | Vertex | <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#vertexpostproc-flatshading flat shading>. |--- +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------+--------------------------------------------------------------------------------------------------------------------------------+--- | <<data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhLS0gQ3JlYXRlZCB3aXRoIElua3NjYXBlIChodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy8pIC0tPgoKPHN2ZwogICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgIHhtbG5zOmNjPSJodHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9ucyMiCiAgIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyIKICAgeG1sbnM6c3ZnPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogICB4bWxuczpzb2RpcG9kaT0iaHR0cDovL3NvZGlwb2RpLnNvdXJjZWZvcmdlLm5ldC9EVEQvc29kaXBvZGktMC5kdGQiCiAgIHhtbG5zOmlua3NjYXBlPSJodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy9uYW1lc3BhY2VzL2lua3NjYXBlIgogICB3aWR0aD0iODIiCiAgIGhlaWdodD0iMyIKICAgdmlld0JveD0iMCAwIDgyLjAwMDAwMSAzLjAwMDAwMDEiCiAgIHZlcnNpb249IjEuMSIKICAgaWQ9InN2Zzg2NTMiCiAgIGlua3NjYXBlOnZlcnNpb249IjAuOTIuNCAoNWRhNjg5YzMxMywgMjAxOS0wMS0xNCkiCiAgIHNvZGlwb2RpOmRvY25hbWU9InByaW1pdGl2ZV90b3BvbG9neV9rZXlfZWRnZS5zdmciPgogIDxkZWZzCiAgICAgaWQ9ImRlZnM4NjQ3IiAvPgogIDxzb2RpcG9kaTpuYW1lZHZpZXcKICAgICBpZD0iYmFzZSIKICAgICBwYWdlY29sb3I9IiNmZmZmZmYiCiAgICAgYm9yZGVyY29sb3I9IiM2NjY2NjYiCiAgICAgYm9yZGVyb3BhY2l0eT0iMS4wIgogICAgIGlua3NjYXBlOnBhZ2VvcGFjaXR5PSIwLjAiCiAgICAgaW5rc2NhcGU6cGFnZXNoYWRvdz0iMiIKICAgICBpbmtzY2FwZTp6b29tPSIyLjgyODQyNzEiCiAgICAgaW5rc2NhcGU6Y3g9Ii0xNTUuNzc5NSIKICAgICBpbmtzY2FwZTpjeT0iLTQuNTU4MjQ3MyIKICAgICBpbmtzY2FwZTpkb2N1bWVudC11bml0cz0icHgiCiAgICAgaW5rc2NhcGU6Y3VycmVudC1sYXllcj0ibGF5ZXIxIgogICAgIHNob3dncmlkPSJ0cnVlIgogICAgIGlua3NjYXBlOndpbmRvdy13aWR0aD0iMjI2MiIKICAgICBpbmtzY2FwZTp3aW5kb3ctaGVpZ2h0PSIxNTA3IgogICAgIGlua3NjYXBlOndpbmRvdy14PSI0ODIiCiAgICAgaW5rc2NhcGU6d2luZG93LXk9IjM4NSIKICAgICBpbmtzY2FwZTp3aW5kb3ctbWF4aW1pemVkPSIwIgogICAgIGZpdC1tYXJnaW4tdG9wPSIxIgogICAgIGZpdC1tYXJnaW4tbGVmdD0iMSIKICAgICBmaXQtbWFyZ2luLXJpZ2h0PSIxIgogICAgIGZpdC1tYXJnaW4tYm90dG9tPSIxIgogICAgIGlua3NjYXBlOnNuYXAtZ3JpZHM9InRydWUiCiAgICAgaW5rc2NhcGU6c25hcC10ZXh0LWJhc2VsaW5lPSJ0cnVlIgogICAgIGlua3NjYXBlOnNuYXAtb2JqZWN0LW1pZHBvaW50cz0idHJ1ZSIKICAgICB1bml0cz0icHgiCiAgICAgYm9yZGVybGF5ZXI9ImZhbHNlIj4KICAgIDxpbmtzY2FwZTpncmlkCiAgICAgICB0eXBlPSJ4eWdyaWQiCiAgICAgICBpZD0iZ3JpZDk2MjYiCiAgICAgICBvcmlnaW54PSItMzA5IgogICAgICAgb3JpZ2lueT0iLTY0OC41MDAwMyIgLz4KICA8L3NvZGlwb2RpOm5hbWVkdmlldz4KICA8bWV0YWRhdGEKICAgICBpZD0ibWV0YWRhdGE4NjUwIj4KICAgIDxyZGY6UkRGPgogICAgICA8Y2M6V29yawogICAgICAgICByZGY6YWJvdXQ9IiI+CiAgICAgICAgPGRjOmZvcm1hdD5pbWFnZS9zdmcreG1sPC9kYzpmb3JtYXQ+CiAgICAgICAgPGRjOnR5cGUKICAgICAgICAgICByZGY6cmVzb3VyY2U9Imh0dHA6Ly9wdXJsLm9yZy9kYy9kY21pdHlwZS9TdGlsbEltYWdlIiAvPgogICAgICAgIDxkYzp0aXRsZSAvPgogICAgICA8L2NjOldvcms+CiAgICA8L3JkZjpSREY+CiAgPC9tZXRhZGF0YT4KICA8ZwogICAgIGlua3NjYXBlOmxhYmVsPSJMYXllciAxIgogICAgIGlua3NjYXBlOmdyb3VwbW9kZT0ibGF5ZXIiCiAgICAgaWQ9ImxheWVyMSIKICAgICB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMzIxLjUzNDM5LDIyOS41MzUwMykiPgogICAgPHBhdGgKICAgICAgIHN0eWxlPSJmaWxsOm5vbmU7c3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjE7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46bWl0ZXI7c3Ryb2tlLW1pdGVybGltaXQ6NDtzdHJva2UtZGFzaGFycmF5Om5vbmU7c3Ryb2tlLWRhc2hvZmZzZXQ6MDtzdHJva2Utb3BhY2l0eToxIgogICAgICAgZD0ibSAzMjIuNTM0MzksLTIyOC4wMzUwMyBoIDgwIgogICAgICAgaWQ9InBhdGgyMDMzLTEiCiAgICAgICBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIiAvPgogIDwvZz4KPC9zdmc+Cg== primitive topology key edge>> | Primitive | An edge connecting the points of a main primitive. |--- | | Edge | |--- +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------+--------------------------------------------------------------------------------------------------------------------------------+--- | <<data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhLS0gQ3JlYXRlZCB3aXRoIElua3NjYXBlIChodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy8pIC0tPgoKPHN2ZwogICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgIHhtbG5zOmNjPSJodHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9ucyMiCiAgIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyIKICAgeG1sbnM6c3ZnPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogICB4bWxuczpzb2RpcG9kaT0iaHR0cDovL3NvZGlwb2RpLnNvdXJjZWZvcmdlLm5ldC9EVEQvc29kaXBvZGktMC5kdGQiCiAgIHhtbG5zOmlua3NjYXBlPSJodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy9uYW1lc3BhY2VzL2lua3NjYXBlIgogICB3aWR0aD0iODIiCiAgIGhlaWdodD0iMyIKICAgdmlld0JveD0iMCAwIDgyLjAwMDAwMSAzLjAwMDAwMDEiCiAgIHZlcnNpb249IjEuMSIKICAgaWQ9InN2Zzg2NTMiCiAgIGlua3NjYXBlOnZlcnNpb249IjAuOTIuNCAoNWRhNjg5YzMxMywgMjAxOS0wMS0xNCkiCiAgIHNvZGlwb2RpOmRvY25hbWU9InByaW1pdGl2ZV90b3BvbG9neV9rZXlfYWRqYWNlbmN5X2VkZ2Uuc3ZnIj4KICA8ZGVmcwogICAgIGlkPSJkZWZzODY0NyIgLz4KICA8c29kaXBvZGk6bmFtZWR2aWV3CiAgICAgaWQ9ImJhc2UiCiAgICAgcGFnZWNvbG9yPSIjZmZmZmZmIgogICAgIGJvcmRlcmNvbG9yPSIjNjY2NjY2IgogICAgIGJvcmRlcm9wYWNpdHk9IjEuMCIKICAgICBpbmtzY2FwZTpwYWdlb3BhY2l0eT0iMC4wIgogICAgIGlua3NjYXBlOnBhZ2VzaGFkb3c9IjIiCiAgICAgaW5rc2NhcGU6em9vbT0iMi44Mjg0MjcxIgogICAgIGlua3NjYXBlOmN4PSItMTYxLjc4OTkiCiAgICAgaW5rc2NhcGU6Y3k9Ii03MC43NzUwMjMiCiAgICAgaW5rc2NhcGU6ZG9jdW1lbnQtdW5pdHM9InB4IgogICAgIGlua3NjYXBlOmN1cnJlbnQtbGF5ZXI9ImxheWVyMSIKICAgICBzaG93Z3JpZD0idHJ1ZSIKICAgICBpbmtzY2FwZTp3aW5kb3ctd2lkdGg9IjIyMzMiCiAgICAgaW5rc2NhcGU6d2luZG93LWhlaWdodD0iMTM0MyIKICAgICBpbmtzY2FwZTp3aW5kb3cteD0iMzkyIgogICAgIGlua3NjYXBlOndpbmRvdy15PSIyOTYiCiAgICAgaW5rc2NhcGU6d2luZG93LW1heGltaXplZD0iMCIKICAgICBmaXQtbWFyZ2luLXRvcD0iMSIKICAgICBmaXQtbWFyZ2luLWxlZnQ9IjEiCiAgICAgZml0LW1hcmdpbi1yaWdodD0iMSIKICAgICBmaXQtbWFyZ2luLWJvdHRvbT0iMSIKICAgICBpbmtzY2FwZTpzbmFwLWdyaWRzPSJ0cnVlIgogICAgIGlua3NjYXBlOnNuYXAtdGV4dC1iYXNlbGluZT0idHJ1ZSIKICAgICBpbmtzY2FwZTpzbmFwLW9iamVjdC1taWRwb2ludHM9InRydWUiCiAgICAgdW5pdHM9InB4IgogICAgIGJvcmRlcmxheWVyPSJmYWxzZSI+CiAgICA8aW5rc2NhcGU6Z3JpZAogICAgICAgdHlwZT0ieHlncmlkIgogICAgICAgaWQ9ImdyaWQ5NjI2IgogICAgICAgb3JpZ2lueD0iLTMwOSIKICAgICAgIG9yaWdpbnk9Ii02MjMuNTAwMDMiIC8+CiAgPC9zb2RpcG9kaTpuYW1lZHZpZXc+CiAgPG1ldGFkYXRhCiAgICAgaWQ9Im1ldGFkYXRhODY1MCI+CiAgICA8cmRmOlJERj4KICAgICAgPGNjOldvcmsKICAgICAgICAgcmRmOmFib3V0PSIiPgogICAgICAgIDxkYzpmb3JtYXQ+aW1hZ2Uvc3ZnK3htbDwvZGM6Zm9ybWF0PgogICAgICAgIDxkYzp0eXBlCiAgICAgICAgICAgcmRmOnJlc291cmNlPSJodHRwOi8vcHVybC5vcmcvZGMvZGNtaXR5cGUvU3RpbGxJbWFnZSIgLz4KICAgICAgICA8ZGM6dGl0bGUgLz4KICAgICAgPC9jYzpXb3JrPgogICAgPC9yZGY6UkRGPgogIDwvbWV0YWRhdGE+CiAgPGcKICAgICBpbmtzY2FwZTpsYWJlbD0iTGF5ZXIgMSIKICAgICBpbmtzY2FwZTpncm91cG1vZGU9ImxheWVyIgogICAgIGlkPSJsYXllcjEiCiAgICAgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTMyMS41MzQzOSwyMDQuNTM1MDMpIj4KICAgIDxwYXRoCiAgICAgICBzdHlsZT0iZmlsbDpub25lO3N0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoxO3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO3N0cm9rZS1taXRlcmxpbWl0OjQ7c3Ryb2tlLWRhc2hhcnJheTo0LCA0O3N0cm9rZS1kYXNob2Zmc2V0OjA7c3Ryb2tlLW9wYWNpdHk6MSIKICAgICAgIGQ9Im0gMzIyLjUzNDM5LC0yMDMuMDM1MDMgaCA4MCIKICAgICAgIGlkPSJwYXRoMjAzMyIKICAgICAgIGlua3NjYXBlOmNvbm5lY3Rvci1jdXJ2YXR1cmU9IjAiIC8+CiAgPC9nPgo8L3N2Zz4K primitive topology key adjacency edge>> | Adjacency | Points connected by these lines do not contribute to a main primitive, and are only accessible in a |--- | | Edge | <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#geometry geometry shader>. |--- +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------+--------------------------------------------------------------------------------------------------------------------------------+--- | <<data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhLS0gQ3JlYXRlZCB3aXRoIElua3NjYXBlIChodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy8pIC0tPgoKPHN2ZwogICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgIHhtbG5zOmNjPSJodHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9ucyMiCiAgIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyIKICAgeG1sbnM6c3ZnPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogICB4bWxuczpzb2RpcG9kaT0iaHR0cDovL3NvZGlwb2RpLnNvdXJjZWZvcmdlLm5ldC9EVEQvc29kaXBvZGktMC5kdGQiCiAgIHhtbG5zOmlua3NjYXBlPSJodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy9uYW1lc3BhY2VzL2lua3NjYXBlIgogICB3aWR0aD0iNTUuMDYzODE2IgogICBoZWlnaHQ9IjQ2LjE3ODgyOSIKICAgdmlld0JveD0iMCAwIDU1LjA2MzgxNyA0Ni4xNzg4MyIKICAgdmVyc2lvbj0iMS4xIgogICBpZD0ic3ZnODY1MyIKICAgaW5rc2NhcGU6dmVyc2lvbj0iMC45Mi40ICg1ZGE2ODljMzEzLCAyMDE5LTAxLTE0KSIKICAgc29kaXBvZGk6ZG9jbmFtZT0icHJpbWl0aXZlX3RvcG9sb2d5X2tleV93aW5kaW5nX29yZGVyLnN2ZyI+CiAgPGRlZnMKICAgICBpZD0iZGVmczg2NDciPgogICAgPG1hcmtlcgogICAgICAgaW5rc2NhcGU6aXNzdG9jaz0idHJ1ZSIKICAgICAgIHN0eWxlPSJvdmVyZmxvdzp2aXNpYmxlIgogICAgICAgaWQ9Im1hcmtlcjMwMzktMSIKICAgICAgIHJlZlg9IjAiCiAgICAgICByZWZZPSIwIgogICAgICAgb3JpZW50PSJhdXRvIgogICAgICAgaW5rc2NhcGU6c3RvY2tpZD0iQXJyb3cxTWVuZCI+CiAgICAgIDxwYXRoCiAgICAgICAgIHRyYW5zZm9ybT0ibWF0cml4KC0wLjQsMCwwLC0wLjQsLTQsMCkiCiAgICAgICAgIHN0eWxlPSJmaWxsOiMwMDAwMDA7ZmlsbC1vcGFjaXR5OjE7ZmlsbC1ydWxlOmV2ZW5vZGQ7c3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjEuMDAwMDAwMDNwdDtzdHJva2Utb3BhY2l0eToxIgogICAgICAgICBkPSJNIDAsMCA1LC01IC0xMi41LDAgNSw1IFoiCiAgICAgICAgIGlkPSJwYXRoMzAzNy0wIgogICAgICAgICBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIiAvPgogICAgPC9tYXJrZXI+CiAgICA8bWFya2VyCiAgICAgICBpbmtzY2FwZTppc3N0b2NrPSJ0cnVlIgogICAgICAgc3R5bGU9Im92ZXJmbG93OnZpc2libGUiCiAgICAgICBpZD0ibWFya2VyMjg5MS02IgogICAgICAgcmVmWD0iMCIKICAgICAgIHJlZlk9IjAiCiAgICAgICBvcmllbnQ9ImF1dG8iCiAgICAgICBpbmtzY2FwZTpzdG9ja2lkPSJBcnJvdzFNZW5kIj4KICAgICAgPHBhdGgKICAgICAgICAgdHJhbnNmb3JtPSJtYXRyaXgoLTAuNCwwLDAsLTAuNCwtNCwwKSIKICAgICAgICAgc3R5bGU9ImZpbGw6IzAwMDAwMDtmaWxsLW9wYWNpdHk6MTtmaWxsLXJ1bGU6ZXZlbm9kZDtzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MS4wMDAwMDAwM3B0O3N0cm9rZS1vcGFjaXR5OjEiCiAgICAgICAgIGQ9Ik0gMCwwIDUsLTUgLTEyLjUsMCA1LDUgWiIKICAgICAgICAgaWQ9InBhdGgyODg5LTYiCiAgICAgICAgIGlua3NjYXBlOmNvbm5lY3Rvci1jdXJ2YXR1cmU9IjAiIC8+CiAgICA8L21hcmtlcj4KICAgIDxtYXJrZXIKICAgICAgIGlua3NjYXBlOnN0b2NraWQ9IkFycm93MU1lbmQiCiAgICAgICBvcmllbnQ9ImF1dG8iCiAgICAgICByZWZZPSIwIgogICAgICAgcmVmWD0iMCIKICAgICAgIGlkPSJBcnJvdzFNZW5kLTgwIgogICAgICAgc3R5bGU9Im92ZXJmbG93OnZpc2libGUiCiAgICAgICBpbmtzY2FwZTppc3N0b2NrPSJ0cnVlIgogICAgICAgaW5rc2NhcGU6Y29sbGVjdD0iYWx3YXlzIj4KICAgICAgPHBhdGgKICAgICAgICAgaWQ9InBhdGg4OTAtMCIKICAgICAgICAgZD0iTSAwLDAgNSwtNSAtMTIuNSwwIDUsNSBaIgogICAgICAgICBzdHlsZT0iZmlsbDojMDAwMDAwO2ZpbGwtb3BhY2l0eToxO2ZpbGwtcnVsZTpldmVub2RkO3N0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoxLjAwMDAwMDAzcHQ7c3Ryb2tlLW9wYWNpdHk6MSIKICAgICAgICAgdHJhbnNmb3JtPSJtYXRyaXgoLTAuNCwwLDAsLTAuNCwtNCwwKSIKICAgICAgICAgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIgLz4KICAgIDwvbWFya2VyPgogIDwvZGVmcz4KICA8c29kaXBvZGk6bmFtZWR2aWV3CiAgICAgaWQ9ImJhc2UiCiAgICAgcGFnZWNvbG9yPSIjZmZmZmZmIgogICAgIGJvcmRlcmNvbG9yPSIjNjY2NjY2IgogICAgIGJvcmRlcm9wYWNpdHk9IjEuMCIKICAgICBpbmtzY2FwZTpwYWdlb3BhY2l0eT0iMC4wIgogICAgIGlua3NjYXBlOnBhZ2VzaGFkb3c9IjIiCiAgICAgaW5rc2NhcGU6em9vbT0iMi44Mjg0MjcxIgogICAgIGlua3NjYXBlOmN4PSItMTQwLjU1MDU2IgogICAgIGlua3NjYXBlOmN5PSItOC40MzI2NjQ2IgogICAgIGlua3NjYXBlOmRvY3VtZW50LXVuaXRzPSJweCIKICAgICBpbmtzY2FwZTpjdXJyZW50LWxheWVyPSJsYXllcjEiCiAgICAgc2hvd2dyaWQ9InRydWUiCiAgICAgaW5rc2NhcGU6d2luZG93LXdpZHRoPSIxOTIwIgogICAgIGlua3NjYXBlOndpbmRvdy1oZWlnaHQ9IjEwMDEiCiAgICAgaW5rc2NhcGU6d2luZG93LXg9Ii05IgogICAgIGlua3NjYXBlOndpbmRvdy15PSItOSIKICAgICBpbmtzY2FwZTp3aW5kb3ctbWF4aW1pemVkPSIwIgogICAgIGZpdC1tYXJnaW4tdG9wPSIxIgogICAgIGZpdC1tYXJnaW4tbGVmdD0iMSIKICAgICBmaXQtbWFyZ2luLXJpZ2h0PSIxIgogICAgIGZpdC1tYXJnaW4tYm90dG9tPSIxIgogICAgIGlua3NjYXBlOnNuYXAtZ3JpZHM9InRydWUiCiAgICAgaW5rc2NhcGU6c25hcC10ZXh0LWJhc2VsaW5lPSJ0cnVlIgogICAgIGlua3NjYXBlOnNuYXAtb2JqZWN0LW1pZHBvaW50cz0idHJ1ZSIKICAgICB1bml0cz0icHgiCiAgICAgYm9yZGVybGF5ZXI9ImZhbHNlIj4KICAgIDxpbmtzY2FwZTpncmlkCiAgICAgICB0eXBlPSJ4eWdyaWQiCiAgICAgICBpZD0iZ3JpZDk2MjYiCiAgICAgICBvcmlnaW54PSItMzA3LjAyOTMzIgogICAgICAgb3JpZ2lueT0iLTU2Ni40NjA5NyIgLz4KICA8L3NvZGlwb2RpOm5hbWVkdmlldz4KICA8bWV0YWRhdGEKICAgICBpZD0ibWV0YWRhdGE4NjUwIj4KICAgIDxyZGY6UkRGPgogICAgICA8Y2M6V29yawogICAgICAgICByZGY6YWJvdXQ9IiI+CiAgICAgICAgPGRjOmZvcm1hdD5pbWFnZS9zdmcreG1sPC9kYzpmb3JtYXQ+CiAgICAgICAgPGRjOnR5cGUKICAgICAgICAgICByZGY6cmVzb3VyY2U9Imh0dHA6Ly9wdXJsLm9yZy9kYy9kY21pdHlwZS9TdGlsbEltYWdlIiAvPgogICAgICAgIDxkYzp0aXRsZT48L2RjOnRpdGxlPgogICAgICA8L2NjOldvcms+CiAgICA8L3JkZjpSREY+CiAgPC9tZXRhZGF0YT4KICA8ZwogICAgIGlua3NjYXBlOmxhYmVsPSJMYXllciAxIgogICAgIGlua3NjYXBlOmdyb3VwbW9kZT0ibGF5ZXIiCiAgICAgaWQ9ImxheWVyMSIKICAgICB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMzE5LjU2MzcxLDE5MC42NzQ4KSI+CiAgICA8ZwogICAgICAgaWQ9Imc0Mzg5LTg5IgogICAgICAgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMjU1LC00NC45OTk5OTUpIj4KICAgICAgPHBhdGgKICAgICAgICAgc29kaXBvZGk6bm9kZXR5cGVzPSJjYyIKICAgICAgICAgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIKICAgICAgICAgaWQ9InBhdGgxODY4LTc5IgogICAgICAgICBkPSJtIDY3LjUzNDM5MywtMTEzLjAzNTEgMjAsLTMwIgogICAgICAgICBzdHlsZT0iZmlsbDpub25lO3N0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoxcHg7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46bWl0ZXI7c3Ryb2tlLW9wYWNpdHk6MTttYXJrZXItZW5kOnVybCgjbWFya2VyMzAzOS0xKSIgLz4KICAgICAgPHBhdGgKICAgICAgICAgc29kaXBvZGk6bm9kZXR5cGVzPSJjYyIKICAgICAgICAgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIKICAgICAgICAgaWQ9InBhdGgxODcwLTMiCiAgICAgICAgIGQ9Im0gOTcuNTM0MzkzLC0xNDMuMDM1MSAxOS45OTk5OTcsMzAiCiAgICAgICAgIHN0eWxlPSJmaWxsOm5vbmU7c3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjFweDtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2Utb3BhY2l0eToxO21hcmtlci1lbmQ6dXJsKCNtYXJrZXIyODkxLTYpIiAvPgogICAgICA8cGF0aAogICAgICAgICBzb2RpcG9kaTpub2RldHlwZXM9ImNjIgogICAgICAgICBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIgogICAgICAgICBpZD0icGF0aDE4NzItOSIKICAgICAgICAgZD0iTSAxMTcuNTM0MzksLTEwMy4wMzUxIEggNjcuNTM0MzkzIgogICAgICAgICBzdHlsZT0iZmlsbDpub25lO3N0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoxcHg7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46bWl0ZXI7c3Ryb2tlLW9wYWNpdHk6MTttYXJrZXItZW5kOnVybCgjQXJyb3cxTWVuZC04MCkiIC8+CiAgICA8L2c+CiAgPC9nPgo8L3N2Zz4K primitive topology key winding order>> | Winding | The relative order in which vertices are defined within a primitive, used in the |--- | | Order | <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-polygons-basic facing determination>. |--- | | | This ordering has no specific start or end point. |--- +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------+--------------------------------------------------------------------------------------------------------------------------------++-- +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------+----------------------------------------------------------------------------------------------------------------------------++-- | <<data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhLS0gQ3JlYXRlZCB3aXRoIElua3NjYXBlIChodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy8pIC0tPgoKPHN2ZwogICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgIHhtbG5zOmNjPSJodHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9ucyMiCiAgIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyIKICAgeG1sbnM6c3ZnPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogICB4bWxuczpzb2RpcG9kaT0iaHR0cDovL3NvZGlwb2RpLnNvdXJjZWZvcmdlLm5ldC9EVEQvc29kaXBvZGktMC5kdGQiCiAgIHhtbG5zOmlua3NjYXBlPSJodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy9uYW1lc3BhY2VzL2lua3NjYXBlIgogICB3aWR0aD0iOC45ODE3ODY3IgogICBoZWlnaHQ9IjguOTgxNzg2NyIKICAgdmlld0JveD0iMCAwIDguOTgxNzg2OCA4Ljk4MTc4NyIKICAgdmVyc2lvbj0iMS4xIgogICBpZD0ic3ZnODY1MyIKICAgaW5rc2NhcGU6dmVyc2lvbj0iMC45Mi40ICg1ZGE2ODljMzEzLCAyMDE5LTAxLTE0KSIKICAgc29kaXBvZGk6ZG9jbmFtZT0icHJpbWl0aXZlX3RvcG9sb2d5X2tleV92ZXJ0ZXguc3ZnIj4KICA8ZGVmcwogICAgIGlkPSJkZWZzODY0NyIgLz4KICA8c29kaXBvZGk6bmFtZWR2aWV3CiAgICAgaWQ9ImJhc2UiCiAgICAgcGFnZWNvbG9yPSIjZmZmZmZmIgogICAgIGJvcmRlcmNvbG9yPSIjNjY2NjY2IgogICAgIGJvcmRlcm9wYWNpdHk9IjEuMCIKICAgICBpbmtzY2FwZTpwYWdlb3BhY2l0eT0iMC4wIgogICAgIGlua3NjYXBlOnBhZ2VzaGFkb3c9IjIiCiAgICAgaW5rc2NhcGU6em9vbT0iMi44Mjg0MjcxIgogICAgIGlua3NjYXBlOmN4PSIxMDAuMjYxNiIKICAgICBpbmtzY2FwZTpjeT0iLTEwNC40NTE0NyIKICAgICBpbmtzY2FwZTpkb2N1bWVudC11bml0cz0icHgiCiAgICAgaW5rc2NhcGU6Y3VycmVudC1sYXllcj0ibGF5ZXIxIgogICAgIHNob3dncmlkPSJ0cnVlIgogICAgIGlua3NjYXBlOndpbmRvdy13aWR0aD0iMTkyMCIKICAgICBpbmtzY2FwZTp3aW5kb3ctaGVpZ2h0PSIxMDAxIgogICAgIGlua3NjYXBlOndpbmRvdy14PSItOSIKICAgICBpbmtzY2FwZTp3aW5kb3cteT0iLTkiCiAgICAgaW5rc2NhcGU6d2luZG93LW1heGltaXplZD0iMCIKICAgICBmaXQtbWFyZ2luLXRvcD0iMSIKICAgICBmaXQtbWFyZ2luLWxlZnQ9IjEiCiAgICAgZml0LW1hcmdpbi1yaWdodD0iMSIKICAgICBmaXQtbWFyZ2luLWJvdHRvbT0iMSIKICAgICBpbmtzY2FwZTpzbmFwLWdyaWRzPSJ0cnVlIgogICAgIGlua3NjYXBlOnNuYXAtdGV4dC1iYXNlbGluZT0idHJ1ZSIKICAgICBpbmtzY2FwZTpzbmFwLW9iamVjdC1taWRwb2ludHM9InRydWUiCiAgICAgdW5pdHM9InB4IgogICAgIGJvcmRlcmxheWVyPSJmYWxzZSI+CiAgICA8aW5rc2NhcGU6Z3JpZAogICAgICAgdHlwZT0ieHlncmlkIgogICAgICAgaWQ9ImdyaWQ5NjI2IgogICAgICAgb3JpZ2lueD0iLTkwLjUwOTExIgogICAgICAgb3JpZ2lueT0iLTY0NS41MDkyMiIgLz4KICA8L3NvZGlwb2RpOm5hbWVkdmlldz4KICA8bWV0YWRhdGEKICAgICBpZD0ibWV0YWRhdGE4NjUwIj4KICAgIDxyZGY6UkRGPgogICAgICA8Y2M6V29yawogICAgICAgICByZGY6YWJvdXQ9IiI+CiAgICAgICAgPGRjOmZvcm1hdD5pbWFnZS9zdmcreG1sPC9kYzpmb3JtYXQ+CiAgICAgICAgPGRjOnR5cGUKICAgICAgICAgICByZGY6cmVzb3VyY2U9Imh0dHA6Ly9wdXJsLm9yZy9kYy9kY21pdHlwZS9TdGlsbEltYWdlIiAvPgogICAgICAgIDxkYzp0aXRsZSAvPgogICAgICA8L2NjOldvcms+CiAgICA8L3JkZjpSREY+CiAgPC9tZXRhZGF0YT4KICA8ZwogICAgIGlua3NjYXBlOmxhYmVsPSJMYXllciAxIgogICAgIGlua3NjYXBlOmdyb3VwbW9kZT0ibGF5ZXIiCiAgICAgaWQ9ImxheWVyMSIKICAgICB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMTAzLjA0MzUsMjMyLjUyNikiPgogICAgPGNpcmNsZQogICAgICAgc3R5bGU9ImZpbGw6IzAwMDAwMDtmaWxsLW9wYWNpdHk6MTtzdHJva2U6bm9uZTtzdHJva2Utd2lkdGg6MTtzdHJva2UtbWl0ZXJsaW1pdDo0O3N0cm9rZS1kYXNoYXJyYXk6bm9uZTtzdHJva2Utb3BhY2l0eToxIgogICAgICAgaWQ9InBhdGg0NTE3LTAtOC01LTItMyIKICAgICAgIGN4PSIxMDcuNTM0MzkiCiAgICAgICBjeT0iLTIyOC4wMzUxMSIKICAgICAgIHI9IjMuNDkwODkzMSIgLz4KICA8L2c+Cjwvc3ZnPgo= primitive topology key vertex>> | Vertex | A point in 3-dimensional space. Positions chosen within the diagrams are arbitrary and for illustration only. |+-- +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------+----------------------------------------------------------------------------------------------------------------------------++-- | <<data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhLS0gQ3JlYXRlZCB3aXRoIElua3NjYXBlIChodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy8pIC0tPgoKPHN2ZwogICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgIHhtbG5zOmNjPSJodHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9ucyMiCiAgIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyIKICAgeG1sbnM6c3ZnPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogICB4bWxuczpzb2RpcG9kaT0iaHR0cDovL3NvZGlwb2RpLnNvdXJjZWZvcmdlLm5ldC9EVEQvc29kaXBvZGktMC5kdGQiCiAgIHhtbG5zOmlua3NjYXBlPSJodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy9uYW1lc3BhY2VzL2lua3NjYXBlIgogICB3aWR0aD0iOS41NzgxMjUiCiAgIGhlaWdodD0iMTMuODc1IgogICB2aWV3Qm94PSIwIDAgOS41NzgxMjUxIDEzLjg3NSIKICAgdmVyc2lvbj0iMS4xIgogICBpZD0ic3ZnODY1MyIKICAgaW5rc2NhcGU6dmVyc2lvbj0iMC45Mi40ICg1ZGE2ODljMzEzLCAyMDE5LTAxLTE0KSIKICAgc29kaXBvZGk6ZG9jbmFtZT0icHJpbWl0aXZlX3RvcG9sb2d5X2tleV92ZXJ0ZXhfbnVtYmVyLnN2ZyI+CiAgPGRlZnMKICAgICBpZD0iZGVmczg2NDciIC8+CiAgPHNvZGlwb2RpOm5hbWVkdmlldwogICAgIGlkPSJiYXNlIgogICAgIHBhZ2Vjb2xvcj0iI2ZmZmZmZiIKICAgICBib3JkZXJjb2xvcj0iIzY2NjY2NiIKICAgICBib3JkZXJvcGFjaXR5PSIxLjAiCiAgICAgaW5rc2NhcGU6cGFnZW9wYWNpdHk9IjAuMCIKICAgICBpbmtzY2FwZTpwYWdlc2hhZG93PSIyIgogICAgIGlua3NjYXBlOnpvb209IjIuODI4NDI3MSIKICAgICBpbmtzY2FwZTpjeD0iNzguNTg2NDQiCiAgICAgaW5rc2NhcGU6Y3k9Ii02OS41NjgzODgiCiAgICAgaW5rc2NhcGU6ZG9jdW1lbnQtdW5pdHM9InB4IgogICAgIGlua3NjYXBlOmN1cnJlbnQtbGF5ZXI9ImxheWVyMSIKICAgICBzaG93Z3JpZD0idHJ1ZSIKICAgICBpbmtzY2FwZTp3aW5kb3ctd2lkdGg9IjE5MjAiCiAgICAgaW5rc2NhcGU6d2luZG93LWhlaWdodD0iMTAwMSIKICAgICBpbmtzY2FwZTp3aW5kb3cteD0iLTkiCiAgICAgaW5rc2NhcGU6d2luZG93LXk9Ii05IgogICAgIGlua3NjYXBlOndpbmRvdy1tYXhpbWl6ZWQ9IjAiCiAgICAgZml0LW1hcmdpbi10b3A9IjEiCiAgICAgZml0LW1hcmdpbi1sZWZ0PSIxIgogICAgIGZpdC1tYXJnaW4tcmlnaHQ9IjEiCiAgICAgZml0LW1hcmdpbi1ib3R0b209IjEiCiAgICAgaW5rc2NhcGU6c25hcC1ncmlkcz0idHJ1ZSIKICAgICBpbmtzY2FwZTpzbmFwLXRleHQtYmFzZWxpbmU9InRydWUiCiAgICAgaW5rc2NhcGU6c25hcC1vYmplY3QtbWlkcG9pbnRzPSJ0cnVlIgogICAgIHVuaXRzPSJweCIKICAgICBib3JkZXJsYXllcj0iZmFsc2UiPgogICAgPGlua3NjYXBlOmdyaWQKICAgICAgIHR5cGU9Inh5Z3JpZCIKICAgICAgIGlkPSJncmlkOTYyNiIKICAgICAgIG9yaWdpbng9Ii05MC4zNjcxOTEiCiAgICAgICBvcmlnaW55PSItNjE4Ljc1Nzg0IiAvPgogIDwvc29kaXBvZGk6bmFtZWR2aWV3PgogIDxtZXRhZGF0YQogICAgIGlkPSJtZXRhZGF0YTg2NTAiPgogICAgPHJkZjpSREY+CiAgICAgIDxjYzpXb3JrCiAgICAgICAgIHJkZjphYm91dD0iIj4KICAgICAgICA8ZGM6Zm9ybWF0PmltYWdlL3N2Zyt4bWw8L2RjOmZvcm1hdD4KICAgICAgICA8ZGM6dHlwZQogICAgICAgICAgIHJkZjpyZXNvdXJjZT0iaHR0cDovL3B1cmwub3JnL2RjL2RjbWl0eXBlL1N0aWxsSW1hZ2UiIC8+CiAgICAgICAgPGRjOnRpdGxlPjwvZGM6dGl0bGU+CiAgICAgIDwvY2M6V29yaz4KICAgIDwvcmRmOlJERj4KICA8L21ldGFkYXRhPgogIDxnCiAgICAgaW5rc2NhcGU6bGFiZWw9IkxheWVyIDEiCiAgICAgaW5rc2NhcGU6Z3JvdXBtb2RlPSJsYXllciIKICAgICBpZD0ibGF5ZXIxIgogICAgIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0xMDIuOTAxNTgsMjEwLjY2Nzg2KSI+CiAgICA8dGV4dAogICAgICAgeG1sOnNwYWNlPSJwcmVzZXJ2ZSIKICAgICAgIHN0eWxlPSJmb250LXN0eWxlOm5vcm1hbDtmb250LXZhcmlhbnQ6bm9ybWFsO2ZvbnQtd2VpZ2h0Om5vcm1hbDtmb250LXN0cmV0Y2g6bm9ybWFsO2ZvbnQtc2l6ZToxNnB4O2xpbmUtaGVpZ2h0OjEuMjU7Zm9udC1mYW1pbHk6c2Fucy1zZXJpZjstaW5rc2NhcGUtZm9udC1zcGVjaWZpY2F0aW9uOidzYW5zLXNlcmlmLCBOb3JtYWwnO2ZvbnQtdmFyaWFudC1saWdhdHVyZXM6bm9ybWFsO2ZvbnQtdmFyaWFudC1jYXBzOm5vcm1hbDtmb250LXZhcmlhbnQtbnVtZXJpYzpub3JtYWw7Zm9udC1mZWF0dXJlLXNldHRpbmdzOm5vcm1hbDt0ZXh0LWFsaWduOmNlbnRlcjtsZXR0ZXItc3BhY2luZzowcHg7d29yZC1zcGFjaW5nOjBweDt3cml0aW5nLW1vZGU6bHItdGI7dGV4dC1hbmNob3I6bWlkZGxlO2ZpbGw6IzAwMDAwMDtmaWxsLW9wYWNpdHk6MTtzdHJva2U6bm9uZTtzdHJva2Utd2lkdGg6MS4xNjQyNzM5OCIKICAgICAgIHg9IjEwNy41MzQzOSIKICAgICAgIHk9Ii0xOTguMDM1MDUiCiAgICAgICBpZD0idGV4dDUwNzAtMi0yLTktOS00MS05Ij48dHNwYW4KICAgICAgICAgc29kaXBvZGk6cm9sZT0ibGluZSIKICAgICAgICAgaWQ9InRzcGFuNTA2OC0wLTMtMzYtOS0xLTUiCiAgICAgICAgIHg9IjEwNy41MzQzOSIKICAgICAgICAgeT0iLTE5OC4wMzUwNSIKICAgICAgICAgc3R5bGU9ImZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtdmFyaWFudDpub3JtYWw7Zm9udC13ZWlnaHQ6bm9ybWFsO2ZvbnQtc3RyZXRjaDpub3JtYWw7Zm9udC1zaXplOjE2cHg7Zm9udC1mYW1pbHk6c2Fucy1zZXJpZjstaW5rc2NhcGUtZm9udC1zcGVjaWZpY2F0aW9uOidzYW5zLXNlcmlmLCBOb3JtYWwnO2ZvbnQtdmFyaWFudC1saWdhdHVyZXM6bm9ybWFsO2ZvbnQtdmFyaWFudC1jYXBzOm5vcm1hbDtmb250LXZhcmlhbnQtbnVtZXJpYzpub3JtYWw7Zm9udC1mZWF0dXJlLXNldHRpbmdzOm5vcm1hbDt0ZXh0LWFsaWduOmNlbnRlcjt3cml0aW5nLW1vZGU6bHItdGI7dGV4dC1hbmNob3I6bWlkZGxlO2ZpbGw6IzAwMDAwMDtmaWxsLW9wYWNpdHk6MTtzdHJva2Utd2lkdGg6MS4xNjQyNzM5OCI+NTwvdHNwYW4+PC90ZXh0PgogIDwvZz4KPC9zdmc+Cg== primitive topology key vertex number>> | Vertex | Sequence position of a vertex within the provided vertex data. |+-- | | Number | |+-- +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------+----------------------------------------------------------------------------------------------------------------------------++-- | <<data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhLS0gQ3JlYXRlZCB3aXRoIElua3NjYXBlIChodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy8pIC0tPgoKPHN2ZwogICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgIHhtbG5zOmNjPSJodHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9ucyMiCiAgIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyIKICAgeG1sbnM6c3ZnPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogICB4bWxuczpzb2RpcG9kaT0iaHR0cDovL3NvZGlwb2RpLnNvdXJjZWZvcmdlLm5ldC9EVEQvc29kaXBvZGktMC5kdGQiCiAgIHhtbG5zOmlua3NjYXBlPSJodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy9uYW1lc3BhY2VzL2lua3NjYXBlIgogICB3aWR0aD0iMTUuNzE0ODQ5IgogICBoZWlnaHQ9IjEwLjkzODc2MiIKICAgdmlld0JveD0iMCAwIDE1LjcxNDg0OSAxMC45Mzg3NjIiCiAgIHZlcnNpb249IjEuMSIKICAgaWQ9InN2Zzg2NTMiCiAgIGlua3NjYXBlOnZlcnNpb249IjAuOTIuNCAoNWRhNjg5YzMxMywgMjAxOS0wMS0xNCkiCiAgIHNvZGlwb2RpOmRvY25hbWU9InByaW1pdGl2ZV90b3BvbG9neV9rZXlfcHJvdm9raW5nX3ZlcnRleC5zdmciPgogIDxkZWZzCiAgICAgaWQ9ImRlZnM4NjQ3IiAvPgogIDxzb2RpcG9kaTpuYW1lZHZpZXcKICAgICBpZD0iYmFzZSIKICAgICBwYWdlY29sb3I9IiNmZmZmZmYiCiAgICAgYm9yZGVyY29sb3I9IiM2NjY2NjYiCiAgICAgYm9yZGVyb3BhY2l0eT0iMS4wIgogICAgIGlua3NjYXBlOnBhZ2VvcGFjaXR5PSIwLjAiCiAgICAgaW5rc2NhcGU6cGFnZXNoYWRvdz0iMiIKICAgICBpbmtzY2FwZTp6b29tPSIyLjgyODQyNzEiCiAgICAgaW5rc2NhcGU6Y3g9Ii0xMzguNzA4NDQiCiAgICAgaW5rc2NhcGU6Y3k9Ii01NS44NjU2MjgiCiAgICAgaW5rc2NhcGU6ZG9jdW1lbnQtdW5pdHM9InB4IgogICAgIGlua3NjYXBlOmN1cnJlbnQtbGF5ZXI9ImxheWVyMSIKICAgICBzaG93Z3JpZD0idHJ1ZSIKICAgICBpbmtzY2FwZTp3aW5kb3ctd2lkdGg9IjI1OTUiCiAgICAgaW5rc2NhcGU6d2luZG93LWhlaWdodD0iMTQ5NSIKICAgICBpbmtzY2FwZTp3aW5kb3cteD0iNDgxIgogICAgIGlua3NjYXBlOndpbmRvdy15PSIxOTEiCiAgICAgaW5rc2NhcGU6d2luZG93LW1heGltaXplZD0iMCIKICAgICBmaXQtbWFyZ2luLXRvcD0iMSIKICAgICBmaXQtbWFyZ2luLWxlZnQ9IjEiCiAgICAgZml0LW1hcmdpbi1yaWdodD0iMSIKICAgICBmaXQtbWFyZ2luLWJvdHRvbT0iMSIKICAgICBpbmtzY2FwZTpzbmFwLWdyaWRzPSJ0cnVlIgogICAgIGlua3NjYXBlOnNuYXAtdGV4dC1iYXNlbGluZT0idHJ1ZSIKICAgICBpbmtzY2FwZTpzbmFwLW9iamVjdC1taWRwb2ludHM9InRydWUiCiAgICAgdW5pdHM9InB4IgogICAgIGJvcmRlcmxheWVyPSJmYWxzZSI+CiAgICA8aW5rc2NhcGU6Z3JpZAogICAgICAgdHlwZT0ieHlncmlkIgogICAgICAgaWQ9ImdyaWQ5NjI2IgogICAgICAgb3JpZ2lueD0iLTkwLjUwOTEwNyIKICAgICAgIG9yaWdpbnk9Ii01OTUuNTA5MTciIC8+CiAgPC9zb2RpcG9kaTpuYW1lZHZpZXc+CiAgPG1ldGFkYXRhCiAgICAgaWQ9Im1ldGFkYXRhODY1MCI+CiAgICA8cmRmOlJERj4KICAgICAgPGNjOldvcmsKICAgICAgICAgcmRmOmFib3V0PSIiPgogICAgICAgIDxkYzpmb3JtYXQ+aW1hZ2Uvc3ZnK3htbDwvZGM6Zm9ybWF0PgogICAgICAgIDxkYzp0eXBlCiAgICAgICAgICAgcmRmOnJlc291cmNlPSJodHRwOi8vcHVybC5vcmcvZGMvZGNtaXR5cGUvU3RpbGxJbWFnZSIgLz4KICAgICAgICA8ZGM6dGl0bGUgLz4KICAgICAgPC9jYzpXb3JrPgogICAgPC9yZGY6UkRGPgogIDwvbWV0YWRhdGE+CiAgPGcKICAgICBpbmtzY2FwZTpsYWJlbD0iTGF5ZXIgMSIKICAgICBpbmtzY2FwZTpncm91cG1vZGU9ImxheWVyIgogICAgIGlkPSJsYXllcjEiCiAgICAgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTEwMy4wNDM1LDE4NC40ODI5MikiPgogICAgPGNpcmNsZQogICAgICAgc3R5bGU9ImZpbGw6I2ZmMDAwMDtmaWxsLW9wYWNpdHk6MTtzdHJva2U6bm9uZTtzdHJva2Utd2lkdGg6MTtzdHJva2UtbWl0ZXJsaW1pdDo0O3N0cm9rZS1kYXNoYXJyYXk6bm9uZTtzdHJva2Utb3BhY2l0eToxIgogICAgICAgaWQ9InBhdGg0NTE3LTAtOC01LTkxLTAtMy04IgogICAgICAgY3g9IjEwNy41MzQzOSIKICAgICAgIGN5PSItMTc4LjAzNTA1IgogICAgICAgcj0iMy40OTA4OTMxIiAvPgogICAgPHBhdGgKICAgICAgIHN0eWxlPSJmaWxsOm5vbmU7c3Ryb2tlOiNmYTAwMDA7c3Ryb2tlLXdpZHRoOjEuMDAxNTc0NzU7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46bWl0ZXI7c3Ryb2tlLW1pdGVybGltaXQ6NDtzdHJva2UtZGFzaGFycmF5Om5vbmU7c3Ryb2tlLW9wYWNpdHk6MSIKICAgICAgIGQ9Im0gMTA3LjUzNDM5LC0xNzguMDM1IDEwLC01IgogICAgICAgaWQ9InBhdGg0NjcyIgogICAgICAgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIgLz4KICA8L2c+Cjwvc3ZnPgo= primitive topology key provoking vertex>> | Provoking | Provoking vertex within the main primitive. The tail is angled towards the relevant primitive. Used in |+-- | | Vertex | <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#vertexpostproc-flatshading flat shading>. |+-- +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------+----------------------------------------------------------------------------------------------------------------------------++-- | <<data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhLS0gQ3JlYXRlZCB3aXRoIElua3NjYXBlIChodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy8pIC0tPgoKPHN2ZwogICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgIHhtbG5zOmNjPSJodHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9ucyMiCiAgIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyIKICAgeG1sbnM6c3ZnPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogICB4bWxuczpzb2RpcG9kaT0iaHR0cDovL3NvZGlwb2RpLnNvdXJjZWZvcmdlLm5ldC9EVEQvc29kaXBvZGktMC5kdGQiCiAgIHhtbG5zOmlua3NjYXBlPSJodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy9uYW1lc3BhY2VzL2lua3NjYXBlIgogICB3aWR0aD0iODIiCiAgIGhlaWdodD0iMyIKICAgdmlld0JveD0iMCAwIDgyLjAwMDAwMSAzLjAwMDAwMDEiCiAgIHZlcnNpb249IjEuMSIKICAgaWQ9InN2Zzg2NTMiCiAgIGlua3NjYXBlOnZlcnNpb249IjAuOTIuNCAoNWRhNjg5YzMxMywgMjAxOS0wMS0xNCkiCiAgIHNvZGlwb2RpOmRvY25hbWU9InByaW1pdGl2ZV90b3BvbG9neV9rZXlfZWRnZS5zdmciPgogIDxkZWZzCiAgICAgaWQ9ImRlZnM4NjQ3IiAvPgogIDxzb2RpcG9kaTpuYW1lZHZpZXcKICAgICBpZD0iYmFzZSIKICAgICBwYWdlY29sb3I9IiNmZmZmZmYiCiAgICAgYm9yZGVyY29sb3I9IiM2NjY2NjYiCiAgICAgYm9yZGVyb3BhY2l0eT0iMS4wIgogICAgIGlua3NjYXBlOnBhZ2VvcGFjaXR5PSIwLjAiCiAgICAgaW5rc2NhcGU6cGFnZXNoYWRvdz0iMiIKICAgICBpbmtzY2FwZTp6b29tPSIyLjgyODQyNzEiCiAgICAgaW5rc2NhcGU6Y3g9Ii0xNTUuNzc5NSIKICAgICBpbmtzY2FwZTpjeT0iLTQuNTU4MjQ3MyIKICAgICBpbmtzY2FwZTpkb2N1bWVudC11bml0cz0icHgiCiAgICAgaW5rc2NhcGU6Y3VycmVudC1sYXllcj0ibGF5ZXIxIgogICAgIHNob3dncmlkPSJ0cnVlIgogICAgIGlua3NjYXBlOndpbmRvdy13aWR0aD0iMjI2MiIKICAgICBpbmtzY2FwZTp3aW5kb3ctaGVpZ2h0PSIxNTA3IgogICAgIGlua3NjYXBlOndpbmRvdy14PSI0ODIiCiAgICAgaW5rc2NhcGU6d2luZG93LXk9IjM4NSIKICAgICBpbmtzY2FwZTp3aW5kb3ctbWF4aW1pemVkPSIwIgogICAgIGZpdC1tYXJnaW4tdG9wPSIxIgogICAgIGZpdC1tYXJnaW4tbGVmdD0iMSIKICAgICBmaXQtbWFyZ2luLXJpZ2h0PSIxIgogICAgIGZpdC1tYXJnaW4tYm90dG9tPSIxIgogICAgIGlua3NjYXBlOnNuYXAtZ3JpZHM9InRydWUiCiAgICAgaW5rc2NhcGU6c25hcC10ZXh0LWJhc2VsaW5lPSJ0cnVlIgogICAgIGlua3NjYXBlOnNuYXAtb2JqZWN0LW1pZHBvaW50cz0idHJ1ZSIKICAgICB1bml0cz0icHgiCiAgICAgYm9yZGVybGF5ZXI9ImZhbHNlIj4KICAgIDxpbmtzY2FwZTpncmlkCiAgICAgICB0eXBlPSJ4eWdyaWQiCiAgICAgICBpZD0iZ3JpZDk2MjYiCiAgICAgICBvcmlnaW54PSItMzA5IgogICAgICAgb3JpZ2lueT0iLTY0OC41MDAwMyIgLz4KICA8L3NvZGlwb2RpOm5hbWVkdmlldz4KICA8bWV0YWRhdGEKICAgICBpZD0ibWV0YWRhdGE4NjUwIj4KICAgIDxyZGY6UkRGPgogICAgICA8Y2M6V29yawogICAgICAgICByZGY6YWJvdXQ9IiI+CiAgICAgICAgPGRjOmZvcm1hdD5pbWFnZS9zdmcreG1sPC9kYzpmb3JtYXQ+CiAgICAgICAgPGRjOnR5cGUKICAgICAgICAgICByZGY6cmVzb3VyY2U9Imh0dHA6Ly9wdXJsLm9yZy9kYy9kY21pdHlwZS9TdGlsbEltYWdlIiAvPgogICAgICAgIDxkYzp0aXRsZSAvPgogICAgICA8L2NjOldvcms+CiAgICA8L3JkZjpSREY+CiAgPC9tZXRhZGF0YT4KICA8ZwogICAgIGlua3NjYXBlOmxhYmVsPSJMYXllciAxIgogICAgIGlua3NjYXBlOmdyb3VwbW9kZT0ibGF5ZXIiCiAgICAgaWQ9ImxheWVyMSIKICAgICB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMzIxLjUzNDM5LDIyOS41MzUwMykiPgogICAgPHBhdGgKICAgICAgIHN0eWxlPSJmaWxsOm5vbmU7c3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjE7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46bWl0ZXI7c3Ryb2tlLW1pdGVybGltaXQ6NDtzdHJva2UtZGFzaGFycmF5Om5vbmU7c3Ryb2tlLWRhc2hvZmZzZXQ6MDtzdHJva2Utb3BhY2l0eToxIgogICAgICAgZD0ibSAzMjIuNTM0MzksLTIyOC4wMzUwMyBoIDgwIgogICAgICAgaWQ9InBhdGgyMDMzLTEiCiAgICAgICBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIiAvPgogIDwvZz4KPC9zdmc+Cg== primitive topology key edge>> | Primitive | An edge connecting the points of a main primitive. |+-- | | Edge | |+-- +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------+----------------------------------------------------------------------------------------------------------------------------++-- | <<data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhLS0gQ3JlYXRlZCB3aXRoIElua3NjYXBlIChodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy8pIC0tPgoKPHN2ZwogICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgIHhtbG5zOmNjPSJodHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9ucyMiCiAgIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyIKICAgeG1sbnM6c3ZnPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogICB4bWxuczpzb2RpcG9kaT0iaHR0cDovL3NvZGlwb2RpLnNvdXJjZWZvcmdlLm5ldC9EVEQvc29kaXBvZGktMC5kdGQiCiAgIHhtbG5zOmlua3NjYXBlPSJodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy9uYW1lc3BhY2VzL2lua3NjYXBlIgogICB3aWR0aD0iODIiCiAgIGhlaWdodD0iMyIKICAgdmlld0JveD0iMCAwIDgyLjAwMDAwMSAzLjAwMDAwMDEiCiAgIHZlcnNpb249IjEuMSIKICAgaWQ9InN2Zzg2NTMiCiAgIGlua3NjYXBlOnZlcnNpb249IjAuOTIuNCAoNWRhNjg5YzMxMywgMjAxOS0wMS0xNCkiCiAgIHNvZGlwb2RpOmRvY25hbWU9InByaW1pdGl2ZV90b3BvbG9neV9rZXlfYWRqYWNlbmN5X2VkZ2Uuc3ZnIj4KICA8ZGVmcwogICAgIGlkPSJkZWZzODY0NyIgLz4KICA8c29kaXBvZGk6bmFtZWR2aWV3CiAgICAgaWQ9ImJhc2UiCiAgICAgcGFnZWNvbG9yPSIjZmZmZmZmIgogICAgIGJvcmRlcmNvbG9yPSIjNjY2NjY2IgogICAgIGJvcmRlcm9wYWNpdHk9IjEuMCIKICAgICBpbmtzY2FwZTpwYWdlb3BhY2l0eT0iMC4wIgogICAgIGlua3NjYXBlOnBhZ2VzaGFkb3c9IjIiCiAgICAgaW5rc2NhcGU6em9vbT0iMi44Mjg0MjcxIgogICAgIGlua3NjYXBlOmN4PSItMTYxLjc4OTkiCiAgICAgaW5rc2NhcGU6Y3k9Ii03MC43NzUwMjMiCiAgICAgaW5rc2NhcGU6ZG9jdW1lbnQtdW5pdHM9InB4IgogICAgIGlua3NjYXBlOmN1cnJlbnQtbGF5ZXI9ImxheWVyMSIKICAgICBzaG93Z3JpZD0idHJ1ZSIKICAgICBpbmtzY2FwZTp3aW5kb3ctd2lkdGg9IjIyMzMiCiAgICAgaW5rc2NhcGU6d2luZG93LWhlaWdodD0iMTM0MyIKICAgICBpbmtzY2FwZTp3aW5kb3cteD0iMzkyIgogICAgIGlua3NjYXBlOndpbmRvdy15PSIyOTYiCiAgICAgaW5rc2NhcGU6d2luZG93LW1heGltaXplZD0iMCIKICAgICBmaXQtbWFyZ2luLXRvcD0iMSIKICAgICBmaXQtbWFyZ2luLWxlZnQ9IjEiCiAgICAgZml0LW1hcmdpbi1yaWdodD0iMSIKICAgICBmaXQtbWFyZ2luLWJvdHRvbT0iMSIKICAgICBpbmtzY2FwZTpzbmFwLWdyaWRzPSJ0cnVlIgogICAgIGlua3NjYXBlOnNuYXAtdGV4dC1iYXNlbGluZT0idHJ1ZSIKICAgICBpbmtzY2FwZTpzbmFwLW9iamVjdC1taWRwb2ludHM9InRydWUiCiAgICAgdW5pdHM9InB4IgogICAgIGJvcmRlcmxheWVyPSJmYWxzZSI+CiAgICA8aW5rc2NhcGU6Z3JpZAogICAgICAgdHlwZT0ieHlncmlkIgogICAgICAgaWQ9ImdyaWQ5NjI2IgogICAgICAgb3JpZ2lueD0iLTMwOSIKICAgICAgIG9yaWdpbnk9Ii02MjMuNTAwMDMiIC8+CiAgPC9zb2RpcG9kaTpuYW1lZHZpZXc+CiAgPG1ldGFkYXRhCiAgICAgaWQ9Im1ldGFkYXRhODY1MCI+CiAgICA8cmRmOlJERj4KICAgICAgPGNjOldvcmsKICAgICAgICAgcmRmOmFib3V0PSIiPgogICAgICAgIDxkYzpmb3JtYXQ+aW1hZ2Uvc3ZnK3htbDwvZGM6Zm9ybWF0PgogICAgICAgIDxkYzp0eXBlCiAgICAgICAgICAgcmRmOnJlc291cmNlPSJodHRwOi8vcHVybC5vcmcvZGMvZGNtaXR5cGUvU3RpbGxJbWFnZSIgLz4KICAgICAgICA8ZGM6dGl0bGUgLz4KICAgICAgPC9jYzpXb3JrPgogICAgPC9yZGY6UkRGPgogIDwvbWV0YWRhdGE+CiAgPGcKICAgICBpbmtzY2FwZTpsYWJlbD0iTGF5ZXIgMSIKICAgICBpbmtzY2FwZTpncm91cG1vZGU9ImxheWVyIgogICAgIGlkPSJsYXllcjEiCiAgICAgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTMyMS41MzQzOSwyMDQuNTM1MDMpIj4KICAgIDxwYXRoCiAgICAgICBzdHlsZT0iZmlsbDpub25lO3N0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoxO3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO3N0cm9rZS1taXRlcmxpbWl0OjQ7c3Ryb2tlLWRhc2hhcnJheTo0LCA0O3N0cm9rZS1kYXNob2Zmc2V0OjA7c3Ryb2tlLW9wYWNpdHk6MSIKICAgICAgIGQ9Im0gMzIyLjUzNDM5LC0yMDMuMDM1MDMgaCA4MCIKICAgICAgIGlkPSJwYXRoMjAzMyIKICAgICAgIGlua3NjYXBlOmNvbm5lY3Rvci1jdXJ2YXR1cmU9IjAiIC8+CiAgPC9nPgo8L3N2Zz4K primitive topology key adjacency edge>> | Adjacency | Points connected by these lines do not contribute to a main primitive, and are only accessible in a |+-- | | Edge | <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#geometry geometry shader>. |+-- +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------+----------------------------------------------------------------------------------------------------------------------------++-- | <<data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhLS0gQ3JlYXRlZCB3aXRoIElua3NjYXBlIChodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy8pIC0tPgoKPHN2ZwogICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgIHhtbG5zOmNjPSJodHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9ucyMiCiAgIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyIKICAgeG1sbnM6c3ZnPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogICB4bWxuczpzb2RpcG9kaT0iaHR0cDovL3NvZGlwb2RpLnNvdXJjZWZvcmdlLm5ldC9EVEQvc29kaXBvZGktMC5kdGQiCiAgIHhtbG5zOmlua3NjYXBlPSJodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy9uYW1lc3BhY2VzL2lua3NjYXBlIgogICB3aWR0aD0iNTUuMDYzODE2IgogICBoZWlnaHQ9IjQ2LjE3ODgyOSIKICAgdmlld0JveD0iMCAwIDU1LjA2MzgxNyA0Ni4xNzg4MyIKICAgdmVyc2lvbj0iMS4xIgogICBpZD0ic3ZnODY1MyIKICAgaW5rc2NhcGU6dmVyc2lvbj0iMC45Mi40ICg1ZGE2ODljMzEzLCAyMDE5LTAxLTE0KSIKICAgc29kaXBvZGk6ZG9jbmFtZT0icHJpbWl0aXZlX3RvcG9sb2d5X2tleV93aW5kaW5nX29yZGVyLnN2ZyI+CiAgPGRlZnMKICAgICBpZD0iZGVmczg2NDciPgogICAgPG1hcmtlcgogICAgICAgaW5rc2NhcGU6aXNzdG9jaz0idHJ1ZSIKICAgICAgIHN0eWxlPSJvdmVyZmxvdzp2aXNpYmxlIgogICAgICAgaWQ9Im1hcmtlcjMwMzktMSIKICAgICAgIHJlZlg9IjAiCiAgICAgICByZWZZPSIwIgogICAgICAgb3JpZW50PSJhdXRvIgogICAgICAgaW5rc2NhcGU6c3RvY2tpZD0iQXJyb3cxTWVuZCI+CiAgICAgIDxwYXRoCiAgICAgICAgIHRyYW5zZm9ybT0ibWF0cml4KC0wLjQsMCwwLC0wLjQsLTQsMCkiCiAgICAgICAgIHN0eWxlPSJmaWxsOiMwMDAwMDA7ZmlsbC1vcGFjaXR5OjE7ZmlsbC1ydWxlOmV2ZW5vZGQ7c3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjEuMDAwMDAwMDNwdDtzdHJva2Utb3BhY2l0eToxIgogICAgICAgICBkPSJNIDAsMCA1LC01IC0xMi41LDAgNSw1IFoiCiAgICAgICAgIGlkPSJwYXRoMzAzNy0wIgogICAgICAgICBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIiAvPgogICAgPC9tYXJrZXI+CiAgICA8bWFya2VyCiAgICAgICBpbmtzY2FwZTppc3N0b2NrPSJ0cnVlIgogICAgICAgc3R5bGU9Im92ZXJmbG93OnZpc2libGUiCiAgICAgICBpZD0ibWFya2VyMjg5MS02IgogICAgICAgcmVmWD0iMCIKICAgICAgIHJlZlk9IjAiCiAgICAgICBvcmllbnQ9ImF1dG8iCiAgICAgICBpbmtzY2FwZTpzdG9ja2lkPSJBcnJvdzFNZW5kIj4KICAgICAgPHBhdGgKICAgICAgICAgdHJhbnNmb3JtPSJtYXRyaXgoLTAuNCwwLDAsLTAuNCwtNCwwKSIKICAgICAgICAgc3R5bGU9ImZpbGw6IzAwMDAwMDtmaWxsLW9wYWNpdHk6MTtmaWxsLXJ1bGU6ZXZlbm9kZDtzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MS4wMDAwMDAwM3B0O3N0cm9rZS1vcGFjaXR5OjEiCiAgICAgICAgIGQ9Ik0gMCwwIDUsLTUgLTEyLjUsMCA1LDUgWiIKICAgICAgICAgaWQ9InBhdGgyODg5LTYiCiAgICAgICAgIGlua3NjYXBlOmNvbm5lY3Rvci1jdXJ2YXR1cmU9IjAiIC8+CiAgICA8L21hcmtlcj4KICAgIDxtYXJrZXIKICAgICAgIGlua3NjYXBlOnN0b2NraWQ9IkFycm93MU1lbmQiCiAgICAgICBvcmllbnQ9ImF1dG8iCiAgICAgICByZWZZPSIwIgogICAgICAgcmVmWD0iMCIKICAgICAgIGlkPSJBcnJvdzFNZW5kLTgwIgogICAgICAgc3R5bGU9Im92ZXJmbG93OnZpc2libGUiCiAgICAgICBpbmtzY2FwZTppc3N0b2NrPSJ0cnVlIgogICAgICAgaW5rc2NhcGU6Y29sbGVjdD0iYWx3YXlzIj4KICAgICAgPHBhdGgKICAgICAgICAgaWQ9InBhdGg4OTAtMCIKICAgICAgICAgZD0iTSAwLDAgNSwtNSAtMTIuNSwwIDUsNSBaIgogICAgICAgICBzdHlsZT0iZmlsbDojMDAwMDAwO2ZpbGwtb3BhY2l0eToxO2ZpbGwtcnVsZTpldmVub2RkO3N0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoxLjAwMDAwMDAzcHQ7c3Ryb2tlLW9wYWNpdHk6MSIKICAgICAgICAgdHJhbnNmb3JtPSJtYXRyaXgoLTAuNCwwLDAsLTAuNCwtNCwwKSIKICAgICAgICAgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIgLz4KICAgIDwvbWFya2VyPgogIDwvZGVmcz4KICA8c29kaXBvZGk6bmFtZWR2aWV3CiAgICAgaWQ9ImJhc2UiCiAgICAgcGFnZWNvbG9yPSIjZmZmZmZmIgogICAgIGJvcmRlcmNvbG9yPSIjNjY2NjY2IgogICAgIGJvcmRlcm9wYWNpdHk9IjEuMCIKICAgICBpbmtzY2FwZTpwYWdlb3BhY2l0eT0iMC4wIgogICAgIGlua3NjYXBlOnBhZ2VzaGFkb3c9IjIiCiAgICAgaW5rc2NhcGU6em9vbT0iMi44Mjg0MjcxIgogICAgIGlua3NjYXBlOmN4PSItMTQwLjU1MDU2IgogICAgIGlua3NjYXBlOmN5PSItOC40MzI2NjQ2IgogICAgIGlua3NjYXBlOmRvY3VtZW50LXVuaXRzPSJweCIKICAgICBpbmtzY2FwZTpjdXJyZW50LWxheWVyPSJsYXllcjEiCiAgICAgc2hvd2dyaWQ9InRydWUiCiAgICAgaW5rc2NhcGU6d2luZG93LXdpZHRoPSIxOTIwIgogICAgIGlua3NjYXBlOndpbmRvdy1oZWlnaHQ9IjEwMDEiCiAgICAgaW5rc2NhcGU6d2luZG93LXg9Ii05IgogICAgIGlua3NjYXBlOndpbmRvdy15PSItOSIKICAgICBpbmtzY2FwZTp3aW5kb3ctbWF4aW1pemVkPSIwIgogICAgIGZpdC1tYXJnaW4tdG9wPSIxIgogICAgIGZpdC1tYXJnaW4tbGVmdD0iMSIKICAgICBmaXQtbWFyZ2luLXJpZ2h0PSIxIgogICAgIGZpdC1tYXJnaW4tYm90dG9tPSIxIgogICAgIGlua3NjYXBlOnNuYXAtZ3JpZHM9InRydWUiCiAgICAgaW5rc2NhcGU6c25hcC10ZXh0LWJhc2VsaW5lPSJ0cnVlIgogICAgIGlua3NjYXBlOnNuYXAtb2JqZWN0LW1pZHBvaW50cz0idHJ1ZSIKICAgICB1bml0cz0icHgiCiAgICAgYm9yZGVybGF5ZXI9ImZhbHNlIj4KICAgIDxpbmtzY2FwZTpncmlkCiAgICAgICB0eXBlPSJ4eWdyaWQiCiAgICAgICBpZD0iZ3JpZDk2MjYiCiAgICAgICBvcmlnaW54PSItMzA3LjAyOTMzIgogICAgICAgb3JpZ2lueT0iLTU2Ni40NjA5NyIgLz4KICA8L3NvZGlwb2RpOm5hbWVkdmlldz4KICA8bWV0YWRhdGEKICAgICBpZD0ibWV0YWRhdGE4NjUwIj4KICAgIDxyZGY6UkRGPgogICAgICA8Y2M6V29yawogICAgICAgICByZGY6YWJvdXQ9IiI+CiAgICAgICAgPGRjOmZvcm1hdD5pbWFnZS9zdmcreG1sPC9kYzpmb3JtYXQ+CiAgICAgICAgPGRjOnR5cGUKICAgICAgICAgICByZGY6cmVzb3VyY2U9Imh0dHA6Ly9wdXJsLm9yZy9kYy9kY21pdHlwZS9TdGlsbEltYWdlIiAvPgogICAgICAgIDxkYzp0aXRsZT48L2RjOnRpdGxlPgogICAgICA8L2NjOldvcms+CiAgICA8L3JkZjpSREY+CiAgPC9tZXRhZGF0YT4KICA8ZwogICAgIGlua3NjYXBlOmxhYmVsPSJMYXllciAxIgogICAgIGlua3NjYXBlOmdyb3VwbW9kZT0ibGF5ZXIiCiAgICAgaWQ9ImxheWVyMSIKICAgICB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMzE5LjU2MzcxLDE5MC42NzQ4KSI+CiAgICA8ZwogICAgICAgaWQ9Imc0Mzg5LTg5IgogICAgICAgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMjU1LC00NC45OTk5OTUpIj4KICAgICAgPHBhdGgKICAgICAgICAgc29kaXBvZGk6bm9kZXR5cGVzPSJjYyIKICAgICAgICAgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIKICAgICAgICAgaWQ9InBhdGgxODY4LTc5IgogICAgICAgICBkPSJtIDY3LjUzNDM5MywtMTEzLjAzNTEgMjAsLTMwIgogICAgICAgICBzdHlsZT0iZmlsbDpub25lO3N0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoxcHg7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46bWl0ZXI7c3Ryb2tlLW9wYWNpdHk6MTttYXJrZXItZW5kOnVybCgjbWFya2VyMzAzOS0xKSIgLz4KICAgICAgPHBhdGgKICAgICAgICAgc29kaXBvZGk6bm9kZXR5cGVzPSJjYyIKICAgICAgICAgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIKICAgICAgICAgaWQ9InBhdGgxODcwLTMiCiAgICAgICAgIGQ9Im0gOTcuNTM0MzkzLC0xNDMuMDM1MSAxOS45OTk5OTcsMzAiCiAgICAgICAgIHN0eWxlPSJmaWxsOm5vbmU7c3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjFweDtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2Utb3BhY2l0eToxO21hcmtlci1lbmQ6dXJsKCNtYXJrZXIyODkxLTYpIiAvPgogICAgICA8cGF0aAogICAgICAgICBzb2RpcG9kaTpub2RldHlwZXM9ImNjIgogICAgICAgICBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIgogICAgICAgICBpZD0icGF0aDE4NzItOSIKICAgICAgICAgZD0iTSAxMTcuNTM0MzksLTEwMy4wMzUxIEggNjcuNTM0MzkzIgogICAgICAgICBzdHlsZT0iZmlsbDpub25lO3N0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoxcHg7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46bWl0ZXI7c3Ryb2tlLW9wYWNpdHk6MTttYXJrZXItZW5kOnVybCgjQXJyb3cxTWVuZC04MCkiIC8+CiAgICA8L2c+CiAgPC9nPgo8L3N2Zz4K primitive topology key winding order>> | Winding | The relative order in which vertices are defined within a primitive, used in the |+-- | | Order | <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-polygons-basic facing determination>. |+-- | | | This ordering has no specific start or end point. |+-- +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------+----------------------------------------------------------------------------------------------------------------------------+ -- -- The diagrams are supported with mathematical definitions where the -- vertices (v) and primitives (p) are numbered starting from 0; v0 is the@@ -66,24 +66,24 @@ deriving newtype (Eq, Ord, Storable, Zero) -- | 'PRIMITIVE_TOPOLOGY_POINT_LIST' specifies a series of--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#drawing-point-lists separate point primitives>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#drawing-point-lists separate point primitives>. pattern PRIMITIVE_TOPOLOGY_POINT_LIST = PrimitiveTopology 0 -- | 'PRIMITIVE_TOPOLOGY_LINE_LIST' specifies a series of--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#drawing-line-lists separate line primitives>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#drawing-line-lists separate line primitives>. pattern PRIMITIVE_TOPOLOGY_LINE_LIST = PrimitiveTopology 1 -- | 'PRIMITIVE_TOPOLOGY_LINE_STRIP' specifies a series of--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#drawing-line-strips connected line primitives>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#drawing-line-strips connected line primitives> -- with consecutive lines sharing a vertex. pattern PRIMITIVE_TOPOLOGY_LINE_STRIP = PrimitiveTopology 2 -- | 'PRIMITIVE_TOPOLOGY_TRIANGLE_LIST' specifies a series of--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#drawing-triangle-lists separate triangle primitives>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#drawing-triangle-lists separate triangle primitives>. pattern PRIMITIVE_TOPOLOGY_TRIANGLE_LIST = PrimitiveTopology 3 -- | 'PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP' specifies a series of--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#drawing-triangle-strips connected triangle primitives>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#drawing-triangle-strips connected triangle primitives> -- with consecutive triangles sharing an edge. pattern PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP = PrimitiveTopology 4 -- | 'PRIMITIVE_TOPOLOGY_TRIANGLE_FAN' specifies a series of--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#drawing-triangle-fans connected triangle primitives>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#drawing-triangle-fans connected triangle primitives> -- with all triangles sharing a common vertex. If the -- @VK_KHR_portability_subset@ extension is enabled, and -- 'Vulkan.Extensions.VK_KHR_portability_subset.PhysicalDevicePortabilitySubsetFeaturesKHR'::@triangleFans@@@ -92,21 +92,21 @@ -- /must/ not be used. pattern PRIMITIVE_TOPOLOGY_TRIANGLE_FAN = PrimitiveTopology 5 -- | 'PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY' specifies a series of--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#drawing-line-lists-with-adjacency separate line primitives with adjacency>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#drawing-line-lists-with-adjacency separate line primitives with adjacency>. pattern PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY = PrimitiveTopology 6 -- | 'PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY' specifies a series of--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#drawing-line-strips-with-adjacency connected line primitives with adjacency>,+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#drawing-line-strips-with-adjacency connected line primitives with adjacency>, -- with consecutive primitives sharing three vertices. pattern PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY = PrimitiveTopology 7 -- | 'PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY' specifies a series of--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#drawing-triangle-lists-with-adjacency separate triangle primitives with adjacency>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#drawing-triangle-lists-with-adjacency separate triangle primitives with adjacency>. pattern PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY = PrimitiveTopology 8 -- | 'PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY' specifies--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#drawing-triangle-strips-with-adjacency connected triangle primitives with adjacency>,+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#drawing-triangle-strips-with-adjacency connected triangle primitives with adjacency>, -- with consecutive triangles sharing an edge. pattern PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY = PrimitiveTopology 9 -- | 'PRIMITIVE_TOPOLOGY_PATCH_LIST' specifies--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#drawing-patch-lists separate patch primitives>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#drawing-patch-lists separate patch primitives>. pattern PRIMITIVE_TOPOLOGY_PATCH_LIST = PrimitiveTopology 10 {-# complete PRIMITIVE_TOPOLOGY_POINT_LIST, PRIMITIVE_TOPOLOGY_LINE_LIST,
src/Vulkan/Core10/Enums/QueryControlFlagBits.hs view
@@ -29,7 +29,7 @@ deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits) -- | 'QUERY_CONTROL_PRECISE_BIT' specifies the precision of--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#queries-occlusion occlusion queries>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#queries-occlusion occlusion queries>. pattern QUERY_CONTROL_PRECISE_BIT = QueryControlFlagBits 0x00000001 conNameQueryControlFlagBits :: String
src/Vulkan/Core10/Enums/QueryPipelineStatisticFlagBits.hs view
@@ -12,6 +12,8 @@ , QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT , QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT , QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT+ , QUERY_PIPELINE_STATISTIC_MESH_SHADER_INVOCATIONS_BIT_EXT+ , QUERY_PIPELINE_STATISTIC_TASK_SHADER_INVOCATIONS_BIT_EXT , .. ) ) where@@ -38,8 +40,12 @@ -- implementation. Various device architectures will count these values -- differently. Any or all counters /may/ be affected by the issues -- described in--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#queries-operation-undefined Query Operation>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#queries-operation-undefined Query Operation>. --+-- This counting difference is especially true if the pipeline contains+-- mesh or task shaders, which may affect several of the counters in+-- unexpected ways.+-- -- Note -- -- For example, tile-based rendering devices /may/ need to replay the scene@@ -47,7 +53,7 @@ -- -- If a pipeline has @rasterizerDiscardEnable@ enabled, implementations -- /may/ discard primitives after the final--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader stage>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader stage>. -- As a result, if @rasterizerDiscardEnable@ is enabled, the clipping input -- and output primitives counters /may/ not be incremented. --@@ -67,14 +73,14 @@ -- | 'QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT' specifies that -- queries managed by the pool will count the number of vertices processed -- by the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#drawing input assembly>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#drawing input assembly> -- stage. Vertices corresponding to incomplete primitives /may/ contribute -- to the count. pattern QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT = QueryPipelineStatisticFlagBits 0x00000001 -- | 'QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT' specifies that -- queries managed by the pool will count the number of primitives -- processed by the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#drawing input assembly>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#drawing input assembly> -- stage. If primitive restart is enabled, restarting the primitive -- topology has no effect on the count. Incomplete primitives /may/ be -- counted.@@ -83,15 +89,15 @@ -- queries managed by the pool will count the number of vertex shader -- invocations. This counter’s value is incremented each time a vertex -- shader is--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-vertex-execution invoked>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-vertex-execution invoked>. pattern QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT = QueryPipelineStatisticFlagBits 0x00000004 -- | 'QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT' specifies -- that queries managed by the pool will count the number of geometry -- shader invocations. This counter’s value is incremented each time a -- geometry shader is--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-geometry-execution invoked>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-geometry-execution invoked>. -- In the case of--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#geometry-invocations instanced geometry shaders>,+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#geometry-invocations instanced geometry shaders>, -- the geometry shader invocations count is incremented for each separate -- instanced invocation. pattern QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT = QueryPipelineStatisticFlagBits 0x00000008@@ -106,14 +112,14 @@ -- | 'QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT' specifies that -- queries managed by the pool will count the number of primitives -- processed by the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#vertexpostproc-clipping Primitive Clipping>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#vertexpostproc-clipping Primitive Clipping> -- stage of the pipeline. The counter’s value is incremented each time a -- primitive reaches the primitive clipping stage. pattern QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT = QueryPipelineStatisticFlagBits 0x00000020 -- | 'QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT' specifies that -- queries managed by the pool will count the number of primitives output -- by the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#vertexpostproc-clipping Primitive Clipping>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#vertexpostproc-clipping Primitive Clipping> -- stage of the pipeline. The counter’s value is incremented each time a -- primitive passes the primitive clipping stage. The actual number of -- primitives output by the primitive clipping stage for a particular input@@ -129,20 +135,20 @@ -- that queries managed by the pool will count the number of fragment -- shader invocations. The counter’s value is incremented each time the -- fragment shader is--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#fragops-shader invoked>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fragops-shader invoked>. pattern QUERY_PIPELINE_STATISTIC_FRAGMENT_SHADER_INVOCATIONS_BIT = QueryPipelineStatisticFlagBits 0x00000080 -- | 'QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT' -- specifies that queries managed by the pool will count the number of -- patches processed by the tessellation control shader. The counter’s -- value is incremented once for each patch for which a tessellation -- control shader is--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-tessellation-control-execution invoked>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-tessellation-control-execution invoked>. pattern QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT = QueryPipelineStatisticFlagBits 0x00000100 -- | 'QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT' -- specifies that queries managed by the pool will count the number of -- invocations of the tessellation evaluation shader. The counter’s value -- is incremented each time the tessellation evaluation shader is--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-tessellation-evaluation-execution invoked>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-tessellation-evaluation-execution invoked>. pattern QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT = QueryPipelineStatisticFlagBits 0x00000200 -- | 'QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT' specifies that@@ -152,7 +158,17 @@ -- compute shader invocations or execute additional compute shader -- invocations for implementation-dependent reasons as long as the results -- of rendering otherwise remain unchanged.-pattern QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT = QueryPipelineStatisticFlagBits 0x00000400+pattern QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT = QueryPipelineStatisticFlagBits 0x00000400+-- | 'QUERY_PIPELINE_STATISTIC_MESH_SHADER_INVOCATIONS_BIT_EXT' specifies+-- that queries managed by the pool will count the number of mesh shader+-- invocations. The counter’s value is incremented every time the mesh+-- shader is invoked.+pattern QUERY_PIPELINE_STATISTIC_MESH_SHADER_INVOCATIONS_BIT_EXT = QueryPipelineStatisticFlagBits 0x00001000+-- | 'QUERY_PIPELINE_STATISTIC_TASK_SHADER_INVOCATIONS_BIT_EXT' specifies+-- that queries managed by the pool will count the number of task shader+-- invocations. The counter’s value is incremented every time the task+-- shader is invoked.+pattern QUERY_PIPELINE_STATISTIC_TASK_SHADER_INVOCATIONS_BIT_EXT = QueryPipelineStatisticFlagBits 0x00000800 conNameQueryPipelineStatisticFlagBits :: String conNameQueryPipelineStatisticFlagBits = "QueryPipelineStatisticFlagBits"@@ -174,7 +190,9 @@ , ( QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT , "TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT" )- , (QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT, "COMPUTE_SHADER_INVOCATIONS_BIT")+ , (QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT , "COMPUTE_SHADER_INVOCATIONS_BIT")+ , (QUERY_PIPELINE_STATISTIC_MESH_SHADER_INVOCATIONS_BIT_EXT, "MESH_SHADER_INVOCATIONS_BIT_EXT")+ , (QUERY_PIPELINE_STATISTIC_TASK_SHADER_INVOCATIONS_BIT_EXT, "TASK_SHADER_INVOCATIONS_BIT_EXT") ] instance Show QueryPipelineStatisticFlagBits where
src/Vulkan/Core10/Enums/QueryType.hs view
@@ -3,7 +3,10 @@ module Vulkan.Core10.Enums.QueryType (QueryType( QUERY_TYPE_OCCLUSION , QUERY_TYPE_PIPELINE_STATISTICS , QUERY_TYPE_TIMESTAMP+ , QUERY_TYPE_ACCELERATION_STRUCTURE_SIZE_KHR+ , QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_BOTTOM_LEVEL_POINTERS_KHR , QUERY_TYPE_PRIMITIVES_GENERATED_EXT+ , QUERY_TYPE_MESH_PRIMITIVES_GENERATED_EXT , QUERY_TYPE_PERFORMANCE_QUERY_INTEL , QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_NV , QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR@@ -35,45 +38,62 @@ deriving newtype (Eq, Ord, Storable, Zero) -- | 'QUERY_TYPE_OCCLUSION' specifies an--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#queries-occlusion occlusion query>.-pattern QUERY_TYPE_OCCLUSION = QueryType 0+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#queries-occlusion occlusion query>.+pattern QUERY_TYPE_OCCLUSION = QueryType 0 -- | 'QUERY_TYPE_PIPELINE_STATISTICS' specifies a--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#queries-pipestats pipeline statistics query>.-pattern QUERY_TYPE_PIPELINE_STATISTICS = QueryType 1+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#queries-pipestats pipeline statistics query>.+pattern QUERY_TYPE_PIPELINE_STATISTICS = QueryType 1 -- | 'QUERY_TYPE_TIMESTAMP' specifies a--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#queries-timestamps timestamp query>.-pattern QUERY_TYPE_TIMESTAMP = QueryType 2+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#queries-timestamps timestamp query>.+pattern QUERY_TYPE_TIMESTAMP = QueryType 2+-- | 'QUERY_TYPE_ACCELERATION_STRUCTURE_SIZE_KHR' specifies an+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#acceleration-structure-copying acceleration structure size query>+-- for use with+-- 'Vulkan.Extensions.VK_KHR_acceleration_structure.cmdWriteAccelerationStructuresPropertiesKHR'+-- or+-- 'Vulkan.Extensions.VK_KHR_acceleration_structure.writeAccelerationStructuresPropertiesKHR'.+pattern QUERY_TYPE_ACCELERATION_STRUCTURE_SIZE_KHR = QueryType 1000386001+-- | 'QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_BOTTOM_LEVEL_POINTERS_KHR'+-- specifies a+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#serialized-as-header serialization acceleration structure pointer count query>.+pattern QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_BOTTOM_LEVEL_POINTERS_KHR = QueryType 1000386000 -- | 'QUERY_TYPE_PRIMITIVES_GENERATED_EXT' specifies a--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#queries-primitives-generated primitives generated query>.-pattern QUERY_TYPE_PRIMITIVES_GENERATED_EXT = QueryType 1000382000+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#queries-primitives-generated primitives generated query>.+pattern QUERY_TYPE_PRIMITIVES_GENERATED_EXT = QueryType 1000382000+-- | 'QUERY_TYPE_MESH_PRIMITIVES_GENERATED_EXT' specifies a+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#queries-mesh-shader generated mesh primitives query>.+pattern QUERY_TYPE_MESH_PRIMITIVES_GENERATED_EXT = QueryType 1000328000 -- | 'QUERY_TYPE_PERFORMANCE_QUERY_INTEL' specifies a--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#queries-performance-intel Intel performance query>.-pattern QUERY_TYPE_PERFORMANCE_QUERY_INTEL = QueryType 1000210000--- | 'QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_NV' specifies a--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#acceleration-structure-copying acceleration structure size query>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#queries-performance-intel Intel performance query>.+pattern QUERY_TYPE_PERFORMANCE_QUERY_INTEL = QueryType 1000210000+-- | 'QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_NV' specifies an+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#acceleration-structure-copying acceleration structure size query> -- for use with -- 'Vulkan.Extensions.VK_NV_ray_tracing.cmdWriteAccelerationStructuresPropertiesNV'. pattern QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_NV = QueryType 1000165000 -- | 'QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR' specifies a--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#acceleration-structure-copying serialization acceleration structure size query>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#acceleration-structure-copying serialization acceleration structure size query>. pattern QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR = QueryType 1000150001 -- | 'QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR' specifies a--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#acceleration-structure-copying acceleration structure size query>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#acceleration-structure-copying acceleration structure size query> -- for use with -- 'Vulkan.Extensions.VK_KHR_acceleration_structure.cmdWriteAccelerationStructuresPropertiesKHR' -- or -- 'Vulkan.Extensions.VK_KHR_acceleration_structure.writeAccelerationStructuresPropertiesKHR'. pattern QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR = QueryType 1000150000 -- | 'QUERY_TYPE_PERFORMANCE_QUERY_KHR' specifies a--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#queries-performance performance query>.-pattern QUERY_TYPE_PERFORMANCE_QUERY_KHR = QueryType 1000116000+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#queries-performance performance query>.+pattern QUERY_TYPE_PERFORMANCE_QUERY_KHR = QueryType 1000116000 -- | 'QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT' specifies a--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#queries-transform-feedback transform feedback query>.-pattern QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT = QueryType 1000028004+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#queries-transform-feedback transform feedback query>.+pattern QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT = QueryType 1000028004 {-# complete QUERY_TYPE_OCCLUSION, QUERY_TYPE_PIPELINE_STATISTICS, QUERY_TYPE_TIMESTAMP,+ QUERY_TYPE_ACCELERATION_STRUCTURE_SIZE_KHR,+ QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_BOTTOM_LEVEL_POINTERS_KHR, QUERY_TYPE_PRIMITIVES_GENERATED_EXT,+ QUERY_TYPE_MESH_PRIMITIVES_GENERATED_EXT, QUERY_TYPE_PERFORMANCE_QUERY_INTEL, QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_NV, QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR,@@ -89,16 +109,21 @@ showTableQueryType :: [(QueryType, String)] showTableQueryType =- [ (QUERY_TYPE_OCCLUSION , "OCCLUSION")- , (QUERY_TYPE_PIPELINE_STATISTICS , "PIPELINE_STATISTICS")- , (QUERY_TYPE_TIMESTAMP , "TIMESTAMP")- , (QUERY_TYPE_PRIMITIVES_GENERATED_EXT , "PRIMITIVES_GENERATED_EXT")- , (QUERY_TYPE_PERFORMANCE_QUERY_INTEL , "PERFORMANCE_QUERY_INTEL")- , (QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_NV, "ACCELERATION_STRUCTURE_COMPACTED_SIZE_NV")+ [ (QUERY_TYPE_OCCLUSION , "OCCLUSION")+ , (QUERY_TYPE_PIPELINE_STATISTICS , "PIPELINE_STATISTICS")+ , (QUERY_TYPE_TIMESTAMP , "TIMESTAMP")+ , (QUERY_TYPE_ACCELERATION_STRUCTURE_SIZE_KHR, "ACCELERATION_STRUCTURE_SIZE_KHR")+ , ( QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_BOTTOM_LEVEL_POINTERS_KHR+ , "ACCELERATION_STRUCTURE_SERIALIZATION_BOTTOM_LEVEL_POINTERS_KHR"+ )+ , (QUERY_TYPE_PRIMITIVES_GENERATED_EXT , "PRIMITIVES_GENERATED_EXT")+ , (QUERY_TYPE_MESH_PRIMITIVES_GENERATED_EXT , "MESH_PRIMITIVES_GENERATED_EXT")+ , (QUERY_TYPE_PERFORMANCE_QUERY_INTEL , "PERFORMANCE_QUERY_INTEL")+ , (QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_NV , "ACCELERATION_STRUCTURE_COMPACTED_SIZE_NV") , (QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR, "ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR")- , (QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR, "ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR")- , (QUERY_TYPE_PERFORMANCE_QUERY_KHR , "PERFORMANCE_QUERY_KHR")- , (QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT, "TRANSFORM_FEEDBACK_STREAM_EXT")+ , (QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR , "ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR")+ , (QUERY_TYPE_PERFORMANCE_QUERY_KHR , "PERFORMANCE_QUERY_KHR")+ , (QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT , "TRANSFORM_FEEDBACK_STREAM_EXT") ] instance Show QueryType where
src/Vulkan/Core10/Enums/QueueFlagBits.hs view
@@ -48,7 +48,7 @@ -- /optional/. -- -- For further details see--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#devsandqueues-queues Queues>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#devsandqueues-queues Queues>. -- -- = See Also --@@ -68,7 +68,7 @@ pattern QUEUE_TRANSFER_BIT = QueueFlagBits 0x00000004 -- | 'QUEUE_SPARSE_BINDING_BIT' specifies that queues in this queue family -- support sparse memory management operations (see--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#sparsememory Sparse Resources>).+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#sparsememory Sparse Resources>). -- If any of the sparse resource features are enabled, then at least one -- queue family /must/ support this bit. pattern QUEUE_SPARSE_BINDING_BIT = QueueFlagBits 0x00000008@@ -76,7 +76,7 @@ -- the -- 'Vulkan.Core10.Enums.DeviceQueueCreateFlagBits.DEVICE_QUEUE_CREATE_PROTECTED_BIT' -- bit. (see--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-protected-memory Protected Memory>).+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-protected-memory Protected Memory>). -- If the physical device supports the @protectedMemory@ feature, at least -- one of its queue families /must/ support this bit. pattern QUEUE_PROTECTED_BIT = QueueFlagBits 0x00000010
src/Vulkan/Core10/Enums/RenderPassCreateFlagBits.hs view
@@ -31,7 +31,7 @@ -- | 'RENDER_PASS_CREATE_TRANSFORM_BIT_QCOM' specifies that the created -- render pass is compatible with--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#vertexpostproc-renderpass-transform render pass transform>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#vertexpostproc-renderpass-transform render pass transform>. pattern RENDER_PASS_CREATE_TRANSFORM_BIT_QCOM = RenderPassCreateFlagBits 0x00000002 conNameRenderPassCreateFlagBits :: String
src/Vulkan/Core10/Enums/Result.hs view
@@ -19,6 +19,7 @@ , ERROR_FORMAT_NOT_SUPPORTED , ERROR_FRAGMENTED_POOL , ERROR_UNKNOWN+ , ERROR_COMPRESSION_EXHAUSTED_EXT , OPERATION_NOT_DEFERRED_KHR , OPERATION_DEFERRED_KHR , THREAD_DONE_KHR@@ -119,7 +120,7 @@ -- completed for implementation-specific reasons. pattern ERROR_INITIALIZATION_FAILED = Result (-3) -- | 'ERROR_DEVICE_LOST' The logical or physical device has been lost. See--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#devsandqueues-lost-device Lost Device>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#devsandqueues-lost-device Lost Device> pattern ERROR_DEVICE_LOST = Result (-4) -- | 'ERROR_MEMORY_MAP_FAILED' Mapping of a memory object has failed. pattern ERROR_MEMORY_MAP_FAILED = Result (-5)@@ -150,6 +151,10 @@ -- | 'ERROR_UNKNOWN' An unknown error has occurred; either the application -- has provided invalid input, or an implementation failure has occurred. pattern ERROR_UNKNOWN = Result (-13)+-- | 'ERROR_COMPRESSION_EXHAUSTED_EXT' An image creation failed because+-- internal resources required for compression are exhausted. This /must/+-- only be returned when fixed-rate compression is requested.+pattern ERROR_COMPRESSION_EXHAUSTED_EXT = Result (-1000338000) -- | 'OPERATION_NOT_DEFERRED_KHR' A deferred operation was requested and no -- operations were deferred. pattern OPERATION_NOT_DEFERRED_KHR = Result 1000268003@@ -165,7 +170,7 @@ -- | 'ERROR_FULL_SCREEN_EXCLUSIVE_MODE_LOST_EXT' An operation on a swapchain -- created with -- 'Vulkan.Extensions.VK_EXT_full_screen_exclusive.FULL_SCREEN_EXCLUSIVE_APPLICATION_CONTROLLED_EXT'--- failed as it did not have exlusive full-screen access. This /may/ occur+-- failed as it did not have exclusive full-screen access. This /may/ occur -- due to implementation-dependent reasons, outside of the application’s -- control. pattern ERROR_FULL_SCREEN_EXCLUSIVE_MODE_LOST_EXT = Result (-1000255000)@@ -238,6 +243,7 @@ ERROR_FORMAT_NOT_SUPPORTED, ERROR_FRAGMENTED_POOL, ERROR_UNKNOWN,+ ERROR_COMPRESSION_EXHAUSTED_EXT, OPERATION_NOT_DEFERRED_KHR, OPERATION_DEFERRED_KHR, THREAD_DONE_KHR,@@ -285,6 +291,7 @@ , (ERROR_FORMAT_NOT_SUPPORTED , "ERROR_FORMAT_NOT_SUPPORTED") , (ERROR_FRAGMENTED_POOL , "ERROR_FRAGMENTED_POOL") , (ERROR_UNKNOWN , "ERROR_UNKNOWN")+ , (ERROR_COMPRESSION_EXHAUSTED_EXT , "ERROR_COMPRESSION_EXHAUSTED_EXT") , (OPERATION_NOT_DEFERRED_KHR , "OPERATION_NOT_DEFERRED_KHR") , (OPERATION_DEFERRED_KHR , "OPERATION_DEFERRED_KHR") , (THREAD_DONE_KHR , "THREAD_DONE_KHR")
src/Vulkan/Core10/Enums/SampleCountFlagBits.hs view
@@ -37,6 +37,7 @@ -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.CommandBufferInheritanceRenderingInfo', -- 'Vulkan.Extensions.VK_NV_coverage_reduction_mode.FramebufferMixedSamplesCombinationNV', -- 'Vulkan.Core10.Image.ImageCreateInfo',+-- 'Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled.MultisampledRenderToSingleSampledInfoEXT', -- 'Vulkan.Extensions.VK_NV_fragment_shading_rate_enums.PhysicalDeviceFragmentShadingRateEnumsPropertiesNV', -- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.PhysicalDeviceFragmentShadingRatePropertiesKHR', -- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceSparseImageFormatInfo2',
src/Vulkan/Core10/Enums/SamplerAddressMode.hs view
@@ -41,7 +41,7 @@ pattern SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER = SamplerAddressMode 3 -- | 'SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE' specifies that the mirror -- clamp to edge wrap mode will be used. This is only valid if--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-samplerMirrorClampToEdge samplerMirrorClampToEdge>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-samplerMirrorClampToEdge samplerMirrorClampToEdge> -- is enabled, or if the @VK_KHR_sampler_mirror_clamp_to_edge@ extension is -- enabled. pattern SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE = SamplerAddressMode 4
src/Vulkan/Core10/Enums/SamplerCreateFlagBits.hs view
@@ -1,7 +1,9 @@ {-# language CPP #-} -- No documentation found for Chapter "SamplerCreateFlagBits" module Vulkan.Core10.Enums.SamplerCreateFlagBits ( SamplerCreateFlags- , SamplerCreateFlagBits( SAMPLER_CREATE_SUBSAMPLED_COARSE_RECONSTRUCTION_BIT_EXT+ , SamplerCreateFlagBits( SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM+ , SAMPLER_CREATE_NON_SEAMLESS_CUBE_MAP_BIT_EXT+ , SAMPLER_CREATE_SUBSAMPLED_COARSE_RECONSTRUCTION_BIT_EXT , SAMPLER_CREATE_SUBSAMPLED_BIT_EXT , .. )@@ -41,6 +43,16 @@ newtype SamplerCreateFlagBits = SamplerCreateFlagBits Flags deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits) +-- | #samplers-imageprocessingsampler#+-- 'SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM' specifies that the sampler+-- will read from images using only @OpImageWeightedSampleQCOM@,+-- @OpImageBoxFilterQCOM@, @OpImageBlockMatchSSDQCOM@, or+-- @OpImageBlockMatchSADQCOM@.+pattern SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM = SamplerCreateFlagBits 0x00000010+-- | 'SAMPLER_CREATE_NON_SEAMLESS_CUBE_MAP_BIT_EXT' specifies that+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#textures-cubemapedge cube map edge handling>+-- is not performed.+pattern SAMPLER_CREATE_NON_SEAMLESS_CUBE_MAP_BIT_EXT = SamplerCreateFlagBits 0x00000004 -- | 'SAMPLER_CREATE_SUBSAMPLED_COARSE_RECONSTRUCTION_BIT_EXT' specifies that -- the implementation /may/ use approximations when reconstructing a full -- color value for texture access from a subsampled image.@@ -55,12 +67,14 @@ conNameSamplerCreateFlagBits = "SamplerCreateFlagBits" enumPrefixSamplerCreateFlagBits :: String-enumPrefixSamplerCreateFlagBits = "SAMPLER_CREATE_SUBSAMPLED_"+enumPrefixSamplerCreateFlagBits = "SAMPLER_CREATE_" showTableSamplerCreateFlagBits :: [(SamplerCreateFlagBits, String)] showTableSamplerCreateFlagBits =- [ (SAMPLER_CREATE_SUBSAMPLED_COARSE_RECONSTRUCTION_BIT_EXT, "COARSE_RECONSTRUCTION_BIT_EXT")- , (SAMPLER_CREATE_SUBSAMPLED_BIT_EXT , "BIT_EXT")+ [ (SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM , "IMAGE_PROCESSING_BIT_QCOM")+ , (SAMPLER_CREATE_NON_SEAMLESS_CUBE_MAP_BIT_EXT , "NON_SEAMLESS_CUBE_MAP_BIT_EXT")+ , (SAMPLER_CREATE_SUBSAMPLED_COARSE_RECONSTRUCTION_BIT_EXT, "SUBSAMPLED_COARSE_RECONSTRUCTION_BIT_EXT")+ , (SAMPLER_CREATE_SUBSAMPLED_BIT_EXT , "SUBSAMPLED_BIT_EXT") ] instance Show SamplerCreateFlagBits where
src/Vulkan/Core10/Enums/SamplerMipmapMode.hs view
@@ -19,7 +19,7 @@ -- = Description -- -- These modes are described in detail in--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#textures-texel-filtering Texel Filtering>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#textures-texel-filtering Texel Filtering>. -- -- = See Also --
src/Vulkan/Core10/Enums/ShaderStageFlagBits.hs view
@@ -10,8 +10,8 @@ , SHADER_STAGE_ALL_GRAPHICS , SHADER_STAGE_ALL , SHADER_STAGE_SUBPASS_SHADING_BIT_HUAWEI- , SHADER_STAGE_MESH_BIT_NV- , SHADER_STAGE_TASK_BIT_NV+ , SHADER_STAGE_MESH_BIT_EXT+ , SHADER_STAGE_TASK_BIT_EXT , SHADER_STAGE_CALLABLE_BIT_KHR , SHADER_STAGE_INTERSECTION_BIT_KHR , SHADER_STAGE_MISS_BIT_KHR@@ -78,10 +78,10 @@ pattern SHADER_STAGE_ALL = ShaderStageFlagBits 0x7fffffff -- No documentation found for Nested "VkShaderStageFlagBits" "VK_SHADER_STAGE_SUBPASS_SHADING_BIT_HUAWEI" pattern SHADER_STAGE_SUBPASS_SHADING_BIT_HUAWEI = ShaderStageFlagBits 0x00004000--- | 'SHADER_STAGE_MESH_BIT_NV' specifies the mesh stage.-pattern SHADER_STAGE_MESH_BIT_NV = ShaderStageFlagBits 0x00000080--- | 'SHADER_STAGE_TASK_BIT_NV' specifies the task stage.-pattern SHADER_STAGE_TASK_BIT_NV = ShaderStageFlagBits 0x00000040+-- | 'SHADER_STAGE_MESH_BIT_EXT' specifies the mesh stage.+pattern SHADER_STAGE_MESH_BIT_EXT = ShaderStageFlagBits 0x00000080+-- | 'SHADER_STAGE_TASK_BIT_EXT' specifies the task stage.+pattern SHADER_STAGE_TASK_BIT_EXT = ShaderStageFlagBits 0x00000040 -- | 'SHADER_STAGE_CALLABLE_BIT_KHR' specifies the callable stage. pattern SHADER_STAGE_CALLABLE_BIT_KHR = ShaderStageFlagBits 0x00002000 -- | 'SHADER_STAGE_INTERSECTION_BIT_KHR' specifies the intersection stage.@@ -112,8 +112,8 @@ , (SHADER_STAGE_ALL_GRAPHICS , "ALL_GRAPHICS") , (SHADER_STAGE_ALL , "ALL") , (SHADER_STAGE_SUBPASS_SHADING_BIT_HUAWEI , "SUBPASS_SHADING_BIT_HUAWEI")- , (SHADER_STAGE_MESH_BIT_NV , "MESH_BIT_NV")- , (SHADER_STAGE_TASK_BIT_NV , "TASK_BIT_NV")+ , (SHADER_STAGE_MESH_BIT_EXT , "MESH_BIT_EXT")+ , (SHADER_STAGE_TASK_BIT_EXT , "TASK_BIT_EXT") , (SHADER_STAGE_CALLABLE_BIT_KHR , "CALLABLE_BIT_KHR") , (SHADER_STAGE_INTERSECTION_BIT_KHR , "INTERSECTION_BIT_KHR") , (SHADER_STAGE_MISS_BIT_KHR , "MISS_BIT_KHR")
src/Vulkan/Core10/Enums/SharingMode.hs view
@@ -30,14 +30,14 @@ -- acquired upon first use within a queue. Once a resource using -- 'SHARING_MODE_EXCLUSIVE' is owned by some queue family, the application -- /must/ perform a--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-queue-transfers queue family ownership transfer>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-queue-transfers queue family ownership transfer> -- to make the memory contents of a range or image subresource accessible -- to a different queue family. -- -- Note -- -- Images still require a--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-layouts layout transition>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-layouts layout transition> -- from 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_UNDEFINED' or -- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_PREINITIALIZED' before -- being used on the first queue.
src/Vulkan/Core10/Enums/StructureType.hs view
@@ -49,25 +49,51 @@ , STRUCTURE_TYPE_MEMORY_BARRIER , STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO , STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO+ , STRUCTURE_TYPE_AMIGO_PROFILING_SUBMIT_INFO_SEC+ , STRUCTURE_TYPE_PHYSICAL_DEVICE_AMIGO_PROFILING_FEATURES_SEC+ , STRUCTURE_TYPE_TILE_PROPERTIES_QCOM+ , STRUCTURE_TYPE_PHYSICAL_DEVICE_TILE_PROPERTIES_FEATURES_QCOM+ , STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_EXT+ , STRUCTURE_TYPE_SHADER_MODULE_IDENTIFIER_EXT+ , STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_MODULE_IDENTIFIER_CREATE_INFO_EXT+ , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_PROPERTIES_EXT+ , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_FEATURES_EXT+ , STRUCTURE_TYPE_RENDER_PASS_SUBPASS_FEEDBACK_CREATE_INFO_EXT+ , STRUCTURE_TYPE_RENDER_PASS_CREATION_FEEDBACK_CREATE_INFO_EXT+ , STRUCTURE_TYPE_RENDER_PASS_CREATION_CONTROL_EXT+ , STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_MERGE_FEEDBACK_FEATURES_EXT+ , STRUCTURE_TYPE_IMAGE_VIEW_SAMPLE_WEIGHT_CREATE_INFO_QCOM+ , STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_PROPERTIES_QCOM+ , STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_FEATURES_QCOM+ , STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_FEATURES_EXT , STRUCTURE_TYPE_PHYSICAL_DEVICE_LINEAR_COLOR_ATTACHMENT_FEATURES_NV , STRUCTURE_TYPE_SUBPASS_FRAGMENT_DENSITY_MAP_OFFSET_END_INFO_QCOM , STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_PROPERTIES_QCOM , STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_FEATURES_QCOM+ , STRUCTURE_TYPE_PHYSICAL_DEVICE_NON_SEAMLESS_CUBE_MAP_FEATURES_EXT+ , STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLAMP_ZERO_ONE_FEATURES_EXT , STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_HOST_MAPPING_INFO_VALVE , STRUCTURE_TYPE_DESCRIPTOR_SET_BINDING_REFERENCE_VALVE , STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_SET_HOST_MAPPING_FEATURES_VALVE , STRUCTURE_TYPE_PHYSICAL_DEVICE_PAGEABLE_DEVICE_LOCAL_MEMORY_FEATURES_EXT , STRUCTURE_TYPE_SAMPLER_BORDER_COLOR_COMPONENT_MAPPING_CREATE_INFO_EXT , STRUCTURE_TYPE_PHYSICAL_DEVICE_BORDER_COLOR_SWIZZLE_FEATURES_EXT+ , STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_2D_VIEW_OF_3D_FEATURES_EXT , STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_PROPERTIES_EXT , STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_FEATURES_EXT , STRUCTURE_TYPE_IMAGE_VIEW_MIN_LOD_CREATE_INFO_EXT , STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_MIN_LOD_FEATURES_EXT+ , STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MAINTENANCE_1_FEATURES_KHR , STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVES_GENERATED_QUERY_FEATURES_EXT , STRUCTURE_TYPE_PIPELINE_COLOR_WRITE_CREATE_INFO_EXT , STRUCTURE_TYPE_PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT , STRUCTURE_TYPE_SCREEN_SURFACE_CREATE_INFO_QNX , STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT+ , STRUCTURE_TYPE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_INFO_EXT+ , STRUCTURE_TYPE_SUBPASS_RESOLVE_PERFORMANCE_QUERY_EXT+ , STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_FEATURES_EXT+ , STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROPERTIES_FEATURES_EXT+ , STRUCTURE_TYPE_PIPELINE_PROPERTIES_IDENTIFIER_EXT , STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_RDMA_FEATURES_NV , STRUCTURE_TYPE_MEMORY_GET_REMOTE_ADDRESS_INFO_NV , STRUCTURE_TYPE_PHYSICAL_DEVICE_INVOCATION_MASK_FEATURES_HUAWEI@@ -100,13 +126,20 @@ , STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_VALVE , STRUCTURE_TYPE_DIRECTFB_SURFACE_CREATE_INFO_EXT , STRUCTURE_TYPE_PHYSICAL_DEVICE_RGBA10X6_FORMATS_FEATURES_EXT- , STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_ARM , STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT+ , STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_FEATURES_EXT+ , STRUCTURE_TYPE_IMAGE_COMPRESSION_PROPERTIES_EXT+ , STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2_EXT+ , STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2_EXT+ , STRUCTURE_TYPE_IMAGE_COMPRESSION_CONTROL_EXT+ , STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_FEATURES_EXT , STRUCTURE_TYPE_PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR , STRUCTURE_TYPE_COPY_COMMAND_TRANSFORM_INFO_QCOM , STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT , STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT , STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT+ , STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_EXT+ , STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_EXT , STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MOTION_INFO_NV , STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MOTION_BLUR_FEATURES_NV , STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_MOTION_TRIANGLES_DATA_NV@@ -114,11 +147,26 @@ , STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_FEATURES_NV , STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_PROPERTIES_NV , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_FEATURES_KHR+ , STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_PROPERTIES_KHR+ , STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_KHR+ , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_FEATURES_AMD , STRUCTURE_TYPE_GRAPHICS_PIPELINE_LIBRARY_CREATE_INFO_EXT , STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_PROPERTIES_EXT , STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_FEATURES_EXT , STRUCTURE_TYPE_CHECKPOINT_DATA_2_NV , STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV+ , STRUCTURE_TYPE_IMPORT_METAL_SHARED_EVENT_INFO_EXT+ , STRUCTURE_TYPE_EXPORT_METAL_SHARED_EVENT_INFO_EXT+ , STRUCTURE_TYPE_IMPORT_METAL_IO_SURFACE_INFO_EXT+ , STRUCTURE_TYPE_EXPORT_METAL_IO_SURFACE_INFO_EXT+ , STRUCTURE_TYPE_IMPORT_METAL_TEXTURE_INFO_EXT+ , STRUCTURE_TYPE_EXPORT_METAL_TEXTURE_INFO_EXT+ , STRUCTURE_TYPE_IMPORT_METAL_BUFFER_INFO_EXT+ , STRUCTURE_TYPE_EXPORT_METAL_BUFFER_INFO_EXT+ , STRUCTURE_TYPE_EXPORT_METAL_COMMAND_QUEUE_INFO_EXT+ , STRUCTURE_TYPE_EXPORT_METAL_DEVICE_INFO_EXT+ , STRUCTURE_TYPE_EXPORT_METAL_OBJECTS_INFO_EXT+ , STRUCTURE_TYPE_EXPORT_METAL_OBJECT_CREATE_INFO_EXT , STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV , STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV , STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR@@ -210,7 +258,6 @@ , STRUCTURE_TYPE_PHYSICAL_DEVICE_EXCLUSIVE_SCISSOR_FEATURES_NV , STRUCTURE_TYPE_PIPELINE_VIEWPORT_EXCLUSIVE_SCISSOR_STATE_CREATE_INFO_NV , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_FOOTPRINT_FEATURES_NV- , STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_NV , STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV , STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV , STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV@@ -361,6 +408,9 @@ , STRUCTURE_TYPE_MEMORY_WIN32_HANDLE_PROPERTIES_KHR , STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR , STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR+ , STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_PROPERTIES_EXT+ , STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_FEATURES_EXT+ , STRUCTURE_TYPE_PIPELINE_ROBUSTNESS_CREATE_INFO_EXT , STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT , STRUCTURE_TYPE_IMAGE_VIEW_ASTC_DECODE_MODE_EXT , STRUCTURE_TYPE_VI_SURFACE_CREATE_INFO_NN@@ -609,6 +659,7 @@ -- 'Vulkan.Extensions.VK_KHR_acceleration_structure.AccelerationStructureVersionInfoKHR', -- 'Vulkan.Extensions.VK_KHR_swapchain.AcquireNextImageInfoKHR', -- 'Vulkan.Extensions.VK_KHR_performance_query.AcquireProfilingLockInfoKHR',+-- 'Vulkan.Extensions.VK_SEC_amigo_profiling.AmigoProfilingSubmitInfoSEC', -- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.AndroidHardwareBufferFormatProperties2ANDROID', -- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.AndroidHardwareBufferFormatPropertiesANDROID', -- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.AndroidHardwareBufferPropertiesANDROID',@@ -630,6 +681,7 @@ -- 'Vulkan.Extensions.VK_KHR_swapchain.BindImageMemorySwapchainInfoKHR', -- 'Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion.BindImagePlaneMemoryInfo', -- 'Vulkan.Core10.SparseResourceMemoryManagement.BindSparseInfo',+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkBindVideoSessionMemoryInfoKHR VkBindVideoSessionMemoryInfoKHR>, -- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.BlitImageInfo2', -- 'Vulkan.Extensions.VK_FUCHSIA_buffer_collection.BufferCollectionBufferCreateInfoFUCHSIA', -- 'Vulkan.Extensions.VK_FUCHSIA_buffer_collection.BufferCollectionConstraintsInfoFUCHSIA',@@ -741,6 +793,14 @@ -- 'Vulkan.Extensions.VK_NV_external_memory.ExportMemoryAllocateInfoNV', -- 'Vulkan.Extensions.VK_KHR_external_memory_win32.ExportMemoryWin32HandleInfoKHR', -- 'Vulkan.Extensions.VK_NV_external_memory_win32.ExportMemoryWin32HandleInfoNV',+-- 'Vulkan.Extensions.VK_EXT_metal_objects.ExportMetalBufferInfoEXT',+-- 'Vulkan.Extensions.VK_EXT_metal_objects.ExportMetalCommandQueueInfoEXT',+-- 'Vulkan.Extensions.VK_EXT_metal_objects.ExportMetalDeviceInfoEXT',+-- 'Vulkan.Extensions.VK_EXT_metal_objects.ExportMetalIOSurfaceInfoEXT',+-- 'Vulkan.Extensions.VK_EXT_metal_objects.ExportMetalObjectCreateInfoEXT',+-- 'Vulkan.Extensions.VK_EXT_metal_objects.ExportMetalObjectsInfoEXT',+-- 'Vulkan.Extensions.VK_EXT_metal_objects.ExportMetalSharedEventInfoEXT',+-- 'Vulkan.Extensions.VK_EXT_metal_objects.ExportMetalTextureInfoEXT', -- 'Vulkan.Core11.Promoted_From_VK_KHR_external_semaphore.ExportSemaphoreCreateInfo', -- 'Vulkan.Extensions.VK_KHR_external_semaphore_win32.ExportSemaphoreWin32HandleInfoKHR', -- 'Vulkan.Core11.Promoted_From_VK_KHR_external_memory_capabilities.ExternalBufferProperties',@@ -775,6 +835,8 @@ -- 'Vulkan.Extensions.VK_EXT_headless_surface.HeadlessSurfaceCreateInfoEXT', -- 'Vulkan.Extensions.VK_MVK_ios_surface.IOSSurfaceCreateInfoMVK', -- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.ImageBlit2',+-- 'Vulkan.Extensions.VK_EXT_image_compression_control.ImageCompressionControlEXT',+-- 'Vulkan.Extensions.VK_EXT_image_compression_control.ImageCompressionPropertiesEXT', -- 'Vulkan.Extensions.VK_FUCHSIA_buffer_collection.ImageConstraintsInfoFUCHSIA', -- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.ImageCopy2', -- 'Vulkan.Core10.Image.ImageCreateInfo',@@ -792,12 +854,14 @@ -- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.ImageResolve2', -- 'Vulkan.Core11.Promoted_From_VK_KHR_get_memory_requirements2.ImageSparseMemoryRequirementsInfo2', -- 'Vulkan.Core12.Promoted_From_VK_EXT_separate_stencil_usage.ImageStencilUsageCreateInfo',+-- 'Vulkan.Extensions.VK_EXT_image_compression_control.ImageSubresource2EXT', -- 'Vulkan.Extensions.VK_KHR_swapchain.ImageSwapchainCreateInfoKHR', -- 'Vulkan.Extensions.VK_EXT_astc_decode_mode.ImageViewASTCDecodeModeEXT', -- 'Vulkan.Extensions.VK_NVX_image_view_handle.ImageViewAddressPropertiesNVX', -- 'Vulkan.Core10.ImageView.ImageViewCreateInfo', -- 'Vulkan.Extensions.VK_NVX_image_view_handle.ImageViewHandleInfoNVX', -- 'Vulkan.Extensions.VK_EXT_image_view_min_lod.ImageViewMinLodCreateInfoEXT',+-- 'Vulkan.Extensions.VK_QCOM_image_processing.ImageViewSampleWeightCreateInfoQCOM', -- 'Vulkan.Core11.Promoted_From_VK_KHR_maintenance2.ImageViewUsageCreateInfo', -- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ImportAndroidHardwareBufferInfoANDROID', -- 'Vulkan.Extensions.VK_KHR_external_fence_fd.ImportFenceFdInfoKHR',@@ -808,6 +872,10 @@ -- 'Vulkan.Extensions.VK_KHR_external_memory_win32.ImportMemoryWin32HandleInfoKHR', -- 'Vulkan.Extensions.VK_NV_external_memory_win32.ImportMemoryWin32HandleInfoNV', -- 'Vulkan.Extensions.VK_FUCHSIA_external_memory.ImportMemoryZirconHandleInfoFUCHSIA',+-- 'Vulkan.Extensions.VK_EXT_metal_objects.ImportMetalBufferInfoEXT',+-- 'Vulkan.Extensions.VK_EXT_metal_objects.ImportMetalIOSurfaceInfoEXT',+-- 'Vulkan.Extensions.VK_EXT_metal_objects.ImportMetalSharedEventInfoEXT',+-- 'Vulkan.Extensions.VK_EXT_metal_objects.ImportMetalTextureInfoEXT', -- 'Vulkan.Extensions.VK_KHR_external_semaphore_fd.ImportSemaphoreFdInfoKHR', -- 'Vulkan.Extensions.VK_KHR_external_semaphore_win32.ImportSemaphoreWin32HandleInfoKHR', -- 'Vulkan.Extensions.VK_FUCHSIA_external_semaphore.ImportSemaphoreZirconHandleInfoFUCHSIA',@@ -837,6 +905,7 @@ -- 'Vulkan.Extensions.VK_FUCHSIA_external_memory.MemoryZirconHandlePropertiesFUCHSIA', -- 'Vulkan.Extensions.VK_EXT_metal_surface.MetalSurfaceCreateInfoEXT', -- 'Vulkan.Extensions.VK_EXT_sample_locations.MultisamplePropertiesEXT',+-- 'Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled.MultisampledRenderToSingleSampledInfoEXT', -- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.MultiviewPerViewAttributesInfoNVX', -- 'Vulkan.Extensions.VK_VALVE_mutable_descriptor_type.MutableDescriptorTypeCreateInfoVALVE', -- 'Vulkan.Extensions.VK_INTEL_performance_query.PerformanceConfigurationAcquireInfoINTEL',@@ -852,6 +921,8 @@ -- 'Vulkan.Extensions.VK_EXT_astc_decode_mode.PhysicalDeviceASTCDecodeFeaturesEXT', -- 'Vulkan.Extensions.VK_KHR_acceleration_structure.PhysicalDeviceAccelerationStructureFeaturesKHR', -- 'Vulkan.Extensions.VK_KHR_acceleration_structure.PhysicalDeviceAccelerationStructurePropertiesKHR',+-- 'Vulkan.Extensions.VK_SEC_amigo_profiling.PhysicalDeviceAmigoProfilingFeaturesSEC',+-- 'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_layout.PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT', -- 'Vulkan.Extensions.VK_EXT_blend_operation_advanced.PhysicalDeviceBlendOperationAdvancedFeaturesEXT', -- 'Vulkan.Extensions.VK_EXT_blend_operation_advanced.PhysicalDeviceBlendOperationAdvancedPropertiesEXT', -- 'Vulkan.Extensions.VK_EXT_border_color_swizzle.PhysicalDeviceBorderColorSwizzleFeaturesEXT',@@ -869,6 +940,7 @@ -- 'Vulkan.Extensions.VK_EXT_custom_border_color.PhysicalDeviceCustomBorderColorFeaturesEXT', -- 'Vulkan.Extensions.VK_EXT_custom_border_color.PhysicalDeviceCustomBorderColorPropertiesEXT', -- 'Vulkan.Extensions.VK_NV_dedicated_allocation_image_aliasing.PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV',+-- 'Vulkan.Extensions.VK_EXT_depth_clamp_zero_one.PhysicalDeviceDepthClampZeroOneFeaturesEXT', -- 'Vulkan.Extensions.VK_EXT_depth_clip_control.PhysicalDeviceDepthClipControlFeaturesEXT', -- 'Vulkan.Extensions.VK_EXT_depth_clip_enable.PhysicalDeviceDepthClipEnableFeaturesEXT', -- 'Vulkan.Core12.Promoted_From_VK_KHR_depth_stencil_resolve.PhysicalDeviceDepthStencilResolveProperties',@@ -900,7 +972,8 @@ -- 'Vulkan.Extensions.VK_QCOM_fragment_density_map_offset.PhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM', -- 'Vulkan.Extensions.VK_QCOM_fragment_density_map_offset.PhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM', -- 'Vulkan.Extensions.VK_EXT_fragment_density_map.PhysicalDeviceFragmentDensityMapPropertiesEXT',--- 'Vulkan.Extensions.VK_NV_fragment_shader_barycentric.PhysicalDeviceFragmentShaderBarycentricFeaturesNV',+-- 'Vulkan.Extensions.VK_KHR_fragment_shader_barycentric.PhysicalDeviceFragmentShaderBarycentricFeaturesKHR',+-- 'Vulkan.Extensions.VK_KHR_fragment_shader_barycentric.PhysicalDeviceFragmentShaderBarycentricPropertiesKHR', -- 'Vulkan.Extensions.VK_EXT_fragment_shader_interlock.PhysicalDeviceFragmentShaderInterlockFeaturesEXT', -- 'Vulkan.Extensions.VK_NV_fragment_shading_rate_enums.PhysicalDeviceFragmentShadingRateEnumsFeaturesNV', -- 'Vulkan.Extensions.VK_NV_fragment_shading_rate_enums.PhysicalDeviceFragmentShadingRateEnumsPropertiesNV',@@ -913,8 +986,13 @@ -- 'Vulkan.Core11.Promoted_From_VK_KHR_device_group_creation.PhysicalDeviceGroupProperties', -- 'Vulkan.Core12.Promoted_From_VK_EXT_host_query_reset.PhysicalDeviceHostQueryResetFeatures', -- 'Vulkan.Core11.Promoted_From_VK_KHR_external_memory_capabilities.PhysicalDeviceIDProperties',+-- 'Vulkan.Extensions.VK_EXT_image_2d_view_of_3d.PhysicalDeviceImage2DViewOf3DFeaturesEXT',+-- 'Vulkan.Extensions.VK_EXT_image_compression_control.PhysicalDeviceImageCompressionControlFeaturesEXT',+-- 'Vulkan.Extensions.VK_EXT_image_compression_control_swapchain.PhysicalDeviceImageCompressionControlSwapchainFeaturesEXT', -- 'Vulkan.Extensions.VK_EXT_image_drm_format_modifier.PhysicalDeviceImageDrmFormatModifierInfoEXT', -- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceImageFormatInfo2',+-- 'Vulkan.Extensions.VK_QCOM_image_processing.PhysicalDeviceImageProcessingFeaturesQCOM',+-- 'Vulkan.Extensions.VK_QCOM_image_processing.PhysicalDeviceImageProcessingPropertiesQCOM', -- 'Vulkan.Core13.Promoted_From_VK_EXT_image_robustness.PhysicalDeviceImageRobustnessFeatures', -- 'Vulkan.Extensions.VK_EXT_filter_cubic.PhysicalDeviceImageViewImageFormatInfoEXT', -- 'Vulkan.Extensions.VK_EXT_image_view_min_lod.PhysicalDeviceImageViewMinLodFeaturesEXT',@@ -933,20 +1011,27 @@ -- 'Vulkan.Extensions.VK_EXT_memory_budget.PhysicalDeviceMemoryBudgetPropertiesEXT', -- 'Vulkan.Extensions.VK_EXT_memory_priority.PhysicalDeviceMemoryPriorityFeaturesEXT', -- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceMemoryProperties2',+-- 'Vulkan.Extensions.VK_EXT_mesh_shader.PhysicalDeviceMeshShaderFeaturesEXT', -- 'Vulkan.Extensions.VK_NV_mesh_shader.PhysicalDeviceMeshShaderFeaturesNV',+-- 'Vulkan.Extensions.VK_EXT_mesh_shader.PhysicalDeviceMeshShaderPropertiesEXT', -- 'Vulkan.Extensions.VK_NV_mesh_shader.PhysicalDeviceMeshShaderPropertiesNV', -- 'Vulkan.Extensions.VK_EXT_multi_draw.PhysicalDeviceMultiDrawFeaturesEXT', -- 'Vulkan.Extensions.VK_EXT_multi_draw.PhysicalDeviceMultiDrawPropertiesEXT',+-- 'Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled.PhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT', -- 'Vulkan.Core11.Promoted_From_VK_KHR_multiview.PhysicalDeviceMultiviewFeatures', -- 'Vulkan.Extensions.VK_NVX_multiview_per_view_attributes.PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX', -- 'Vulkan.Core11.Promoted_From_VK_KHR_multiview.PhysicalDeviceMultiviewProperties', -- 'Vulkan.Extensions.VK_VALVE_mutable_descriptor_type.PhysicalDeviceMutableDescriptorTypeFeaturesVALVE',+-- 'Vulkan.Extensions.VK_EXT_non_seamless_cube_map.PhysicalDeviceNonSeamlessCubeMapFeaturesEXT', -- 'Vulkan.Extensions.VK_EXT_pci_bus_info.PhysicalDevicePCIBusInfoPropertiesEXT', -- 'Vulkan.Extensions.VK_EXT_pageable_device_local_memory.PhysicalDevicePageableDeviceLocalMemoryFeaturesEXT', -- 'Vulkan.Extensions.VK_KHR_performance_query.PhysicalDevicePerformanceQueryFeaturesKHR', -- 'Vulkan.Extensions.VK_KHR_performance_query.PhysicalDevicePerformanceQueryPropertiesKHR', -- 'Vulkan.Core13.Promoted_From_VK_EXT_pipeline_creation_cache_control.PhysicalDevicePipelineCreationCacheControlFeatures', -- 'Vulkan.Extensions.VK_KHR_pipeline_executable_properties.PhysicalDevicePipelineExecutablePropertiesFeaturesKHR',+-- 'Vulkan.Extensions.VK_EXT_pipeline_properties.PhysicalDevicePipelinePropertiesFeaturesEXT',+-- 'Vulkan.Extensions.VK_EXT_pipeline_robustness.PhysicalDevicePipelineRobustnessFeaturesEXT',+-- 'Vulkan.Extensions.VK_EXT_pipeline_robustness.PhysicalDevicePipelineRobustnessPropertiesEXT', -- 'Vulkan.Core11.Promoted_From_VK_KHR_maintenance2.PhysicalDevicePointClippingProperties', -- 'Vulkan.Extensions.VK_KHR_portability_subset.PhysicalDevicePortabilitySubsetFeaturesKHR', -- 'Vulkan.Extensions.VK_KHR_portability_subset.PhysicalDevicePortabilitySubsetPropertiesKHR',@@ -962,8 +1047,9 @@ -- 'Vulkan.Extensions.VK_EXT_provoking_vertex.PhysicalDeviceProvokingVertexPropertiesEXT', -- 'Vulkan.Extensions.VK_KHR_push_descriptor.PhysicalDevicePushDescriptorPropertiesKHR', -- 'Vulkan.Extensions.VK_EXT_rgba10x6_formats.PhysicalDeviceRGBA10X6FormatsFeaturesEXT',--- 'Vulkan.Extensions.VK_ARM_rasterization_order_attachment_access.PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM',+-- 'Vulkan.Extensions.VK_EXT_rasterization_order_attachment_access.PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT', -- 'Vulkan.Extensions.VK_KHR_ray_query.PhysicalDeviceRayQueryFeaturesKHR',+-- 'Vulkan.Extensions.VK_KHR_ray_tracing_maintenance1.PhysicalDeviceRayTracingMaintenance1FeaturesKHR', -- 'Vulkan.Extensions.VK_NV_ray_tracing_motion_blur.PhysicalDeviceRayTracingMotionBlurFeaturesNV', -- 'Vulkan.Extensions.VK_KHR_ray_tracing_pipeline.PhysicalDeviceRayTracingPipelineFeaturesKHR', -- 'Vulkan.Extensions.VK_KHR_ray_tracing_pipeline.PhysicalDeviceRayTracingPipelinePropertiesKHR',@@ -984,12 +1070,15 @@ -- 'Vulkan.Extensions.VK_AMD_shader_core_properties.PhysicalDeviceShaderCorePropertiesAMD', -- 'Vulkan.Core13.Promoted_From_VK_EXT_shader_demote_to_helper_invocation.PhysicalDeviceShaderDemoteToHelperInvocationFeatures', -- 'Vulkan.Core11.Promoted_From_VK_KHR_shader_draw_parameters.PhysicalDeviceShaderDrawParametersFeatures',+-- 'Vulkan.Extensions.VK_AMD_shader_early_and_late_fragment_tests.PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD', -- 'Vulkan.Core12.Promoted_From_VK_KHR_shader_float16_int8.PhysicalDeviceShaderFloat16Int8Features', -- 'Vulkan.Extensions.VK_EXT_shader_image_atomic_int64.PhysicalDeviceShaderImageAtomicInt64FeaturesEXT', -- 'Vulkan.Extensions.VK_NV_shader_image_footprint.PhysicalDeviceShaderImageFootprintFeaturesNV', -- 'Vulkan.Core13.Promoted_From_VK_KHR_shader_integer_dot_product.PhysicalDeviceShaderIntegerDotProductFeatures', -- 'Vulkan.Core13.Promoted_From_VK_KHR_shader_integer_dot_product.PhysicalDeviceShaderIntegerDotProductProperties', -- 'Vulkan.Extensions.VK_INTEL_shader_integer_functions2.PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL',+-- 'Vulkan.Extensions.VK_EXT_shader_module_identifier.PhysicalDeviceShaderModuleIdentifierFeaturesEXT',+-- 'Vulkan.Extensions.VK_EXT_shader_module_identifier.PhysicalDeviceShaderModuleIdentifierPropertiesEXT', -- 'Vulkan.Extensions.VK_NV_shader_sm_builtins.PhysicalDeviceShaderSMBuiltinsFeaturesNV', -- 'Vulkan.Extensions.VK_NV_shader_sm_builtins.PhysicalDeviceShaderSMBuiltinsPropertiesNV', -- 'Vulkan.Core12.Promoted_From_VK_KHR_shader_subgroup_extended_types.PhysicalDeviceShaderSubgroupExtendedTypesFeatures',@@ -1001,6 +1090,7 @@ -- 'Vulkan.Core11.Originally_Based_On_VK_KHR_subgroup.PhysicalDeviceSubgroupProperties', -- 'Vulkan.Core13.Promoted_From_VK_EXT_subgroup_size_control.PhysicalDeviceSubgroupSizeControlFeatures', -- 'Vulkan.Core13.Promoted_From_VK_EXT_subgroup_size_control.PhysicalDeviceSubgroupSizeControlProperties',+-- 'Vulkan.Extensions.VK_EXT_subpass_merge_feedback.PhysicalDeviceSubpassMergeFeedbackFeaturesEXT', -- 'Vulkan.Extensions.VK_HUAWEI_subpass_shading.PhysicalDeviceSubpassShadingFeaturesHUAWEI', -- 'Vulkan.Extensions.VK_HUAWEI_subpass_shading.PhysicalDeviceSubpassShadingPropertiesHUAWEI', -- 'Vulkan.Extensions.VK_KHR_get_surface_capabilities2.PhysicalDeviceSurfaceInfo2KHR',@@ -1008,6 +1098,7 @@ -- 'Vulkan.Extensions.VK_EXT_texel_buffer_alignment.PhysicalDeviceTexelBufferAlignmentFeaturesEXT', -- 'Vulkan.Core13.Promoted_From_VK_EXT_texel_buffer_alignment.PhysicalDeviceTexelBufferAlignmentProperties', -- 'Vulkan.Core13.Promoted_From_VK_EXT_texture_compression_astc_hdr.PhysicalDeviceTextureCompressionASTCHDRFeatures',+-- 'Vulkan.Extensions.VK_QCOM_tile_properties.PhysicalDeviceTilePropertiesFeaturesQCOM', -- 'Vulkan.Core12.Promoted_From_VK_KHR_timeline_semaphore.PhysicalDeviceTimelineSemaphoreFeatures', -- 'Vulkan.Core12.Promoted_From_VK_KHR_timeline_semaphore.PhysicalDeviceTimelineSemaphoreProperties', -- 'Vulkan.Core13.Promoted_From_VK_EXT_tooling_info.PhysicalDeviceToolProperties',@@ -1053,6 +1144,7 @@ -- 'Vulkan.Core10.PipelineLayout.PipelineLayoutCreateInfo', -- 'Vulkan.Extensions.VK_KHR_pipeline_library.PipelineLibraryCreateInfoKHR', -- 'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo',+-- 'Vulkan.Extensions.VK_EXT_pipeline_properties.PipelinePropertiesIdentifierEXT', -- 'Vulkan.Extensions.VK_EXT_conservative_rasterization.PipelineRasterizationConservativeStateCreateInfoEXT', -- 'Vulkan.Extensions.VK_EXT_depth_clip_enable.PipelineRasterizationDepthClipStateCreateInfoEXT', -- 'Vulkan.Extensions.VK_EXT_line_rasterization.PipelineRasterizationLineStateCreateInfoEXT',@@ -1062,8 +1154,10 @@ -- 'Vulkan.Extensions.VK_EXT_transform_feedback.PipelineRasterizationStateStreamCreateInfoEXT', -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo', -- 'Vulkan.Extensions.VK_NV_representative_fragment_test.PipelineRepresentativeFragmentTestStateCreateInfoNV',+-- 'Vulkan.Extensions.VK_EXT_pipeline_robustness.PipelineRobustnessCreateInfoEXT', -- 'Vulkan.Extensions.VK_EXT_sample_locations.PipelineSampleLocationsStateCreateInfoEXT', -- 'Vulkan.Core10.Pipeline.PipelineShaderStageCreateInfo',+-- 'Vulkan.Extensions.VK_EXT_shader_module_identifier.PipelineShaderStageModuleIdentifierCreateInfoEXT', -- 'Vulkan.Core13.Promoted_From_VK_EXT_subgroup_size_control.PipelineShaderStageRequiredSubgroupSizeCreateInfo', -- 'Vulkan.Core11.Promoted_From_VK_KHR_maintenance2.PipelineTessellationDomainOriginStateCreateInfo', -- 'Vulkan.Core10.Pipeline.PipelineTessellationStateCreateInfo',@@ -1090,7 +1184,8 @@ -- 'Vulkan.Extensions.VK_NV_device_diagnostic_checkpoints.QueueFamilyCheckpointPropertiesNV', -- 'Vulkan.Extensions.VK_KHR_global_priority.QueueFamilyGlobalPriorityPropertiesKHR', -- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.QueueFamilyProperties2',--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFamilyQueryResultStatusProperties2KHR VkQueueFamilyQueryResultStatusProperties2KHR>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFamilyQueryResultStatusPropertiesKHR VkQueueFamilyQueryResultStatusPropertiesKHR>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFamilyVideoPropertiesKHR VkQueueFamilyVideoPropertiesKHR>, -- 'Vulkan.Extensions.VK_KHR_ray_tracing_pipeline.RayTracingPipelineCreateInfoKHR', -- 'Vulkan.Extensions.VK_NV_ray_tracing.RayTracingPipelineCreateInfoNV', -- 'Vulkan.Extensions.VK_KHR_ray_tracing_pipeline.RayTracingPipelineInterfaceCreateInfoKHR',@@ -1100,10 +1195,13 @@ -- 'Vulkan.Core10.CommandBufferBuilding.RenderPassBeginInfo', -- 'Vulkan.Core10.Pass.RenderPassCreateInfo', -- 'Vulkan.Core12.Promoted_From_VK_KHR_create_renderpass2.RenderPassCreateInfo2',+-- 'Vulkan.Extensions.VK_EXT_subpass_merge_feedback.RenderPassCreationControlEXT',+-- 'Vulkan.Extensions.VK_EXT_subpass_merge_feedback.RenderPassCreationFeedbackCreateInfoEXT', -- 'Vulkan.Extensions.VK_EXT_fragment_density_map.RenderPassFragmentDensityMapCreateInfoEXT', -- 'Vulkan.Core11.Promoted_From_VK_KHR_maintenance2.RenderPassInputAttachmentAspectCreateInfo', -- 'Vulkan.Core11.Promoted_From_VK_KHR_multiview.RenderPassMultiviewCreateInfo', -- 'Vulkan.Extensions.VK_EXT_sample_locations.RenderPassSampleLocationsBeginInfoEXT',+-- 'Vulkan.Extensions.VK_EXT_subpass_merge_feedback.RenderPassSubpassFeedbackCreateInfoEXT', -- 'Vulkan.Extensions.VK_QCOM_render_pass_transform.RenderPassTransformBeginInfoQCOM', -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingAttachmentInfo', -- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingFragmentDensityMapAttachmentInfoEXT',@@ -1128,6 +1226,7 @@ -- 'Vulkan.Core12.Promoted_From_VK_KHR_timeline_semaphore.SemaphoreTypeCreateInfo', -- 'Vulkan.Core12.Promoted_From_VK_KHR_timeline_semaphore.SemaphoreWaitInfo', -- 'Vulkan.Core10.Shader.ShaderModuleCreateInfo',+-- 'Vulkan.Extensions.VK_EXT_shader_module_identifier.ShaderModuleIdentifierEXT', -- 'Vulkan.Extensions.VK_EXT_validation_cache.ShaderModuleValidationCacheCreateInfoEXT', -- 'Vulkan.Extensions.VK_KHR_shared_presentable_image.SharedPresentSurfaceCapabilitiesKHR', -- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.SparseImageFormatProperties2',@@ -1141,7 +1240,9 @@ -- 'Vulkan.Core12.Promoted_From_VK_KHR_depth_stencil_resolve.SubpassDescriptionDepthStencilResolve', -- 'Vulkan.Core12.Promoted_From_VK_KHR_create_renderpass2.SubpassEndInfo', -- 'Vulkan.Extensions.VK_QCOM_fragment_density_map_offset.SubpassFragmentDensityMapOffsetEndInfoQCOM',+-- 'Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled.SubpassResolvePerformanceQueryEXT', -- 'Vulkan.Extensions.VK_HUAWEI_subpass_shading.SubpassShadingPipelineCreateInfoHUAWEI',+-- 'Vulkan.Extensions.VK_EXT_image_compression_control.SubresourceLayout2EXT', -- 'Vulkan.Extensions.VK_EXT_display_surface_counter.SurfaceCapabilities2EXT', -- 'Vulkan.Extensions.VK_KHR_get_surface_capabilities2.SurfaceCapabilities2KHR', -- 'Vulkan.Extensions.VK_EXT_full_screen_exclusive.SurfaceCapabilitiesFullScreenExclusiveEXT',@@ -1154,6 +1255,7 @@ -- 'Vulkan.Extensions.VK_AMD_display_native_hdr.SwapchainDisplayNativeHdrCreateInfoAMD', -- 'Vulkan.Extensions.VK_FUCHSIA_buffer_collection.SysmemColorSpaceFUCHSIA', -- 'Vulkan.Extensions.VK_AMD_texture_gather_bias_lod.TextureLODGatherFormatPropertiesAMD',+-- 'Vulkan.Extensions.VK_QCOM_tile_properties.TilePropertiesQCOM', -- 'Vulkan.Core12.Promoted_From_VK_KHR_timeline_semaphore.TimelineSemaphoreSubmitInfo', -- 'Vulkan.Extensions.VK_EXT_validation_cache.ValidationCacheCreateInfoEXT', -- 'Vulkan.Extensions.VK_EXT_validation_features.ValidationFeaturesEXT',@@ -1162,59 +1264,59 @@ -- 'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.VertexInputBindingDescription2EXT', -- 'Vulkan.Extensions.VK_NN_vi_surface.ViSurfaceCreateInfoNN', -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoBeginCodingInfoKHR VkVideoBeginCodingInfoKHR>,--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoBindMemoryKHR VkVideoBindMemoryKHR>, -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoCapabilitiesKHR VkVideoCapabilitiesKHR>, -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoCodingControlInfoKHR VkVideoCodingControlInfoKHR>, -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoDecodeCapabilitiesKHR VkVideoDecodeCapabilitiesKHR>, -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoDecodeH264CapabilitiesEXT VkVideoDecodeH264CapabilitiesEXT>, -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoDecodeH264DpbSlotInfoEXT VkVideoDecodeH264DpbSlotInfoEXT>,--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoDecodeH264MvcEXT VkVideoDecodeH264MvcEXT>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoDecodeH264MvcInfoEXT VkVideoDecodeH264MvcInfoEXT>, -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoDecodeH264PictureInfoEXT VkVideoDecodeH264PictureInfoEXT>,--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoDecodeH264ProfileEXT VkVideoDecodeH264ProfileEXT>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoDecodeH264ProfileInfoEXT VkVideoDecodeH264ProfileInfoEXT>, -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoDecodeH264SessionParametersAddInfoEXT VkVideoDecodeH264SessionParametersAddInfoEXT>, -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoDecodeH264SessionParametersCreateInfoEXT VkVideoDecodeH264SessionParametersCreateInfoEXT>, -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoDecodeH265CapabilitiesEXT VkVideoDecodeH265CapabilitiesEXT>, -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoDecodeH265DpbSlotInfoEXT VkVideoDecodeH265DpbSlotInfoEXT>, -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoDecodeH265PictureInfoEXT VkVideoDecodeH265PictureInfoEXT>,--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoDecodeH265ProfileEXT VkVideoDecodeH265ProfileEXT>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoDecodeH265ProfileInfoEXT VkVideoDecodeH265ProfileInfoEXT>, -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoDecodeH265SessionParametersAddInfoEXT VkVideoDecodeH265SessionParametersAddInfoEXT>, -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoDecodeH265SessionParametersCreateInfoEXT VkVideoDecodeH265SessionParametersCreateInfoEXT>, -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoDecodeInfoKHR VkVideoDecodeInfoKHR>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoDecodeUsageInfoKHR VkVideoDecodeUsageInfoKHR>, -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeCapabilitiesKHR VkVideoEncodeCapabilitiesKHR>, -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH264CapabilitiesEXT VkVideoEncodeH264CapabilitiesEXT>, -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH264DpbSlotInfoEXT VkVideoEncodeH264DpbSlotInfoEXT>,--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH264EmitPictureParametersEXT VkVideoEncodeH264EmitPictureParametersEXT>,--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH264NaluSliceEXT VkVideoEncodeH264NaluSliceEXT>,--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH264ProfileEXT VkVideoEncodeH264ProfileEXT>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH264EmitPictureParametersInfoEXT VkVideoEncodeH264EmitPictureParametersInfoEXT>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH264NaluSliceInfoEXT VkVideoEncodeH264NaluSliceInfoEXT>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH264ProfileInfoEXT VkVideoEncodeH264ProfileInfoEXT>, -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH264RateControlInfoEXT VkVideoEncodeH264RateControlInfoEXT>, -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH264RateControlLayerInfoEXT VkVideoEncodeH264RateControlLayerInfoEXT>,--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH264ReferenceListsEXT VkVideoEncodeH264ReferenceListsEXT>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH264ReferenceListsInfoEXT VkVideoEncodeH264ReferenceListsInfoEXT>, -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH264SessionParametersAddInfoEXT VkVideoEncodeH264SessionParametersAddInfoEXT>, -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH264SessionParametersCreateInfoEXT VkVideoEncodeH264SessionParametersCreateInfoEXT>, -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH264VclFrameInfoEXT VkVideoEncodeH264VclFrameInfoEXT>, -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH265CapabilitiesEXT VkVideoEncodeH265CapabilitiesEXT>, -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH265DpbSlotInfoEXT VkVideoEncodeH265DpbSlotInfoEXT>,--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH265EmitPictureParametersEXT VkVideoEncodeH265EmitPictureParametersEXT>,--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH265NaluSliceSegmentEXT VkVideoEncodeH265NaluSliceSegmentEXT>,--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH265ProfileEXT VkVideoEncodeH265ProfileEXT>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH265EmitPictureParametersInfoEXT VkVideoEncodeH265EmitPictureParametersInfoEXT>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH265NaluSliceSegmentInfoEXT VkVideoEncodeH265NaluSliceSegmentInfoEXT>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH265ProfileInfoEXT VkVideoEncodeH265ProfileInfoEXT>, -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH265RateControlInfoEXT VkVideoEncodeH265RateControlInfoEXT>, -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH265RateControlLayerInfoEXT VkVideoEncodeH265RateControlLayerInfoEXT>,--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH265ReferenceListsEXT VkVideoEncodeH265ReferenceListsEXT>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH265ReferenceListsInfoEXT VkVideoEncodeH265ReferenceListsInfoEXT>, -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH265SessionParametersAddInfoEXT VkVideoEncodeH265SessionParametersAddInfoEXT>, -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH265SessionParametersCreateInfoEXT VkVideoEncodeH265SessionParametersCreateInfoEXT>, -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH265VclFrameInfoEXT VkVideoEncodeH265VclFrameInfoEXT>, -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeInfoKHR VkVideoEncodeInfoKHR>, -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeRateControlInfoKHR VkVideoEncodeRateControlInfoKHR>, -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeRateControlLayerInfoKHR VkVideoEncodeRateControlLayerInfoKHR>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeUsageInfoKHR VkVideoEncodeUsageInfoKHR>, -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEndCodingInfoKHR VkVideoEndCodingInfoKHR>, -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoFormatPropertiesKHR VkVideoFormatPropertiesKHR>,--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoGetMemoryPropertiesKHR VkVideoGetMemoryPropertiesKHR>,--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoPictureResourceKHR VkVideoPictureResourceKHR>,--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoProfileKHR VkVideoProfileKHR>,--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoProfilesKHR VkVideoProfilesKHR>,--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoQueueFamilyProperties2KHR VkVideoQueueFamilyProperties2KHR>,--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoReferenceSlotKHR VkVideoReferenceSlotKHR>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoPictureResourceInfoKHR VkVideoPictureResourceInfoKHR>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoProfileInfoKHR VkVideoProfileInfoKHR>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoProfileListInfoKHR VkVideoProfileListInfoKHR>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoReferenceSlotInfoKHR VkVideoReferenceSlotInfoKHR>, -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoSessionCreateInfoKHR VkVideoSessionCreateInfoKHR>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoSessionMemoryRequirementsKHR VkVideoSessionMemoryRequirementsKHR>, -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoSessionParametersCreateInfoKHR VkVideoSessionParametersCreateInfoKHR>, -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoSessionParametersUpdateInfoKHR VkVideoSessionParametersUpdateInfoKHR>, -- 'Vulkan.Extensions.VK_KHR_wayland_surface.WaylandSurfaceCreateInfoKHR',@@ -1328,6 +1430,40 @@ pattern STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO = StructureType 47 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO" pattern STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO = StructureType 48+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_AMIGO_PROFILING_SUBMIT_INFO_SEC"+pattern STRUCTURE_TYPE_AMIGO_PROFILING_SUBMIT_INFO_SEC = StructureType 1000485001+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_AMIGO_PROFILING_FEATURES_SEC"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_AMIGO_PROFILING_FEATURES_SEC = StructureType 1000485000+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_TILE_PROPERTIES_QCOM"+pattern STRUCTURE_TYPE_TILE_PROPERTIES_QCOM = StructureType 1000484001+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TILE_PROPERTIES_FEATURES_QCOM"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_TILE_PROPERTIES_FEATURES_QCOM = StructureType 1000484000+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_EXT"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_EXT = StructureType 1000342000+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SHADER_MODULE_IDENTIFIER_EXT"+pattern STRUCTURE_TYPE_SHADER_MODULE_IDENTIFIER_EXT = StructureType 1000462003+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_MODULE_IDENTIFIER_CREATE_INFO_EXT"+pattern STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_MODULE_IDENTIFIER_CREATE_INFO_EXT = StructureType 1000462002+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_PROPERTIES_EXT"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_PROPERTIES_EXT = StructureType 1000462001+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_FEATURES_EXT"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_FEATURES_EXT = StructureType 1000462000+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_RENDER_PASS_SUBPASS_FEEDBACK_CREATE_INFO_EXT"+pattern STRUCTURE_TYPE_RENDER_PASS_SUBPASS_FEEDBACK_CREATE_INFO_EXT = StructureType 1000458003+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_RENDER_PASS_CREATION_FEEDBACK_CREATE_INFO_EXT"+pattern STRUCTURE_TYPE_RENDER_PASS_CREATION_FEEDBACK_CREATE_INFO_EXT = StructureType 1000458002+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_RENDER_PASS_CREATION_CONTROL_EXT"+pattern STRUCTURE_TYPE_RENDER_PASS_CREATION_CONTROL_EXT = StructureType 1000458001+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_MERGE_FEEDBACK_FEATURES_EXT"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_MERGE_FEEDBACK_FEATURES_EXT = StructureType 1000458000+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMAGE_VIEW_SAMPLE_WEIGHT_CREATE_INFO_QCOM"+pattern STRUCTURE_TYPE_IMAGE_VIEW_SAMPLE_WEIGHT_CREATE_INFO_QCOM = StructureType 1000440002+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_PROPERTIES_QCOM"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_PROPERTIES_QCOM = StructureType 1000440001+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_FEATURES_QCOM"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_FEATURES_QCOM = StructureType 1000440000+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_FEATURES_EXT"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_FEATURES_EXT = StructureType 1000437000 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINEAR_COLOR_ATTACHMENT_FEATURES_NV" pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_LINEAR_COLOR_ATTACHMENT_FEATURES_NV = StructureType 1000430000 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SUBPASS_FRAGMENT_DENSITY_MAP_OFFSET_END_INFO_QCOM"@@ -1336,6 +1472,10 @@ pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_PROPERTIES_QCOM = StructureType 1000425001 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_FEATURES_QCOM" pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_FEATURES_QCOM = StructureType 1000425000+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_NON_SEAMLESS_CUBE_MAP_FEATURES_EXT"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_NON_SEAMLESS_CUBE_MAP_FEATURES_EXT = StructureType 1000422000+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLAMP_ZERO_ONE_FEATURES_EXT"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLAMP_ZERO_ONE_FEATURES_EXT = StructureType 1000421000 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_HOST_MAPPING_INFO_VALVE" pattern STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_HOST_MAPPING_INFO_VALVE = StructureType 1000420002 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DESCRIPTOR_SET_BINDING_REFERENCE_VALVE"@@ -1348,6 +1488,8 @@ pattern STRUCTURE_TYPE_SAMPLER_BORDER_COLOR_COMPONENT_MAPPING_CREATE_INFO_EXT = StructureType 1000411001 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BORDER_COLOR_SWIZZLE_FEATURES_EXT" pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_BORDER_COLOR_SWIZZLE_FEATURES_EXT = StructureType 1000411000+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_2D_VIEW_OF_3D_FEATURES_EXT"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_2D_VIEW_OF_3D_FEATURES_EXT = StructureType 1000393000 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_PROPERTIES_EXT" pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_PROPERTIES_EXT = StructureType 1000392001 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_FEATURES_EXT"@@ -1356,6 +1498,8 @@ pattern STRUCTURE_TYPE_IMAGE_VIEW_MIN_LOD_CREATE_INFO_EXT = StructureType 1000391001 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_MIN_LOD_FEATURES_EXT" pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_MIN_LOD_FEATURES_EXT = StructureType 1000391000+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MAINTENANCE_1_FEATURES_KHR"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MAINTENANCE_1_FEATURES_KHR = StructureType 1000386000 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVES_GENERATED_QUERY_FEATURES_EXT" pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVES_GENERATED_QUERY_FEATURES_EXT = StructureType 1000382000 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_COLOR_WRITE_CREATE_INFO_EXT"@@ -1366,6 +1510,16 @@ pattern STRUCTURE_TYPE_SCREEN_SURFACE_CREATE_INFO_QNX = StructureType 1000378000 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT" pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT = StructureType 1000377000+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_INFO_EXT"+pattern STRUCTURE_TYPE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_INFO_EXT = StructureType 1000376002+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SUBPASS_RESOLVE_PERFORMANCE_QUERY_EXT"+pattern STRUCTURE_TYPE_SUBPASS_RESOLVE_PERFORMANCE_QUERY_EXT = StructureType 1000376001+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_FEATURES_EXT"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_FEATURES_EXT = StructureType 1000376000+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROPERTIES_FEATURES_EXT"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROPERTIES_FEATURES_EXT = StructureType 1000372001+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_PROPERTIES_IDENTIFIER_EXT"+pattern STRUCTURE_TYPE_PIPELINE_PROPERTIES_IDENTIFIER_EXT = StructureType 1000372000 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_RDMA_FEATURES_NV" pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_RDMA_FEATURES_NV = StructureType 1000371001 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_MEMORY_GET_REMOTE_ADDRESS_INFO_NV"@@ -1430,10 +1584,20 @@ pattern STRUCTURE_TYPE_DIRECTFB_SURFACE_CREATE_INFO_EXT = StructureType 1000346000 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RGBA10X6_FORMATS_FEATURES_EXT" pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_RGBA10X6_FORMATS_FEATURES_EXT = StructureType 1000344000--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_ARM"-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_ARM = StructureType 1000342000 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT" pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT = StructureType 1000340000+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_FEATURES_EXT"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_FEATURES_EXT = StructureType 1000339000+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_PROPERTIES_EXT"+pattern STRUCTURE_TYPE_IMAGE_COMPRESSION_PROPERTIES_EXT = StructureType 1000338004+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2_EXT"+pattern STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2_EXT = StructureType 1000338003+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2_EXT"+pattern STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2_EXT = StructureType 1000338002+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_CONTROL_EXT"+pattern STRUCTURE_TYPE_IMAGE_COMPRESSION_CONTROL_EXT = StructureType 1000338001+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_FEATURES_EXT"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_FEATURES_EXT = StructureType 1000338000 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR" pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR = StructureType 1000336000 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_COPY_COMMAND_TRANSFORM_INFO_QCOM"@@ -1444,6 +1608,10 @@ pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT = StructureType 1000332000 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT" pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT = StructureType 1000330000+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_EXT"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_EXT = StructureType 1000328001+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_EXT"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_EXT = StructureType 1000328000 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MOTION_INFO_NV" pattern STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MOTION_INFO_NV = StructureType 1000327002 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MOTION_BLUR_FEATURES_NV"@@ -1458,6 +1626,12 @@ pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_PROPERTIES_NV = StructureType 1000326000 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_FEATURES_KHR" pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_FEATURES_KHR = StructureType 1000323000+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_PROPERTIES_KHR"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_PROPERTIES_KHR = StructureType 1000322000+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_KHR"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_KHR = StructureType 1000203000+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_FEATURES_AMD"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_FEATURES_AMD = StructureType 1000321000 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_LIBRARY_CREATE_INFO_EXT" pattern STRUCTURE_TYPE_GRAPHICS_PIPELINE_LIBRARY_CREATE_INFO_EXT = StructureType 1000320002 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_PROPERTIES_EXT"@@ -1468,6 +1642,30 @@ pattern STRUCTURE_TYPE_CHECKPOINT_DATA_2_NV = StructureType 1000314009 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV" pattern STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV = StructureType 1000314008+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMPORT_METAL_SHARED_EVENT_INFO_EXT"+pattern STRUCTURE_TYPE_IMPORT_METAL_SHARED_EVENT_INFO_EXT = StructureType 1000311011+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_EXPORT_METAL_SHARED_EVENT_INFO_EXT"+pattern STRUCTURE_TYPE_EXPORT_METAL_SHARED_EVENT_INFO_EXT = StructureType 1000311010+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMPORT_METAL_IO_SURFACE_INFO_EXT"+pattern STRUCTURE_TYPE_IMPORT_METAL_IO_SURFACE_INFO_EXT = StructureType 1000311009+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_EXPORT_METAL_IO_SURFACE_INFO_EXT"+pattern STRUCTURE_TYPE_EXPORT_METAL_IO_SURFACE_INFO_EXT = StructureType 1000311008+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMPORT_METAL_TEXTURE_INFO_EXT"+pattern STRUCTURE_TYPE_IMPORT_METAL_TEXTURE_INFO_EXT = StructureType 1000311007+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_EXPORT_METAL_TEXTURE_INFO_EXT"+pattern STRUCTURE_TYPE_EXPORT_METAL_TEXTURE_INFO_EXT = StructureType 1000311006+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMPORT_METAL_BUFFER_INFO_EXT"+pattern STRUCTURE_TYPE_IMPORT_METAL_BUFFER_INFO_EXT = StructureType 1000311005+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_EXPORT_METAL_BUFFER_INFO_EXT"+pattern STRUCTURE_TYPE_EXPORT_METAL_BUFFER_INFO_EXT = StructureType 1000311004+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_EXPORT_METAL_COMMAND_QUEUE_INFO_EXT"+pattern STRUCTURE_TYPE_EXPORT_METAL_COMMAND_QUEUE_INFO_EXT = StructureType 1000311003+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_EXPORT_METAL_DEVICE_INFO_EXT"+pattern STRUCTURE_TYPE_EXPORT_METAL_DEVICE_INFO_EXT = StructureType 1000311002+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_EXPORT_METAL_OBJECTS_INFO_EXT"+pattern STRUCTURE_TYPE_EXPORT_METAL_OBJECTS_INFO_EXT = StructureType 1000311001+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_EXPORT_METAL_OBJECT_CREATE_INFO_EXT"+pattern STRUCTURE_TYPE_EXPORT_METAL_OBJECT_CREATE_INFO_EXT = StructureType 1000311000 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV" pattern STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV = StructureType 1000300001 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV"@@ -1650,8 +1848,6 @@ pattern STRUCTURE_TYPE_PIPELINE_VIEWPORT_EXCLUSIVE_SCISSOR_STATE_CREATE_INFO_NV = StructureType 1000205000 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_FOOTPRINT_FEATURES_NV" pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_FOOTPRINT_FEATURES_NV = StructureType 1000204000--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_NV"-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_NV = StructureType 1000203000 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV" pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV = StructureType 1000202001 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV"@@ -1952,6 +2148,12 @@ pattern STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR = StructureType 1000073001 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR" pattern STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR = StructureType 1000073000+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_PROPERTIES_EXT"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_PROPERTIES_EXT = StructureType 1000068002+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_FEATURES_EXT"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_FEATURES_EXT = StructureType 1000068001+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_ROBUSTNESS_CREATE_INFO_EXT"+pattern STRUCTURE_TYPE_PIPELINE_ROBUSTNESS_CREATE_INFO_EXT = StructureType 1000068000 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT" pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT = StructureType 1000067001 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMAGE_VIEW_ASTC_DECODE_MODE_EXT"@@ -2431,25 +2633,51 @@ STRUCTURE_TYPE_MEMORY_BARRIER, STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO, STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO,+ STRUCTURE_TYPE_AMIGO_PROFILING_SUBMIT_INFO_SEC,+ STRUCTURE_TYPE_PHYSICAL_DEVICE_AMIGO_PROFILING_FEATURES_SEC,+ STRUCTURE_TYPE_TILE_PROPERTIES_QCOM,+ STRUCTURE_TYPE_PHYSICAL_DEVICE_TILE_PROPERTIES_FEATURES_QCOM,+ STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_EXT,+ STRUCTURE_TYPE_SHADER_MODULE_IDENTIFIER_EXT,+ STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_MODULE_IDENTIFIER_CREATE_INFO_EXT,+ STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_PROPERTIES_EXT,+ STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_FEATURES_EXT,+ STRUCTURE_TYPE_RENDER_PASS_SUBPASS_FEEDBACK_CREATE_INFO_EXT,+ STRUCTURE_TYPE_RENDER_PASS_CREATION_FEEDBACK_CREATE_INFO_EXT,+ STRUCTURE_TYPE_RENDER_PASS_CREATION_CONTROL_EXT,+ STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_MERGE_FEEDBACK_FEATURES_EXT,+ STRUCTURE_TYPE_IMAGE_VIEW_SAMPLE_WEIGHT_CREATE_INFO_QCOM,+ STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_PROPERTIES_QCOM,+ STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_FEATURES_QCOM,+ STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_FEATURES_EXT, STRUCTURE_TYPE_PHYSICAL_DEVICE_LINEAR_COLOR_ATTACHMENT_FEATURES_NV, STRUCTURE_TYPE_SUBPASS_FRAGMENT_DENSITY_MAP_OFFSET_END_INFO_QCOM, STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_PROPERTIES_QCOM, STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_FEATURES_QCOM,+ STRUCTURE_TYPE_PHYSICAL_DEVICE_NON_SEAMLESS_CUBE_MAP_FEATURES_EXT,+ STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLAMP_ZERO_ONE_FEATURES_EXT, STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_HOST_MAPPING_INFO_VALVE, STRUCTURE_TYPE_DESCRIPTOR_SET_BINDING_REFERENCE_VALVE, STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_SET_HOST_MAPPING_FEATURES_VALVE, STRUCTURE_TYPE_PHYSICAL_DEVICE_PAGEABLE_DEVICE_LOCAL_MEMORY_FEATURES_EXT, STRUCTURE_TYPE_SAMPLER_BORDER_COLOR_COMPONENT_MAPPING_CREATE_INFO_EXT, STRUCTURE_TYPE_PHYSICAL_DEVICE_BORDER_COLOR_SWIZZLE_FEATURES_EXT,+ STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_2D_VIEW_OF_3D_FEATURES_EXT, STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_PROPERTIES_EXT, STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_FEATURES_EXT, STRUCTURE_TYPE_IMAGE_VIEW_MIN_LOD_CREATE_INFO_EXT, STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_MIN_LOD_FEATURES_EXT,+ STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MAINTENANCE_1_FEATURES_KHR, STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVES_GENERATED_QUERY_FEATURES_EXT, STRUCTURE_TYPE_PIPELINE_COLOR_WRITE_CREATE_INFO_EXT, STRUCTURE_TYPE_PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT, STRUCTURE_TYPE_SCREEN_SURFACE_CREATE_INFO_QNX, STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT,+ STRUCTURE_TYPE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_INFO_EXT,+ STRUCTURE_TYPE_SUBPASS_RESOLVE_PERFORMANCE_QUERY_EXT,+ STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_FEATURES_EXT,+ STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROPERTIES_FEATURES_EXT,+ STRUCTURE_TYPE_PIPELINE_PROPERTIES_IDENTIFIER_EXT, STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_RDMA_FEATURES_NV, STRUCTURE_TYPE_MEMORY_GET_REMOTE_ADDRESS_INFO_NV, STRUCTURE_TYPE_PHYSICAL_DEVICE_INVOCATION_MASK_FEATURES_HUAWEI,@@ -2482,13 +2710,20 @@ STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_VALVE, STRUCTURE_TYPE_DIRECTFB_SURFACE_CREATE_INFO_EXT, STRUCTURE_TYPE_PHYSICAL_DEVICE_RGBA10X6_FORMATS_FEATURES_EXT,- STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_ARM, STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT,+ STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_FEATURES_EXT,+ STRUCTURE_TYPE_IMAGE_COMPRESSION_PROPERTIES_EXT,+ STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2_EXT,+ STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2_EXT,+ STRUCTURE_TYPE_IMAGE_COMPRESSION_CONTROL_EXT,+ STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_FEATURES_EXT, STRUCTURE_TYPE_PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR, STRUCTURE_TYPE_COPY_COMMAND_TRANSFORM_INFO_QCOM, STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT, STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT, STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT,+ STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_EXT,+ STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_EXT, STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MOTION_INFO_NV, STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MOTION_BLUR_FEATURES_NV, STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_MOTION_TRIANGLES_DATA_NV,@@ -2496,11 +2731,26 @@ STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_FEATURES_NV, STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_PROPERTIES_NV, STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_FEATURES_KHR,+ STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_PROPERTIES_KHR,+ STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_KHR,+ STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_FEATURES_AMD, STRUCTURE_TYPE_GRAPHICS_PIPELINE_LIBRARY_CREATE_INFO_EXT, STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_PROPERTIES_EXT, STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_FEATURES_EXT, STRUCTURE_TYPE_CHECKPOINT_DATA_2_NV, STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV,+ STRUCTURE_TYPE_IMPORT_METAL_SHARED_EVENT_INFO_EXT,+ STRUCTURE_TYPE_EXPORT_METAL_SHARED_EVENT_INFO_EXT,+ STRUCTURE_TYPE_IMPORT_METAL_IO_SURFACE_INFO_EXT,+ STRUCTURE_TYPE_EXPORT_METAL_IO_SURFACE_INFO_EXT,+ STRUCTURE_TYPE_IMPORT_METAL_TEXTURE_INFO_EXT,+ STRUCTURE_TYPE_EXPORT_METAL_TEXTURE_INFO_EXT,+ STRUCTURE_TYPE_IMPORT_METAL_BUFFER_INFO_EXT,+ STRUCTURE_TYPE_EXPORT_METAL_BUFFER_INFO_EXT,+ STRUCTURE_TYPE_EXPORT_METAL_COMMAND_QUEUE_INFO_EXT,+ STRUCTURE_TYPE_EXPORT_METAL_DEVICE_INFO_EXT,+ STRUCTURE_TYPE_EXPORT_METAL_OBJECTS_INFO_EXT,+ STRUCTURE_TYPE_EXPORT_METAL_OBJECT_CREATE_INFO_EXT, STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV, STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV, STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR,@@ -2592,7 +2842,6 @@ STRUCTURE_TYPE_PHYSICAL_DEVICE_EXCLUSIVE_SCISSOR_FEATURES_NV, STRUCTURE_TYPE_PIPELINE_VIEWPORT_EXCLUSIVE_SCISSOR_STATE_CREATE_INFO_NV, STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_FOOTPRINT_FEATURES_NV,- STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_NV, STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV, STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV, STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV,@@ -2743,6 +2992,9 @@ STRUCTURE_TYPE_MEMORY_WIN32_HANDLE_PROPERTIES_KHR, STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR, STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR,+ STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_PROPERTIES_EXT,+ STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_FEATURES_EXT,+ STRUCTURE_TYPE_PIPELINE_ROBUSTNESS_CREATE_INFO_EXT, STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT, STRUCTURE_TYPE_IMAGE_VIEW_ASTC_DECODE_MODE_EXT, STRUCTURE_TYPE_VI_SURFACE_CREATE_INFO_NN,@@ -3016,6 +3268,37 @@ , (STRUCTURE_TYPE_MEMORY_BARRIER , "MEMORY_BARRIER") , (STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO , "LOADER_INSTANCE_CREATE_INFO") , (STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO , "LOADER_DEVICE_CREATE_INFO")+ , (STRUCTURE_TYPE_AMIGO_PROFILING_SUBMIT_INFO_SEC , "AMIGO_PROFILING_SUBMIT_INFO_SEC")+ , (STRUCTURE_TYPE_PHYSICAL_DEVICE_AMIGO_PROFILING_FEATURES_SEC, "PHYSICAL_DEVICE_AMIGO_PROFILING_FEATURES_SEC")+ , (STRUCTURE_TYPE_TILE_PROPERTIES_QCOM , "TILE_PROPERTIES_QCOM")+ , (STRUCTURE_TYPE_PHYSICAL_DEVICE_TILE_PROPERTIES_FEATURES_QCOM, "PHYSICAL_DEVICE_TILE_PROPERTIES_FEATURES_QCOM")+ , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_EXT+ , "PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_EXT"+ )+ , (STRUCTURE_TYPE_SHADER_MODULE_IDENTIFIER_EXT, "SHADER_MODULE_IDENTIFIER_EXT")+ , ( STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_MODULE_IDENTIFIER_CREATE_INFO_EXT+ , "PIPELINE_SHADER_STAGE_MODULE_IDENTIFIER_CREATE_INFO_EXT"+ )+ , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_PROPERTIES_EXT+ , "PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_PROPERTIES_EXT"+ )+ , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_FEATURES_EXT+ , "PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_FEATURES_EXT"+ )+ , (STRUCTURE_TYPE_RENDER_PASS_SUBPASS_FEEDBACK_CREATE_INFO_EXT , "RENDER_PASS_SUBPASS_FEEDBACK_CREATE_INFO_EXT")+ , (STRUCTURE_TYPE_RENDER_PASS_CREATION_FEEDBACK_CREATE_INFO_EXT, "RENDER_PASS_CREATION_FEEDBACK_CREATE_INFO_EXT")+ , (STRUCTURE_TYPE_RENDER_PASS_CREATION_CONTROL_EXT , "RENDER_PASS_CREATION_CONTROL_EXT")+ , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_MERGE_FEEDBACK_FEATURES_EXT+ , "PHYSICAL_DEVICE_SUBPASS_MERGE_FEEDBACK_FEATURES_EXT"+ )+ , (STRUCTURE_TYPE_IMAGE_VIEW_SAMPLE_WEIGHT_CREATE_INFO_QCOM, "IMAGE_VIEW_SAMPLE_WEIGHT_CREATE_INFO_QCOM")+ , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_PROPERTIES_QCOM+ , "PHYSICAL_DEVICE_IMAGE_PROCESSING_PROPERTIES_QCOM"+ )+ , (STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_FEATURES_QCOM, "PHYSICAL_DEVICE_IMAGE_PROCESSING_FEATURES_QCOM")+ , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_FEATURES_EXT+ , "PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_FEATURES_EXT"+ ) , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_LINEAR_COLOR_ATTACHMENT_FEATURES_NV , "PHYSICAL_DEVICE_LINEAR_COLOR_ATTACHMENT_FEATURES_NV" )@@ -3028,6 +3311,12 @@ , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_FEATURES_QCOM , "PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_FEATURES_QCOM" )+ , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_NON_SEAMLESS_CUBE_MAP_FEATURES_EXT+ , "PHYSICAL_DEVICE_NON_SEAMLESS_CUBE_MAP_FEATURES_EXT"+ )+ , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLAMP_ZERO_ONE_FEATURES_EXT+ , "PHYSICAL_DEVICE_DEPTH_CLAMP_ZERO_ONE_FEATURES_EXT"+ ) , (STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_HOST_MAPPING_INFO_VALVE, "DESCRIPTOR_SET_LAYOUT_HOST_MAPPING_INFO_VALVE") , (STRUCTURE_TYPE_DESCRIPTOR_SET_BINDING_REFERENCE_VALVE , "DESCRIPTOR_SET_BINDING_REFERENCE_VALVE") , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_SET_HOST_MAPPING_FEATURES_VALVE@@ -3042,10 +3331,16 @@ , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_BORDER_COLOR_SWIZZLE_FEATURES_EXT , "PHYSICAL_DEVICE_BORDER_COLOR_SWIZZLE_FEATURES_EXT" )+ , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_2D_VIEW_OF_3D_FEATURES_EXT+ , "PHYSICAL_DEVICE_IMAGE_2D_VIEW_OF_3D_FEATURES_EXT"+ ) , (STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_PROPERTIES_EXT , "PHYSICAL_DEVICE_MULTI_DRAW_PROPERTIES_EXT") , (STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_FEATURES_EXT , "PHYSICAL_DEVICE_MULTI_DRAW_FEATURES_EXT") , (STRUCTURE_TYPE_IMAGE_VIEW_MIN_LOD_CREATE_INFO_EXT , "IMAGE_VIEW_MIN_LOD_CREATE_INFO_EXT") , (STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_MIN_LOD_FEATURES_EXT, "PHYSICAL_DEVICE_IMAGE_VIEW_MIN_LOD_FEATURES_EXT")+ , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MAINTENANCE_1_FEATURES_KHR+ , "PHYSICAL_DEVICE_RAY_TRACING_MAINTENANCE_1_FEATURES_KHR"+ ) , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVES_GENERATED_QUERY_FEATURES_EXT , "PHYSICAL_DEVICE_PRIMITIVES_GENERATED_QUERY_FEATURES_EXT" )@@ -3055,6 +3350,15 @@ , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT , "PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT" )+ , (STRUCTURE_TYPE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_INFO_EXT, "MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_INFO_EXT")+ , (STRUCTURE_TYPE_SUBPASS_RESOLVE_PERFORMANCE_QUERY_EXT , "SUBPASS_RESOLVE_PERFORMANCE_QUERY_EXT")+ , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_FEATURES_EXT+ , "PHYSICAL_DEVICE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_FEATURES_EXT"+ )+ , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROPERTIES_FEATURES_EXT+ , "PHYSICAL_DEVICE_PIPELINE_PROPERTIES_FEATURES_EXT"+ )+ , (STRUCTURE_TYPE_PIPELINE_PROPERTIES_IDENTIFIER_EXT, "PIPELINE_PROPERTIES_IDENTIFIER_EXT") , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_RDMA_FEATURES_NV , "PHYSICAL_DEVICE_EXTERNAL_MEMORY_RDMA_FEATURES_NV" )@@ -3099,10 +3403,17 @@ ) , (STRUCTURE_TYPE_DIRECTFB_SURFACE_CREATE_INFO_EXT , "DIRECTFB_SURFACE_CREATE_INFO_EXT") , (STRUCTURE_TYPE_PHYSICAL_DEVICE_RGBA10X6_FORMATS_FEATURES_EXT, "PHYSICAL_DEVICE_RGBA10X6_FORMATS_FEATURES_EXT")- , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_ARM- , "PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_ARM"+ , (STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT , "PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT")+ , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_FEATURES_EXT+ , "PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_FEATURES_EXT" )- , (STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT, "PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT")+ , (STRUCTURE_TYPE_IMAGE_COMPRESSION_PROPERTIES_EXT, "IMAGE_COMPRESSION_PROPERTIES_EXT")+ , (STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2_EXT , "IMAGE_SUBRESOURCE_2_EXT")+ , (STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2_EXT , "SUBRESOURCE_LAYOUT_2_EXT")+ , (STRUCTURE_TYPE_IMAGE_COMPRESSION_CONTROL_EXT , "IMAGE_COMPRESSION_CONTROL_EXT")+ , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_FEATURES_EXT+ , "PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_FEATURES_EXT"+ ) , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR , "PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR" )@@ -3116,7 +3427,9 @@ , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT , "PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT" )- , (STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MOTION_INFO_NV, "ACCELERATION_STRUCTURE_MOTION_INFO_NV")+ , (STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_EXT, "PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_EXT")+ , (STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_EXT , "PHYSICAL_DEVICE_MESH_SHADER_FEATURES_EXT")+ , (STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MOTION_INFO_NV , "ACCELERATION_STRUCTURE_MOTION_INFO_NV") , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MOTION_BLUR_FEATURES_NV , "PHYSICAL_DEVICE_RAY_TRACING_MOTION_BLUR_FEATURES_NV" )@@ -3135,6 +3448,15 @@ , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_FEATURES_KHR , "PHYSICAL_DEVICE_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_FEATURES_KHR" )+ , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_PROPERTIES_KHR+ , "PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_PROPERTIES_KHR"+ )+ , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_KHR+ , "PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_KHR"+ )+ , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_FEATURES_AMD+ , "PHYSICAL_DEVICE_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_FEATURES_AMD"+ ) , (STRUCTURE_TYPE_GRAPHICS_PIPELINE_LIBRARY_CREATE_INFO_EXT, "GRAPHICS_PIPELINE_LIBRARY_CREATE_INFO_EXT") , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_PROPERTIES_EXT , "PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_PROPERTIES_EXT"@@ -3144,6 +3466,18 @@ ) , (STRUCTURE_TYPE_CHECKPOINT_DATA_2_NV , "CHECKPOINT_DATA_2_NV") , (STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV , "QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV")+ , (STRUCTURE_TYPE_IMPORT_METAL_SHARED_EVENT_INFO_EXT , "IMPORT_METAL_SHARED_EVENT_INFO_EXT")+ , (STRUCTURE_TYPE_EXPORT_METAL_SHARED_EVENT_INFO_EXT , "EXPORT_METAL_SHARED_EVENT_INFO_EXT")+ , (STRUCTURE_TYPE_IMPORT_METAL_IO_SURFACE_INFO_EXT , "IMPORT_METAL_IO_SURFACE_INFO_EXT")+ , (STRUCTURE_TYPE_EXPORT_METAL_IO_SURFACE_INFO_EXT , "EXPORT_METAL_IO_SURFACE_INFO_EXT")+ , (STRUCTURE_TYPE_IMPORT_METAL_TEXTURE_INFO_EXT , "IMPORT_METAL_TEXTURE_INFO_EXT")+ , (STRUCTURE_TYPE_EXPORT_METAL_TEXTURE_INFO_EXT , "EXPORT_METAL_TEXTURE_INFO_EXT")+ , (STRUCTURE_TYPE_IMPORT_METAL_BUFFER_INFO_EXT , "IMPORT_METAL_BUFFER_INFO_EXT")+ , (STRUCTURE_TYPE_EXPORT_METAL_BUFFER_INFO_EXT , "EXPORT_METAL_BUFFER_INFO_EXT")+ , (STRUCTURE_TYPE_EXPORT_METAL_COMMAND_QUEUE_INFO_EXT , "EXPORT_METAL_COMMAND_QUEUE_INFO_EXT")+ , (STRUCTURE_TYPE_EXPORT_METAL_DEVICE_INFO_EXT , "EXPORT_METAL_DEVICE_INFO_EXT")+ , (STRUCTURE_TYPE_EXPORT_METAL_OBJECTS_INFO_EXT , "EXPORT_METAL_OBJECTS_INFO_EXT")+ , (STRUCTURE_TYPE_EXPORT_METAL_OBJECT_CREATE_INFO_EXT , "EXPORT_METAL_OBJECT_CREATE_INFO_EXT") , (STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV, "DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV") , (STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV, "PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV") , (STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR , "PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR")@@ -3299,9 +3633,6 @@ , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_FOOTPRINT_FEATURES_NV , "PHYSICAL_DEVICE_SHADER_IMAGE_FOOTPRINT_FEATURES_NV" )- , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_NV- , "PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_NV"- ) , (STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV, "PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV") , (STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV , "PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV") , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV@@ -3532,21 +3863,28 @@ , (STRUCTURE_TYPE_MEMORY_WIN32_HANDLE_PROPERTIES_KHR , "MEMORY_WIN32_HANDLE_PROPERTIES_KHR") , (STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR , "EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR") , (STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR , "IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR")- , (STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT , "PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT")- , (STRUCTURE_TYPE_IMAGE_VIEW_ASTC_DECODE_MODE_EXT , "IMAGE_VIEW_ASTC_DECODE_MODE_EXT")- , (STRUCTURE_TYPE_VI_SURFACE_CREATE_INFO_NN , "VI_SURFACE_CREATE_INFO_NN")- , (STRUCTURE_TYPE_VALIDATION_FLAGS_EXT , "VALIDATION_FLAGS_EXT")- , (STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR , "DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR")- , (STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHR , "DEVICE_GROUP_PRESENT_INFO_KHR")- , (STRUCTURE_TYPE_ACQUIRE_NEXT_IMAGE_INFO_KHR , "ACQUIRE_NEXT_IMAGE_INFO_KHR")- , (STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR , "BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR")- , (STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHR , "IMAGE_SWAPCHAIN_CREATE_INFO_KHR")- , (STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHR , "DEVICE_GROUP_PRESENT_CAPABILITIES_KHR")- , (STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV , "WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV")- , (STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_NV , "EXPORT_MEMORY_WIN32_HANDLE_INFO_NV")- , (STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_NV , "IMPORT_MEMORY_WIN32_HANDLE_INFO_NV")- , (STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_NV , "EXPORT_MEMORY_ALLOCATE_INFO_NV")- , (STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV , "EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV")+ , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_PROPERTIES_EXT+ , "PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_PROPERTIES_EXT"+ )+ , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_FEATURES_EXT+ , "PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_FEATURES_EXT"+ )+ , (STRUCTURE_TYPE_PIPELINE_ROBUSTNESS_CREATE_INFO_EXT , "PIPELINE_ROBUSTNESS_CREATE_INFO_EXT")+ , (STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT , "PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT")+ , (STRUCTURE_TYPE_IMAGE_VIEW_ASTC_DECODE_MODE_EXT , "IMAGE_VIEW_ASTC_DECODE_MODE_EXT")+ , (STRUCTURE_TYPE_VI_SURFACE_CREATE_INFO_NN , "VI_SURFACE_CREATE_INFO_NN")+ , (STRUCTURE_TYPE_VALIDATION_FLAGS_EXT , "VALIDATION_FLAGS_EXT")+ , (STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR , "DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR")+ , (STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHR , "DEVICE_GROUP_PRESENT_INFO_KHR")+ , (STRUCTURE_TYPE_ACQUIRE_NEXT_IMAGE_INFO_KHR , "ACQUIRE_NEXT_IMAGE_INFO_KHR")+ , (STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR , "BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR")+ , (STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHR , "IMAGE_SWAPCHAIN_CREATE_INFO_KHR")+ , (STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHR , "DEVICE_GROUP_PRESENT_CAPABILITIES_KHR")+ , (STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV, "WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV")+ , (STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_NV , "EXPORT_MEMORY_WIN32_HANDLE_INFO_NV")+ , (STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_NV , "IMPORT_MEMORY_WIN32_HANDLE_INFO_NV")+ , (STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_NV , "EXPORT_MEMORY_ALLOCATE_INFO_NV")+ , (STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV , "EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV") , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV , "PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV" )
src/Vulkan/Core10/Enums/SubpassDescriptionFlagBits.hs view
@@ -1,9 +1,9 @@ {-# language CPP #-} -- No documentation found for Chapter "SubpassDescriptionFlagBits" module Vulkan.Core10.Enums.SubpassDescriptionFlagBits ( SubpassDescriptionFlags- , SubpassDescriptionFlagBits( SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_ARM- , SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_ARM- , SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_COLOR_ACCESS_BIT_ARM+ , SubpassDescriptionFlagBits( SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT+ , SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT+ , SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_COLOR_ACCESS_BIT_EXT , SUBPASS_DESCRIPTION_SHADER_RESOLVE_BIT_QCOM , SUBPASS_DESCRIPTION_FRAGMENT_REGION_BIT_QCOM , SUBPASS_DESCRIPTION_PER_VIEW_POSITION_X_ONLY_BIT_NVX@@ -34,8 +34,8 @@ -- Shader resolve operations allow for custom resolve operations, but -- overdrawing pixels /may/ have a performance and\/or power cost. -- Furthermore, since the content of any depth stencil attachment or color--- attachment is undefined at the begining of a shader resolve subpass, any--- depth testing, stencil testing, or blending operation which sources+-- attachment is undefined at the beginning of a shader resolve subpass,+-- any depth testing, stencil testing, or blending operation which sources -- these undefined values also has undefined result value. -- -- = See Also@@ -45,19 +45,19 @@ newtype SubpassDescriptionFlagBits = SubpassDescriptionFlagBits Flags deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits) --- | 'SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_ARM'+-- | 'SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT' -- specifies that this subpass supports pipelines created with--- 'Vulkan.Core10.Enums.PipelineDepthStencilStateCreateFlagBits.PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_ARM'.-pattern SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_ARM =+-- 'Vulkan.Core10.Enums.PipelineDepthStencilStateCreateFlagBits.PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT'.+pattern SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT = SubpassDescriptionFlagBits 0x00000040--- | 'SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_ARM'+-- | 'SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT' -- specifies that this subpass supports pipelines created with--- 'Vulkan.Core10.Enums.PipelineDepthStencilStateCreateFlagBits.PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_ARM'.-pattern SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_ARM = SubpassDescriptionFlagBits 0x00000020--- | 'SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_COLOR_ACCESS_BIT_ARM'+-- 'Vulkan.Core10.Enums.PipelineDepthStencilStateCreateFlagBits.PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT'.+pattern SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT = SubpassDescriptionFlagBits 0x00000020+-- | 'SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_COLOR_ACCESS_BIT_EXT' -- specifies that this subpass supports pipelines created with--- 'Vulkan.Core10.Enums.PipelineColorBlendStateCreateFlagBits.PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_ARM'.-pattern SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_COLOR_ACCESS_BIT_ARM = SubpassDescriptionFlagBits 0x00000010+-- 'Vulkan.Core10.Enums.PipelineColorBlendStateCreateFlagBits.PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_EXT'.+pattern SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_COLOR_ACCESS_BIT_EXT = SubpassDescriptionFlagBits 0x00000010 -- | 'SUBPASS_DESCRIPTION_SHADER_RESOLVE_BIT_QCOM' specifies that the subpass -- performs shader resolve operations. pattern SUBPASS_DESCRIPTION_SHADER_RESOLVE_BIT_QCOM = SubpassDescriptionFlagBits 0x00000008@@ -75,7 +75,7 @@ -- | 'SUBPASS_DESCRIPTION_PER_VIEW_ATTRIBUTES_BIT_NVX' specifies that shaders -- compiled for this subpass write the attributes for all views in a single -- invocation of each--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader stage>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader stage>. -- All pipelines compiled against a subpass that includes this bit /must/ -- write per-view attributes to the @*PerViewNV[]@ shader outputs, in -- addition to the non-per-view (e.g. @Position@) outputs.@@ -89,14 +89,14 @@ showTableSubpassDescriptionFlagBits :: [(SubpassDescriptionFlagBits, String)] showTableSubpassDescriptionFlagBits =- [ ( SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_ARM- , "RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_ARM"+ [ ( SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT+ , "RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT" )- , ( SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_ARM- , "RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_ARM"+ , ( SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT+ , "RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT" )- , ( SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_COLOR_ACCESS_BIT_ARM- , "RASTERIZATION_ORDER_ATTACHMENT_COLOR_ACCESS_BIT_ARM"+ , ( SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_COLOR_ACCESS_BIT_EXT+ , "RASTERIZATION_ORDER_ATTACHMENT_COLOR_ACCESS_BIT_EXT" ) , (SUBPASS_DESCRIPTION_SHADER_RESOLVE_BIT_QCOM , "SHADER_RESOLVE_BIT_QCOM") , (SUBPASS_DESCRIPTION_FRAGMENT_REGION_BIT_QCOM , "FRAGMENT_REGION_BIT_QCOM")
src/Vulkan/Core10/Event.hs view
@@ -16,11 +16,13 @@ import Control.Exception.Base (bracket) import Control.Monad (unless) import Control.Monad.IO.Class (liftIO)+import Data.Typeable (eqT) import Foreign.Marshal.Alloc (allocaBytes) import Foreign.Marshal.Alloc (callocBytes) import Foreign.Marshal.Alloc (free) import GHC.Base (when) import GHC.IO (throwIO)+import GHC.Ptr (castPtr) import GHC.Ptr (nullFunPtr) import Foreign.Ptr (nullPtr) import Foreign.Ptr (plusPtr)@@ -32,11 +34,10 @@ import Vulkan.CStruct (ToCStruct(..)) import Vulkan.Zero (Zero(..)) import Control.Monad.IO.Class (MonadIO)+import Data.Type.Equality ((:~:)(Refl)) import Data.Typeable (Typeable)-import Foreign.Storable (Storable) import Foreign.Storable (Storable(peek)) import Foreign.Storable (Storable(poke))-import qualified Foreign.Storable (Storable(..)) import GHC.Generics (Generic) import GHC.IO.Exception (IOErrorType(..)) import GHC.IO.Exception (IOException(..))@@ -44,8 +45,10 @@ import Foreign.Ptr (Ptr) import Data.Kind (Type) import Control.Monad.Trans.Cont (ContT(..))+import Vulkan.CStruct.Extends (forgetExtensions) import Vulkan.NamedType ((:::)) import Vulkan.Core10.AllocationCallbacks (AllocationCallbacks)+import Vulkan.CStruct.Extends (Chain) import Vulkan.Core10.Handles (Device) import Vulkan.Core10.Handles (Device(..)) import Vulkan.Core10.Handles (Device(Device))@@ -58,8 +61,18 @@ import Vulkan.Core10.Handles (Event) import Vulkan.Core10.Handles (Event(..)) import Vulkan.Core10.Enums.EventCreateFlagBits (EventCreateFlags)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_metal_objects (ExportMetalObjectCreateInfoEXT)+import Vulkan.CStruct.Extends (Extends)+import Vulkan.CStruct.Extends (Extendss)+import Vulkan.CStruct.Extends (Extensible(..))+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_metal_objects (ImportMetalSharedEventInfoEXT)+import Vulkan.CStruct.Extends (PeekChain)+import Vulkan.CStruct.Extends (PeekChain(..))+import Vulkan.CStruct.Extends (PokeChain)+import Vulkan.CStruct.Extends (PokeChain(..)) import Vulkan.Core10.Enums.Result (Result) import Vulkan.Core10.Enums.Result (Result(..))+import Vulkan.CStruct.Extends (SomeStruct) import Vulkan.Core10.Enums.StructureType (StructureType) import Vulkan.Exception (VulkanException(..)) import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_EVENT_CREATE_INFO))@@ -72,7 +85,7 @@ unsafe #endif "dynamic" mkVkCreateEvent- :: FunPtr (Ptr Device_T -> Ptr EventCreateInfo -> Ptr AllocationCallbacks -> Ptr Event -> IO Result) -> Ptr Device_T -> Ptr EventCreateInfo -> Ptr AllocationCallbacks -> Ptr Event -> IO Result+ :: FunPtr (Ptr Device_T -> Ptr (SomeStruct EventCreateInfo) -> Ptr AllocationCallbacks -> Ptr Event -> IO Result) -> Ptr Device_T -> Ptr (SomeStruct EventCreateInfo) -> Ptr AllocationCallbacks -> Ptr Event -> IO Result -- | vkCreateEvent - Create a new event object --@@ -87,7 +100,7 @@ -- 'Vulkan.Extensions.VK_KHR_portability_subset.PhysicalDevicePortabilitySubsetFeaturesKHR'::@events@ -- is 'Vulkan.Core10.FundamentalTypes.FALSE', then the implementation -- does not support--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-events events>,+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-events events>, -- and 'createEvent' /must/ not be used -- -- == Valid Usage (Implicit)@@ -123,15 +136,15 @@ -- 'Vulkan.Core10.AllocationCallbacks.AllocationCallbacks', -- 'Vulkan.Core10.Handles.Device', 'Vulkan.Core10.Handles.Event', -- 'EventCreateInfo'-createEvent :: forall io- . (MonadIO io)+createEvent :: forall a io+ . (Extendss EventCreateInfo a, PokeChain a, MonadIO io) => -- | @device@ is the logical device that creates the event. Device -> -- | @pCreateInfo@ is a pointer to a 'EventCreateInfo' structure containing -- information about how the event is to be created.- EventCreateInfo+ (EventCreateInfo a) -> -- | @pAllocator@ controls host memory allocation as described in the- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation> -- chapter. ("allocator" ::: Maybe AllocationCallbacks) -> io (Event)@@ -145,7 +158,7 @@ Nothing -> pure nullPtr Just j -> ContT $ withCStruct (j) pPEvent <- ContT $ bracket (callocBytes @Event 8) free- r <- lift $ traceAroundEvent "vkCreateEvent" (vkCreateEvent' (deviceHandle (device)) pCreateInfo pAllocator (pPEvent))+ r <- lift $ traceAroundEvent "vkCreateEvent" (vkCreateEvent' (deviceHandle (device)) (forgetExtensions pCreateInfo) pAllocator (pPEvent)) lift $ when (r < SUCCESS) (throwIO (VulkanException r)) pEvent <- lift $ peek @Event pPEvent pure $ (pEvent)@@ -158,7 +171,7 @@ -- favourite resource management library) as the last argument. -- To just extract the pair pass '(,)' as the last argument. ---withEvent :: forall io r . MonadIO io => Device -> EventCreateInfo -> Maybe AllocationCallbacks -> (io Event -> (Event -> io ()) -> r) -> r+withEvent :: forall a io r . (Extendss EventCreateInfo a, PokeChain a, MonadIO io) => Device -> EventCreateInfo a -> Maybe AllocationCallbacks -> (io Event -> (Event -> io ()) -> r) -> r withEvent device pCreateInfo pAllocator b = b (createEvent device pCreateInfo pAllocator) (\(o0) -> destroyEvent device o0 pAllocator)@@ -219,7 +232,7 @@ -> -- | @event@ is the handle of the event to destroy. Event -> -- | @pAllocator@ controls host memory allocation as described in the- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation> -- chapter. ("allocator" ::: Maybe AllocationCallbacks) -> io ()@@ -264,7 +277,7 @@ -- If a 'Vulkan.Core10.CommandBufferBuilding.cmdSetEvent' or -- 'Vulkan.Core10.CommandBufferBuilding.cmdResetEvent' command is in a -- command buffer that is in the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-lifecycle pending state>,+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-lifecycle pending state>, -- then the value returned by this command /may/ immediately be out of -- date. --@@ -475,55 +488,89 @@ -- | VkEventCreateInfo - Structure specifying parameters of a newly created -- event --+-- == Valid Usage+--+-- - #VUID-VkEventCreateInfo-pNext-06790# If the @pNext@ chain includes a+-- 'Vulkan.Extensions.VK_EXT_metal_objects.ExportMetalObjectCreateInfoEXT'+-- structure, its @exportObjectType@ member /must/ be+-- 'Vulkan.Extensions.VK_EXT_metal_objects.EXPORT_METAL_OBJECT_TYPE_METAL_SHARED_EVENT_BIT_EXT'.+-- -- == Valid Usage (Implicit) --+-- - #VUID-VkEventCreateInfo-sType-sType# @sType@ /must/ be+-- 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_EVENT_CREATE_INFO'+--+-- - #VUID-VkEventCreateInfo-pNext-pNext# Each @pNext@ member of any+-- structure (including this one) in the @pNext@ chain /must/ be either+-- @NULL@ or a pointer to a valid instance of+-- 'Vulkan.Extensions.VK_EXT_metal_objects.ExportMetalObjectCreateInfoEXT'+-- or+-- 'Vulkan.Extensions.VK_EXT_metal_objects.ImportMetalSharedEventInfoEXT'+--+-- - #VUID-VkEventCreateInfo-sType-unique# The @sType@ value of each+-- struct in the @pNext@ chain /must/ be unique, with the exception of+-- structures of type+-- 'Vulkan.Extensions.VK_EXT_metal_objects.ExportMetalObjectCreateInfoEXT'+--+-- - #VUID-VkEventCreateInfo-flags-parameter# @flags@ /must/ be a valid+-- combination of+-- 'Vulkan.Core10.Enums.EventCreateFlagBits.EventCreateFlagBits' values+-- -- = See Also -- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>, -- 'Vulkan.Core10.Enums.EventCreateFlagBits.EventCreateFlags', -- 'Vulkan.Core10.Enums.StructureType.StructureType', 'createEvent'-data EventCreateInfo = EventCreateInfo- { -- | @flags@ is a bitmask of+data EventCreateInfo (es :: [Type]) = EventCreateInfo+ { -- | @pNext@ is @NULL@ or a pointer to a structure extending this structure.+ next :: Chain es+ , -- | @flags@ is a bitmask of -- 'Vulkan.Core10.Enums.EventCreateFlagBits.EventCreateFlagBits' defining -- additional creation parameters.- --- -- #VUID-VkEventCreateInfo-flags-parameter# @flags@ /must/ be a valid- -- combination of- -- 'Vulkan.Core10.Enums.EventCreateFlagBits.EventCreateFlagBits' values- flags :: EventCreateFlags }- deriving (Typeable, Eq)+ flags :: EventCreateFlags+ }+ deriving (Typeable) #if defined(GENERIC_INSTANCES)-deriving instance Generic (EventCreateInfo)+deriving instance Generic (EventCreateInfo (es :: [Type])) #endif-deriving instance Show EventCreateInfo+deriving instance Show (Chain es) => Show (EventCreateInfo es) -instance ToCStruct EventCreateInfo where+instance Extensible EventCreateInfo where+ extensibleTypeName = "EventCreateInfo"+ setNext EventCreateInfo{..} next' = EventCreateInfo{next = next', ..}+ getNext EventCreateInfo{..} = next+ extends :: forall e b proxy. Typeable e => proxy e -> (Extends EventCreateInfo e => b) -> Maybe b+ extends _ f+ | Just Refl <- eqT @e @ImportMetalSharedEventInfoEXT = Just f+ | Just Refl <- eqT @e @ExportMetalObjectCreateInfoEXT = Just f+ | otherwise = Nothing++instance (Extendss EventCreateInfo es, PokeChain es) => ToCStruct (EventCreateInfo es) where withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)- pokeCStruct p EventCreateInfo{..} f = do- poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_EVENT_CREATE_INFO)- poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)- poke ((p `plusPtr` 16 :: Ptr EventCreateFlags)) (flags)- f+ pokeCStruct p EventCreateInfo{..} f = evalContT $ do+ lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_EVENT_CREATE_INFO)+ pNext'' <- fmap castPtr . ContT $ withChain (next)+ lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext''+ lift $ poke ((p `plusPtr` 16 :: Ptr EventCreateFlags)) (flags)+ lift $ f cStructSize = 24 cStructAlignment = 8- pokeZeroCStruct p f = do- poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_EVENT_CREATE_INFO)- poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)- f+ pokeZeroCStruct p f = evalContT $ do+ lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_EVENT_CREATE_INFO)+ pNext' <- fmap castPtr . ContT $ withZeroChain @es+ lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext'+ lift $ f -instance FromCStruct EventCreateInfo where+instance (Extendss EventCreateInfo es, PeekChain es) => FromCStruct (EventCreateInfo es) where peekCStruct p = do+ pNext <- peek @(Ptr ()) ((p `plusPtr` 8 :: Ptr (Ptr ())))+ next <- peekChain (castPtr pNext) flags <- peek @EventCreateFlags ((p `plusPtr` 16 :: Ptr EventCreateFlags)) pure $ EventCreateInfo- flags--instance Storable EventCreateInfo where- sizeOf ~_ = 24- alignment ~_ = 8- peek = peekCStruct- poke ptr poked = pokeCStruct ptr poked (pure ())+ next flags -instance Zero EventCreateInfo where+instance es ~ '[] => Zero (EventCreateInfo es) where zero = EventCreateInfo+ () zero
src/Vulkan/Core10/Event.hs-boot view
@@ -5,11 +5,15 @@ import Vulkan.CStruct (FromCStruct) import Vulkan.CStruct (ToCStruct) import Data.Kind (Type)--data EventCreateInfo+import {-# SOURCE #-} Vulkan.CStruct.Extends (Chain)+import {-# SOURCE #-} Vulkan.CStruct.Extends (Extendss)+import {-# SOURCE #-} Vulkan.CStruct.Extends (PeekChain)+import {-# SOURCE #-} Vulkan.CStruct.Extends (PokeChain)+type role EventCreateInfo nominal+data EventCreateInfo (es :: [Type]) -instance ToCStruct EventCreateInfo-instance Show EventCreateInfo+instance (Extendss EventCreateInfo es, PokeChain es) => ToCStruct (EventCreateInfo es)+instance Show (Chain es) => Show (EventCreateInfo es) -instance FromCStruct EventCreateInfo+instance (Extendss EventCreateInfo es, PeekChain es) => FromCStruct (EventCreateInfo es)
src/Vulkan/Core10/ExtensionDiscovery.hs view
@@ -185,10 +185,16 @@ -- cannot be enabled against the advertised version. -- -- Implementations claiming support for the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#roadmap-2022 Roadmap 2022>--- profile /must/ advertise the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_global_priority VK_KHR_global_priority>--- extension in @pProperties@.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#roadmap-2022 Roadmap 2022>+-- profile /must/ advertise the @VK_KHR_global_priority@ extension in+-- @pProperties@.+--+-- Note+--+-- Due to platform details on Android, 'enumerateDeviceExtensionProperties'+-- may be called with @physicalDevice@ equal to @NULL@ during layer+-- discovery. This behaviour will only be observed by layer+-- implementations, and not the underlying Vulkan driver. -- -- == Valid Usage (Implicit) --
src/Vulkan/Core10/Fence.hs view
@@ -139,7 +139,7 @@ -- information about how the fence is to be created. (FenceCreateInfo a) -> -- | @pAllocator@ controls host memory allocation as described in the- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation> -- chapter. ("allocator" ::: Maybe AllocationCallbacks) -> io (Fence)@@ -184,7 +184,7 @@ -- == Valid Usage -- -- - #VUID-vkDestroyFence-fence-01120# All--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#devsandqueues-submission queue submission>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#devsandqueues-submission queue submission> -- commands that refer to @fence@ /must/ have completed execution -- -- - #VUID-vkDestroyFence-fence-01121# If@@ -228,7 +228,7 @@ -> -- | @fence@ is the handle of the fence to destroy. Fence -> -- | @pAllocator@ controls host memory allocation as described in the- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation> -- chapter. ("allocator" ::: Maybe AllocationCallbacks) -> io ()@@ -256,7 +256,7 @@ -- = Description -- -- If any member of @pFences@ currently has its--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-fences-importing payload imported>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-fences-importing payload imported> -- with temporary permanence, that fence’s prior permanent payload is first -- restored. The remaining operations described therefore operate on the -- restored payload.@@ -341,26 +341,26 @@ -- Upon success, 'getFenceStatus' returns the status of the fence object, -- with the following return codes: ----- +------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+--- | Status | Meaning |--- +================================================+========================================================================================================================+--- | 'Vulkan.Core10.Enums.Result.SUCCESS' | The fence specified by @fence@ is signaled. |--- +------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+--- | 'Vulkan.Core10.Enums.Result.NOT_READY' | The fence specified by @fence@ is unsignaled. |--- +------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+--- | 'Vulkan.Core10.Enums.Result.ERROR_DEVICE_LOST' | The device has been lost. See |--- | | <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#devsandqueues-lost-device Lost Device>. |--- +------------------------------------------------+------------------------------------------------------------------------------------------------------------------------++-- +------------------------------------------------+--------------------------------------------------------------------------------------------------------------------++-- | Status | Meaning |+-- +================================================+====================================================================================================================++-- | 'Vulkan.Core10.Enums.Result.SUCCESS' | The fence specified by @fence@ is signaled. |+-- +------------------------------------------------+--------------------------------------------------------------------------------------------------------------------++-- | 'Vulkan.Core10.Enums.Result.NOT_READY' | The fence specified by @fence@ is unsignaled. |+-- +------------------------------------------------+--------------------------------------------------------------------------------------------------------------------++-- | 'Vulkan.Core10.Enums.Result.ERROR_DEVICE_LOST' | The device has been lost. See |+-- | | <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#devsandqueues-lost-device Lost Device>. |+-- +------------------------------------------------+--------------------------------------------------------------------------------------------------------------------+ -- -- Fence Object Status Codes -- -- If a--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#devsandqueues-submission queue submission>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#devsandqueues-submission queue submission> -- command is pending execution, then the value returned by this command -- /may/ immediately be out of date. -- -- If the device has been lost (see--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#devsandqueues-lost-device Lost Device>),+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#devsandqueues-lost-device Lost Device>), -- 'getFenceStatus' /may/ return any of the above status codes. If the -- device has been lost and 'getFenceStatus' is called repeatedly, it will -- eventually return either 'Vulkan.Core10.Enums.Result.SUCCESS' or@@ -476,7 +476,7 @@ -- @timeout@ has expired. -- -- If device loss occurs (see--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#devsandqueues-lost-device Lost Device>)+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#devsandqueues-lost-device Lost Device>) -- before the timeout has expired, 'waitForFences' /must/ return in finite -- time with either 'Vulkan.Core10.Enums.Result.SUCCESS' or -- 'Vulkan.Core10.Enums.Result.ERROR_DEVICE_LOST'.
src/Vulkan/Core10/FuncPointers.hs view
@@ -41,7 +41,7 @@ -- -- = Description ----- > described link:https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-host-allocation-scope[here^].+-- > described link:https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-host-allocation-scope[here^]. -- -- = See Also --@@ -120,7 +120,7 @@ -- generate 'Vulkan.Core10.Enums.Result.ERROR_OUT_OF_HOST_MEMORY' at the -- appropriate time for the command in which the condition was detected, as -- described in--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#fundamentals-errorcodes Return Codes>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fundamentals-errorcodes Return Codes>. -- -- If the implementation is able to continue correct processing of the -- current command without the requested allocation, then it /may/ do so,
src/Vulkan/Core10/FundamentalTypes.hs view
@@ -62,11 +62,12 @@ -- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>, -- 'Vulkan.Extensions.VK_KHR_display.DisplayPlaneCapabilitiesKHR',+-- 'Vulkan.Extensions.VK_QCOM_image_processing.ImageViewSampleWeightCreateInfoQCOM', -- 'Rect2D', 'Vulkan.Extensions.VK_KHR_incremental_present.RectLayerKHR', -- 'Vulkan.Extensions.VK_QCOM_fragment_density_map_offset.SubpassFragmentDensityMapOffsetEndInfoQCOM',+-- 'Vulkan.Extensions.VK_QCOM_tile_properties.TilePropertiesQCOM', -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoDecodeH264CapabilitiesEXT VkVideoDecodeH264CapabilitiesEXT>,--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoDecodeInfoKHR VkVideoDecodeInfoKHR>,--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoPictureResourceKHR VkVideoPictureResourceKHR>+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoPictureResourceInfoKHR VkVideoPictureResourceInfoKHR> data Offset2D = Offset2D { -- | @x@ is the x offset. x :: Int32@@ -185,11 +186,13 @@ -- 'Vulkan.Extensions.VK_KHR_display.DisplayPropertiesKHR', -- 'Vulkan.Extensions.VK_KHR_display.DisplaySurfaceCreateInfoKHR', -- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.FragmentShadingRateAttachmentInfoKHR',+-- 'Vulkan.Extensions.VK_QCOM_image_processing.ImageViewSampleWeightCreateInfoQCOM', -- 'Vulkan.Extensions.VK_EXT_sample_locations.MultisamplePropertiesEXT', -- 'Vulkan.Extensions.VK_QCOM_fragment_density_map_offset.PhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM', -- 'Vulkan.Extensions.VK_EXT_fragment_density_map.PhysicalDeviceFragmentDensityMapPropertiesEXT', -- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.PhysicalDeviceFragmentShadingRateKHR', -- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.PhysicalDeviceFragmentShadingRatePropertiesKHR',+-- 'Vulkan.Extensions.VK_QCOM_image_processing.PhysicalDeviceImageProcessingPropertiesQCOM', -- 'Vulkan.Extensions.VK_EXT_sample_locations.PhysicalDeviceSampleLocationsPropertiesEXT', -- 'Vulkan.Extensions.VK_NV_shading_rate_image.PhysicalDeviceShadingRateImagePropertiesNV', -- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.PipelineFragmentShadingRateStateCreateInfoKHR',@@ -199,11 +202,10 @@ -- 'Vulkan.Extensions.VK_EXT_display_surface_counter.SurfaceCapabilities2EXT', -- 'Vulkan.Extensions.VK_KHR_surface.SurfaceCapabilitiesKHR', -- 'Vulkan.Extensions.VK_KHR_swapchain.SwapchainCreateInfoKHR',+-- 'Vulkan.Extensions.VK_QCOM_tile_properties.TilePropertiesQCOM', -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoCapabilitiesKHR VkVideoCapabilitiesKHR>,--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoDecodeInfoKHR VkVideoDecodeInfoKHR>, -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeCapabilitiesKHR VkVideoEncodeCapabilitiesKHR>,--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeInfoKHR VkVideoEncodeInfoKHR>,--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoPictureResourceKHR VkVideoPictureResourceKHR>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoPictureResourceInfoKHR VkVideoPictureResourceInfoKHR>, -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoSessionCreateInfoKHR VkVideoSessionCreateInfoKHR>, -- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR', -- 'Vulkan.Extensions.VK_HUAWEI_subpass_shading.getDeviceSubpassShadingMaxWorkgroupSizeHUAWEI',@@ -267,7 +269,8 @@ -- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.ImageResolve2', -- 'Vulkan.Core10.DeviceInitialization.QueueFamilyProperties', -- 'Vulkan.Core10.SparseResourceMemoryManagement.SparseImageFormatProperties',--- 'Vulkan.Core10.SparseResourceMemoryManagement.SparseImageMemoryBind'+-- 'Vulkan.Core10.SparseResourceMemoryManagement.SparseImageMemoryBind',+-- 'Vulkan.Extensions.VK_QCOM_tile_properties.TilePropertiesQCOM' data Extent3D = Extent3D { -- | @width@ is the width of the extent. width :: Word32@@ -414,6 +417,7 @@ -- 'Vulkan.Extensions.VK_EXT_filter_cubic.FilterCubicImageViewImageFormatPropertiesEXT', -- 'Vulkan.Extensions.VK_NV_device_generated_commands.IndirectCommandsLayoutTokenNV', -- 'Vulkan.Core11.Promoted_From_VK_KHR_dedicated_allocation.MemoryDedicatedRequirements',+-- 'Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled.MultisampledRenderToSingleSampledInfoEXT', -- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.MultiviewPerViewAttributesInfoNVX', -- 'Vulkan.Extensions.VK_INTEL_performance_query.PerformanceOverrideInfoINTEL', -- 'Vulkan.Extensions.VK_INTEL_performance_query.PerformanceValueDataINTEL',@@ -422,6 +426,8 @@ -- 'Vulkan.Core12.Promoted_From_VK_KHR_8bit_storage.PhysicalDevice8BitStorageFeatures', -- 'Vulkan.Extensions.VK_EXT_astc_decode_mode.PhysicalDeviceASTCDecodeFeaturesEXT', -- 'Vulkan.Extensions.VK_KHR_acceleration_structure.PhysicalDeviceAccelerationStructureFeaturesKHR',+-- 'Vulkan.Extensions.VK_SEC_amigo_profiling.PhysicalDeviceAmigoProfilingFeaturesSEC',+-- 'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_layout.PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT', -- 'Vulkan.Extensions.VK_EXT_blend_operation_advanced.PhysicalDeviceBlendOperationAdvancedFeaturesEXT', -- 'Vulkan.Extensions.VK_EXT_blend_operation_advanced.PhysicalDeviceBlendOperationAdvancedPropertiesEXT', -- 'Vulkan.Extensions.VK_EXT_border_color_swizzle.PhysicalDeviceBorderColorSwizzleFeaturesEXT',@@ -437,6 +443,7 @@ -- 'Vulkan.Extensions.VK_NV_coverage_reduction_mode.PhysicalDeviceCoverageReductionModeFeaturesNV', -- 'Vulkan.Extensions.VK_EXT_custom_border_color.PhysicalDeviceCustomBorderColorFeaturesEXT', -- 'Vulkan.Extensions.VK_NV_dedicated_allocation_image_aliasing.PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV',+-- 'Vulkan.Extensions.VK_EXT_depth_clamp_zero_one.PhysicalDeviceDepthClampZeroOneFeaturesEXT', -- 'Vulkan.Extensions.VK_EXT_depth_clip_control.PhysicalDeviceDepthClipControlFeaturesEXT', -- 'Vulkan.Extensions.VK_EXT_depth_clip_enable.PhysicalDeviceDepthClipEnableFeaturesEXT', -- 'Vulkan.Core12.Promoted_From_VK_KHR_depth_stencil_resolve.PhysicalDeviceDepthStencilResolveProperties',@@ -459,7 +466,8 @@ -- 'Vulkan.Extensions.VK_EXT_fragment_density_map.PhysicalDeviceFragmentDensityMapFeaturesEXT', -- 'Vulkan.Extensions.VK_QCOM_fragment_density_map_offset.PhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM', -- 'Vulkan.Extensions.VK_EXT_fragment_density_map.PhysicalDeviceFragmentDensityMapPropertiesEXT',--- 'Vulkan.Extensions.VK_NV_fragment_shader_barycentric.PhysicalDeviceFragmentShaderBarycentricFeaturesNV',+-- 'Vulkan.Extensions.VK_KHR_fragment_shader_barycentric.PhysicalDeviceFragmentShaderBarycentricFeaturesKHR',+-- 'Vulkan.Extensions.VK_KHR_fragment_shader_barycentric.PhysicalDeviceFragmentShaderBarycentricPropertiesKHR', -- 'Vulkan.Extensions.VK_EXT_fragment_shader_interlock.PhysicalDeviceFragmentShaderInterlockFeaturesEXT', -- 'Vulkan.Extensions.VK_NV_fragment_shading_rate_enums.PhysicalDeviceFragmentShadingRateEnumsFeaturesNV', -- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.PhysicalDeviceFragmentShadingRateFeaturesKHR',@@ -470,6 +478,10 @@ -- 'Vulkan.Core11.Promoted_From_VK_KHR_device_group_creation.PhysicalDeviceGroupProperties', -- 'Vulkan.Core12.Promoted_From_VK_EXT_host_query_reset.PhysicalDeviceHostQueryResetFeatures', -- 'Vulkan.Core11.Promoted_From_VK_KHR_external_memory_capabilities.PhysicalDeviceIDProperties',+-- 'Vulkan.Extensions.VK_EXT_image_2d_view_of_3d.PhysicalDeviceImage2DViewOf3DFeaturesEXT',+-- 'Vulkan.Extensions.VK_EXT_image_compression_control.PhysicalDeviceImageCompressionControlFeaturesEXT',+-- 'Vulkan.Extensions.VK_EXT_image_compression_control_swapchain.PhysicalDeviceImageCompressionControlSwapchainFeaturesEXT',+-- 'Vulkan.Extensions.VK_QCOM_image_processing.PhysicalDeviceImageProcessingFeaturesQCOM', -- 'Vulkan.Core13.Promoted_From_VK_EXT_image_robustness.PhysicalDeviceImageRobustnessFeatures', -- 'Vulkan.Extensions.VK_EXT_image_view_min_lod.PhysicalDeviceImageViewMinLodFeaturesEXT', -- 'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.PhysicalDeviceImagelessFramebufferFeatures',@@ -482,16 +494,22 @@ -- 'Vulkan.Extensions.VK_NV_linear_color_attachment.PhysicalDeviceLinearColorAttachmentFeaturesNV', -- 'Vulkan.Core13.Promoted_From_VK_KHR_maintenance4.PhysicalDeviceMaintenance4Features', -- 'Vulkan.Extensions.VK_EXT_memory_priority.PhysicalDeviceMemoryPriorityFeaturesEXT',+-- 'Vulkan.Extensions.VK_EXT_mesh_shader.PhysicalDeviceMeshShaderFeaturesEXT', -- 'Vulkan.Extensions.VK_NV_mesh_shader.PhysicalDeviceMeshShaderFeaturesNV',+-- 'Vulkan.Extensions.VK_EXT_mesh_shader.PhysicalDeviceMeshShaderPropertiesEXT', -- 'Vulkan.Extensions.VK_EXT_multi_draw.PhysicalDeviceMultiDrawFeaturesEXT',+-- 'Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled.PhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT', -- 'Vulkan.Core11.Promoted_From_VK_KHR_multiview.PhysicalDeviceMultiviewFeatures', -- 'Vulkan.Extensions.VK_NVX_multiview_per_view_attributes.PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX', -- 'Vulkan.Extensions.VK_VALVE_mutable_descriptor_type.PhysicalDeviceMutableDescriptorTypeFeaturesVALVE',+-- 'Vulkan.Extensions.VK_EXT_non_seamless_cube_map.PhysicalDeviceNonSeamlessCubeMapFeaturesEXT', -- 'Vulkan.Extensions.VK_EXT_pageable_device_local_memory.PhysicalDevicePageableDeviceLocalMemoryFeaturesEXT', -- 'Vulkan.Extensions.VK_KHR_performance_query.PhysicalDevicePerformanceQueryFeaturesKHR', -- 'Vulkan.Extensions.VK_KHR_performance_query.PhysicalDevicePerformanceQueryPropertiesKHR', -- 'Vulkan.Core13.Promoted_From_VK_EXT_pipeline_creation_cache_control.PhysicalDevicePipelineCreationCacheControlFeatures', -- 'Vulkan.Extensions.VK_KHR_pipeline_executable_properties.PhysicalDevicePipelineExecutablePropertiesFeaturesKHR',+-- 'Vulkan.Extensions.VK_EXT_pipeline_properties.PhysicalDevicePipelinePropertiesFeaturesEXT',+-- 'Vulkan.Extensions.VK_EXT_pipeline_robustness.PhysicalDevicePipelineRobustnessFeaturesEXT', -- 'Vulkan.Extensions.VK_KHR_portability_subset.PhysicalDevicePortabilitySubsetFeaturesKHR', -- 'Vulkan.Extensions.VK_KHR_present_id.PhysicalDevicePresentIdFeaturesKHR', -- 'Vulkan.Extensions.VK_KHR_present_wait.PhysicalDevicePresentWaitFeaturesKHR',@@ -503,8 +521,9 @@ -- 'Vulkan.Extensions.VK_EXT_provoking_vertex.PhysicalDeviceProvokingVertexFeaturesEXT', -- 'Vulkan.Extensions.VK_EXT_provoking_vertex.PhysicalDeviceProvokingVertexPropertiesEXT', -- 'Vulkan.Extensions.VK_EXT_rgba10x6_formats.PhysicalDeviceRGBA10X6FormatsFeaturesEXT',--- 'Vulkan.Extensions.VK_ARM_rasterization_order_attachment_access.PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM',+-- 'Vulkan.Extensions.VK_EXT_rasterization_order_attachment_access.PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT', -- 'Vulkan.Extensions.VK_KHR_ray_query.PhysicalDeviceRayQueryFeaturesKHR',+-- 'Vulkan.Extensions.VK_KHR_ray_tracing_maintenance1.PhysicalDeviceRayTracingMaintenance1FeaturesKHR', -- 'Vulkan.Extensions.VK_NV_ray_tracing_motion_blur.PhysicalDeviceRayTracingMotionBlurFeaturesNV', -- 'Vulkan.Extensions.VK_KHR_ray_tracing_pipeline.PhysicalDeviceRayTracingPipelineFeaturesKHR', -- 'Vulkan.Extensions.VK_NV_representative_fragment_test.PhysicalDeviceRepresentativeFragmentTestFeaturesNV',@@ -520,12 +539,14 @@ -- 'Vulkan.Extensions.VK_KHR_shader_clock.PhysicalDeviceShaderClockFeaturesKHR', -- 'Vulkan.Core13.Promoted_From_VK_EXT_shader_demote_to_helper_invocation.PhysicalDeviceShaderDemoteToHelperInvocationFeatures', -- 'Vulkan.Core11.Promoted_From_VK_KHR_shader_draw_parameters.PhysicalDeviceShaderDrawParametersFeatures',+-- 'Vulkan.Extensions.VK_AMD_shader_early_and_late_fragment_tests.PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD', -- 'Vulkan.Core12.Promoted_From_VK_KHR_shader_float16_int8.PhysicalDeviceShaderFloat16Int8Features', -- 'Vulkan.Extensions.VK_EXT_shader_image_atomic_int64.PhysicalDeviceShaderImageAtomicInt64FeaturesEXT', -- 'Vulkan.Extensions.VK_NV_shader_image_footprint.PhysicalDeviceShaderImageFootprintFeaturesNV', -- 'Vulkan.Core13.Promoted_From_VK_KHR_shader_integer_dot_product.PhysicalDeviceShaderIntegerDotProductFeatures', -- 'Vulkan.Core13.Promoted_From_VK_KHR_shader_integer_dot_product.PhysicalDeviceShaderIntegerDotProductProperties', -- 'Vulkan.Extensions.VK_INTEL_shader_integer_functions2.PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL',+-- 'Vulkan.Extensions.VK_EXT_shader_module_identifier.PhysicalDeviceShaderModuleIdentifierFeaturesEXT', -- 'Vulkan.Extensions.VK_NV_shader_sm_builtins.PhysicalDeviceShaderSMBuiltinsFeaturesNV', -- 'Vulkan.Core12.Promoted_From_VK_KHR_shader_subgroup_extended_types.PhysicalDeviceShaderSubgroupExtendedTypesFeatures', -- 'Vulkan.Extensions.VK_KHR_shader_subgroup_uniform_control_flow.PhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR',@@ -534,11 +555,13 @@ -- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceSparseProperties', -- 'Vulkan.Core11.Originally_Based_On_VK_KHR_subgroup.PhysicalDeviceSubgroupProperties', -- 'Vulkan.Core13.Promoted_From_VK_EXT_subgroup_size_control.PhysicalDeviceSubgroupSizeControlFeatures',+-- 'Vulkan.Extensions.VK_EXT_subpass_merge_feedback.PhysicalDeviceSubpassMergeFeedbackFeaturesEXT', -- 'Vulkan.Extensions.VK_HUAWEI_subpass_shading.PhysicalDeviceSubpassShadingFeaturesHUAWEI', -- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.PhysicalDeviceSynchronization2Features', -- 'Vulkan.Extensions.VK_EXT_texel_buffer_alignment.PhysicalDeviceTexelBufferAlignmentFeaturesEXT', -- 'Vulkan.Core13.Promoted_From_VK_EXT_texel_buffer_alignment.PhysicalDeviceTexelBufferAlignmentProperties', -- 'Vulkan.Core13.Promoted_From_VK_EXT_texture_compression_astc_hdr.PhysicalDeviceTextureCompressionASTCHDRFeatures',+-- 'Vulkan.Extensions.VK_QCOM_tile_properties.PhysicalDeviceTilePropertiesFeaturesQCOM', -- 'Vulkan.Core12.Promoted_From_VK_KHR_timeline_semaphore.PhysicalDeviceTimelineSemaphoreFeatures', -- 'Vulkan.Extensions.VK_EXT_transform_feedback.PhysicalDeviceTransformFeedbackFeaturesEXT', -- 'Vulkan.Extensions.VK_EXT_transform_feedback.PhysicalDeviceTransformFeedbackPropertiesEXT',@@ -577,19 +600,21 @@ -- 'Vulkan.Extensions.VK_NV_shading_rate_image.PipelineViewportShadingRateImageStateCreateInfoNV', -- 'Vulkan.Extensions.VK_NV_clip_space_w_scaling.PipelineViewportWScalingStateCreateInfoNV', -- 'Vulkan.Core11.Originally_Based_On_VK_KHR_protected_memory.ProtectedSubmitInfo',--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFamilyQueryResultStatusProperties2KHR VkQueueFamilyQueryResultStatusProperties2KHR>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFamilyQueryResultStatusPropertiesKHR VkQueueFamilyQueryResultStatusPropertiesKHR>,+-- 'Vulkan.Extensions.VK_EXT_subpass_merge_feedback.RenderPassCreationControlEXT', -- 'Vulkan.Extensions.VK_EXT_border_color_swizzle.SamplerBorderColorComponentMappingCreateInfoEXT', -- 'Vulkan.Core10.Sampler.SamplerCreateInfo', -- 'Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion.SamplerYcbcrConversionCreateInfo',+-- 'Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled.SubpassResolvePerformanceQueryEXT', -- 'Vulkan.Extensions.VK_EXT_full_screen_exclusive.SurfaceCapabilitiesFullScreenExclusiveEXT', -- 'Vulkan.Extensions.VK_KHR_surface_protected_capabilities.SurfaceProtectedCapabilitiesKHR', -- 'Vulkan.Extensions.VK_KHR_swapchain.SwapchainCreateInfoKHR', -- 'Vulkan.Extensions.VK_AMD_display_native_hdr.SwapchainDisplayNativeHdrCreateInfoAMD', -- 'Vulkan.Extensions.VK_AMD_texture_gather_bias_lod.TextureLODGatherFormatPropertiesAMD', -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH264CapabilitiesEXT VkVideoEncodeH264CapabilitiesEXT>,--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH264EmitPictureParametersEXT VkVideoEncodeH264EmitPictureParametersEXT>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH264EmitPictureParametersInfoEXT VkVideoEncodeH264EmitPictureParametersInfoEXT>, -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH264RateControlLayerInfoEXT VkVideoEncodeH264RateControlLayerInfoEXT>,--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH265EmitPictureParametersEXT VkVideoEncodeH265EmitPictureParametersEXT>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH265EmitPictureParametersInfoEXT VkVideoEncodeH265EmitPictureParametersInfoEXT>, -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH265RateControlLayerInfoEXT VkVideoEncodeH265RateControlLayerInfoEXT>, -- 'Vulkan.Extensions.VK_NV_ray_tracing.cmdBuildAccelerationStructureNV', -- 'Vulkan.Extensions.VK_NV_device_generated_commands.cmdExecuteGeneratedCommandsNV',@@ -736,6 +761,7 @@ -- = See Also -- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_synchronization2 VK_KHR_synchronization2>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3 VK_VERSION_1_3>, -- 'Flags' type Flags64 = Word64 @@ -754,6 +780,7 @@ -- 'Vulkan.Extensions.VK_NV_ray_tracing.BindAccelerationStructureMemoryInfoNV', -- 'Vulkan.Core11.Promoted_From_VK_KHR_bind_memory2.BindBufferMemoryInfo', -- 'Vulkan.Core11.Promoted_From_VK_KHR_bind_memory2.BindImageMemoryInfo',+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkBindVideoSessionMemoryInfoKHR VkBindVideoSessionMemoryInfoKHR>, -- 'Vulkan.Core10.CommandBufferBuilding.BufferCopy', -- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.BufferCopy2', -- 'Vulkan.Core10.Buffer.BufferCreateInfo',@@ -790,7 +817,7 @@ -- 'Vulkan.Core10.SparseResourceMemoryManagement.SparseMemoryBind', -- 'Vulkan.Extensions.VK_KHR_ray_tracing_pipeline.StridedDeviceAddressRegionKHR', -- 'Vulkan.Core10.Image.SubresourceLayout',--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoBindMemoryKHR VkVideoBindMemoryKHR>,+-- 'Vulkan.Extensions.VK_KHR_ray_tracing_maintenance1.TraceRaysIndirectCommand2KHR', -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoCapabilitiesKHR VkVideoCapabilitiesKHR>, -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoDecodeInfoKHR VkVideoDecodeInfoKHR>, -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeInfoKHR VkVideoEncodeInfoKHR>,@@ -814,7 +841,9 @@ -- 'Vulkan.Core12.Promoted_From_VK_KHR_draw_indirect_count.cmdDrawIndirectCount', -- 'Vulkan.Extensions.VK_AMD_draw_indirect_count.cmdDrawIndirectCountAMD', -- 'Vulkan.Extensions.VK_KHR_draw_indirect_count.cmdDrawIndirectCountKHR',+-- 'Vulkan.Extensions.VK_EXT_mesh_shader.cmdDrawMeshTasksIndirectCountEXT', -- 'Vulkan.Extensions.VK_NV_mesh_shader.cmdDrawMeshTasksIndirectCountNV',+-- 'Vulkan.Extensions.VK_EXT_mesh_shader.cmdDrawMeshTasksIndirectEXT', -- 'Vulkan.Extensions.VK_NV_mesh_shader.cmdDrawMeshTasksIndirectNV', -- 'Vulkan.Extensions.VK_EXT_transform_feedback.cmdEndTransformFeedbackEXT', -- 'Vulkan.Core10.CommandBufferBuilding.cmdFillBuffer',@@ -841,7 +870,9 @@ -- 'Vulkan.Extensions.VK_KHR_acceleration_structure.DeviceOrHostAddressKHR', -- 'Vulkan.Extensions.VK_NVX_image_view_handle.ImageViewAddressPropertiesNVX', -- 'Vulkan.Extensions.VK_KHR_ray_tracing_pipeline.StridedDeviceAddressRegionKHR',+-- 'Vulkan.Extensions.VK_KHR_ray_tracing_maintenance1.TraceRaysIndirectCommand2KHR', -- 'Vulkan.Extensions.VK_KHR_acceleration_structure.cmdBuildAccelerationStructuresIndirectKHR',+-- 'Vulkan.Extensions.VK_KHR_ray_tracing_maintenance1.cmdTraceRaysIndirect2KHR', -- 'Vulkan.Extensions.VK_KHR_ray_tracing_pipeline.cmdTraceRaysIndirectKHR' type DeviceAddress = Word64
src/Vulkan/Core10/FundamentalTypes.hs-boot view
@@ -71,7 +71,9 @@ -- 'Vulkan.Extensions.VK_KHR_acceleration_structure.DeviceOrHostAddressKHR', -- 'Vulkan.Extensions.VK_NVX_image_view_handle.ImageViewAddressPropertiesNVX', -- 'Vulkan.Extensions.VK_KHR_ray_tracing_pipeline.StridedDeviceAddressRegionKHR',+-- 'Vulkan.Extensions.VK_KHR_ray_tracing_maintenance1.TraceRaysIndirectCommand2KHR', -- 'Vulkan.Extensions.VK_KHR_acceleration_structure.cmdBuildAccelerationStructuresIndirectKHR',+-- 'Vulkan.Extensions.VK_KHR_ray_tracing_maintenance1.cmdTraceRaysIndirect2KHR', -- 'Vulkan.Extensions.VK_KHR_ray_tracing_pipeline.cmdTraceRaysIndirectKHR' type DeviceAddress = Word64 @@ -90,6 +92,7 @@ -- 'Vulkan.Extensions.VK_NV_ray_tracing.BindAccelerationStructureMemoryInfoNV', -- 'Vulkan.Core11.Promoted_From_VK_KHR_bind_memory2.BindBufferMemoryInfo', -- 'Vulkan.Core11.Promoted_From_VK_KHR_bind_memory2.BindImageMemoryInfo',+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkBindVideoSessionMemoryInfoKHR VkBindVideoSessionMemoryInfoKHR>, -- 'Vulkan.Core10.CommandBufferBuilding.BufferCopy', -- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.BufferCopy2', -- 'Vulkan.Core10.Buffer.BufferCreateInfo',@@ -126,7 +129,7 @@ -- 'Vulkan.Core10.SparseResourceMemoryManagement.SparseMemoryBind', -- 'Vulkan.Extensions.VK_KHR_ray_tracing_pipeline.StridedDeviceAddressRegionKHR', -- 'Vulkan.Core10.Image.SubresourceLayout',--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoBindMemoryKHR VkVideoBindMemoryKHR>,+-- 'Vulkan.Extensions.VK_KHR_ray_tracing_maintenance1.TraceRaysIndirectCommand2KHR', -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoCapabilitiesKHR VkVideoCapabilitiesKHR>, -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoDecodeInfoKHR VkVideoDecodeInfoKHR>, -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeInfoKHR VkVideoEncodeInfoKHR>,@@ -150,7 +153,9 @@ -- 'Vulkan.Core12.Promoted_From_VK_KHR_draw_indirect_count.cmdDrawIndirectCount', -- 'Vulkan.Extensions.VK_AMD_draw_indirect_count.cmdDrawIndirectCountAMD', -- 'Vulkan.Extensions.VK_KHR_draw_indirect_count.cmdDrawIndirectCountKHR',+-- 'Vulkan.Extensions.VK_EXT_mesh_shader.cmdDrawMeshTasksIndirectCountEXT', -- 'Vulkan.Extensions.VK_NV_mesh_shader.cmdDrawMeshTasksIndirectCountNV',+-- 'Vulkan.Extensions.VK_EXT_mesh_shader.cmdDrawMeshTasksIndirectEXT', -- 'Vulkan.Extensions.VK_NV_mesh_shader.cmdDrawMeshTasksIndirectNV', -- 'Vulkan.Extensions.VK_EXT_transform_feedback.cmdEndTransformFeedbackEXT', -- 'Vulkan.Core10.CommandBufferBuilding.cmdFillBuffer',
src/Vulkan/Core10/Handles.hs view
@@ -322,6 +322,7 @@ -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkDestroyVideoSessionParametersKHR vkDestroyVideoSessionParametersKHR>, -- 'Vulkan.Core10.Queue.deviceWaitIdle', -- 'Vulkan.Extensions.VK_EXT_display_control.displayPowerControlEXT',+-- 'Vulkan.Extensions.VK_EXT_metal_objects.exportMetalObjectsEXT', -- 'Vulkan.Core10.Memory.flushMappedMemoryRanges', -- 'Vulkan.Core10.CommandBuffer.freeCommandBuffers', -- 'Vulkan.Core10.DescriptorSet.freeDescriptorSets',@@ -366,10 +367,12 @@ -- 'Vulkan.Core10.Queue.getDeviceQueue', -- 'Vulkan.Core11.Originally_Based_On_VK_KHR_protected_memory.getDeviceQueue2', -- 'Vulkan.Extensions.VK_HUAWEI_subpass_shading.getDeviceSubpassShadingMaxWorkgroupSizeHUAWEI',+-- 'Vulkan.Extensions.VK_QCOM_tile_properties.getDynamicRenderingTilePropertiesQCOM', -- 'Vulkan.Core10.Event.getEventStatus', -- 'Vulkan.Extensions.VK_KHR_external_fence_fd.getFenceFdKHR', -- 'Vulkan.Core10.Fence.getFenceStatus', -- 'Vulkan.Extensions.VK_KHR_external_fence_win32.getFenceWin32HandleKHR',+-- 'Vulkan.Extensions.VK_QCOM_tile_properties.getFramebufferTilePropertiesQCOM', -- 'Vulkan.Extensions.VK_NV_device_generated_commands.getGeneratedCommandsMemoryRequirementsNV', -- 'Vulkan.Extensions.VK_EXT_image_drm_format_modifier.getImageDrmFormatModifierPropertiesEXT', -- 'Vulkan.Core10.MemoryManagement.getImageMemoryRequirements',@@ -379,6 +382,7 @@ -- 'Vulkan.Core11.Promoted_From_VK_KHR_get_memory_requirements2.getImageSparseMemoryRequirements2', -- 'Vulkan.Extensions.VK_KHR_get_memory_requirements2.getImageSparseMemoryRequirements2KHR', -- 'Vulkan.Core10.Image.getImageSubresourceLayout',+-- 'Vulkan.Extensions.VK_EXT_image_compression_control.getImageSubresourceLayout2EXT', -- 'Vulkan.Extensions.VK_NVX_image_view_handle.getImageViewAddressNVX', -- 'Vulkan.Extensions.VK_NVX_image_view_handle.getImageViewHandleNVX', -- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.getMemoryAndroidHardwareBufferANDROID',@@ -397,6 +401,7 @@ -- 'Vulkan.Extensions.VK_KHR_pipeline_executable_properties.getPipelineExecutableInternalRepresentationsKHR', -- 'Vulkan.Extensions.VK_KHR_pipeline_executable_properties.getPipelineExecutablePropertiesKHR', -- 'Vulkan.Extensions.VK_KHR_pipeline_executable_properties.getPipelineExecutableStatisticsKHR',+-- 'Vulkan.Extensions.VK_EXT_pipeline_properties.getPipelinePropertiesEXT', -- 'Vulkan.Core13.Promoted_From_VK_EXT_private_data.getPrivateData', -- 'Vulkan.Extensions.VK_EXT_private_data.getPrivateDataEXT', -- 'Vulkan.Core10.Query.getQueryPoolResults',@@ -412,6 +417,8 @@ -- 'Vulkan.Extensions.VK_KHR_external_semaphore_win32.getSemaphoreWin32HandleKHR', -- 'Vulkan.Extensions.VK_FUCHSIA_external_semaphore.getSemaphoreZirconHandleFUCHSIA', -- 'Vulkan.Extensions.VK_AMD_shader_info.getShaderInfoAMD',+-- 'Vulkan.Extensions.VK_EXT_shader_module_identifier.getShaderModuleCreateInfoIdentifierEXT',+-- 'Vulkan.Extensions.VK_EXT_shader_module_identifier.getShaderModuleIdentifierEXT', -- 'Vulkan.Extensions.VK_EXT_display_control.getSwapchainCounterEXT', -- 'Vulkan.Extensions.VK_KHR_swapchain.getSwapchainImagesKHR', -- 'Vulkan.Extensions.VK_KHR_shared_presentable_image.getSwapchainStatusKHR',@@ -481,6 +488,7 @@ -- = See Also -- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,+-- 'Vulkan.Extensions.VK_EXT_metal_objects.ExportMetalCommandQueueInfoEXT', -- 'Vulkan.Core10.Queue.getDeviceQueue', -- 'Vulkan.Core11.Originally_Based_On_VK_KHR_protected_memory.getDeviceQueue2', -- 'Vulkan.Extensions.VK_KHR_synchronization2.getQueueCheckpointData2NV',@@ -586,7 +594,10 @@ -- 'Vulkan.Core12.Promoted_From_VK_KHR_draw_indirect_count.cmdDrawIndirectCount', -- 'Vulkan.Extensions.VK_AMD_draw_indirect_count.cmdDrawIndirectCountAMD', -- 'Vulkan.Extensions.VK_KHR_draw_indirect_count.cmdDrawIndirectCountKHR',+-- 'Vulkan.Extensions.VK_EXT_mesh_shader.cmdDrawMeshTasksEXT',+-- 'Vulkan.Extensions.VK_EXT_mesh_shader.cmdDrawMeshTasksIndirectCountEXT', -- 'Vulkan.Extensions.VK_NV_mesh_shader.cmdDrawMeshTasksIndirectCountNV',+-- 'Vulkan.Extensions.VK_EXT_mesh_shader.cmdDrawMeshTasksIndirectEXT', -- 'Vulkan.Extensions.VK_NV_mesh_shader.cmdDrawMeshTasksIndirectNV', -- 'Vulkan.Extensions.VK_NV_mesh_shader.cmdDrawMeshTasksNV', -- 'Vulkan.Extensions.VK_EXT_multi_draw.cmdDrawMultiEXT',@@ -685,6 +696,7 @@ -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount', -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT', -- 'Vulkan.Extensions.VK_HUAWEI_subpass_shading.cmdSubpassShadingHUAWEI',+-- 'Vulkan.Extensions.VK_KHR_ray_tracing_maintenance1.cmdTraceRaysIndirect2KHR', -- 'Vulkan.Extensions.VK_KHR_ray_tracing_pipeline.cmdTraceRaysIndirectKHR', -- 'Vulkan.Extensions.VK_KHR_ray_tracing_pipeline.cmdTraceRaysKHR', -- 'Vulkan.Extensions.VK_NV_ray_tracing.cmdTraceRaysNV',@@ -722,7 +734,9 @@ -- 'Vulkan.Extensions.VK_NV_ray_tracing.BindAccelerationStructureMemoryInfoNV', -- 'Vulkan.Core11.Promoted_From_VK_KHR_bind_memory2.BindBufferMemoryInfo', -- 'Vulkan.Core11.Promoted_From_VK_KHR_bind_memory2.BindImageMemoryInfo',+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkBindVideoSessionMemoryInfoKHR VkBindVideoSessionMemoryInfoKHR>, -- 'Vulkan.Core12.Promoted_From_VK_KHR_buffer_device_address.DeviceMemoryOpaqueCaptureAddressInfo',+-- 'Vulkan.Extensions.VK_EXT_metal_objects.ExportMetalBufferInfoEXT', -- 'Vulkan.Core10.Memory.MappedMemoryRange', -- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.MemoryGetAndroidHardwareBufferInfoANDROID', -- 'Vulkan.Extensions.VK_KHR_external_memory_fd.MemoryGetFdInfoKHR',@@ -731,7 +745,6 @@ -- 'Vulkan.Extensions.VK_FUCHSIA_external_memory.MemoryGetZirconHandleInfoFUCHSIA', -- 'Vulkan.Core10.SparseResourceMemoryManagement.SparseImageMemoryBind', -- 'Vulkan.Core10.SparseResourceMemoryManagement.SparseMemoryBind',--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoBindMemoryKHR VkVideoBindMemoryKHR>, -- 'Vulkan.Extensions.VK_KHR_win32_keyed_mutex.Win32KeyedMutexAcquireReleaseInfoKHR', -- 'Vulkan.Extensions.VK_NV_win32_keyed_mutex.Win32KeyedMutexAcquireReleaseInfoNV', -- 'Vulkan.Core10.Memory.allocateMemory',@@ -821,7 +834,9 @@ -- 'Vulkan.Core12.Promoted_From_VK_KHR_draw_indirect_count.cmdDrawIndirectCount', -- 'Vulkan.Extensions.VK_AMD_draw_indirect_count.cmdDrawIndirectCountAMD', -- 'Vulkan.Extensions.VK_KHR_draw_indirect_count.cmdDrawIndirectCountKHR',+-- 'Vulkan.Extensions.VK_EXT_mesh_shader.cmdDrawMeshTasksIndirectCountEXT', -- 'Vulkan.Extensions.VK_NV_mesh_shader.cmdDrawMeshTasksIndirectCountNV',+-- 'Vulkan.Extensions.VK_EXT_mesh_shader.cmdDrawMeshTasksIndirectEXT', -- 'Vulkan.Extensions.VK_NV_mesh_shader.cmdDrawMeshTasksIndirectNV', -- 'Vulkan.Extensions.VK_EXT_transform_feedback.cmdEndTransformFeedbackEXT', -- 'Vulkan.Core10.CommandBufferBuilding.cmdFillBuffer',@@ -846,6 +861,7 @@ -- = See Also -- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,+-- 'Vulkan.Extensions.VK_EXT_metal_objects.ExportMetalTextureInfoEXT', -- 'Vulkan.Core10.DescriptorSet.WriteDescriptorSet', -- 'Vulkan.Core10.BufferView.createBufferView', -- 'Vulkan.Core10.BufferView.destroyBufferView'@@ -869,6 +885,8 @@ -- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.CopyImageInfo2', -- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.CopyImageToBufferInfo2', -- 'Vulkan.Extensions.VK_NV_dedicated_allocation.DedicatedAllocationMemoryAllocateInfoNV',+-- 'Vulkan.Extensions.VK_EXT_metal_objects.ExportMetalIOSurfaceInfoEXT',+-- 'Vulkan.Extensions.VK_EXT_metal_objects.ExportMetalTextureInfoEXT', -- 'Vulkan.Core10.OtherTypes.ImageMemoryBarrier', -- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.ImageMemoryBarrier2', -- 'Vulkan.Core11.Promoted_From_VK_KHR_get_memory_requirements2.ImageMemoryRequirementsInfo2',@@ -891,6 +909,7 @@ -- 'Vulkan.Core10.MemoryManagement.getImageMemoryRequirements', -- 'Vulkan.Core10.SparseResourceMemoryManagement.getImageSparseMemoryRequirements', -- 'Vulkan.Core10.Image.getImageSubresourceLayout',+-- 'Vulkan.Extensions.VK_EXT_image_compression_control.getImageSubresourceLayout2EXT', -- 'Vulkan.Extensions.VK_KHR_swapchain.getSwapchainImagesKHR' newtype Image = Image Word64 deriving newtype (Eq, Ord, Storable, Zero)@@ -907,13 +926,14 @@ -- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>, -- 'Vulkan.Core10.DescriptorSet.DescriptorImageInfo',+-- 'Vulkan.Extensions.VK_EXT_metal_objects.ExportMetalTextureInfoEXT', -- 'Vulkan.Core10.Pass.FramebufferCreateInfo', -- 'Vulkan.Extensions.VK_NVX_image_view_handle.ImageViewHandleInfoNVX', -- 'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.RenderPassAttachmentBeginInfo', -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingAttachmentInfo', -- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingFragmentDensityMapAttachmentInfoEXT', -- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingFragmentShadingRateAttachmentInfoKHR',--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoPictureResourceKHR VkVideoPictureResourceKHR>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoPictureResourceInfoKHR VkVideoPictureResourceInfoKHR>, -- 'Vulkan.Extensions.VK_HUAWEI_invocation_mask.cmdBindInvocationMaskHUAWEI', -- 'Vulkan.Extensions.VK_NV_shading_rate_image.cmdBindShadingRateImageNV', -- 'Vulkan.Core10.ImageView.createImageView',@@ -935,7 +955,8 @@ -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>, -- 'Vulkan.Core10.Pipeline.PipelineShaderStageCreateInfo', -- 'Vulkan.Core10.Shader.createShaderModule',--- 'Vulkan.Core10.Shader.destroyShaderModule'+-- 'Vulkan.Core10.Shader.destroyShaderModule',+-- 'Vulkan.Extensions.VK_EXT_shader_module_identifier.getShaderModuleIdentifierEXT' newtype ShaderModule = ShaderModule Word64 deriving newtype (Eq, Ord, Storable, Zero) deriving anyclass (IsHandle)@@ -1124,6 +1145,7 @@ -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>, -- 'Vulkan.Extensions.VK_KHR_swapchain.AcquireNextImageInfoKHR', -- 'Vulkan.Core10.SparseResourceMemoryManagement.BindSparseInfo',+-- 'Vulkan.Extensions.VK_EXT_metal_objects.ExportMetalSharedEventInfoEXT', -- 'Vulkan.Extensions.VK_KHR_external_semaphore_fd.ImportSemaphoreFdInfoKHR', -- 'Vulkan.Extensions.VK_KHR_external_semaphore_win32.ImportSemaphoreWin32HandleInfoKHR', -- 'Vulkan.Extensions.VK_FUCHSIA_external_semaphore.ImportSemaphoreZirconHandleInfoFUCHSIA',@@ -1154,6 +1176,7 @@ -- = See Also -- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,+-- 'Vulkan.Extensions.VK_EXT_metal_objects.ExportMetalSharedEventInfoEXT', -- 'Vulkan.Core10.CommandBufferBuilding.cmdResetEvent', -- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.cmdResetEvent2', -- 'Vulkan.Extensions.VK_KHR_synchronization2.cmdResetEvent2KHR',@@ -1213,7 +1236,8 @@ -- 'Vulkan.Core10.CommandBuffer.CommandBufferInheritanceInfo', -- 'Vulkan.Core10.CommandBufferBuilding.RenderPassBeginInfo', -- 'Vulkan.Core10.Pass.createFramebuffer',--- 'Vulkan.Core10.Pass.destroyFramebuffer'+-- 'Vulkan.Core10.Pass.destroyFramebuffer',+-- 'Vulkan.Extensions.VK_QCOM_tile_properties.getFramebufferTilePropertiesQCOM' newtype Framebuffer = Framebuffer Word64 deriving newtype (Eq, Ord, Storable, Zero) deriving anyclass (IsHandle)
src/Vulkan/Core10/Image.hs view
@@ -65,6 +65,7 @@ import Vulkan.Dynamic (DeviceCmds(pVkGetImageSubresourceLayout)) import Vulkan.Core10.FundamentalTypes (DeviceSize) import Vulkan.Core10.Handles (Device_T)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_metal_objects (ExportMetalObjectCreateInfoEXT) import Vulkan.CStruct.Extends (Extends) import Vulkan.CStruct.Extends (Extendss) import Vulkan.CStruct.Extends (Extensible(..))@@ -75,6 +76,7 @@ import Vulkan.Core10.Enums.Format (Format) import Vulkan.Core10.Handles (Image) import Vulkan.Core10.Handles (Image(..))+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_image_compression_control (ImageCompressionControlEXT) import Vulkan.Core10.Enums.ImageCreateFlagBits (ImageCreateFlags) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_image_drm_format_modifier (ImageDrmFormatModifierExplicitCreateInfoEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_image_drm_format_modifier (ImageDrmFormatModifierListCreateInfoEXT)@@ -86,6 +88,8 @@ import Vulkan.Core10.Enums.ImageTiling (ImageTiling) import Vulkan.Core10.Enums.ImageType (ImageType) import Vulkan.Core10.Enums.ImageUsageFlagBits (ImageUsageFlags)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_metal_objects (ImportMetalIOSurfaceInfoEXT)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_metal_objects (ImportMetalTextureInfoEXT) import Vulkan.CStruct.Extends (PeekChain) import Vulkan.CStruct.Extends (PeekChain(..)) import Vulkan.CStruct.Extends (PokeChain)@@ -123,7 +127,7 @@ -- - #VUID-vkCreateImage-pNext-06389# If a -- 'Vulkan.Extensions.VK_FUCHSIA_buffer_collection.BufferCollectionImageCreateInfoFUCHSIA' -- has been chained to @pNext@, @pCreateInfo@ /must/ match the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#sysmem-chosen-create-infos Sysmem chosen >+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#sysmem-chosen-create-infos Sysmem chosen > -- excepting members 'ImageCreateInfo'::@extent@ and -- 'ImageCreateInfo'::@usage@ in the match criteria --@@ -154,6 +158,8 @@ -- -- - 'Vulkan.Core10.Enums.Result.ERROR_OUT_OF_DEVICE_MEMORY' --+-- - 'Vulkan.Core10.Enums.Result.ERROR_COMPRESSION_EXHAUSTED_EXT'+-- -- = See Also -- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,@@ -168,7 +174,7 @@ -- parameters to be used to create the image. (ImageCreateInfo a) -> -- | @pAllocator@ controls host memory allocation as described in the- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation> -- chapter. ("allocator" ::: Maybe AllocationCallbacks) -> io (Image)@@ -261,7 +267,7 @@ -> -- | @image@ is the image to destroy. Image -> -- | @pAllocator@ controls host memory allocation as described in the- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation> -- chapter. ("allocator" ::: Maybe AllocationCallbacks) -> io ()@@ -290,14 +296,14 @@ -- = Description -- -- If the image is--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#glossary-linear-resource linear>,+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#glossary-linear-resource linear>, -- then the returned layout is valid for--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-device-hostaccess host access>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-device-hostaccess host access>. -- -- If the image’s tiling is -- 'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_LINEAR' and its format is -- a--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar format>,+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar format>, -- then 'getImageSubresourceLayout' describes one /format plane/ of the -- image. If the image’s tiling is -- 'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT',@@ -305,10 +311,10 @@ -- image. If the image’s tiling is -- 'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT' -- and the image is--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#glossary-linear-resource non-linear>,+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#glossary-linear-resource non-linear>, -- then the returned layout has an implementation-dependent meaning; the -- vendor of the image’s--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#glossary-drm-format-modifier DRM format modifier>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#glossary-drm-format-modifier DRM format modifier> -- /may/ provide documentation that explains how to interpret the returned -- layout. --@@ -359,7 +365,7 @@ -- - #VUID-vkGetImageSubresourceLayout-format-01581# If the @tiling@ of -- the @image@ is 'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_LINEAR' -- and its @format@ is a--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar format>+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar format> -- with two planes, the @aspectMask@ member of @pSubresource@ /must/ be -- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_0_BIT' -- or@@ -368,7 +374,7 @@ -- - #VUID-vkGetImageSubresourceLayout-format-01582# If the @tiling@ of -- the @image@ is 'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_LINEAR' -- and its @format@ is a--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar format>+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar format> -- with three planes, the @aspectMask@ member of @pSubresource@ /must/ -- be -- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_0_BIT',@@ -424,7 +430,7 @@ Image -> -- | @pSubresource@ is a pointer to a -- 'Vulkan.Core10.SparseResourceMemoryManagement.ImageSubresource'- -- structure selecting a specific image for the image subresource.+ -- structure selecting a specific image subresource from the image. ImageSubresource -> io (SubresourceLayout) getImageSubresourceLayout device image subresource = liftIO . evalContT $ do@@ -470,11 +476,11 @@ -- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_TRANSFER_DST_BIT' -- -- Images created with one of the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion formats that require a sampler Y′CBCR conversion>,+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion formats that require a sampler Y′CBCR conversion>, -- have further restrictions on their limits and capabilities compared to -- images created with other formats. Creation of images with a format -- requiring--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion Y′CBCR conversion>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion Y′CBCR conversion> -- /may/ not be supported unless other parameters meet all of the -- constraints: --@@ -482,7 +488,11 @@ -- -- - @mipLevels@ is 1 ----- - @arrayLayers@ is 1+-- - @arrayLayers@ is 1, unless the @ycbcrImageArrays@ feature is+-- enabled, or otherwise indicated by+-- 'Vulkan.Core10.DeviceInitialization.ImageFormatProperties'::@maxArrayLayers@,+-- as returned by+-- 'Vulkan.Core10.DeviceInitialization.getPhysicalDeviceImageFormatProperties' -- -- - @samples@ is -- 'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT'@@ -511,7 +521,7 @@ -- a @usage@ bit is valid if it is supported for at least one of the -- formats a 'Vulkan.Core10.Handles.ImageView' created from the image /can/ -- have (see--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-views Image Views>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-views Image Views> -- for more detail). -- -- == Image Creation Limits@@ -528,7 +538,7 @@ -- referenced by the relevant valid usage statements of 'ImageCreateInfo'. -- -- - Let @uint64_t imageCreateDrmFormatModifiers[]@ be the set of--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#glossary-drm-format-modifier Linux DRM format modifiers>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#glossary-drm-format-modifier Linux DRM format modifiers> -- that the resultant image /may/ have. -- -- - If @tiling@ is not@@ -548,7 +558,7 @@ -- -- - Let @VkBool32 imageCreateMaybeLinear@ indicate if the resultant -- image may be--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#glossary-linear-resource linear>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#glossary-linear-resource linear>. -- -- - If @tiling@ is -- 'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_LINEAR', then@@ -668,31 +678,50 @@ -- 'Vulkan.Core11.Promoted_From_VK_KHR_external_memory_capabilities.PhysicalDeviceExternalImageFormatInfo' -- structure, or contain a structure whose @handleType@ is @0@. --+-- - If 'ImageCreateInfo'::@pNext@ contains a+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoProfileListInfoKHR VkVideoProfileListInfoKHR>+-- structure then+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceImageFormatInfo2'::@pNext@+-- /must/ also contain the same+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoProfileListInfoKHR VkVideoProfileListInfoKHR>+-- structure on each call.+-- -- - If @tiling@ is -- 'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT',--- then--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceImageFormatInfo2'::@pNext@--- /must/ contain a--- 'Vulkan.Extensions.VK_EXT_image_drm_format_modifier.PhysicalDeviceImageDrmFormatModifierInfoEXT'--- structure where @sharingMode@ is equal to--- 'ImageCreateInfo'::@sharingMode@; and, if @sharingMode@ is--- 'Vulkan.Core10.Enums.SharingMode.SHARING_MODE_CONCURRENT',--- then @queueFamilyIndexCount@ and @pQueueFamilyIndices@--- /must/ be equal to those in 'ImageCreateInfo'; and, if--- @flags@ contains--- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_MUTABLE_FORMAT_BIT',--- then the--- 'Vulkan.Core12.Promoted_From_VK_KHR_image_format_list.ImageFormatListCreateInfo'--- structure included in the @pNext@ chain of--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceImageFormatInfo2'--- /must/ be equivalent to the one included in the @pNext@--- chain of 'ImageCreateInfo'; and--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceImageFormatProperties2'--- /must/ be called for each modifier in--- @imageCreateDrmFormatModifiers@, successively setting--- 'Vulkan.Extensions.VK_EXT_image_drm_format_modifier.PhysicalDeviceImageDrmFormatModifierInfoEXT'::@drmFormatModifier@--- on each call.+-- then: --+-- - 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceImageFormatInfo2'::@pNext@+-- /must/ contain a+-- 'Vulkan.Extensions.VK_EXT_image_drm_format_modifier.PhysicalDeviceImageDrmFormatModifierInfoEXT'+-- structure where @sharingMode@ is equal to+-- 'ImageCreateInfo'::@sharingMode@;+--+-- - if @sharingMode@ is+-- 'Vulkan.Core10.Enums.SharingMode.SHARING_MODE_CONCURRENT',+-- then @queueFamilyIndexCount@ and @pQueueFamilyIndices@+-- /must/ be equal to those in 'ImageCreateInfo';+--+-- - if @flags@ contains+-- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_MUTABLE_FORMAT_BIT',+-- then the+-- 'Vulkan.Core12.Promoted_From_VK_KHR_image_format_list.ImageFormatListCreateInfo'+-- structure included in the @pNext@ chain of+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceImageFormatInfo2'+-- /must/ be equivalent to the one included in the @pNext@+-- chain of 'ImageCreateInfo';+--+-- - if 'ImageCreateInfo'::@pNext@ contains a+-- 'Vulkan.Extensions.VK_EXT_image_compression_control.ImageCompressionControlEXT'+-- structure, then the+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceImageFormatInfo2'::@pNext@+-- chain /must/ contain an equivalent structure;+--+-- - 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceImageFormatProperties2'+-- /must/ be called for each modifier in+-- @imageCreateDrmFormatModifiers@, successively setting+-- 'Vulkan.Extensions.VK_EXT_image_drm_format_modifier.PhysicalDeviceImageDrmFormatModifierInfoEXT'::@drmFormatModifier@+-- on each call.+-- -- - If @tiling@ is not -- 'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT', -- then@@ -752,11 +781,56 @@ -- in @imageCreateImageFormatPropertiesList@. The value is undefined if -- @imageCreateImageFormatPropertiesList@ is empty. --+-- - Let @VkVideoFormatPropertiesKHR videoFormatProperties[]@ be defined+-- as follows.+--+-- - If 'ImageCreateInfo'::@pNext@ contains a+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoProfileListInfoKHR VkVideoProfileListInfoKHR>+-- structure, then @videoFormatProperties@ is the list of+-- structures obtained by calling+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkGetPhysicalDeviceVideoFormatPropertiesKHR vkGetPhysicalDeviceVideoFormatPropertiesKHR>+-- with+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkPhysicalDeviceVideoFormatInfoKHR VkPhysicalDeviceVideoFormatInfoKHR>::@imageUsage@+-- equal to the @usage@ member of 'ImageCreateInfo' and+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkPhysicalDeviceVideoFormatInfoKHR VkPhysicalDeviceVideoFormatInfoKHR>::@pNext@+-- containing the same+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoProfileListInfoKHR VkVideoProfileListInfoKHR>+-- structure chained to 'ImageCreateInfo'.+--+-- - If 'ImageCreateInfo'::@pNext@ contains no+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoProfileListInfoKHR VkVideoProfileListInfoKHR>+-- structure, then @videoFormatProperties@ is an empty list.+--+-- - Let @VkBool32 supportedVideoFormat@ indicate if the image parameters+-- are supported by the specified video profiles.+--+-- - @supportedVideoFormat@ is 'Vulkan.Core10.FundamentalTypes.TRUE'+-- if there exists an element in the @videoFormatProperties@ list+-- for which all of the following conditions are true:+--+-- - 'ImageCreateInfo'::@format@ equals+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoFormatPropertiesKHR VkVideoFormatPropertiesKHR>::@format@.+--+-- - 'ImageCreateInfo'::@flags@ only contains bits also set in+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoFormatPropertiesKHR VkVideoFormatPropertiesKHR>::@imageCreateFlags@.+--+-- - 'ImageCreateInfo'::@imageType@ equals+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoFormatPropertiesKHR VkVideoFormatPropertiesKHR>::@imageType@.+--+-- - 'ImageCreateInfo'::@tiling@ equals+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoFormatPropertiesKHR VkVideoFormatPropertiesKHR>::@imageTiling@.+--+-- - 'ImageCreateInfo'::@usage@ only contains bits also set in+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoFormatPropertiesKHR VkVideoFormatPropertiesKHR>::@imageUsageFlags@.+--+-- - Otherwise @supportedVideoFormat@ is+-- 'Vulkan.Core10.FundamentalTypes.FALSE'.+-- -- == Valid Usage -- -- - #VUID-VkImageCreateInfo-imageCreateMaxMipLevels-02251# Each of the -- following values (as described in--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-creation-limits Image Creation Limits>)+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-creation-limits Image Creation Limits>) -- /must/ not be undefined : @imageCreateMaxMipLevels@, -- @imageCreateMaxArrayLayers@, @imageCreateMaxExtent@, and -- @imageCreateSampleCounts@@@ -819,15 +893,15 @@ -- -- - #VUID-VkImageCreateInfo-extent-02252# @extent.width@ /must/ be less -- than or equal to @imageCreateMaxExtent.width@ (as defined in--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-creation-limits Image Creation Limits>)+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-creation-limits Image Creation Limits>) -- -- - #VUID-VkImageCreateInfo-extent-02253# @extent.height@ /must/ be less -- than or equal to @imageCreateMaxExtent.height@ (as defined in--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-creation-limits Image Creation Limits>)+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-creation-limits Image Creation Limits>) -- -- - #VUID-VkImageCreateInfo-extent-02254# @extent.depth@ /must/ be less -- than or equal to @imageCreateMaxExtent.depth@ (as defined in--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-creation-limits Image Creation Limits>)+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-creation-limits Image Creation Limits>) -- -- - #VUID-VkImageCreateInfo-imageType-00954# If @imageType@ is -- 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D' and @flags@ contains@@ -849,11 +923,11 @@ -- -- - #VUID-VkImageCreateInfo-mipLevels-02255# @mipLevels@ /must/ be less -- than or equal to @imageCreateMaxMipLevels@ (as defined in--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-creation-limits Image Creation Limits>)+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-creation-limits Image Creation Limits>) -- -- - #VUID-VkImageCreateInfo-arrayLayers-02256# @arrayLayers@ /must/ be -- less than or equal to @imageCreateMaxArrayLayers@ (as defined in--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-creation-limits Image Creation Limits>)+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-creation-limits Image Creation Limits>) -- -- - #VUID-VkImageCreateInfo-imageType-00961# If @imageType@ is -- 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_3D', @arrayLayers@ /must/@@ -866,7 +940,7 @@ -- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_CUBE_COMPATIBLE_BIT', -- @mipLevels@ /must/ be equal to @1@, and @imageCreateMaybeLinear@ (as -- defined in--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-creation-limits Image Creation Limits>)+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-creation-limits Image Creation Limits>) -- /must/ be 'Vulkan.Core10.FundamentalTypes.FALSE', -- -- - #VUID-VkImageCreateInfo-samples-02558# If @samples@ is not@@ -901,16 +975,16 @@ -- @extent.height@ /must/ be less than or equal to -- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxFramebufferHeight@ ----- - #VUID-VkImageCreateInfo-fragmentDensityMapOffset-06514# If--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-fragmentDensityMapOffset fragmentDensityMapOffset>--- is not enabled and @usage@ includes+-- - #VUID-VkImageCreateInfo-fragmentDensityMapOffset-06514# If the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-fragmentDensityMapOffset fragmentDensityMapOffset>+-- feature is not enabled and @usage@ includes -- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT', -- @extent.width@ /must/ be less than or equal to -- \(\left\lceil{\frac{maxFramebufferWidth}{minFragmentDensityTexelSize_{width}}}\right\rceil\) ----- - #VUID-VkImageCreateInfo-fragmentDensityMapOffset-06515# If--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-fragmentDensityMapOffset fragmentDensityMapOffset>--- is not enabled and @usage@ includes+-- - #VUID-VkImageCreateInfo-fragmentDensityMapOffset-06515# If the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-fragmentDensityMapOffset fragmentDensityMapOffset>+-- feature is not enabled and @usage@ includes -- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT', -- @extent.height@ /must/ be less than or equal to -- \(\left\lceil{\frac{maxFramebufferHeight}{minFragmentDensityTexelSize_{height}}}\right\rceil\)@@ -925,22 +999,22 @@ -- -- - #VUID-VkImageCreateInfo-samples-02258# @samples@ /must/ be a bit -- value that is set in @imageCreateSampleCounts@ (as defined in--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-creation-limits Image Creation Limits>)+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-creation-limits Image Creation Limits>) -- -- - #VUID-VkImageCreateInfo-usage-00968# If the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-shaderStorageImageMultisample multisampled storage images>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-shaderStorageImageMultisample shaderStorageImageMultisample> -- feature is not enabled, and @usage@ contains -- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_STORAGE_BIT', -- @samples@ /must/ be -- 'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT' -- -- - #VUID-VkImageCreateInfo-flags-00969# If the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-sparseBinding sparse bindings>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-sparseBinding sparseBinding> -- feature is not enabled, @flags@ /must/ not contain -- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SPARSE_BINDING_BIT' -- -- - #VUID-VkImageCreateInfo-flags-01924# If the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-sparseResidencyAliased sparse aliased residency>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-sparseResidencyAliased sparseResidencyAliased> -- feature is not enabled, @flags@ /must/ not contain -- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SPARSE_ALIASED_BIT' --@@ -955,21 +1029,21 @@ -- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SPARSE_RESIDENCY_BIT' -- -- - #VUID-VkImageCreateInfo-imageType-00971# If the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-sparseResidencyImage2D sparse residency for 2D images>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-sparseResidencyImage2D sparseResidencyImage2D> -- feature is not enabled, and @imageType@ is -- 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D', @flags@ /must/ not -- contain -- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SPARSE_RESIDENCY_BIT' -- -- - #VUID-VkImageCreateInfo-imageType-00972# If the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-sparseResidencyImage3D sparse residency for 3D images>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-sparseResidencyImage3D sparseResidencyImage3D> -- feature is not enabled, and @imageType@ is -- 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_3D', @flags@ /must/ not -- contain -- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SPARSE_RESIDENCY_BIT' -- -- - #VUID-VkImageCreateInfo-imageType-00973# If the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-sparseResidency2Samples sparse residency for images with 2 samples>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-sparseResidency2Samples sparseResidency2Samples> -- feature is not enabled, @imageType@ is -- 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D', and @samples@ is -- 'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_2_BIT',@@ -977,7 +1051,7 @@ -- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SPARSE_RESIDENCY_BIT' -- -- - #VUID-VkImageCreateInfo-imageType-00974# If the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-sparseResidency4Samples sparse residency for images with 4 samples>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-sparseResidency4Samples sparseResidency4Samples> -- feature is not enabled, @imageType@ is -- 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D', and @samples@ is -- 'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_4_BIT',@@ -985,7 +1059,7 @@ -- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SPARSE_RESIDENCY_BIT' -- -- - #VUID-VkImageCreateInfo-imageType-00975# If the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-sparseResidency8Samples sparse residency for images with 8 samples>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-sparseResidency8Samples sparseResidency8Samples> -- feature is not enabled, @imageType@ is -- 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D', and @samples@ is -- 'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_8_BIT',@@ -993,7 +1067,7 @@ -- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SPARSE_RESIDENCY_BIT' -- -- - #VUID-VkImageCreateInfo-imageType-00976# If the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-sparseResidency16Samples sparse residency for images with 16 samples>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-sparseResidency16Samples sparseResidency16Samples> -- feature is not enabled, @imageType@ is -- 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D', and @samples@ is -- 'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_16_BIT',@@ -1016,8 +1090,9 @@ -- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT' -- /must/ not also be set ----- - #VUID-VkImageCreateInfo-flags-01890# If the protected memory feature--- is not enabled, @flags@ /must/ not contain+-- - #VUID-VkImageCreateInfo-flags-01890# If the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-protectedMemory protectedMemory>+-- feature is not enabled, @flags@ /must/ not contain -- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_PROTECTED_BIT' -- -- - #VUID-VkImageCreateInfo-None-01891# If any of the bits@@ -1072,13 +1147,13 @@ -- then @mipLevels@ /must/ be one, @arrayLayers@ /must/ be one, -- @imageType@ /must/ be 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D'. -- and @imageCreateMaybeLinear@ (as defined in--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-creation-limits Image Creation Limits>)+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-creation-limits Image Creation Limits>) -- /must/ be 'Vulkan.Core10.FundamentalTypes.FALSE' -- -- - #VUID-VkImageCreateInfo-flags-01572# If @flags@ contains -- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT', -- then @format@ /must/ be a--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#compressed_image_formats compressed image format>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#compressed_image_formats compressed image format> -- -- - #VUID-VkImageCreateInfo-flags-01573# If @flags@ contains -- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT',@@ -1098,30 +1173,24 @@ -- -- - #VUID-VkImageCreateInfo-format-06410# If the image @format@ is one -- of the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion formats that require a sampler Y′CBCR conversion>,+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion formats that require a sampler Y′CBCR conversion>, -- @mipLevels@ /must/ be 1 -- -- - #VUID-VkImageCreateInfo-format-06411# If the image @format@ is one -- of the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion formats that require a sampler Y′CBCR conversion>,+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion formats that require a sampler Y′CBCR conversion>, -- @samples@ /must/ be -- 'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT' -- -- - #VUID-VkImageCreateInfo-format-06412# If the image @format@ is one -- of the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion formats that require a sampler Y′CBCR conversion>,+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion formats that require a sampler Y′CBCR conversion>, -- @imageType@ /must/ be 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D' ----- - #VUID-VkImageCreateInfo-format-06413# If the image @format@ is one--- of the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion formats that require a sampler Y′CBCR conversion>,--- and the @ycbcrImageArrays@ feature is not enabled, @arrayLayers@--- /must/ be 1--- -- - #VUID-VkImageCreateInfo-imageCreateFormatFeatures-02260# If @format@ -- is a /multi-planar/ format, and if @imageCreateFormatFeatures@ (as -- defined in--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-creation-limits Image Creation Limits>)+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-creation-limits Image Creation Limits>) -- does not contain -- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_DISJOINT_BIT', -- then @flags@ /must/ not contain@@ -1255,7 +1324,7 @@ -- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxFramebufferHeight@ -- -- - #VUID-VkImageCreateInfo-format-02538# If the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-shaderStorageImageMultisample multisampled storage images>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-shaderStorageImageMultisample shaderStorageImageMultisample> -- feature is not enabled, @format@ is a depth-stencil format and the -- @pNext@ chain includes a -- 'Vulkan.Core12.Promoted_From_VK_EXT_separate_stencil_usage.ImageStencilUsageCreateInfo'@@ -1337,14 +1406,17 @@ -- 'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT', then -- @arrayLayers@ /must/ be @1@ ----- - #VUID-VkImageCreateInfo-pNext-04737# If a+-- - #VUID-VkImageCreateInfo-pNext-06722# If a -- 'Vulkan.Core12.Promoted_From_VK_KHR_image_format_list.ImageFormatListCreateInfo' -- structure was included in the @pNext@ chain and -- 'Vulkan.Core12.Promoted_From_VK_KHR_image_format_list.ImageFormatListCreateInfo'::@viewFormatCount@--- is not zero, then all of the formats in+-- is not zero, then each format in -- 'Vulkan.Core12.Promoted_From_VK_KHR_image_format_list.ImageFormatListCreateInfo'::@pViewFormats@--- /must/ be compatible with the @format@ as described in the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#formats-compatibility compatibility table>+-- /must/ either be compatible with the @format@ as described in the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#formats-compatibility compatibility table>+-- or, if @flags@ contains+-- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT',+-- be an uncompressed format that is size-compatible with @format@ -- -- - #VUID-VkImageCreateInfo-flags-04738# If @flags@ does not contain -- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_MUTABLE_FORMAT_BIT'@@ -1354,12 +1426,109 @@ -- 'Vulkan.Core12.Promoted_From_VK_KHR_image_format_list.ImageFormatListCreateInfo'::@viewFormatCount@ -- /must/ be @0@ or @1@ --+-- - #VUID-VkImageCreateInfo-usage-04815# If @usage@ includes+-- @VK_IMAGE_USAGE_VIDEO_DECODE_DST_BIT_KHR@,+-- @VK_IMAGE_USAGE_VIDEO_DECODE_DPB_BIT_KHR@, then the @pNext@ chain+-- /must/ include a valid+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoProfileListInfoKHR VkVideoProfileListInfoKHR>+-- structure with @profileCount@ greater than @0@ and @pProfiles@+-- including at least one+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoProfileInfoKHR VkVideoProfileInfoKHR>::@videoCodecOperation@+-- specifying a decode operation+--+-- - #VUID-VkImageCreateInfo-usage-04816# If @usage@ includes+-- @VK_IMAGE_USAGE_VIDEO_ENCODE_DST_BIT_KHR@,+-- @VK_IMAGE_USAGE_VIDEO_ENCODE_SRC_BIT_KHR@,+-- @VK_IMAGE_USAGE_VIDEO_ENCODE_DPB_BIT_KHR@, then the @pNext@ chain+-- /must/ include a valid+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoProfileListInfoKHR VkVideoProfileListInfoKHR>+-- structure with @profileCount@ greater than @0@ and @pProfiles@+-- including at least one+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoProfileInfoKHR VkVideoProfileInfoKHR>::@videoCodecOperation@+-- specifying an encode operation+--+-- - #VUID-VkImageCreateInfo-pNext-06811# If the @pNext@ chain includes a+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoProfileListInfoKHR VkVideoProfileListInfoKHR>+-- structure then @supportedVideoFormat@ /must/ be+-- 'Vulkan.Core10.FundamentalTypes.TRUE'+-- -- - #VUID-VkImageCreateInfo-pNext-06390# If the -- 'Vulkan.Core10.Handles.Image' is to be used to import memory from a -- 'Vulkan.Extensions.Handles.BufferCollectionFUCHSIA', a -- 'Vulkan.Extensions.VK_FUCHSIA_buffer_collection.BufferCollectionImageCreateInfoFUCHSIA' -- structure /must/ be chained to @pNext@. --+-- - #VUID-VkImageCreateInfo-multisampledRenderToSingleSampled-06882# If+-- the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>+-- feature is not enabled, @flags@ /must/ not contain+-- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_BIT_EXT'.+--+-- - #VUID-VkImageCreateInfo-flags-06883# If @flags@ contains+-- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_BIT_EXT',+-- @samples@ /must/ be+-- 'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT'.+--+-- - #VUID-VkImageCreateInfo-pNext-06743# If the @pNext@ chain includes a+-- 'Vulkan.Extensions.VK_EXT_image_compression_control.ImageCompressionControlEXT'+-- structure, @format@ is a+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar>+-- format, and+-- 'Vulkan.Extensions.VK_EXT_image_compression_control.ImageCompressionControlEXT'::@flags@+-- includes+-- 'Vulkan.Extensions.VK_EXT_image_compression_control.IMAGE_COMPRESSION_FIXED_RATE_EXPLICIT_EXT',+-- then+-- 'Vulkan.Extensions.VK_EXT_image_compression_control.ImageCompressionControlEXT'::@compressionControlPlaneCount@+-- /must/ be equal to the number of planes in @format@+--+-- - #VUID-VkImageCreateInfo-pNext-06744# If the @pNext@ chain includes a+-- 'Vulkan.Extensions.VK_EXT_image_compression_control.ImageCompressionControlEXT'+-- structure, @format@ is a not+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar>+-- format, and+-- 'Vulkan.Extensions.VK_EXT_image_compression_control.ImageCompressionControlEXT'::@flags@+-- includes+-- 'Vulkan.Extensions.VK_EXT_image_compression_control.IMAGE_COMPRESSION_FIXED_RATE_EXPLICIT_EXT',+-- then+-- 'Vulkan.Extensions.VK_EXT_image_compression_control.ImageCompressionControlEXT'::@compressionControlPlaneCount@+-- /must/ be 1+--+-- - #VUID-VkImageCreateInfo-pNext-06746# If the @pNext@ chain includes a+-- 'Vulkan.Extensions.VK_EXT_image_compression_control.ImageCompressionControlEXT'+-- structure, it /must/ not contain a+-- 'Vulkan.Extensions.VK_EXT_image_drm_format_modifier.ImageDrmFormatModifierExplicitCreateInfoEXT'+-- structure+--+-- - #VUID-VkImageCreateInfo-pNext-06783# If the @pNext@ chain includes a+-- 'Vulkan.Extensions.VK_EXT_metal_objects.ExportMetalObjectCreateInfoEXT'+-- structure, its @exportObjectType@ member /must/ be either+-- 'Vulkan.Extensions.VK_EXT_metal_objects.EXPORT_METAL_OBJECT_TYPE_METAL_TEXTURE_BIT_EXT'+-- or+-- 'Vulkan.Extensions.VK_EXT_metal_objects.EXPORT_METAL_OBJECT_TYPE_METAL_IOSURFACE_BIT_EXT'.+--+-- - #VUID-VkImageCreateInfo-pNext-06784# If the @pNext@ chain includes a+-- 'Vulkan.Extensions.VK_EXT_metal_objects.ImportMetalTextureInfoEXT'+-- structure its @plane@ member /must/ be+-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_0_BIT',+-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_1_BIT',+-- or+-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_2_BIT'.+--+-- - #VUID-VkImageCreateInfo-pNext-06785# If the @pNext@ chain includes a+-- 'Vulkan.Extensions.VK_EXT_metal_objects.ImportMetalTextureInfoEXT'+-- structure and the image does not have a multi-planar format, then+-- 'Vulkan.Extensions.VK_EXT_metal_objects.ImportMetalTextureInfoEXT'::@plane@+-- /must/ be+-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_0_BIT'.+--+-- - #VUID-VkImageCreateInfo-pNext-06786# If the @pNext@ chain includes a+-- 'Vulkan.Extensions.VK_EXT_metal_objects.ImportMetalTextureInfoEXT'+-- structure and the image has a multi-planar format with only two+-- planes, then+-- 'Vulkan.Extensions.VK_EXT_metal_objects.ImportMetalTextureInfoEXT'::@plane@+-- /must/ not be+-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_2_BIT'.+-- -- == Valid Usage (Implicit) -- -- - #VUID-VkImageCreateInfo-sType-sType# @sType@ /must/ be@@ -1370,24 +1539,27 @@ -- @NULL@ or a pointer to a valid instance of -- 'Vulkan.Extensions.VK_FUCHSIA_buffer_collection.BufferCollectionImageCreateInfoFUCHSIA', -- 'Vulkan.Extensions.VK_NV_dedicated_allocation.DedicatedAllocationImageCreateInfoNV',+-- 'Vulkan.Extensions.VK_EXT_metal_objects.ExportMetalObjectCreateInfoEXT', -- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID', -- 'Vulkan.Core11.Promoted_From_VK_KHR_external_memory.ExternalMemoryImageCreateInfo', -- 'Vulkan.Extensions.VK_NV_external_memory.ExternalMemoryImageCreateInfoNV',+-- 'Vulkan.Extensions.VK_EXT_image_compression_control.ImageCompressionControlEXT', -- 'Vulkan.Extensions.VK_EXT_image_drm_format_modifier.ImageDrmFormatModifierExplicitCreateInfoEXT', -- 'Vulkan.Extensions.VK_EXT_image_drm_format_modifier.ImageDrmFormatModifierListCreateInfoEXT', -- 'Vulkan.Core12.Promoted_From_VK_KHR_image_format_list.ImageFormatListCreateInfo', -- 'Vulkan.Core12.Promoted_From_VK_EXT_separate_stencil_usage.ImageStencilUsageCreateInfo', -- 'Vulkan.Extensions.VK_KHR_swapchain.ImageSwapchainCreateInfoKHR',--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoDecodeH264ProfileEXT VkVideoDecodeH264ProfileEXT>,--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoDecodeH265ProfileEXT VkVideoDecodeH265ProfileEXT>,--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH264ProfileEXT VkVideoEncodeH264ProfileEXT>,--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH265ProfileEXT VkVideoEncodeH265ProfileEXT>,--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoProfileKHR VkVideoProfileKHR>,+-- 'Vulkan.Extensions.VK_EXT_metal_objects.ImportMetalIOSurfaceInfoEXT',+-- 'Vulkan.Extensions.VK_EXT_metal_objects.ImportMetalTextureInfoEXT', -- or--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoProfilesKHR VkVideoProfilesKHR>+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoProfileListInfoKHR VkVideoProfileListInfoKHR> -- -- - #VUID-VkImageCreateInfo-sType-unique# The @sType@ value of each--- struct in the @pNext@ chain /must/ be unique+-- struct in the @pNext@ chain /must/ be unique, with the exception of+-- structures of type+-- 'Vulkan.Extensions.VK_EXT_metal_objects.ExportMetalObjectCreateInfoEXT'+-- or+-- 'Vulkan.Extensions.VK_EXT_metal_objects.ImportMetalTextureInfoEXT' -- -- - #VUID-VkImageCreateInfo-flags-parameter# @flags@ /must/ be a valid -- combination of@@ -1460,7 +1632,7 @@ , -- | @samples@ is a -- 'Vulkan.Core10.Enums.SampleCountFlagBits.SampleCountFlagBits' value -- specifying the number of- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-multisampling samples per texel>.+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-multisampling samples per texel>. samples :: SampleCountFlagBits , -- | @tiling@ is a 'Vulkan.Core10.Enums.ImageTiling.ImageTiling' value -- specifying the tiling arrangement of the texel blocks in memory.@@ -1480,7 +1652,7 @@ , -- | @initialLayout@ is a 'Vulkan.Core10.Enums.ImageLayout.ImageLayout' value -- specifying the initial 'Vulkan.Core10.Enums.ImageLayout.ImageLayout' of -- all image subresources of the image. See- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-layouts Image Layouts>.+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-layouts Image Layouts>. initialLayout :: ImageLayout } deriving (Typeable)@@ -1495,6 +1667,10 @@ getNext ImageCreateInfo{..} = next extends :: forall e b proxy. Typeable e => proxy e -> (Extends ImageCreateInfo e => b) -> Maybe b extends _ f+ | Just Refl <- eqT @e @ImportMetalIOSurfaceInfoEXT = Just f+ | Just Refl <- eqT @e @ImportMetalTextureInfoEXT = Just f+ | Just Refl <- eqT @e @ExportMetalObjectCreateInfoEXT = Just f+ | Just Refl <- eqT @e @ImageCompressionControlEXT = Just f | Just Refl <- eqT @e @BufferCollectionImageCreateInfoFUCHSIA = Just f | Just Refl <- eqT @e @ImageStencilUsageCreateInfo = Just f | Just Refl <- eqT @e @ImageDrmFormatModifierExplicitCreateInfoEXT = Just f@@ -1590,7 +1766,7 @@ -- = Description -- -- If the image is--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#glossary-linear-resource linear>,+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#glossary-linear-resource linear>, -- then @rowPitch@, @arrayPitch@ and @depthPitch@ describe the layout of -- the image subresource in linear memory. For uncompressed formats, -- @rowPitch@ is the number of bytes between texels with the same x@@ -1636,7 +1812,7 @@ -- interleaved memory allocation. -- -- If the image has a--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar format>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar format> -- and its tiling is 'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_LINEAR' -- , then the @aspectMask@ member of -- 'Vulkan.Core10.SparseResourceMemoryManagement.ImageSubresource' /must/@@ -1658,13 +1834,13 @@ -- allowed plane index /i/ is defined by the -- 'Vulkan.Extensions.VK_EXT_image_drm_format_modifier.DrmFormatModifierPropertiesEXT'::@drmFormatModifierPlaneCount@ -- associated with the image’s 'ImageCreateInfo'::@format@ and--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#glossary-drm-format-modifier modifier>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#glossary-drm-format-modifier modifier>. -- The memory range used by the subresource is described by @offset@ and -- @size@. If the image is /disjoint/, then the @offset@ is relative to the -- base address of the /memory plane/. If the image is /non-disjoint/, then -- the @offset@ is relative to the base address of the image. If the image -- is--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#glossary-linear-resource non-linear>,+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#glossary-linear-resource non-linear>, -- then @rowPitch@, @arrayPitch@, and @depthPitch@ have an -- implementation-dependent meaning. --@@ -1673,6 +1849,7 @@ -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>, -- 'Vulkan.Core10.FundamentalTypes.DeviceSize', -- 'Vulkan.Extensions.VK_EXT_image_drm_format_modifier.ImageDrmFormatModifierExplicitCreateInfoEXT',+-- 'Vulkan.Extensions.VK_EXT_image_compression_control.SubresourceLayout2EXT', -- 'getImageSubresourceLayout' data SubresourceLayout = SubresourceLayout { -- | @offset@ is the byte offset from the start of the image or the plane
src/Vulkan/Core10/ImageView.hs view
@@ -60,6 +60,7 @@ import Vulkan.Dynamic (DeviceCmds(pVkCreateImageView)) import Vulkan.Dynamic (DeviceCmds(pVkDestroyImageView)) import Vulkan.Core10.Handles (Device_T)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_metal_objects (ExportMetalObjectCreateInfoEXT) import Vulkan.CStruct.Extends (Extends) import Vulkan.CStruct.Extends (Extendss) import Vulkan.CStruct.Extends (Extensible(..))@@ -71,6 +72,7 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_astc_decode_mode (ImageViewASTCDecodeModeEXT) import Vulkan.Core10.Enums.ImageViewCreateFlagBits (ImageViewCreateFlags) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_image_view_min_lod (ImageViewMinLodCreateInfoEXT)+import {-# SOURCE #-} Vulkan.Extensions.VK_QCOM_image_processing (ImageViewSampleWeightCreateInfoQCOM) import Vulkan.Core10.Enums.ImageViewType (ImageViewType) import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_maintenance2 (ImageViewUsageCreateInfo) import Vulkan.CStruct.Extends (PeekChain)@@ -140,7 +142,7 @@ -- containing parameters to be used to create the image view. (ImageViewCreateInfo a) -> -- | @pAllocator@ controls host memory allocation as described in the- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation> -- chapter. ("allocator" ::: Maybe AllocationCallbacks) -> io (ImageView)@@ -229,7 +231,7 @@ -> -- | @imageView@ is the image view to destroy. ImageView -> -- | @pAllocator@ controls host memory allocation as described in the- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation> -- chapter. ("allocator" ::: Maybe AllocationCallbacks) -> io ()@@ -258,7 +260,8 @@ -- 'Vulkan.Core10.Enums.ComponentSwizzle.ComponentSwizzle', -- 'ImageViewCreateInfo', -- 'Vulkan.Extensions.VK_EXT_border_color_swizzle.SamplerBorderColorComponentMappingCreateInfoEXT',--- 'Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion.SamplerYcbcrConversionCreateInfo'+-- 'Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion.SamplerYcbcrConversionCreateInfo',+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoFormatPropertiesKHR VkVideoFormatPropertiesKHR> data ComponentMapping = ComponentMapping { -- | @r@ is a 'Vulkan.Core10.Enums.ComponentSwizzle.ComponentSwizzle' -- specifying the component value placed in the R component of the output@@ -364,7 +367,7 @@ -- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_STENCIL_BIT' if -- @format@ is a color, depth-only or stencil-only format, respectively, -- except if @format@ is a--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar format>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar format>. -- If using a depth\/stencil format with both depth and stencil components, -- @aspectMask@ /must/ include at least one of -- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_DEPTH_BIT' and@@ -394,14 +397,14 @@ -- both depth and stencil image subresources are used. -- -- When creating a 'Vulkan.Core10.Handles.ImageView', if--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion> -- is enabled in the sampler, the @aspectMask@ of a @subresourceRange@ used -- by the 'Vulkan.Core10.Handles.ImageView' /must/ be -- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_COLOR_BIT'. -- -- When creating a 'Vulkan.Core10.Handles.ImageView', if sampler Y′CBCR -- conversion is not enabled in the sampler and the image @format@ is--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar>,+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar>, -- the image /must/ have been created with -- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_MUTABLE_FORMAT_BIT', -- and the @aspectMask@ of the 'Vulkan.Core10.Handles.ImageView'’s@@ -527,7 +530,7 @@ -- specifying the allowed usages of the image view that, by default, takes -- the value of the corresponding @usage@ parameter specified in -- 'Vulkan.Core10.Image.ImageCreateInfo' at image creation time. The--- implicit @usage@ /can/ be overriden by adding a+-- implicit @usage@ /can/ be overridden by adding a -- 'Vulkan.Core11.Promoted_From_VK_KHR_maintenance2.ImageViewUsageCreateInfo' -- structure to the @pNext@ chain, but the view usage /must/ be a subset of -- the image usage. If @image@ has a depth-stencil format and was created@@ -555,13 +558,13 @@ -- If @image@ was created with the -- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_MUTABLE_FORMAT_BIT' -- flag, and if the @format@ of the image is not--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar>,+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar>, -- @format@ /can/ be different from the image’s format, but if @image@ was -- created without the -- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT' -- flag and they are not equal they /must/ be /compatible/. Image format -- compatibility is defined in the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#formats-compatibility-classes Format Compatibility Classes>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#formats-compatibility-classes Format Compatibility Classes> -- section. Views of compatible formats will have the same mapping between -- texel coordinates and memory locations irrespective of the @format@, -- with only the interpretation of the bit pattern changing.@@ -575,14 +578,14 @@ -- read through a view with a floating point format. Similarly, a value -- written through a signed normalized format that has a bit pattern -- exactly equal to -2b /may/ be changed to -2b + 1 as described in--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#fundamentals-fixedfpconv Conversion from Normalized Fixed-Point to Floating-Point>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fundamentals-fixedfpconv Conversion from Normalized Fixed-Point to Floating-Point>. -- -- If @image@ was created with the -- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT' -- flag, @format@ /must/ be /compatible/ with the image’s format as -- described above, or /must/ be an uncompressed format in which case it -- /must/ be /size-compatible/ with the image’s format, as defined for--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#copies-images-format-size-compatibility copying data between images>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#copies-images-format-size-compatibility copying data between images>. -- In this case, the resulting image view’s texel dimensions equal the -- dimensions of the selected mip level divided by the compressed texel -- block size and rounded up.@@ -593,10 +596,10 @@ -- storage image descriptors, input attachment descriptors, framebuffer -- attachments, and any 'Vulkan.Core10.Handles.ImageView' used with a -- combined image sampler that enables--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion>. -- -- If the image view is to be used with a sampler which supports--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion>,+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion>, -- an /identically defined object/ of type -- 'Vulkan.Core11.Handles.SamplerYcbcrConversion' to that used to create -- the sampler /must/ be passed to 'createImageView' in a@@ -608,37 +611,66 @@ -- when sampling the image. -- -- If the image has a--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar> -- @format@ and @subresourceRange.aspectMask@ is--- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_COLOR_BIT', then--- the @format@ /must/ be identical to the image @format@, and the sampler--- to be used with the image view /must/ enable--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion>.+-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_COLOR_BIT', and it+-- was created with @usage@ value containing flags other than+-- @VK_IMAGE_USAGE_VIDEO_DECODE_DST_BIT_KHR@,+-- @VK_IMAGE_USAGE_VIDEO_DECODE_DPB_BIT_KHR@ ,+-- @VK_IMAGE_USAGE_VIDEO_ENCODE_SRC_BIT_KHR@,+-- @VK_IMAGE_USAGE_VIDEO_ENCODE_DPB_BIT_KHR@, then the @format@ /must/ be+-- identical to the image @format@, and the sampler to be used with the+-- image view /must/ enable+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion>. --+-- If the image has a+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar>+-- @format@ and the @image@ has been created with a @usage@ value+-- containing any of the @VK_IMAGE_USAGE_VIDEO_DECODE_DST_BIT_KHR@,+-- @VK_IMAGE_USAGE_VIDEO_DECODE_SRC_BIT_KHR@, and+-- @VK_IMAGE_USAGE_VIDEO_DECODE_DPB_BIT_KHR@ flags, then all of the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#video-decode-operations video decode operations>+-- would ignore the+-- 'Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion.SamplerYcbcrConversionInfo'+-- structure and\/or+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion>+-- object, associated with the image view. If the image has a+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar>+-- @format@ and the @image@ has been created with a @usage@ value+-- containing any of the @VK_IMAGE_USAGE_VIDEO_ENCODE_DST_BIT_KHR@,+-- @VK_IMAGE_USAGE_VIDEO_ENCODE_SRC_BIT_KHR@, and+-- @VK_IMAGE_USAGE_VIDEO_ENCODE_DPB_BIT_KHR@ flags, then all of the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#video-encode-operations video encode operations>+-- would ignore the+-- 'Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion.SamplerYcbcrConversionInfo'+-- structure and\/or+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion>+-- object, associated with the image view.+-- -- If @image@ was created with the -- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_MUTABLE_FORMAT_BIT' -- and the image has a--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar> -- @format@, and if @subresourceRange.aspectMask@ is -- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_0_BIT', -- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_1_BIT', or -- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_2_BIT', -- @format@ /must/ be--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#formats-compatible-planes compatible>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#formats-compatible-planes compatible> -- with the corresponding plane of the image, and the sampler to be used -- with the image view /must/ not enable--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion>. -- The @width@ and @height@ of the single-plane image view /must/ be -- derived from the multi-planar image’s dimensions in the manner listed -- for--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#formats-compatible-planes plane compatibility>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#formats-compatible-planes plane compatibility> -- for the plane. -- -- Any view of an image plane will have the same mapping between texel -- coordinates and memory locations as used by the components of the color -- aspect, subject to the formulae relating texel coordinates to -- lower-resolution planes as described in--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#textures-chroma-reconstruction Chroma Reconstruction>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#textures-chroma-reconstruction Chroma Reconstruction>. -- That is, if an R or B plane has a reduced resolution relative to the G -- plane of the multi-planar image, the image view operates using the -- (/uplane/, /vplane/) unnormalized coordinates of the reduced-resolution@@ -681,17 +713,24 @@ -- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE_ARRAY' -- -- - #VUID-VkImageViewCreateInfo-viewType-01004# If the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-imageCubeArray image cube map arrays>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-imageCubeArray imageCubeArray> -- feature is not enabled, @viewType@ /must/ not be -- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE_ARRAY' ----- - #VUID-VkImageViewCreateInfo-image-01005# If @image@ was created with+-- - #VUID-VkImageViewCreateInfo-image-06723# If @image@ was created with -- 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_3D' but without -- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT' -- set then @viewType@ /must/ not be--- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_2D' or -- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_2D_ARRAY' --+-- - #VUID-VkImageViewCreateInfo-image-06728# If @image@ was created with+-- 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_3D' but without+-- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT'+-- or+-- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_2D_VIEW_COMPATIBLE_BIT_EXT'+-- set, then @viewType@ /must/ not be+-- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_2D'+-- -- - #VUID-VkImageViewCreateInfo-image-04970# If @image@ was created with -- 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_3D' and @viewType@ is -- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_2D' or@@ -719,67 +758,67 @@ -- - #VUID-VkImageViewCreateInfo-image-04441# @image@ /must/ have been -- created with a @usage@ value containing at least one of the usages -- defined in the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#valid-imageview-imageusage valid image usage>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#valid-imageview-imageusage valid image usage> -- list for image views -- -- - #VUID-VkImageViewCreateInfo-None-02273# The--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-view-format-features format features> -- of the resultant image view /must/ contain at least one bit -- -- - #VUID-VkImageViewCreateInfo-usage-02274# If @usage@ contains -- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_SAMPLED_BIT', -- then the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-view-format-features format features> -- of the resultant image view /must/ contain -- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_BIT' -- -- - #VUID-VkImageViewCreateInfo-usage-02275# If @usage@ contains -- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_STORAGE_BIT', -- then the image view’s--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-view-format-features format features> -- /must/ contain -- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_STORAGE_IMAGE_BIT' -- -- - #VUID-VkImageViewCreateInfo-usage-02276# If @usage@ contains -- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_COLOR_ATTACHMENT_BIT', -- then the image view’s--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-view-format-features format features> -- /must/ contain -- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_COLOR_ATTACHMENT_BIT' -- -- - #VUID-VkImageViewCreateInfo-usage-02277# If @usage@ contains -- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT', -- then the image view’s--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-view-format-features format features> -- /must/ contain -- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT' -- -- - #VUID-VkImageViewCreateInfo-usage-06516# If @usage@ contains -- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_COLOR_ATTACHMENT_BIT', -- then the image view’s--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-view-format-features format features> -- /must/ contain -- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV', -- if the image is created with -- 'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_LINEAR' and the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-linearColorAttachment linearColorAttachment>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-linearColorAttachment linearColorAttachment> -- feature is enabled -- -- - #VUID-VkImageViewCreateInfo-usage-06517# If @usage@ contains -- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_INPUT_ATTACHMENT_BIT', -- then the image view’s--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-view-format-features format features> -- must contain -- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV', -- if the image is created with -- 'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_LINEAR' and the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-linearColorAttachment linearColorAttachment>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-linearColorAttachment linearColorAttachment> -- feature is enabled -- -- - #VUID-VkImageViewCreateInfo-usage-02652# If @usage@ contains -- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_INPUT_ATTACHMENT_BIT', -- then the image view’s--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-view-format-features format features> -- /must/ contain at least one of -- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_COLOR_ATTACHMENT_BIT' -- or@@ -802,9 +841,11 @@ -- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT', -- @subresourceRange.levelCount@ /must/ be @1@ ----- - #VUID-VkImageViewCreateInfo-image-01482# If @image@ is not a 3D+-- - #VUID-VkImageViewCreateInfo-image-06724# If @image@ is not a 3D -- image created with -- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT'+-- or+-- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_2D_VIEW_COMPATIBLE_BIT_EXT' -- set, or @viewType@ is not -- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_2D' or -- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_2D_ARRAY',@@ -812,11 +853,13 @@ -- @arrayLayers@ specified in 'Vulkan.Core10.Image.ImageCreateInfo' -- when @image@ was created ----- - #VUID-VkImageViewCreateInfo-subresourceRange-01483# If+-- - #VUID-VkImageViewCreateInfo-subresourceRange-06725# If -- @subresourceRange.layerCount@ is not -- 'Vulkan.Core10.APIConstants.REMAINING_ARRAY_LAYERS', @image@ is not -- a 3D image created with -- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT'+-- or+-- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_2D_VIEW_COMPATIBLE_BIT_EXT' -- set, or @viewType@ is not -- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_2D' or -- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_2D_ARRAY',@@ -835,7 +878,7 @@ -- computed from @baseMipLevel@ and @extent.depth@ specified in -- 'Vulkan.Core10.Image.ImageCreateInfo' when @image@ was created, -- according to the formula defined in--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-miplevel-sizing Image Miplevel Sizing>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-miplevel-sizing Image Miplevel Sizing> -- -- - #VUID-VkImageViewCreateInfo-subresourceRange-02725# If -- @subresourceRange.layerCount@ is not@@ -851,7 +894,7 @@ -- @baseMipLevel@ and @extent.depth@ specified in -- 'Vulkan.Core10.Image.ImageCreateInfo' when @image@ was created, -- according to the formula defined in--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-miplevel-sizing Image Miplevel Sizing>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-miplevel-sizing Image Miplevel Sizing> -- -- - #VUID-VkImageViewCreateInfo-image-01761# If @image@ was created with -- the@@ -859,10 +902,10 @@ -- flag, but without the -- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT' -- flag, and if the @format@ of the @image@ is not a--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar> -- format, @format@ /must/ be compatible with the @format@ used to -- create @image@, as defined in--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#formats-compatibility-classes Format Compatibility Classes>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#formats-compatibility-classes Format Compatibility Classes> -- -- - #VUID-VkImageViewCreateInfo-image-01583# If @image@ was created with -- the@@ -871,17 +914,11 @@ -- uncompressed format that is size-compatible with, the @format@ used -- to create @image@ ----- - #VUID-VkImageViewCreateInfo-image-01584# If @image@ was created with--- the--- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT'--- flag, the @levelCount@ and @layerCount@ members of--- @subresourceRange@ /must/ both be @1@------ - #VUID-VkImageViewCreateInfo-image-04739# If @image@ was created with+-- - #VUID-VkImageViewCreateInfo-image-07072# If @image@ was created with -- the -- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT'--- flag and @format@ is a non-compressed format, @viewType@ /must/ not--- be 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_3D'+-- flag and @format@ is a non-compressed format, the @levelCount@ and+-- @layerCount@ members of @subresourceRange@ /must/ both be @1@ -- -- - #VUID-VkImageViewCreateInfo-pNext-01585# If a -- 'Vulkan.Core12.Promoted_From_VK_KHR_image_format_list.ImageFormatListCreateInfo'@@ -896,7 +933,7 @@ -- the -- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_MUTABLE_FORMAT_BIT' -- flag, if the @format@ of the @image@ is a--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar> -- format, and if @subresourceRange.aspectMask@ is one of -- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_0_BIT', -- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_1_BIT',@@ -905,20 +942,22 @@ -- then @format@ /must/ be compatible with the -- 'Vulkan.Core10.Enums.Format.Format' for the plane of the @image@ -- @format@ indicated by @subresourceRange.aspectMask@, as defined in--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#formats-compatible-planes>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#formats-compatible-planes> -- -- - #VUID-VkImageViewCreateInfo-image-01762# If @image@ was not created -- with the -- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_MUTABLE_FORMAT_BIT' -- flag, or if the @format@ of the @image@ is a--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar> -- format and if @subresourceRange.aspectMask@ is -- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_COLOR_BIT', -- @format@ /must/ be identical to the @format@ used to create @image@ -- -- - #VUID-VkImageViewCreateInfo-format-06415# If the image view--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#image-views-requiring-sampler-ycbcr-conversion requires a sampler Y′CBCR conversion>,--- the @pNext@ chain must include a+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#image-views-requiring-sampler-ycbcr-conversion requires a sampler Y′CBCR conversion>+-- and @usage@ contains+-- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_SAMPLED_BIT',+-- then the @pNext@ chain /must/ include a -- 'Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion.SamplerYcbcrConversionInfo' -- structure with a conversion value other than -- 'Vulkan.Core10.APIConstants.NULL_HANDLE'@@ -937,7 +976,7 @@ -- structure with a @conversion@ value other than -- 'Vulkan.Core10.APIConstants.NULL_HANDLE', all members of -- @components@ /must/ have the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-views-identity-mappings identity swizzle>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-views-identity-mappings identity swizzle> -- -- - #VUID-VkImageViewCreateInfo-pNext-06658# If the @pNext@ chain -- includes a@@ -953,23 +992,23 @@ -- -- - #VUID-VkImageViewCreateInfo-subResourceRange-01021# @viewType@ -- /must/ be compatible with the type of @image@ as shown in the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-views-compatibility view type compatibility table>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-views-compatibility view type compatibility table> -- -- - #VUID-VkImageViewCreateInfo-image-02399# If @image@ has an--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-external-android-hardware-buffer-external-formats external format>,+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-external-android-hardware-buffer-external-formats external format>, -- @format@ /must/ be 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' -- -- - #VUID-VkImageViewCreateInfo-image-02400# If @image@ has an--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-external-android-hardware-buffer-external-formats external format>,+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-external-android-hardware-buffer-external-formats external format>, -- the @pNext@ chain /must/ include a -- 'Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion.SamplerYcbcrConversionInfo' -- structure with a @conversion@ object created with the same external -- format as @image@ -- -- - #VUID-VkImageViewCreateInfo-image-02401# If @image@ has an--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-external-android-hardware-buffer-external-formats external format>,+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-external-android-hardware-buffer-external-formats external format>, -- all members of @components@ /must/ be the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-views-identity-mappings identity swizzle>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-views-identity-mappings identity swizzle> -- -- - #VUID-VkImageViewCreateInfo-image-02086# If @image@ was created with -- @usage@ containing@@ -979,36 +1018,37 @@ -- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_2D_ARRAY' -- -- - #VUID-VkImageViewCreateInfo-image-02087# If the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage feature>--- is enabled, and If @image@ was created with @usage@ containing+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>+-- feature is enabled, and If @image@ was created with @usage@+-- containing -- 'Vulkan.Extensions.VK_NV_shading_rate_image.IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV', -- @format@ /must/ be 'Vulkan.Core10.Enums.Format.FORMAT_R8_UINT' -- -- - #VUID-VkImageViewCreateInfo-usage-04550# If the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-attachmentFragmentShadingRate attachmentFragmentShadingRate feature>--- is enabled, and the @usage@ for the image view includes+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-attachmentFragmentShadingRate attachmentFragmentShadingRate>+-- feature is enabled, and the @usage@ for the image view includes -- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR', -- then the image view’s--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-view-format-features format features> -- /must/ contain -- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR' -- -- - #VUID-VkImageViewCreateInfo-usage-04551# If the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-attachmentFragmentShadingRate attachmentFragmentShadingRate feature>--- is enabled, the @usage@ for the image view includes+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-attachmentFragmentShadingRate attachmentFragmentShadingRate>+-- feature is enabled, the @usage@ for the image view includes -- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR', -- and--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-layeredShadingRateAttachments layeredShadingRateAttachments>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-layeredShadingRateAttachments layeredShadingRateAttachments> -- is 'Vulkan.Core10.FundamentalTypes.FALSE', -- @subresourceRange.layerCount@ /must/ be @1@ ----- - #VUID-VkImageViewCreateInfo-flags-02572# If--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-fragmentDensityMapDynamic dynamic fragment density map>+-- - #VUID-VkImageViewCreateInfo-flags-02572# If the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-fragmentDensityMapDynamic fragmentDensityMapDynamic> -- feature is not enabled, @flags@ /must/ not contain -- 'Vulkan.Core10.Enums.ImageViewCreateFlagBits.IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DYNAMIC_BIT_EXT' ----- - #VUID-VkImageViewCreateInfo-flags-03567# If--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-fragmentDensityMapDeferred deferred fragment density map>+-- - #VUID-VkImageViewCreateInfo-flags-03567# If the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-fragmentDensityMapDeferred fragmentDensityMapDeferred> -- feature is not enabled, @flags@ /must/ not contain -- 'Vulkan.Core10.Enums.ImageViewCreateFlagBits.IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DEFERRED_BIT_EXT' --@@ -1023,11 +1063,12 @@ -- and @usage@ containing -- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_SAMPLED_BIT', -- @subresourceRange.layerCount@ /must/ be less than or equal to--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxSubsampledArrayLayers ::maxSubsampledArrayLayers>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxSubsampledArrayLayers ::maxSubsampledArrayLayers> -- -- - #VUID-VkImageViewCreateInfo-invocationMask-04993# If the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-invocationMask invocationMask feature>--- is enabled, and if @image@ was created with @usage@ containing+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-invocationMask invocationMask>+-- feature is enabled, and if @image@ was created with @usage@+-- containing -- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_INVOCATION_MASK_BIT_HUAWEI', -- @format@ /must/ be 'Vulkan.Core10.Enums.Format.FORMAT_R8_UINT' --@@ -1129,7 +1170,7 @@ -- 'Vulkan.Extensions.VK_KHR_portability_subset.PhysicalDevicePortabilitySubsetFeaturesKHR'::@imageViewFormatSwizzle@ -- is 'Vulkan.Core10.FundamentalTypes.FALSE', all elements of -- @components@ /must/ have the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-views-identity-mappings identity swizzle>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-views-identity-mappings identity swizzle> -- -- - #VUID-VkImageViewCreateInfo-imageViewFormatReinterpretation-04466# -- If the @VK_KHR_portability_subset@ extension is enabled, and@@ -1140,6 +1181,135 @@ -- each component, than the format of the 'Vulkan.Core10.Handles.Image' -- in @image@ --+-- - #VUID-VkImageViewCreateInfo-image-04817# If @image@ was created with+-- @usage@ containing @VK_IMAGE_USAGE_VIDEO_DECODE_DST_BIT_KHR@,+-- @VK_IMAGE_USAGE_VIDEO_DECODE_SRC_BIT_KHR@,+-- @VK_IMAGE_USAGE_VIDEO_DECODE_DPB_BIT_KHR@, then the @viewType@+-- /must/ be 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_2D' or+-- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_2D_ARRAY' and all+-- members of @components@ /must/ have the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-views-identity-mappings identity swizzle>+--+-- - #VUID-VkImageViewCreateInfo-image-04818# If @image@ was created with+-- @usage@ containing @VK_IMAGE_USAGE_VIDEO_ENCODE_DST_BIT_KHR@,+-- @VK_IMAGE_USAGE_VIDEO_ENCODE_SRC_BIT_KHR@,+-- @VK_IMAGE_USAGE_VIDEO_ENCODE_DPB_BIT_KHR@, then the @viewType@+-- /must/ be 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_2D' or+-- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_2D_ARRAY' and all+-- members of @components@ /must/ have the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-views-identity-mappings identity swizzle>+--+-- - #VUID-VkImageViewCreateInfo-pNext-06787# If the @pNext@ chain+-- includes a+-- 'Vulkan.Extensions.VK_EXT_metal_objects.ExportMetalObjectCreateInfoEXT'+-- structure, its @exportObjectType@ member /must/ be+-- 'Vulkan.Extensions.VK_EXT_metal_objects.EXPORT_METAL_OBJECT_TYPE_METAL_TEXTURE_BIT_EXT'.+--+-- - #VUID-VkImageViewCreateInfo-pNext-06944# If the @pNext@ chain+-- includes+-- 'Vulkan.Extensions.VK_QCOM_image_processing.ImageViewSampleWeightCreateInfoQCOM'+-- structure, then+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-textureSampleWeighted textureSampleWeighted>+-- feature /must/ be enabled+--+-- - #VUID-VkImageViewCreateInfo-pNext-06945# If the @pNext@ chain+-- includes+-- 'Vulkan.Extensions.VK_QCOM_image_processing.ImageViewSampleWeightCreateInfoQCOM'+-- structure, then @image@ /must/ have been created with @usage@+-- containing+-- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_SAMPLE_WEIGHT_BIT_QCOM'+--+-- - #VUID-VkImageViewCreateInfo-pNext-06946# If the @pNext@ chain+-- includes+-- 'Vulkan.Extensions.VK_QCOM_image_processing.ImageViewSampleWeightCreateInfoQCOM'+-- structure, then @components@ /must/ be+-- 'Vulkan.Core10.Enums.ComponentSwizzle.COMPONENT_SWIZZLE_IDENTITY'+-- for all components+--+-- - #VUID-VkImageViewCreateInfo-pNext-06947# If the @pNext@ chain+-- includes+-- 'Vulkan.Extensions.VK_QCOM_image_processing.ImageViewSampleWeightCreateInfoQCOM'+-- structure, then @subresourceRange.aspectMask@ /must/ be+-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_COLOR_BIT'+--+-- - #VUID-VkImageViewCreateInfo-pNext-06948# If the @pNext@ chain+-- includes+-- 'Vulkan.Extensions.VK_QCOM_image_processing.ImageViewSampleWeightCreateInfoQCOM'+-- structure, then @subresourceRange.levelCount@ /must/ be @1@+--+-- - #VUID-VkImageViewCreateInfo-pNext-06949# If the @pNext@ chain+-- includes+-- 'Vulkan.Extensions.VK_QCOM_image_processing.ImageViewSampleWeightCreateInfoQCOM'+-- structure, then @viewType@ /must/ be+-- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_1D_ARRAY' or+-- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_2D_ARRAY'+--+-- - #VUID-VkImageViewCreateInfo-pNext-06950# If the @pNext@ chain+-- includes+-- 'Vulkan.Extensions.VK_QCOM_image_processing.ImageViewSampleWeightCreateInfoQCOM'+-- structure and if @viewType@ is+-- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_1D_ARRAY', then+-- @image@ /must/ have been created with @imageType@+-- 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_1D'+--+-- - #VUID-VkImageViewCreateInfo-pNext-06951# If the @pNext@ chain+-- includes+-- 'Vulkan.Extensions.VK_QCOM_image_processing.ImageViewSampleWeightCreateInfoQCOM'+-- structure and @viewType@ is+-- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_1D_ARRAY', then+-- @subresourceRange.layerCount@ /must/ be equal to @2@.+--+-- - #VUID-VkImageViewCreateInfo-pNext-06952# If the @pNext@ chain+-- includes+-- 'Vulkan.Extensions.VK_QCOM_image_processing.ImageViewSampleWeightCreateInfoQCOM'+-- structure and @viewType@ is+-- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_1D_ARRAY', then+-- @image@ /must/ have been created with @width@ equal to or greater+-- than \((numPhases+-- \times \mathbin{max}\left(+-- \mathbin{align}\left(filterSize.width,4\right),+-- filterSize.height\right))\)+--+-- - #VUID-VkImageViewCreateInfo-pNext-06953# If the @pNext@ chain+-- includes+-- 'Vulkan.Extensions.VK_QCOM_image_processing.ImageViewSampleWeightCreateInfoQCOM'+-- structure and if @viewType@ is+-- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_2D_ARRAY', then+-- @image@ /must/ have been created with @imageType@+-- 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D'+--+-- - #VUID-VkImageViewCreateInfo-pNext-06954# If the @pNext@ chain+-- includes+-- 'Vulkan.Extensions.VK_QCOM_image_processing.ImageViewSampleWeightCreateInfoQCOM'+-- structure and @viewType@ is+-- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_2D_ARRAY', then+-- @subresourceRange.layerCount@ /must/ be equal or greater than+-- numPhases+--+-- - #VUID-VkImageViewCreateInfo-pNext-06955# If the @pNext@ chain+-- includes+-- 'Vulkan.Extensions.VK_QCOM_image_processing.ImageViewSampleWeightCreateInfoQCOM'+-- structure and @viewType@ is+-- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_2D_ARRAY', then+-- @image@ /must/ have been created with @width@ equal to or greater+-- than @filterSize.width@+--+-- - #VUID-VkImageViewCreateInfo-pNext-06956# If the @pNext@ chain+-- includes+-- 'Vulkan.Extensions.VK_QCOM_image_processing.ImageViewSampleWeightCreateInfoQCOM'+-- structure and @viewType@ is+-- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_2D_ARRAY', then+-- @image@ /must/ have been created with @height@ equal to or greater+-- than @filterSize.height@+--+-- - #VUID-VkImageViewCreateInfo-pNext-06957# If the @pNext@ chain+-- includes+-- 'Vulkan.Extensions.VK_QCOM_image_processing.ImageViewSampleWeightCreateInfoQCOM'+-- structure then+-- 'Vulkan.Extensions.VK_QCOM_image_processing.ImageViewSampleWeightCreateInfoQCOM'::@filterSize.height@+-- /must/ be less than or equal to+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-weightfilter-maxdimension ::maxWeightFilterDimension.height>+-- -- == Valid Usage (Implicit) -- -- - #VUID-VkImageViewCreateInfo-sType-sType# @sType@ /must/ be@@ -1148,20 +1318,18 @@ -- - #VUID-VkImageViewCreateInfo-pNext-pNext# Each @pNext@ member of any -- structure (including this one) in the @pNext@ chain /must/ be either -- @NULL@ or a pointer to a valid instance of+-- 'Vulkan.Extensions.VK_EXT_metal_objects.ExportMetalObjectCreateInfoEXT', -- 'Vulkan.Extensions.VK_EXT_astc_decode_mode.ImageViewASTCDecodeModeEXT', -- 'Vulkan.Extensions.VK_EXT_image_view_min_lod.ImageViewMinLodCreateInfoEXT',+-- 'Vulkan.Extensions.VK_QCOM_image_processing.ImageViewSampleWeightCreateInfoQCOM', -- 'Vulkan.Core11.Promoted_From_VK_KHR_maintenance2.ImageViewUsageCreateInfo',--- 'Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion.SamplerYcbcrConversionInfo',--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoDecodeH264ProfileEXT VkVideoDecodeH264ProfileEXT>,--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoDecodeH265ProfileEXT VkVideoDecodeH265ProfileEXT>,--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH264ProfileEXT VkVideoEncodeH264ProfileEXT>,--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH265ProfileEXT VkVideoEncodeH265ProfileEXT>,--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoProfileKHR VkVideoProfileKHR>, -- or--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoProfilesKHR VkVideoProfilesKHR>+-- 'Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion.SamplerYcbcrConversionInfo' -- -- - #VUID-VkImageViewCreateInfo-sType-unique# The @sType@ value of each--- struct in the @pNext@ chain /must/ be unique+-- struct in the @pNext@ chain /must/ be unique, with the exception of+-- structures of type+-- 'Vulkan.Extensions.VK_EXT_metal_objects.ExportMetalObjectCreateInfoEXT' -- -- - #VUID-VkImageViewCreateInfo-flags-parameter# @flags@ /must/ be a -- valid combination of@@ -1228,6 +1396,8 @@ getNext ImageViewCreateInfo{..} = next extends :: forall e b proxy. Typeable e => proxy e -> (Extends ImageViewCreateInfo e => b) -> Maybe b extends _ f+ | Just Refl <- eqT @e @ImageViewSampleWeightCreateInfoQCOM = Just f+ | Just Refl <- eqT @e @ExportMetalObjectCreateInfoEXT = Just f | Just Refl <- eqT @e @ImageViewMinLodCreateInfoEXT = Just f | Just Refl <- eqT @e @ImageViewASTCDecodeModeEXT = Just f | Just Refl <- eqT @e @SamplerYcbcrConversionInfo = Just f
src/Vulkan/Core10/LayerDiscovery.hs view
@@ -172,6 +172,13 @@ -- properties when the layer was enumerated by -- 'enumerateInstanceLayerProperties'. --+-- Note+--+-- Due to platform details on Android, 'enumerateDeviceLayerProperties' may+-- be called with @physicalDevice@ equal to @NULL@ during layer discovery.+-- This behaviour will only be observed by layer implementations, and not+-- the underlying Vulkan driver.+-- -- == Valid Usage (Implicit) -- -- - #VUID-vkEnumerateDeviceLayerProperties-physicalDevice-parameter#@@ -206,7 +213,7 @@ -- 'LayerProperties', 'Vulkan.Core10.Handles.PhysicalDevice' enumerateDeviceLayerProperties :: forall io . (MonadIO io)- => -- No documentation found for Nested "vkEnumerateDeviceLayerProperties" "physicalDevice"+ => -- | @physicalDevice@ is the physical device that will be queried. PhysicalDevice -> io (Result, ("properties" ::: Vector LayerProperties)) enumerateDeviceLayerProperties physicalDevice = liftIO . evalContT $ do@@ -244,7 +251,7 @@ layerName :: ByteString , -- | @specVersion@ is the Vulkan version the layer was written to, encoded as -- described in- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#extendingvulkan-coreversions-versionnumbers>.+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#extendingvulkan-coreversions-versionnumbers>. specVersion :: Word32 , -- | @implementationVersion@ is the version of this layer. It is an integer, -- increasing with backward compatible changes.
src/Vulkan/Core10/Memory.hs view
@@ -76,6 +76,7 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_NV_external_memory (ExportMemoryAllocateInfoNV) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_external_memory_win32 (ExportMemoryWin32HandleInfoKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_external_memory_win32 (ExportMemoryWin32HandleInfoNV)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_metal_objects (ExportMetalObjectCreateInfoEXT) import Vulkan.CStruct.Extends (Extends) import Vulkan.CStruct.Extends (Extendss) import Vulkan.CStruct.Extends (Extensible(..))@@ -86,6 +87,7 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_external_memory_win32 (ImportMemoryWin32HandleInfoKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_external_memory_win32 (ImportMemoryWin32HandleInfoNV) import {-# SOURCE #-} Vulkan.Extensions.VK_FUCHSIA_external_memory (ImportMemoryZirconHandleInfoFUCHSIA)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_metal_objects (ImportMetalBufferInfoEXT) import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_device_group (MemoryAllocateFlagsInfo) import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_dedicated_allocation (MemoryDedicatedAllocateInfo) import Vulkan.Core10.Enums.MemoryMapFlags (MemoryMapFlags)@@ -140,7 +142,7 @@ -- The maximum number of valid memory allocations that /can/ exist -- simultaneously within a 'Vulkan.Core10.Handles.Device' /may/ be -- restricted by implementation- or platform-dependent limits. The--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxMemoryAllocationCount maxMemoryAllocationCount>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxMemoryAllocationCount maxMemoryAllocationCount> -- feature describes the number of allocations that /can/ exist -- simultaneously before encountering these internal limits. --@@ -228,7 +230,7 @@ -- created from -- -- - #VUID-vkAllocateMemory-deviceCoherentMemory-02790# If the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-deviceCoherentMemory deviceCoherentMemory>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-deviceCoherentMemory deviceCoherentMemory> -- feature is not enabled, @pAllocateInfo->memoryTypeIndex@ /must/ not -- identify a memory type supporting -- 'Vulkan.Core10.Enums.MemoryPropertyFlagBits.MEMORY_PROPERTY_DEVICE_COHERENT_BIT_AMD'@@ -285,7 +287,7 @@ -- permitted by the implementation. (MemoryAllocateInfo a) -> -- | @pAllocator@ controls host memory allocation as described in the- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation> -- chapter. ("allocator" ::: Maybe AllocationCallbacks) -> io (DeviceMemory)@@ -342,7 +344,7 @@ -- -- How memory objects are bound to Images and Buffers is described in -- detail in the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#resources-association Resource Memory Association>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#resources-association Resource Memory Association> -- section. -- -- If a memory object is mapped at the time it is freed, it is implicitly@@ -351,7 +353,7 @@ -- Note -- -- As described--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-device-unmap-does-not-flush below>,+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-device-unmap-does-not-flush below>, -- host writes are not implicitly flushed when the memory object is -- unmapped, but the implementation /must/ guarantee that writes that have -- not been flushed do not affect any other memory.@@ -393,7 +395,7 @@ -> -- | @memory@ is the 'Vulkan.Core10.Handles.DeviceMemory' object to be freed. DeviceMemory -> -- | @pAllocator@ controls host memory allocation as described in the- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation> -- chapter. ("allocator" ::: Maybe AllocationCallbacks) -> io ()@@ -444,7 +446,7 @@ -- range has completed before the host reads from or writes to that range, -- and that any previously submitted command that reads from that range has -- completed before the host writes to that region (see--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-submission-host-writes here>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-submission-host-writes here> -- for details on fulfilling such a guarantee). If the device memory was -- allocated without the -- 'Vulkan.Core10.Enums.MemoryPropertyFlagBits.MEMORY_PROPERTY_HOST_COHERENT_BIT'@@ -463,7 +465,7 @@ -- -- It is important for the application developer to become meticulously -- familiar with all of the mechanisms described in the chapter on--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization Synchronization and Cache Control>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization Synchronization and Cache Control> -- as they are crucial to maintaining memory access ordering. -- -- == Valid Usage@@ -635,9 +637,9 @@ -- ranges described by @pMemoryRanges@ are made available to the host -- memory domain, such that they /can/ be made available to the device -- memory domain via--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-available-and-visible memory domain operations>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-available-and-visible memory domain operations> -- using the 'Vulkan.Core10.Enums.AccessFlagBits.ACCESS_HOST_WRITE_BIT'--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-access-types access type>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-access-types access type>. -- -- Within each range described by @pMemoryRanges@, each set of -- @nonCoherentAtomSize@ bytes in that range is flushed if any byte in that@@ -718,7 +720,7 @@ -- available to the host memory domain using the -- 'Vulkan.Core10.Enums.AccessFlagBits.ACCESS_HOST_WRITE_BIT' and -- 'Vulkan.Core10.Enums.AccessFlagBits.ACCESS_HOST_READ_BIT'--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-access-types access types>,+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-access-types access types>, -- are made visible to the host. If a range of non-coherent memory is -- written by the host and then invalidated without first being flushed, -- its contents are undefined.@@ -908,13 +910,20 @@ -- parameters. If the external handle provided does not meet these -- requirements, the implementation /must/ fail the memory import operation -- with the error code--- 'Vulkan.Core10.Enums.Result.ERROR_INVALID_EXTERNAL_HANDLE'.+-- 'Vulkan.Core10.Enums.Result.ERROR_INVALID_EXTERNAL_HANDLE'. If the+-- parameters define an export operation and the external handle type is+-- 'Vulkan.Core11.Enums.ExternalMemoryHandleTypeFlagBits.EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID',+-- implementations /should/ not strictly follow @memoryTypeIndex@. Instead,+-- they /should/ modify the allocation internally to use the required+-- memory type for the application’s given usage. This is because for an+-- export operation, there is currently no way for the client to know the+-- memory type index before allocating. -- -- == Valid Usage -- -- - #VUID-VkMemoryAllocateInfo-None-06657# The parameters /must/ not -- define more than one--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-import-operation import operation>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-import-operation import operation> -- -- - #VUID-VkMemoryAllocateInfo-buffer-06380# If the parameters define an -- import operation from an@@ -1078,10 +1087,10 @@ -- @memoryTypeIndex@ /must/ be one of those returned by -- 'Vulkan.Extensions.VK_KHR_external_memory_fd.getMemoryFdPropertiesKHR' ----- - #VUID-VkMemoryAllocateInfo-memoryTypeIndex-01872# If the protected--- memory feature is not enabled, the--- 'MemoryAllocateInfo'::@memoryTypeIndex@ /must/ not indicate a memory--- type that reports+-- - #VUID-VkMemoryAllocateInfo-memoryTypeIndex-01872# If the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-protectedMemory protectedMemory>+-- feature is not enabled, the 'MemoryAllocateInfo'::@memoryTypeIndex@+-- /must/ not indicate a memory type that reports -- 'Vulkan.Core10.Enums.MemoryPropertyFlagBits.MEMORY_PROPERTY_PROTECTED_BIT' -- -- - #VUID-VkMemoryAllocateInfo-memoryTypeIndex-01744# If the parameters@@ -1210,7 +1219,7 @@ -- structure with @image@ that is not -- 'Vulkan.Core10.APIConstants.NULL_HANDLE', each bit set in the usage -- of @image@ /must/ be listed in--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-external-android-hardware-buffer-usage AHardwareBuffer Usage Equivalence>,+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-external-android-hardware-buffer-usage AHardwareBuffer Usage Equivalence>, -- and if there is a corresponding @AHARDWAREBUFFER_USAGE@ bit listed -- that bit /must/ be included in the Android hardware buffer’s -- @AHardwareBuffer_Desc@::@usage@@@ -1227,7 +1236,7 @@ -- includes -- 'Vulkan.Core11.Enums.MemoryAllocateFlagBits.MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT', -- the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-bufferDeviceAddressCaptureReplay bufferDeviceAddressCaptureReplay>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-bufferDeviceAddressCaptureReplay bufferDeviceAddressCaptureReplay> -- feature /must/ be enabled -- -- - #VUID-VkMemoryAllocateInfo-flags-03331# If@@ -1235,7 +1244,7 @@ -- includes -- 'Vulkan.Core11.Enums.MemoryAllocateFlagBits.MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT', -- the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-bufferDeviceAddress bufferDeviceAddress>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-bufferDeviceAddress bufferDeviceAddress> -- feature /must/ be enabled -- -- - #VUID-VkMemoryAllocateInfo-pNext-03332# If the @pNext@ chain@@ -1267,6 +1276,12 @@ -- @zx_vmo_get_size@(@handle@) where @handle@ is the VMO handle to the -- imported external memory --+-- - #VUID-VkMemoryAllocateInfo-pNext-06780# If the @pNext@ chain+-- includes a+-- 'Vulkan.Extensions.VK_EXT_metal_objects.ExportMetalObjectCreateInfoEXT'+-- structure, its @exportObjectType@ member /must/ be+-- 'Vulkan.Extensions.VK_EXT_metal_objects.EXPORT_METAL_OBJECT_TYPE_METAL_BUFFER_BIT_EXT'.+-- -- == Valid Usage (Implicit) -- -- - #VUID-VkMemoryAllocateInfo-sType-sType# @sType@ /must/ be@@ -1280,6 +1295,7 @@ -- 'Vulkan.Extensions.VK_NV_external_memory.ExportMemoryAllocateInfoNV', -- 'Vulkan.Extensions.VK_KHR_external_memory_win32.ExportMemoryWin32HandleInfoKHR', -- 'Vulkan.Extensions.VK_NV_external_memory_win32.ExportMemoryWin32HandleInfoNV',+-- 'Vulkan.Extensions.VK_EXT_metal_objects.ExportMetalObjectCreateInfoEXT', -- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ImportAndroidHardwareBufferInfoANDROID', -- 'Vulkan.Extensions.VK_FUCHSIA_buffer_collection.ImportMemoryBufferCollectionFUCHSIA', -- 'Vulkan.Extensions.VK_KHR_external_memory_fd.ImportMemoryFdInfoKHR',@@ -1287,6 +1303,7 @@ -- 'Vulkan.Extensions.VK_KHR_external_memory_win32.ImportMemoryWin32HandleInfoKHR', -- 'Vulkan.Extensions.VK_NV_external_memory_win32.ImportMemoryWin32HandleInfoNV', -- 'Vulkan.Extensions.VK_FUCHSIA_external_memory.ImportMemoryZirconHandleInfoFUCHSIA',+-- 'Vulkan.Extensions.VK_EXT_metal_objects.ImportMetalBufferInfoEXT', -- 'Vulkan.Core11.Promoted_From_VK_KHR_device_group.MemoryAllocateFlagsInfo', -- 'Vulkan.Core11.Promoted_From_VK_KHR_dedicated_allocation.MemoryDedicatedAllocateInfo', -- 'Vulkan.Core12.Promoted_From_VK_KHR_buffer_device_address.MemoryOpaqueCaptureAddressAllocateInfo',@@ -1294,7 +1311,9 @@ -- 'Vulkan.Extensions.VK_EXT_memory_priority.MemoryPriorityAllocateInfoEXT' -- -- - #VUID-VkMemoryAllocateInfo-sType-unique# The @sType@ value of each--- struct in the @pNext@ chain /must/ be unique+-- struct in the @pNext@ chain /must/ be unique, with the exception of+-- structures of type+-- 'Vulkan.Extensions.VK_EXT_metal_objects.ExportMetalObjectCreateInfoEXT' -- -- = See Also --@@ -1324,6 +1343,8 @@ getNext MemoryAllocateInfo{..} = next extends :: forall e b proxy. Typeable e => proxy e -> (Extends MemoryAllocateInfo e => b) -> Maybe b extends _ f+ | Just Refl <- eqT @e @ImportMetalBufferInfoEXT = Just f+ | Just Refl <- eqT @e @ExportMetalObjectCreateInfoEXT = Just f | Just Refl <- eqT @e @ImportMemoryBufferCollectionFUCHSIA = Just f | Just Refl <- eqT @e @MemoryOpaqueCaptureAddressAllocateInfo = Just f | Just Refl <- eqT @e @MemoryPriorityAllocateInfoEXT = Just f
src/Vulkan/Core10/MemoryManagement.hs view
@@ -385,7 +385,7 @@ -- equal to @image@ -- -- - #VUID-vkBindImageMemory-memory-02628# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dedicatedAllocationImageAliasing dedicated allocation image aliasing>+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dedicatedAllocationImageAliasing dedicatedAllocationImageAliasing> -- feature is not enabled, and the -- 'Vulkan.Core10.Memory.MemoryAllocateInfo' provided when @memory@ was -- allocated included a@@ -398,7 +398,7 @@ -- and @memoryOffset@ /must/ be zero -- -- - #VUID-vkBindImageMemory-memory-02629# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dedicatedAllocationImageAliasing dedicated allocation image aliasing>+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dedicatedAllocationImageAliasing dedicatedAllocationImageAliasing> -- feature is enabled, and the -- 'Vulkan.Core10.Memory.MemoryAllocateInfo' provided when @memory@ was -- allocated included a@@ -558,6 +558,7 @@ -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>, -- 'Vulkan.Core10.FundamentalTypes.DeviceSize', -- 'Vulkan.Core11.Promoted_From_VK_KHR_get_memory_requirements2.MemoryRequirements2',+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoSessionMemoryRequirementsKHR VkVideoSessionMemoryRequirementsKHR>, -- 'getBufferMemoryRequirements', 'getImageMemoryRequirements' data MemoryRequirements = MemoryRequirements { -- | @size@ is the size, in bytes, of the memory allocation /required/ for
src/Vulkan/Core10/OtherTypes.hs view
@@ -72,15 +72,15 @@ -- = Description -- -- The first--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-access-scopes access scope>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-access-scopes access scope> -- is limited to access types in the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-access-masks source access mask>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-access-masks source access mask> -- specified by @srcAccessMask@. -- -- The second--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-access-scopes access scope>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-access-scopes access scope> -- is limited to access types in the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-access-masks destination access mask>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-access-masks destination access mask> -- specified by @dstAccessMask@. -- -- == Valid Usage (Implicit)@@ -95,7 +95,7 @@ data MemoryBarrier = MemoryBarrier { -- | @srcAccessMask@ is a bitmask of -- 'Vulkan.Core10.Enums.AccessFlagBits.AccessFlagBits' specifying a- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-access-masks source access mask>.+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-access-masks source access mask>. -- -- #VUID-VkMemoryBarrier-srcAccessMask-parameter# @srcAccessMask@ /must/ be -- a valid combination of@@ -103,7 +103,7 @@ srcAccessMask :: AccessFlags , -- | @dstAccessMask@ is a bitmask of -- 'Vulkan.Core10.Enums.AccessFlagBits.AccessFlagBits' specifying a- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-access-masks destination access mask>.+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-access-masks destination access mask>. -- -- #VUID-VkMemoryBarrier-dstAccessMask-parameter# @dstAccessMask@ /must/ be -- a valid combination of@@ -155,20 +155,20 @@ -- = Description -- -- The first--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-access-scopes access scope>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-access-scopes access scope> -- is limited to access to memory through the specified buffer range, via -- access types in the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-access-masks source access mask>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-access-masks source access mask> -- specified by @srcAccessMask@. If @srcAccessMask@ includes -- 'Vulkan.Core10.Enums.AccessFlagBits.ACCESS_HOST_WRITE_BIT', memory -- writes performed by that access type are also made visible, as that -- access type is not performed through a resource. -- -- The second--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-access-scopes access scope>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-access-scopes access scope> -- is limited to access to memory through the specified buffer range, via -- access types in the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-access-masks destination access mask>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-access-masks destination access mask> -- specified by @dstAccessMask@. If @dstAccessMask@ includes -- 'Vulkan.Core10.Enums.AccessFlagBits.ACCESS_HOST_WRITE_BIT' or -- 'Vulkan.Core10.Enums.AccessFlagBits.ACCESS_HOST_READ_BIT', available@@ -178,14 +178,14 @@ -- If @srcQueueFamilyIndex@ is not equal to @dstQueueFamilyIndex@, and -- @srcQueueFamilyIndex@ is equal to the current queue family, then the -- memory barrier defines a--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-queue-transfers-release queue family release operation>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-queue-transfers-release queue family release operation> -- for the specified buffer range, and the second access scope includes no -- access, as if @dstAccessMask@ was @0@. -- -- If @dstQueueFamilyIndex@ is not equal to @srcQueueFamilyIndex@, and -- @dstQueueFamilyIndex@ is equal to the current queue family, then the -- memory barrier defines a--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-queue-transfers-acquire queue family acquire operation>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-queue-transfers-acquire queue family acquire operation> -- for the specified buffer range, and the first access scope includes no -- access, as if @srcAccessMask@ was @0@. --@@ -231,11 +231,11 @@ -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-queue-transfers ???> -- -- - #VUID-VkBufferMemoryBarrier-synchronization2-03853# If the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-synchronization2 synchronization2 feature>--- is not enabled, and @buffer@ was created with a sharing mode of--- 'Vulkan.Core10.Enums.SharingMode.SHARING_MODE_CONCURRENT', at least--- one of @srcQueueFamilyIndex@ and @dstQueueFamilyIndex@ /must/ be--- 'Vulkan.Core10.APIConstants.QUEUE_FAMILY_IGNORED'+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-synchronization2 synchronization2>+-- feature is not enabled, and @buffer@ was created with a sharing mode+-- of 'Vulkan.Core10.Enums.SharingMode.SHARING_MODE_CONCURRENT', at+-- least one of @srcQueueFamilyIndex@ and @dstQueueFamilyIndex@ /must/+-- be 'Vulkan.Core10.APIConstants.QUEUE_FAMILY_IGNORED' -- -- == Valid Usage (Implicit) --@@ -259,17 +259,17 @@ data BufferMemoryBarrier = BufferMemoryBarrier { -- | @srcAccessMask@ is a bitmask of -- 'Vulkan.Core10.Enums.AccessFlagBits.AccessFlagBits' specifying a- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-access-masks source access mask>.+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-access-masks source access mask>. srcAccessMask :: AccessFlags , -- | @dstAccessMask@ is a bitmask of -- 'Vulkan.Core10.Enums.AccessFlagBits.AccessFlagBits' specifying a- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-access-masks destination access mask>.+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-access-masks destination access mask>. dstAccessMask :: AccessFlags , -- | @srcQueueFamilyIndex@ is the source queue family for a- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-queue-transfers queue family ownership transfer>.+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-queue-transfers queue family ownership transfer>. srcQueueFamilyIndex :: Word32 , -- | @dstQueueFamilyIndex@ is the destination queue family for a- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-queue-transfers queue family ownership transfer>.+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-queue-transfers queue family ownership transfer>. dstQueueFamilyIndex :: Word32 , -- | @buffer@ is a handle to the buffer whose backing memory is affected by -- the barrier.@@ -351,20 +351,20 @@ -- = Description -- -- The first--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-access-scopes access scope>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-access-scopes access scope> -- is limited to access to memory through the specified image subresource -- range, via access types in the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-access-masks source access mask>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-access-masks source access mask> -- specified by @srcAccessMask@. If @srcAccessMask@ includes -- 'Vulkan.Core10.Enums.AccessFlagBits.ACCESS_HOST_WRITE_BIT', memory -- writes performed by that access type are also made visible, as that -- access type is not performed through a resource. -- -- The second--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-access-scopes access scope>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-access-scopes access scope> -- is limited to access to memory through the specified image subresource -- range, via access types in the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-access-masks destination access mask>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-access-masks destination access mask> -- specified by @dstAccessMask@. If @dstAccessMask@ includes -- 'Vulkan.Core10.Enums.AccessFlagBits.ACCESS_HOST_WRITE_BIT' or -- 'Vulkan.Core10.Enums.AccessFlagBits.ACCESS_HOST_READ_BIT', available@@ -374,31 +374,31 @@ -- If @srcQueueFamilyIndex@ is not equal to @dstQueueFamilyIndex@, and -- @srcQueueFamilyIndex@ is equal to the current queue family, then the -- memory barrier defines a--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-queue-transfers-release queue family release operation>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-queue-transfers-release queue family release operation> -- for the specified image subresource range, and the second access scope -- includes no access, as if @dstAccessMask@ was @0@. -- -- If @dstQueueFamilyIndex@ is not equal to @srcQueueFamilyIndex@, and -- @dstQueueFamilyIndex@ is equal to the current queue family, then the -- memory barrier defines a--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-queue-transfers-acquire queue family acquire operation>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-queue-transfers-acquire queue family acquire operation> -- for the specified image subresource range, and the first access scope -- includes no access, as if @srcAccessMask@ was @0@. -- -- If the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-synchronization2 synchronization2 feature>--- is not enabled or @oldLayout@ is not equal to @newLayout@, @oldLayout@--- and @newLayout@ define an--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-image-layout-transitions image layout transition>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-synchronization2 synchronization2>+-- feature is not enabled or @oldLayout@ is not equal to @newLayout@,+-- @oldLayout@ and @newLayout@ define an+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-image-layout-transitions image layout transition> -- for the specified image subresource range. -- -- Note -- -- If the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-synchronization2 synchronization2 feature>--- is enabled, when the old and new layout are equal, the layout values are--- ignored - data is preserved no matter what values are specified, or what--- layout the image is currently in.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-synchronization2 synchronization2>+-- feature is enabled, when the old and new layout are equal, the layout+-- values are ignored - data is preserved no matter what values are+-- specified, or what layout the image is currently in. -- -- If @image@ has a multi-planar format and the image is /disjoint/, then -- including@@ -584,6 +584,13 @@ -- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT' -- set --+-- - #VUID-VkImageMemoryBarrier-synchronization2-06911# If the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-synchronization2 synchronization2>+-- feature is not enabled, @layout@ /must/ not be+-- 'Vulkan.Extensions.VK_KHR_synchronization2.IMAGE_LAYOUT_ATTACHMENT_OPTIMAL_KHR'+-- or+-- 'Vulkan.Extensions.VK_KHR_synchronization2.IMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR'+-- -- - #VUID-VkImageMemoryBarrier-srcQueueFamilyIndex-03938# If -- @srcQueueFamilyIndex@ and @dstQueueFamilyIndex@ define a -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-queue-transfers queue family ownership transfer>@@ -680,12 +687,30 @@ -- for external memory transfers, as described in -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-queue-transfers ???> --+-- - #VUID-VkImageMemoryBarrier-srcQueueFamilyIndex-07006# If+-- @srcQueueFamilyIndex@ and @dstQueueFamilyIndex@ define a+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-queue-transfers queue family ownership transfer>+-- or @oldLayout@ and @newLayout@ define an+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-image-layout-transitions image layout transition>,+-- and @oldLayout@ or @newLayout@ is+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT'+-- then @image@ /must/ have been created with either the+-- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_COLOR_ATTACHMENT_BIT'+-- or+-- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT'+-- usage bits, and the+-- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_INPUT_ATTACHMENT_BIT'+-- or 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_SAMPLED_BIT'+-- usage bits, and the+-- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT'+-- usage bit.+-- -- - #VUID-VkImageMemoryBarrier-synchronization2-03857# If the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-synchronization2 synchronization2 feature>--- is not enabled, and @image@ was created with a sharing mode of--- 'Vulkan.Core10.Enums.SharingMode.SHARING_MODE_CONCURRENT', at least--- one of @srcQueueFamilyIndex@ and @dstQueueFamilyIndex@ /must/ be--- 'Vulkan.Core10.APIConstants.QUEUE_FAMILY_IGNORED'+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-synchronization2 synchronization2>+-- feature is not enabled, and @image@ was created with a sharing mode+-- of 'Vulkan.Core10.Enums.SharingMode.SHARING_MODE_CONCURRENT', at+-- least one of @srcQueueFamilyIndex@ and @dstQueueFamilyIndex@ /must/+-- be 'Vulkan.Core10.APIConstants.QUEUE_FAMILY_IGNORED' -- -- == Valid Usage (Implicit) --@@ -727,28 +752,28 @@ next :: Chain es , -- | @srcAccessMask@ is a bitmask of -- 'Vulkan.Core10.Enums.AccessFlagBits.AccessFlagBits' specifying a- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-access-masks source access mask>.+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-access-masks source access mask>. srcAccessMask :: AccessFlags , -- | @dstAccessMask@ is a bitmask of -- 'Vulkan.Core10.Enums.AccessFlagBits.AccessFlagBits' specifying a- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-access-masks destination access mask>.+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-access-masks destination access mask>. dstAccessMask :: AccessFlags , -- | @oldLayout@ is the old layout in an- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-image-layout-transitions image layout transition>.+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-image-layout-transitions image layout transition>. oldLayout :: ImageLayout , -- | @newLayout@ is the new layout in an- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-image-layout-transitions image layout transition>.+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-image-layout-transitions image layout transition>. newLayout :: ImageLayout , -- | @srcQueueFamilyIndex@ is the source queue family for a- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-queue-transfers queue family ownership transfer>.+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-queue-transfers queue family ownership transfer>. srcQueueFamilyIndex :: Word32 , -- | @dstQueueFamilyIndex@ is the destination queue family for a- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-queue-transfers queue family ownership transfer>.+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-queue-transfers queue family ownership transfer>. dstQueueFamilyIndex :: Word32 , -- | @image@ is a handle to the image affected by this barrier. image :: Image , -- | @subresourceRange@ describes the- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-views image subresource range>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-views image subresource range> -- within @image@ that is affected by this barrier. subresourceRange :: ImageSubresourceRange }@@ -945,10 +970,10 @@ -- - #VUID-VkDrawIndirectCommand-None-00500# For a given vertex buffer -- binding, any attribute data fetched /must/ be entirely contained -- within the corresponding vertex buffer binding, as described in--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#fxvertex-input>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fxvertex-input> -- -- - #VUID-VkDrawIndirectCommand-firstInstance-00501# If the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-drawIndirectFirstInstance drawIndirectFirstInstance>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-drawIndirectFirstInstance drawIndirectFirstInstance> -- feature is not enabled, @firstInstance@ /must/ be @0@ -- -- = See Also@@ -1026,7 +1051,7 @@ -- buffer binding, any attribute data fetched /must/ be entirely -- contained within the corresponding vertex buffer binding, as -- described in--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#fxvertex-input>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fxvertex-input> -- -- - #VUID-VkDrawIndexedIndirectCommand-indexSize-00553# (@indexSize@ × -- (@firstIndex@ + @indexCount@) + @offset@) /must/ be less than or@@ -1036,7 +1061,7 @@ -- 'Vulkan.Core10.CommandBufferBuilding.cmdBindIndexBuffer' -- -- - #VUID-VkDrawIndexedIndirectCommand-firstInstance-00554# If the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-drawIndirectFirstInstance drawIndirectFirstInstance>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-drawIndirectFirstInstance drawIndirectFirstInstance> -- feature is not enabled, @firstInstance@ /must/ be @0@ -- -- = See Also
src/Vulkan/Core10/Pass.hs view
@@ -203,7 +203,7 @@ -- describing additional information about framebuffer creation. (FramebufferCreateInfo a) -> -- | @pAllocator@ controls host memory allocation as described in the- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation> -- chapter. ("allocator" ::: Maybe AllocationCallbacks) -> io (Framebuffer)@@ -293,7 +293,7 @@ -> -- | @framebuffer@ is the handle of the framebuffer to destroy. Framebuffer -> -- | @pAllocator@ controls host memory allocation as described in the- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation> -- chapter. ("allocator" ::: Maybe AllocationCallbacks) -> io ()@@ -359,7 +359,7 @@ -- describing the parameters of the render pass. (RenderPassCreateInfo a) -> -- | @pAllocator@ controls host memory allocation as described in the- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation> -- chapter. ("allocator" ::: Maybe AllocationCallbacks) -> io (RenderPass)@@ -449,7 +449,7 @@ -> -- | @renderPass@ is the handle of the render pass to destroy. RenderPass -> -- | @pAllocator@ controls host memory allocation as described in the- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation> -- chapter. ("allocator" ::: Maybe AllocationCallbacks) -> io ()@@ -500,7 +500,7 @@ -- Subpass dependencies are not affected by the render area, and apply to -- the entire image subresources attached to the framebuffer as specified -- in the description of--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-layout-transitions automatic layout transitions>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-layout-transitions automatic layout transitions>. -- Similarly, pipeline barriers are valid even if their effect extends -- outside the render area. --@@ -601,9 +601,9 @@ -- to the format of the attachment, before they are resolved or stored at -- the end of a render pass instance via @storeOp@. Conversions occur as -- described in--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#fundamentals-numerics Numeric Representation and Computation>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fundamentals-numerics Numeric Representation and Computation> -- and--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#fundamentals-fixedconv Fixed-Point Data Conversions>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fundamentals-fixedconv Fixed-Point Data Conversions>. -- -- If @flags@ includes -- 'Vulkan.Core10.Enums.AttachmentDescriptionFlagBits.ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT',@@ -651,7 +651,7 @@ -- color or depth\/stencil attachments nor as resolve or preserve -- attachments. The precise set of valid scenarios is described in more -- detail--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-feedbackloop below>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-feedbackloop below>. -- -- If a set of attachments alias each other, then all except the first to -- be used in the render pass /must/ use an @initialLayout@ of@@ -677,22 +677,16 @@ -- - #VUID-VkAttachmentDescription-format-06698# @format@ /must/ not be -- VK_FORMAT_UNDEFINED ----- - #VUID-VkAttachmentDescription-finalLayout-00843# @finalLayout@--- /must/ not be--- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_UNDEFINED' or--- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_PREINITIALIZED'--- -- - #VUID-VkAttachmentDescription-format-06699# If @format@ includes a -- color or depth aspect and @loadOp@ is -- 'Vulkan.Core10.Enums.AttachmentLoadOp.ATTACHMENT_LOAD_OP_LOAD', then -- @initialLayout@ /must/ not be -- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_UNDEFINED' ----- - #VUID-VkAttachmentDescription-format-06700# If @format@ includes a--- stencil aspect and @stencilLoadOp@ is--- 'Vulkan.Core10.Enums.AttachmentLoadOp.ATTACHMENT_LOAD_OP_LOAD', then--- @initialLayout@ /must/ not be--- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_UNDEFINED'+-- - #VUID-VkAttachmentDescription-finalLayout-00843# @finalLayout@+-- /must/ not be+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_UNDEFINED' or+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_PREINITIALIZED' -- -- - #VUID-VkAttachmentDescription-format-03280# If @format@ is a color -- format, @initialLayout@ /must/ not be@@ -700,12 +694,6 @@ -- or -- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL' ----- - #VUID-VkAttachmentDescription-format-06487# If @format@ is a color--- format, @initialLayout@ /must/ not be--- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL'--- or--- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL'--- -- - #VUID-VkAttachmentDescription-format-03281# If @format@ is a -- depth\/stencil format, @initialLayout@ /must/ not be -- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL'@@ -716,35 +704,41 @@ -- or -- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL' --+-- - #VUID-VkAttachmentDescription-format-03283# If @format@ is a+-- depth\/stencil format, @finalLayout@ /must/ not be+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL'+--+-- - #VUID-VkAttachmentDescription-format-06487# If @format@ is a color+-- format, @initialLayout@ /must/ not be+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL'+-- or+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL'+-- -- - #VUID-VkAttachmentDescription-format-06488# If @format@ is a color -- format, @finalLayout@ /must/ not be -- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL' -- or -- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL' ----- - #VUID-VkAttachmentDescription-format-03283# If @format@ is a--- depth\/stencil format, @finalLayout@ /must/ not be--- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL'--- -- - #VUID-VkAttachmentDescription-separateDepthStencilLayouts-03284# If -- the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-separateDepthStencilLayouts separateDepthStencilLayouts>+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-separateDepthStencilLayouts separateDepthStencilLayouts> -- feature is not enabled, @initialLayout@ /must/ not be -- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL', -- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL', -- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL', -- or--- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL'+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL', -- -- - #VUID-VkAttachmentDescription-separateDepthStencilLayouts-03285# If -- the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-separateDepthStencilLayouts separateDepthStencilLayouts>+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-separateDepthStencilLayouts separateDepthStencilLayouts> -- feature is not enabled, @finalLayout@ /must/ not be -- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL', -- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL', -- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL', -- or--- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL'+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL', -- -- - #VUID-VkAttachmentDescription-format-03286# If @format@ is a color -- format, @initialLayout@ /must/ not be@@ -762,21 +756,17 @@ -- or -- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL' ----- - #VUID-VkAttachmentDescription-format-03288# If @format@ is a+-- - #VUID-VkAttachmentDescription-format-06906# If @format@ is a -- depth\/stencil format which includes both depth and stencil aspects, -- @initialLayout@ /must/ not be--- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL',--- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL',--- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL',+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL' -- or -- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL' ----- - #VUID-VkAttachmentDescription-format-03289# If @format@ is a+-- - #VUID-VkAttachmentDescription-format-06907# If @format@ is a -- depth\/stencil format which includes both depth and stencil aspects, -- @finalLayout@ /must/ not be--- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL',--- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL',--- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL',+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL' -- or -- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL' --@@ -794,6 +784,26 @@ -- or -- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL' --+-- - #VUID-VkAttachmentDescription-synchronization2-06908# If the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-synchronization2 synchronization2>+-- feature is not enabled, @initialLayout@ /must/ not be+-- 'Vulkan.Extensions.VK_KHR_synchronization2.IMAGE_LAYOUT_ATTACHMENT_OPTIMAL_KHR'+-- or+-- 'Vulkan.Extensions.VK_KHR_synchronization2.IMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR'+--+-- - #VUID-VkAttachmentDescription-synchronization2-06909# If the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-synchronization2 synchronization2>+-- feature is not enabled, @finalLayout@ /must/ not be+-- 'Vulkan.Extensions.VK_KHR_synchronization2.IMAGE_LAYOUT_ATTACHMENT_OPTIMAL_KHR'+-- or+-- 'Vulkan.Extensions.VK_KHR_synchronization2.IMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR'+--+-- - #VUID-VkAttachmentDescription-format-06700# If @format@ includes a+-- stencil aspect and @stencilLoadOp@ is+-- 'Vulkan.Core10.Enums.AttachmentLoadOp.ATTACHMENT_LOAD_OP_LOAD', then+-- @initialLayout@ /must/ not be+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_UNDEFINED'+-- -- - #VUID-VkAttachmentDescription-format-03292# If @format@ is a -- depth\/stencil format which includes only the stencil aspect, -- @initialLayout@ /must/ not be@@ -808,6 +818,20 @@ -- or -- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL' --+-- - #VUID-VkAttachmentDescription-format-06242# If @format@ is a+-- depth\/stencil format which includes both depth and stencil aspects,+-- @initialLayout@ /must/ not be+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL'+-- or+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL'+--+-- - #VUID-VkAttachmentDescription-format-06243# If @format@ is a+-- depth\/stencil format which includes both depth and stencil aspects,+-- @finalLayout@ /must/ not be+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL'+-- or+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL'+-- -- == Valid Usage (Implicit) -- -- - #VUID-VkAttachmentDescription-flags-parameter# @flags@ /must/ be a@@ -961,17 +985,31 @@ -- -- == Valid Usage ----- - #VUID-VkAttachmentReference-layout-00857# If @attachment@ is not+-- - #VUID-VkAttachmentReference-layout-03077# If @attachment@ is not -- 'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED', @layout@ /must/ not -- be 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_UNDEFINED',--- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_PREINITIALIZED',--- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_PRESENT_SRC_KHR',+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_PREINITIALIZED', or+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_PRESENT_SRC_KHR'+--+-- - #VUID-VkAttachmentReference-separateDepthStencilLayouts-03313# If+-- the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-separateDepthStencilLayouts separateDepthStencilLayouts>+-- feature is not enabled, and @attachment@ is not+-- 'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED', @layout@ /must/ not+-- be -- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL', -- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL', -- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL', -- or--- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL'+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL', --+-- - #VUID-VkAttachmentReference-synchronization2-06910# If the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-synchronization2 synchronization2>+-- feature is not enabled, @layout@ /must/ not be+-- 'Vulkan.Extensions.VK_KHR_synchronization2.IMAGE_LAYOUT_ATTACHMENT_OPTIMAL_KHR'+-- or+-- 'Vulkan.Extensions.VK_KHR_synchronization2.IMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR'+-- -- == Valid Usage (Implicit) -- -- - #VUID-VkAttachmentReference-layout-parameter# @layout@ /must/ be a@@ -1047,7 +1085,7 @@ -- attachment at the fragment’s (x, y, layer) framebuffer coordinates. -- Input attachments /must/ not be used by any subpasses within a render -- pass that enables--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#vertexpostproc-renderpass-transform render pass transform>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#vertexpostproc-renderpass-transform render pass transform>. -- -- Each element of the @pColorAttachments@ array corresponds to an output -- location in the shader, i.e. if the shader declares an output variable@@ -1055,7 +1093,7 @@ -- provided in @pColorAttachments@[__X__]. If the @attachment@ member of -- any element of @pColorAttachments@ is -- 'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED', or if--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#framebuffer-color-write-enable Color Write Enable>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#framebuffer-color-write-enable Color Write Enable> -- has been disabled for the corresponding attachment index, then writes to -- the corresponding location by a fragment shader are discarded. --@@ -1142,6 +1180,100 @@ -- -- == Valid Usage --+-- - #VUID-VkSubpassDescription-attachment-06912# If the @attachment@+-- member of an element of @pInputAttachments@ is not+-- 'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED', its @layout@ member+-- /must/ not be+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL'+-- or+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL'+--+-- - #VUID-VkSubpassDescription-attachment-06913# If the @attachment@+-- member of an element of @pColorAttachments@ is not+-- 'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED', its @layout@ member+-- /must/ not be+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL'+-- or+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL'+--+-- - #VUID-VkSubpassDescription-attachment-06914# If the @attachment@+-- member of an element of @pResolveAttachments@ is not+-- 'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED', its @layout@ member+-- /must/ not be+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL'+-- or+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL'+--+-- - #VUID-VkSubpassDescription-attachment-06915# If the @attachment@+-- member of @pDepthStencilAttachment@ is not+-- 'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED', ts @layout@ member+-- /must/ not be+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL'+-- or+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL'+--+-- - #VUID-VkSubpassDescription-attachment-06916# If the @attachment@+-- member of an element of @pColorAttachments@ is not+-- 'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED', its @layout@ member+-- /must/ not be+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL'+-- or+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL'+--+-- - #VUID-VkSubpassDescription-attachment-06917# If the @attachment@+-- member of an element of @pResolveAttachments@ is not+-- 'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED', its @layout@ member+-- /must/ not be+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL'+-- or+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL'+--+-- - #VUID-VkSubpassDescription-attachment-06918# If the @attachment@+-- member of an element of @pInputAttachments@ is not+-- 'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED', its @layout@ member+-- /must/ not be+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL'+-- or+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL'+--+-- - #VUID-VkSubpassDescription-attachment-06919# If the @attachment@+-- member of an element of @pColorAttachments@ is not+-- 'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED', its @layout@ member+-- /must/ not be+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL',+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL',+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL',+-- or+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL'+--+-- - #VUID-VkSubpassDescription-attachment-06920# If the @attachment@+-- member of an element of @pResolveAttachments@ is not+-- 'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED', its @layout@ member+-- /must/ not be+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL',+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL',+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL',+-- or+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL'+--+-- - #VUID-VkSubpassDescription-attachment-06921# If the @attachment@+-- member of an element of @pInputAttachments@ is not+-- 'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED', its @layout@ member+-- /must/ not be+-- 'Vulkan.Extensions.VK_KHR_synchronization2.IMAGE_LAYOUT_ATTACHMENT_OPTIMAL_KHR'+--+-- - #VUID-VkSubpassDescription-attachment-06922# If the @attachment@+-- member of an element of @pColorAttachments@ is not+-- 'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED', its @layout@ member+-- /must/ not be+-- 'Vulkan.Extensions.VK_KHR_synchronization2.IMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR'+--+-- - #VUID-VkSubpassDescription-attachment-06923# If the @attachment@+-- member of an element of @pResolveAttachments@ is not+-- 'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED', its @layout@ member+-- /must/ not be+-- 'Vulkan.Extensions.VK_KHR_synchronization2.IMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR'+-- -- - #VUID-VkSubpassDescription-pipelineBindPoint-04952# -- @pipelineBindPoint@ /must/ be -- 'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_GRAPHICS'@@ -1182,8 +1314,10 @@ -- same 'Vulkan.Core10.Enums.Format.Format' as its corresponding color -- attachment ----- - #VUID-VkSubpassDescription-pColorAttachments-01417# All attachments--- in @pColorAttachments@ that are not+-- - #VUID-VkSubpassDescription-pColorAttachments-06868# If neither the+-- @VK_AMD_mixed_attachment_samples@ extension nor the+-- @VK_NV_framebuffer_mixed_samples@ extension is enabled, all+-- attachments in @pColorAttachments@ that are not -- 'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED' /must/ have the same -- sample count --@@ -1191,7 +1325,7 @@ -- in @pInputAttachments@ that are not -- 'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED' /must/ have image -- formats whose--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#potential-format-features potential format features>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#potential-format-features potential format features> -- contain at least -- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_COLOR_ATTACHMENT_BIT' -- or@@ -1201,7 +1335,7 @@ -- in @pColorAttachments@ that are not -- 'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED' /must/ have image -- formats whose--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#potential-format-features potential format features>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#potential-format-features potential format features> -- contain -- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_COLOR_ATTACHMENT_BIT' --@@ -1209,7 +1343,7 @@ -- attachments in @pResolveAttachments@ that are not -- 'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED' /must/ have image -- formats whose--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#potential-format-features potential format features>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#potential-format-features potential format features> -- contain -- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_COLOR_ATTACHMENT_BIT' --@@ -1217,45 +1351,45 @@ -- @pDepthStencilAttachment@ is not @NULL@ and the attachment is not -- 'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED' then it /must/ have -- an image format whose--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#potential-format-features potential format features>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#potential-format-features potential format features> -- contain -- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT' -- -- - #VUID-VkSubpassDescription-linearColorAttachment-06496# If the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-linearColorAttachment linearColorAttachment>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-linearColorAttachment linearColorAttachment> -- feature is enabled and the image is created with -- 'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_LINEAR', all -- attachments in @pInputAttachments@ that are not -- 'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED' /must/ have image -- formats whose--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#potential-format-features potential format features>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#potential-format-features potential format features> -- /must/ contain -- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV' -- -- - #VUID-VkSubpassDescription-linearColorAttachment-06497# If the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-linearColorAttachment linearColorAttachment>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-linearColorAttachment linearColorAttachment> -- feature is enabled and the image is created with -- 'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_LINEAR', all -- attachments in @pColorAttachments@ that are not -- 'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED' /must/ have image -- formats whose--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#potential-format-features potential format features>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#potential-format-features potential format features> -- /must/ contain -- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV' -- -- - #VUID-VkSubpassDescription-linearColorAttachment-06498# If the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-linearColorAttachment linearColorAttachment>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-linearColorAttachment linearColorAttachment> -- feature is enabled and the image is created with -- 'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_LINEAR', all -- attachments in @pResolveAttachments@ that are not -- 'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED' /must/ have image -- formats whose--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#potential-format-features potential format features>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#potential-format-features potential format features> -- /must/ contain -- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV' -- -- - #VUID-VkSubpassDescription-pColorAttachments-01506# If the--- @VK_AMD_mixed_attachment_samples@ extension is enabled, and all+-- @VK_AMD_mixed_attachment_samples@ extension is enabled, all -- attachments in @pColorAttachments@ that are not -- 'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED' /must/ have a sample -- count that is smaller than or equal to the sample count of@@ -1283,11 +1417,6 @@ -- by more than one 'AttachmentReference' member, then each use /must/ -- use the same @layout@ ----- - #VUID-VkSubpassDescription-None-04437# Each attachment /must/ follow--- the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#attachment-type-imagelayout image layout requirements>--- specified for its attachment type--- -- - #VUID-VkSubpassDescription-flags-00856# If @flags@ includes -- 'Vulkan.Core10.Enums.SubpassDescriptionFlagBits.SUBPASS_DESCRIPTION_PER_VIEW_POSITION_X_ONLY_BIT_NVX', -- it /must/ also include@@ -1469,7 +1598,7 @@ -- -- If @srcSubpass@ is equal to @dstSubpass@ then the 'SubpassDependency' -- describes a--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-barriers-subpass-self-dependencies subpass self-dependency>,+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-barriers-subpass-self-dependencies subpass self-dependency>, -- and only constrains the pipeline barriers allowed within a subpass -- instance. Otherwise, when a render pass instance which includes a -- subpass dependency is submitted to a queue, it defines a memory@@ -1478,9 +1607,9 @@ -- -- If @srcSubpass@ is equal to -- 'Vulkan.Core10.APIConstants.SUBPASS_EXTERNAL', the first--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope> -- includes commands that occur earlier in--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-submission-order submission order>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-submission-order submission order> -- than the 'Vulkan.Core10.CommandBufferBuilding.cmdBeginRenderPass' used -- to begin the render pass instance. Otherwise, the first set of commands -- includes all commands submitted as part of the subpass instance@@ -1488,14 +1617,14 @@ -- operations on attachments used in @srcSubpass@. In either case, the -- first synchronization scope is limited to operations on the pipeline -- stages determined by the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages-masks source stage mask>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages-masks source stage mask> -- specified by @srcStageMask@. -- -- If @dstSubpass@ is equal to -- 'Vulkan.Core10.APIConstants.SUBPASS_EXTERNAL', the second--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope> -- includes commands that occur later in--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-submission-order submission order>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-submission-order submission order> -- than the 'Vulkan.Core10.CommandBufferBuilding.cmdEndRenderPass' used to -- end the render pass instance. Otherwise, the second set of commands -- includes all commands submitted as part of the subpass instance@@ -1503,29 +1632,29 @@ -- operations on attachments used in @dstSubpass@. In either case, the -- second synchronization scope is limited to operations on the pipeline -- stages determined by the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages-masks destination stage mask>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages-masks destination stage mask> -- specified by @dstStageMask@. -- -- The first--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-access-scopes access scope>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-access-scopes access scope> -- is limited to accesses in the pipeline stages determined by the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages-masks source stage mask>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages-masks source stage mask> -- specified by @srcStageMask@. It is also limited to access types in the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-access-masks source access mask>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-access-masks source access mask> -- specified by @srcAccessMask@. -- -- The second--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-access-scopes access scope>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-access-scopes access scope> -- is limited to accesses in the pipeline stages determined by the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages-masks destination stage mask>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages-masks destination stage mask> -- specified by @dstStageMask@. It is also limited to access types in the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-access-masks destination access mask>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-access-masks destination access mask> -- specified by @dstAccessMask@. -- -- The--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-available-and-visible availability and visibility operations>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-available-and-visible availability and visibility operations> -- defined by a subpass dependency affect the execution of--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-layout-transitions image layout transitions>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-layout-transitions image layout transitions> -- within the render pass. -- -- Note@@ -1554,44 +1683,44 @@ -- == Valid Usage -- -- - #VUID-VkSubpassDependency-srcStageMask-04090# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryShader geometry shaders>+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryShader geometryShader> -- feature is not enabled, @srcStageMask@ /must/ not contain -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_GEOMETRY_SHADER_BIT' -- -- - #VUID-VkSubpassDependency-srcStageMask-04091# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShader tessellation shaders>+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShader tessellationShader> -- feature is not enabled, @srcStageMask@ /must/ not contain -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT' -- or -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT' -- -- - #VUID-VkSubpassDependency-srcStageMask-04092# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-conditionalRendering conditional rendering>+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-conditionalRendering conditionalRendering> -- feature is not enabled, @srcStageMask@ /must/ not contain -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT' -- -- - #VUID-VkSubpassDependency-srcStageMask-04093# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-fragmentDensityMap fragment density map>+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-fragmentDensityMap fragmentDensityMap> -- feature is not enabled, @srcStageMask@ /must/ not contain -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT' -- -- - #VUID-VkSubpassDependency-srcStageMask-04094# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-transformFeedback transform feedback>+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-transformFeedback transformFeedback> -- feature is not enabled, @srcStageMask@ /must/ not contain -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT' -- -- - #VUID-VkSubpassDependency-srcStageMask-04095# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader mesh shaders>+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader> -- feature is not enabled, @srcStageMask@ /must/ not contain--- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_MESH_SHADER_BIT_NV'+-- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_MESH_SHADER_BIT_EXT' -- -- - #VUID-VkSubpassDependency-srcStageMask-04096# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader task shaders>+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader> -- feature is not enabled, @srcStageMask@ /must/ not contain--- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TASK_SHADER_BIT_NV'+-- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TASK_SHADER_BIT_EXT' -- -- - #VUID-VkSubpassDependency-srcStageMask-04097# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shading rate image>+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage> -- feature is not enabled, @srcStageMask@ /must/ not contain -- 'Vulkan.Extensions.VK_NV_shading_rate_image.PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV' --@@ -1600,44 +1729,44 @@ -- feature is not enabled, @srcStageMask@ /must/ not be @0@ -- -- - #VUID-VkSubpassDependency-dstStageMask-04090# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryShader geometry shaders>+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryShader geometryShader> -- feature is not enabled, @dstStageMask@ /must/ not contain -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_GEOMETRY_SHADER_BIT' -- -- - #VUID-VkSubpassDependency-dstStageMask-04091# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShader tessellation shaders>+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShader tessellationShader> -- feature is not enabled, @dstStageMask@ /must/ not contain -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT' -- or -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT' -- -- - #VUID-VkSubpassDependency-dstStageMask-04092# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-conditionalRendering conditional rendering>+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-conditionalRendering conditionalRendering> -- feature is not enabled, @dstStageMask@ /must/ not contain -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT' -- -- - #VUID-VkSubpassDependency-dstStageMask-04093# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-fragmentDensityMap fragment density map>+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-fragmentDensityMap fragmentDensityMap> -- feature is not enabled, @dstStageMask@ /must/ not contain -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT' -- -- - #VUID-VkSubpassDependency-dstStageMask-04094# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-transformFeedback transform feedback>+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-transformFeedback transformFeedback> -- feature is not enabled, @dstStageMask@ /must/ not contain -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT' -- -- - #VUID-VkSubpassDependency-dstStageMask-04095# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader mesh shaders>+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader> -- feature is not enabled, @dstStageMask@ /must/ not contain--- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_MESH_SHADER_BIT_NV'+-- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_MESH_SHADER_BIT_EXT' -- -- - #VUID-VkSubpassDependency-dstStageMask-04096# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader task shaders>+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader> -- feature is not enabled, @dstStageMask@ /must/ not contain--- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TASK_SHADER_BIT_NV'+-- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TASK_SHADER_BIT_EXT' -- -- - #VUID-VkSubpassDependency-dstStageMask-04097# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shading rate image>+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage> -- feature is not enabled, @dstStageMask@ /must/ not contain -- 'Vulkan.Extensions.VK_NV_shading_rate_image.PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV' --@@ -1654,31 +1783,25 @@ -- @dstSubpass@ /must/ not both be equal to -- 'Vulkan.Core10.APIConstants.SUBPASS_EXTERNAL' ----- - #VUID-VkSubpassDependency-srcSubpass-00867# If @srcSubpass@ is equal--- to @dstSubpass@ and not all of the stages in @srcStageMask@ and--- @dstStageMask@ are--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-framebuffer-regions framebuffer-space stages>,--- the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages-order logically latest>--- pipeline stage in @srcStageMask@ /must/ be--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages-order logically earlier>--- than or equal to the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages-order logically earliest>--- pipeline stage in @dstStageMask@+-- - #VUID-VkSubpassDependency-srcSubpass-06809# If @srcSubpass@ is equal+-- to @dstSubpass@ and @srcStageMask@ includes a+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-framebuffer-regions framebuffer-space stage>,+-- @dstStageMask@ /must/ only contain+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-framebuffer-regions framebuffer-space stages> -- -- - #VUID-VkSubpassDependency-srcAccessMask-00868# Any access flag -- included in @srcAccessMask@ /must/ be supported by one of the -- pipeline stages in @srcStageMask@, as specified in the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-access-types-supported table of supported access types>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-access-types-supported table of supported access types> -- -- - #VUID-VkSubpassDependency-dstAccessMask-00869# Any access flag -- included in @dstAccessMask@ /must/ be supported by one of the -- pipeline stages in @dstStageMask@, as specified in the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-access-types-supported table of supported access types>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-access-types-supported table of supported access types> -- -- - #VUID-VkSubpassDependency-srcSubpass-02243# If @srcSubpass@ equals -- @dstSubpass@, and @srcStageMask@ and @dstStageMask@ both include a--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-framebuffer-regions framebuffer-space stage>,+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-framebuffer-regions framebuffer-space stage>, -- then @dependencyFlags@ /must/ include -- 'Vulkan.Core10.Enums.DependencyFlagBits.DEPENDENCY_BY_REGION_BIT' --@@ -1740,20 +1863,20 @@ , -- | @srcStageMask@ is a bitmask of -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlagBits' -- specifying the- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages-masks source stage mask>.+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages-masks source stage mask>. srcStageMask :: PipelineStageFlags , -- | @dstStageMask@ is a bitmask of -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlagBits' -- specifying the- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages-masks destination stage mask>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages-masks destination stage mask> dstStageMask :: PipelineStageFlags , -- | @srcAccessMask@ is a bitmask of -- 'Vulkan.Core10.Enums.AccessFlagBits.AccessFlagBits' specifying a- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-access-masks source access mask>.+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-access-masks source access mask>. srcAccessMask :: AccessFlags , -- | @dstAccessMask@ is a bitmask of -- 'Vulkan.Core10.Enums.AccessFlagBits.AccessFlagBits' specifying a- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-access-masks destination access mask>.+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-access-masks destination access mask>. dstAccessMask :: AccessFlags , -- | @dependencyFlags@ is a bitmask of -- 'Vulkan.Core10.Enums.DependencyFlagBits.DependencyFlagBits'.@@ -1946,7 +2069,7 @@ -- 'Vulkan.Core10.APIConstants.SUBPASS_EXTERNAL', all stage flags -- included in the @srcStageMask@ member of that dependency /must/ be a -- pipeline stage supported by the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages-types pipeline>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages-types pipeline> -- identified by the @pipelineBindPoint@ member of the source subpass -- -- - #VUID-VkRenderPassCreateInfo-pDependencies-00838# For any element of@@ -1954,17 +2077,19 @@ -- 'Vulkan.Core10.APIConstants.SUBPASS_EXTERNAL', all stage flags -- included in the @dstStageMask@ member of that dependency /must/ be a -- pipeline stage supported by the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages-types pipeline>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages-types pipeline> -- identified by the @pipelineBindPoint@ member of the destination -- subpass ----- - #VUID-VkRenderPassCreateInfo-srcSubpass-02517# The @srcSubpass@--- member of each element of @pDependencies@ /must/ be less than--- @subpassCount@+-- - #VUID-VkRenderPassCreateInfo-pDependencies-06866# For any element of+-- @pDependencies@, if its @srcSubpass@ is not+-- 'Vulkan.Core10.APIConstants.SUBPASS_EXTERNAL', it /must/ be less+-- than @subpassCount@ ----- - #VUID-VkRenderPassCreateInfo-dstSubpass-02518# The @dstSubpass@--- member of each element of @pDependencies@ /must/ be less than--- @subpassCount@+-- - #VUID-VkRenderPassCreateInfo-pDependencies-06867# For any element of+-- @pDependencies@, if its @dstSubpass@ is not+-- 'Vulkan.Core10.APIConstants.SUBPASS_EXTERNAL', it /must/ be less+-- than @subpassCount@ -- -- == Valid Usage (Implicit) --@@ -2106,15 +2231,17 @@ -- = Description -- -- Applications /must/ ensure that all non-attachment writes to memory--- backing image subresources that are used as attachments in a render pass--- instance happen-before or happen-after the render pass instance. If an--- image subresource is written during a render pass instance by anything--- other than load operations, store operations, and layout transitions,--- applications /must/ ensure that all non-attachment reads from memory--- backing that image subresource happen-before or happen-after the render--- pass instance. For depth\/stencil images, the aspects are not treated--- independently for the above guarantees - writes to either aspect /must/--- be synchronized with accesses to the other aspect.+-- backing image subresources that are used as attachments that are not in+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT'+-- layout in a render pass instance happen-before or happen-after the+-- render pass instance. If an image subresource is written during a render+-- pass instance by anything other than load operations, store operations,+-- and layout transitions, applications /must/ ensure that all+-- non-attachment reads from memory backing that image subresource+-- happen-before or happen-after the render pass instance. For+-- depth\/stencil images, the aspects are not treated independently for the+-- above guarantees - writes to either aspect /must/ be synchronized with+-- accesses to the other aspect. -- -- Note --@@ -2193,16 +2320,16 @@ -- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SUBSAMPLED_BIT_EXT' -- -- - #VUID-VkFramebufferCreateInfo-renderPass-02553# If @renderPass@ has--- a fragment density map attachment and--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-fragmentDensityMapNonSubsampledImages non-subsample image feature>--- is not enabled, each element of @pAttachments@ /must/ have been--- created with a @flags@ value including+-- a fragment density map attachment and the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-fragmentDensityMapNonSubsampledImages fragmentDensityMapNonSubsampledImages>+-- feature is not enabled, each element of @pAttachments@ /must/ have+-- been created with a @flags@ value including -- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SUBSAMPLED_BIT_EXT' -- unless that element is the fragment density map attachment -- -- - #VUID-VkFramebufferCreateInfo-renderPass-06502# If @renderPass@ was -- created with--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-fragmentdensitymapoffsets fragment density map offsets>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-fragmentdensitymapoffsets fragment density map offsets> -- other than (0,0), each element of @pAttachments@ /must/ have been -- created with a @flags@ value including -- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_FRAGMENT_DENSITY_MAP_OFFSET_BIT_QCOM'.@@ -2227,16 +2354,18 @@ -- 'Vulkan.Core10.Enums.FramebufferCreateFlagBits.FRAMEBUFFER_CREATE_IMAGELESS_BIT', -- each element of @pAttachments@ that is used as an input, color, -- resolve, or depth\/stencil attachment by @renderPass@ /must/ have--- been created with a 'Vulkan.Core10.Image.ImageCreateInfo'::@width@--- greater than or equal to @width@+-- been created with a+-- 'Vulkan.Core10.Image.ImageCreateInfo'::@extent.width@ greater than+-- or equal to @width@ -- -- - #VUID-VkFramebufferCreateInfo-flags-04534# If @flags@ does not -- include -- 'Vulkan.Core10.Enums.FramebufferCreateFlagBits.FRAMEBUFFER_CREATE_IMAGELESS_BIT', -- each element of @pAttachments@ that is used as an input, color, -- resolve, or depth\/stencil attachment by @renderPass@ /must/ have--- been created with a 'Vulkan.Core10.Image.ImageCreateInfo'::@height@--- greater than or equal to @height@+-- been created with a+-- 'Vulkan.Core10.Image.ImageCreateInfo'::@extent.height@ greater than+-- or equal to @height@ -- -- - #VUID-VkFramebufferCreateInfo-flags-04535# If @flags@ does not -- include@@ -2285,7 +2414,7 @@ -- 'Vulkan.Core10.Enums.FramebufferCreateFlagBits.FRAMEBUFFER_CREATE_IMAGELESS_BIT', -- and @renderPass@ was specified with non-zero view masks, each -- element of @pAttachments@ that is used as a--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-fragment-shading-rate-attachment fragment shading rate attachment>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-fragment-shading-rate-attachment fragment shading rate attachment> -- by @renderPass@ /must/ have a @layerCount@ that is either @1@, or -- greater than the index of the most significant bit set in any of -- those view masks@@ -2295,7 +2424,7 @@ -- 'Vulkan.Core10.Enums.FramebufferCreateFlagBits.FRAMEBUFFER_CREATE_IMAGELESS_BIT', -- and @renderPass@ was not specified with non-zero view masks, each -- element of @pAttachments@ that is used as a--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-fragment-shading-rate-attachment fragment shading rate attachment>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-fragment-shading-rate-attachment fragment shading rate attachment> -- by @renderPass@ /must/ have a @layerCount@ that is either @1@, or -- greater than @layers@ --@@ -2303,7 +2432,7 @@ -- include -- 'Vulkan.Core10.Enums.FramebufferCreateFlagBits.FRAMEBUFFER_CREATE_IMAGELESS_BIT', -- an element of @pAttachments@ that is used as a--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-fragment-shading-rate-attachment fragment shading rate attachment>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-fragment-shading-rate-attachment fragment shading rate attachment> -- /must/ have a width at least as large as ⌈@width@ \/ @texelWidth@⌉, -- where @texelWidth@ is the largest value of -- @shadingRateAttachmentTexelSize.width@ in a@@ -2314,7 +2443,7 @@ -- include -- 'Vulkan.Core10.Enums.FramebufferCreateFlagBits.FRAMEBUFFER_CREATE_IMAGELESS_BIT', -- an element of @pAttachments@ that is used as a--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-fragment-shading-rate-attachment fragment shading rate attachment>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-fragment-shading-rate-attachment fragment shading rate attachment> -- /must/ have a height at least as large as ⌈@height@ \/ -- @texelHeight@⌉, where @texelHeight@ is the largest value of -- @shadingRateAttachmentTexelSize.height@ in a@@ -2338,21 +2467,21 @@ -- -- - #VUID-VkFramebufferCreateInfo-width-00886# @width@ /must/ be less -- than or equal to--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxFramebufferWidth maxFramebufferWidth>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxFramebufferWidth maxFramebufferWidth> -- -- - #VUID-VkFramebufferCreateInfo-height-00887# @height@ /must/ be -- greater than @0@ -- -- - #VUID-VkFramebufferCreateInfo-height-00888# @height@ /must/ be less -- than or equal to--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxFramebufferHeight maxFramebufferHeight>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxFramebufferHeight maxFramebufferHeight> -- -- - #VUID-VkFramebufferCreateInfo-layers-00889# @layers@ /must/ be -- greater than @0@ -- -- - #VUID-VkFramebufferCreateInfo-layers-00890# @layers@ /must/ be less -- than or equal to--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxFramebufferLayers maxFramebufferLayers>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxFramebufferLayers maxFramebufferLayers> -- -- - #VUID-VkFramebufferCreateInfo-renderPass-02531# If @renderPass@ was -- specified with non-zero view masks, @layers@ /must/ be @1@@@ -2364,7 +2493,7 @@ -- taken from a 3D image /must/ not be a depth\/stencil format -- -- - #VUID-VkFramebufferCreateInfo-flags-03189# If the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-imagelessFramebuffer imageless framebuffer>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-imagelessFramebuffer imagelessFramebuffer> -- feature is not enabled, @flags@ /must/ not include -- 'Vulkan.Core10.Enums.FramebufferCreateFlagBits.FRAMEBUFFER_CREATE_IMAGELESS_BIT' --@@ -2425,7 +2554,7 @@ -- member of a -- 'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.FramebufferAttachmentsCreateInfo' -- structure in the @pNext@ chain that is used as a--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-fragment-shading-rate-attachment fragment shading rate attachment>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-fragment-shading-rate-attachment fragment shading rate attachment> -- /must/ be greater than or equal to ⌈@width@ \/ @texelWidth@⌉, where -- @texelWidth@ is the largest value of -- @shadingRateAttachmentTexelSize.width@ in a@@ -2438,7 +2567,7 @@ -- member of a -- 'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.FramebufferAttachmentsCreateInfo' -- structure in the @pNext@ chain that is used as a--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-fragment-shading-rate-attachment fragment shading rate attachment>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-fragment-shading-rate-attachment fragment shading rate attachment> -- /must/ be greater than or equal to ⌈@height@ \/ @texelHeight@⌉, -- where @texelHeight@ is the largest value of -- @shadingRateAttachmentTexelSize.height@ in a@@ -2451,14 +2580,14 @@ -- @pAttachmentImageInfos@ member of a -- 'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.FramebufferAttachmentsCreateInfo' -- structure in the @pNext@ chain that is used as a--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-fragment-shading-rate-attachment fragment shading rate attachment>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-fragment-shading-rate-attachment fragment shading rate attachment> -- /must/ be either @1@, or greater than or equal to @layers@ -- -- - #VUID-VkFramebufferCreateInfo-flags-04587# If @flags@ includes -- 'Vulkan.Core10.Enums.FramebufferCreateFlagBits.FRAMEBUFFER_CREATE_IMAGELESS_BIT' -- and @renderPass@ was specified with non-zero view masks, each -- element of @pAttachments@ that is used as a--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-fragment-shading-rate-attachment fragment shading rate attachment>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-fragment-shading-rate-attachment fragment shading rate attachment> -- by @renderPass@ /must/ have a @layerCount@ that is either @1@, or -- greater than the index of the most significant bit set in any of -- those view masks@@ -2556,6 +2685,29 @@ -- include -- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR' --+-- - #VUID-VkFramebufferCreateInfo-samples-06881# If+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#subpass-multisampledrendertosinglesampled multisampled-render-to-single-sampled>+-- is enabled for any subpass, all color, depth\/stencil and input+-- attachments used in that subpass which have+-- 'AttachmentDescription'::@samples@ or+-- 'Vulkan.Core12.Promoted_From_VK_KHR_create_renderpass2.AttachmentDescription2'::@samples@+-- equal to+-- 'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT' /must/+-- have been created with+-- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_BIT_EXT'+-- in their 'Vulkan.Core10.Image.ImageCreateInfo'::@flags@.+--+-- - #VUID-VkFramebufferCreateInfo-samples-07009# If+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#subpass-multisampledrendertosinglesampled multisampled-render-to-single-sampled>+-- is enabled for any subpass, all color, depth\/stencil and input+-- attachments used in that subpass which have+-- 'AttachmentDescription'::@samples@ or+-- 'Vulkan.Core12.Promoted_From_VK_KHR_create_renderpass2.AttachmentDescription2'::@samples@+-- equal to+-- 'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT' /must/+-- have a format that supports the sample count specified in+-- 'Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled.MultisampledRenderToSingleSampledInfoEXT'::@rasterizationSamples@+-- -- == Valid Usage (Implicit) -- -- - #VUID-VkFramebufferCreateInfo-sType-sType# @sType@ /must/ be@@ -2595,7 +2747,7 @@ flags :: FramebufferCreateFlags , -- | @renderPass@ is a render pass defining what render passes the -- framebuffer will be compatible with. See- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-compatibility Render Pass Compatibility>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-compatibility Render Pass Compatibility> -- for details. renderPass :: RenderPass , -- | @pAttachments@ is a pointer to an array of
src/Vulkan/Core10/Pipeline.hs view
@@ -188,5595 +188,5874 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_transform_feedback (PipelineRasterizationStateStreamCreateInfoEXT) import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering (PipelineRenderingCreateInfo) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_representative_fragment_test (PipelineRepresentativeFragmentTestStateCreateInfoNV)-import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_sample_locations (PipelineSampleLocationsStateCreateInfoEXT)-import Vulkan.Core10.Enums.PipelineShaderStageCreateFlagBits (PipelineShaderStageCreateFlags)-import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_EXT_subgroup_size_control (PipelineShaderStageRequiredSubgroupSizeCreateInfo)-import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_maintenance2 (PipelineTessellationDomainOriginStateCreateInfo)-import Vulkan.Core10.Enums.PipelineTessellationStateCreateFlags (PipelineTessellationStateCreateFlags)-import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_vertex_attribute_divisor (PipelineVertexInputDivisorStateCreateInfoEXT)-import Vulkan.Core10.Enums.PipelineVertexInputStateCreateFlags (PipelineVertexInputStateCreateFlags)-import {-# SOURCE #-} Vulkan.Extensions.VK_NV_shading_rate_image (PipelineViewportCoarseSampleOrderStateCreateInfoNV)-import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_depth_clip_control (PipelineViewportDepthClipControlCreateInfoEXT)-import {-# SOURCE #-} Vulkan.Extensions.VK_NV_scissor_exclusive (PipelineViewportExclusiveScissorStateCreateInfoNV)-import {-# SOURCE #-} Vulkan.Extensions.VK_NV_shading_rate_image (PipelineViewportShadingRateImageStateCreateInfoNV)-import Vulkan.Core10.Enums.PipelineViewportStateCreateFlags (PipelineViewportStateCreateFlags)-import {-# SOURCE #-} Vulkan.Extensions.VK_NV_viewport_swizzle (PipelineViewportSwizzleStateCreateInfoNV)-import {-# SOURCE #-} Vulkan.Extensions.VK_NV_clip_space_w_scaling (PipelineViewportWScalingStateCreateInfoNV)-import Vulkan.CStruct.Extends (PokeChain)-import Vulkan.CStruct.Extends (PokeChain(..))-import Vulkan.Core10.Enums.PolygonMode (PolygonMode)-import Vulkan.Core10.Enums.PrimitiveTopology (PrimitiveTopology)-import Vulkan.Core10.FundamentalTypes (Rect2D)-import Vulkan.Core10.Handles (RenderPass)-import Vulkan.Core10.Enums.Result (Result)-import Vulkan.Core10.Enums.Result (Result(..))-import Vulkan.Core10.Enums.SampleCountFlagBits (SampleCountFlagBits)-import Vulkan.Core10.Enums.SampleCountFlagBits (SampleCountFlagBits(SampleCountFlagBits))-import Vulkan.Core10.FundamentalTypes (SampleMask)-import Vulkan.Core10.Handles (ShaderModule)-import {-# SOURCE #-} Vulkan.Core10.Shader (ShaderModuleCreateInfo)-import Vulkan.Core10.Enums.ShaderStageFlagBits (ShaderStageFlagBits)-import Vulkan.CStruct.Extends (SomeStruct)-import Vulkan.CStruct.Extends (SomeStruct(..))-import Vulkan.Core10.Enums.StencilOp (StencilOp)-import Vulkan.Core10.Enums.StructureType (StructureType)-import {-# SOURCE #-} Vulkan.Extensions.VK_HUAWEI_subpass_shading (SubpassShadingPipelineCreateInfoHUAWEI)-import Vulkan.Core10.Enums.VertexInputRate (VertexInputRate)-import Vulkan.Exception (VulkanException(..))-import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO))-import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO))-import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO))-import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO))-import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO))-import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO))-import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO))-import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO))-import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO))-import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO))-import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO))-import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO))-import Vulkan.Core10.Enums.Result (Result(SUCCESS))-import Vulkan.Core10.Enums.BlendFactor (BlendFactor(..))-import Vulkan.Core10.Enums.BlendOp (BlendOp(..))-import Vulkan.Core10.Enums.ColorComponentFlagBits (ColorComponentFlagBits(..))-import Vulkan.Core10.Enums.ColorComponentFlagBits (ColorComponentFlags)-import Vulkan.Core10.Enums.CompareOp (CompareOp(..))-import Vulkan.Core10.Enums.CullModeFlagBits (CullModeFlagBits(..))-import Vulkan.Core10.Enums.CullModeFlagBits (CullModeFlags)-import Vulkan.Core10.Enums.DynamicState (DynamicState(..))-import Vulkan.Core10.Enums.FrontFace (FrontFace(..))-import Vulkan.Core10.Enums.LogicOp (LogicOp(..))-import Vulkan.Core10.Handles (Pipeline(..))-import Vulkan.Core10.Enums.PipelineColorBlendStateCreateFlagBits (PipelineColorBlendStateCreateFlagBits(..))-import Vulkan.Core10.Enums.PipelineColorBlendStateCreateFlagBits (PipelineColorBlendStateCreateFlags)-import Vulkan.Core10.Enums.PipelineCreateFlagBits (PipelineCreateFlagBits(..))-import Vulkan.Core10.Enums.PipelineCreateFlagBits (PipelineCreateFlags)-import Vulkan.Core10.Enums.PipelineDepthStencilStateCreateFlagBits (PipelineDepthStencilStateCreateFlagBits(..))-import Vulkan.Core10.Enums.PipelineDepthStencilStateCreateFlagBits (PipelineDepthStencilStateCreateFlags)-import Vulkan.Core10.Enums.PipelineDynamicStateCreateFlags (PipelineDynamicStateCreateFlags(..))-import Vulkan.Core10.Enums.PipelineInputAssemblyStateCreateFlags (PipelineInputAssemblyStateCreateFlags(..))-import Vulkan.Core10.Enums.PipelineLayoutCreateFlagBits (PipelineLayoutCreateFlagBits(..))-import Vulkan.Core10.Enums.PipelineLayoutCreateFlagBits (PipelineLayoutCreateFlags)-import Vulkan.Core10.Enums.PipelineMultisampleStateCreateFlags (PipelineMultisampleStateCreateFlags(..))-import Vulkan.Core10.Enums.PipelineRasterizationStateCreateFlags (PipelineRasterizationStateCreateFlags(..))-import Vulkan.Core10.Enums.PipelineShaderStageCreateFlagBits (PipelineShaderStageCreateFlagBits(..))-import Vulkan.Core10.Enums.PipelineShaderStageCreateFlagBits (PipelineShaderStageCreateFlags)-import Vulkan.Core10.Enums.PipelineTessellationStateCreateFlags (PipelineTessellationStateCreateFlags(..))-import Vulkan.Core10.Enums.PipelineVertexInputStateCreateFlags (PipelineVertexInputStateCreateFlags(..))-import Vulkan.Core10.Enums.PipelineViewportStateCreateFlags (PipelineViewportStateCreateFlags(..))-import Vulkan.Core10.Enums.PolygonMode (PolygonMode(..))-import Vulkan.Core10.Enums.PrimitiveTopology (PrimitiveTopology(..))-import Vulkan.Core10.FundamentalTypes (SampleMask)-import Vulkan.Core10.Enums.ShaderStageFlagBits (ShaderStageFlagBits(..))-import Vulkan.Core10.Enums.ShaderStageFlagBits (ShaderStageFlags)-import Vulkan.Core10.Enums.StencilOp (StencilOp(..))-import Vulkan.Core10.Enums.VertexInputRate (VertexInputRate(..))-foreign import ccall-#if !defined(SAFE_FOREIGN_CALLS)- unsafe-#endif- "dynamic" mkVkCreateGraphicsPipelines- :: FunPtr (Ptr Device_T -> PipelineCache -> Word32 -> Ptr (SomeStruct GraphicsPipelineCreateInfo) -> Ptr AllocationCallbacks -> Ptr Pipeline -> IO Result) -> Ptr Device_T -> PipelineCache -> Word32 -> Ptr (SomeStruct GraphicsPipelineCreateInfo) -> Ptr AllocationCallbacks -> Ptr Pipeline -> IO Result---- | vkCreateGraphicsPipelines - Create graphics pipelines------ = Description------ The 'GraphicsPipelineCreateInfo' structure includes an array of--- 'PipelineShaderStageCreateInfo' structures for each of the desired--- active shader stages, as well as creation information for all relevant--- fixed-function stages, and a pipeline layout.------ == Valid Usage------ - #VUID-vkCreateGraphicsPipelines-flags-00720# If the @flags@ member--- of any element of @pCreateInfos@ contains the--- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DERIVATIVE_BIT'--- flag, and the @basePipelineIndex@ member of that same element is not--- @-1@, @basePipelineIndex@ /must/ be less than the index into--- @pCreateInfos@ that corresponds to that element------ - #VUID-vkCreateGraphicsPipelines-flags-00721# If the @flags@ member--- of any element of @pCreateInfos@ contains the--- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DERIVATIVE_BIT'--- flag, the base pipeline /must/ have been created with the--- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT'--- flag set------ - #VUID-vkCreateGraphicsPipelines-pipelineCache-02876# If--- @pipelineCache@ was created with--- 'Vulkan.Core10.Enums.PipelineCacheCreateFlagBits.PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT',--- host access to @pipelineCache@ /must/ be--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#fundamentals-threadingbehavior externally synchronized>------ Note------ An implicit cache may be provided by the implementation or a layer. For--- this reason, it is still valid to set--- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT'--- on @flags@ for any element of @pCreateInfos@ while passing--- 'Vulkan.Core10.APIConstants.NULL_HANDLE' for @pipelineCache@.------ == Valid Usage (Implicit)------ - #VUID-vkCreateGraphicsPipelines-device-parameter# @device@ /must/ be--- a valid 'Vulkan.Core10.Handles.Device' handle------ - #VUID-vkCreateGraphicsPipelines-pipelineCache-parameter# If--- @pipelineCache@ is not 'Vulkan.Core10.APIConstants.NULL_HANDLE',--- @pipelineCache@ /must/ be a valid--- 'Vulkan.Core10.Handles.PipelineCache' handle------ - #VUID-vkCreateGraphicsPipelines-pCreateInfos-parameter#--- @pCreateInfos@ /must/ be a valid pointer to an array of--- @createInfoCount@ valid 'GraphicsPipelineCreateInfo' structures------ - #VUID-vkCreateGraphicsPipelines-pAllocator-parameter# If--- @pAllocator@ is not @NULL@, @pAllocator@ /must/ be a valid pointer--- to a valid 'Vulkan.Core10.AllocationCallbacks.AllocationCallbacks'--- structure------ - #VUID-vkCreateGraphicsPipelines-pPipelines-parameter# @pPipelines@--- /must/ be a valid pointer to an array of @createInfoCount@--- 'Vulkan.Core10.Handles.Pipeline' handles------ - #VUID-vkCreateGraphicsPipelines-createInfoCount-arraylength#--- @createInfoCount@ /must/ be greater than @0@------ - #VUID-vkCreateGraphicsPipelines-pipelineCache-parent# If--- @pipelineCache@ is a valid handle, it /must/ have been created,--- allocated, or retrieved from @device@------ == Return Codes------ [<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodes Success>]------ - 'Vulkan.Core10.Enums.Result.SUCCESS'------ - 'Vulkan.Extensions.VK_EXT_pipeline_creation_cache_control.PIPELINE_COMPILE_REQUIRED_EXT'------ [<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodes Failure>]------ - 'Vulkan.Core10.Enums.Result.ERROR_OUT_OF_HOST_MEMORY'------ - 'Vulkan.Core10.Enums.Result.ERROR_OUT_OF_DEVICE_MEMORY'------ - 'Vulkan.Core10.Enums.Result.ERROR_INVALID_SHADER_NV'------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,--- 'Vulkan.Core10.AllocationCallbacks.AllocationCallbacks',--- 'Vulkan.Core10.Handles.Device', 'GraphicsPipelineCreateInfo',--- 'Vulkan.Core10.Handles.Pipeline', 'Vulkan.Core10.Handles.PipelineCache'-createGraphicsPipelines :: forall io- . (MonadIO io)- => -- | @device@ is the logical device that creates the graphics pipelines.- Device- -> -- | @pipelineCache@ is either 'Vulkan.Core10.APIConstants.NULL_HANDLE',- -- indicating that pipeline caching is disabled; or the handle of a valid- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-cache pipeline cache>- -- object, in which case use of that cache is enabled for the duration of- -- the command.- PipelineCache- -> -- | @pCreateInfos@ is a pointer to an array of 'GraphicsPipelineCreateInfo'- -- structures.- ("createInfos" ::: Vector (SomeStruct GraphicsPipelineCreateInfo))- -> -- | @pAllocator@ controls host memory allocation as described in the- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>- -- chapter.- ("allocator" ::: Maybe AllocationCallbacks)- -> io (Result, ("pipelines" ::: Vector Pipeline))-createGraphicsPipelines device pipelineCache createInfos allocator = liftIO . evalContT $ do- let vkCreateGraphicsPipelinesPtr = pVkCreateGraphicsPipelines (case device of Device{deviceCmds} -> deviceCmds)- lift $ unless (vkCreateGraphicsPipelinesPtr /= nullFunPtr) $- throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCreateGraphicsPipelines is null" Nothing Nothing- let vkCreateGraphicsPipelines' = mkVkCreateGraphicsPipelines vkCreateGraphicsPipelinesPtr- pPCreateInfos <- ContT $ allocaBytes @(GraphicsPipelineCreateInfo _) ((Data.Vector.length (createInfos)) * 144)- Data.Vector.imapM_ (\i e -> ContT $ pokeSomeCStruct (forgetExtensions (pPCreateInfos `plusPtr` (144 * (i)) :: Ptr (GraphicsPipelineCreateInfo _))) (e) . ($ ())) (createInfos)- pAllocator <- case (allocator) of- Nothing -> pure nullPtr- Just j -> ContT $ withCStruct (j)- pPPipelines <- ContT $ bracket (callocBytes @Pipeline ((fromIntegral ((fromIntegral (Data.Vector.length $ (createInfos)) :: Word32))) * 8)) free- r <- lift $ traceAroundEvent "vkCreateGraphicsPipelines" (vkCreateGraphicsPipelines' (deviceHandle (device)) (pipelineCache) ((fromIntegral (Data.Vector.length $ (createInfos)) :: Word32)) (forgetExtensions (pPCreateInfos)) pAllocator (pPPipelines))- lift $ when (r < SUCCESS) (throwIO (VulkanException r))- pPipelines <- lift $ generateM (fromIntegral ((fromIntegral (Data.Vector.length $ (createInfos)) :: Word32))) (\i -> peek @Pipeline ((pPPipelines `advancePtrBytes` (8 * (i)) :: Ptr Pipeline)))- pure $ (r, pPipelines)---- | A convenience wrapper to make a compatible pair of calls to--- 'createGraphicsPipelines' and 'destroyPipeline'------ To ensure that 'destroyPipeline' is always called: pass--- 'Control.Exception.bracket' (or the allocate function from your--- favourite resource management library) as the last argument.--- To just extract the pair pass '(,)' as the last argument.----withGraphicsPipelines :: forall io r . MonadIO io => Device -> PipelineCache -> Vector (SomeStruct GraphicsPipelineCreateInfo) -> Maybe AllocationCallbacks -> (io (Result, Vector Pipeline) -> ((Result, Vector Pipeline) -> io ()) -> r) -> r-withGraphicsPipelines device pipelineCache pCreateInfos pAllocator b =- b (createGraphicsPipelines device pipelineCache pCreateInfos pAllocator)- (\(_, o1) -> traverse_ (\o1Elem -> destroyPipeline device o1Elem pAllocator) o1)---foreign import ccall-#if !defined(SAFE_FOREIGN_CALLS)- unsafe-#endif- "dynamic" mkVkCreateComputePipelines- :: FunPtr (Ptr Device_T -> PipelineCache -> Word32 -> Ptr (SomeStruct ComputePipelineCreateInfo) -> Ptr AllocationCallbacks -> Ptr Pipeline -> IO Result) -> Ptr Device_T -> PipelineCache -> Word32 -> Ptr (SomeStruct ComputePipelineCreateInfo) -> Ptr AllocationCallbacks -> Ptr Pipeline -> IO Result---- | vkCreateComputePipelines - Creates a new compute pipeline object------ == Valid Usage------ - #VUID-vkCreateComputePipelines-flags-00695# If the @flags@ member of--- any element of @pCreateInfos@ contains the--- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DERIVATIVE_BIT'--- flag, and the @basePipelineIndex@ member of that same element is not--- @-1@, @basePipelineIndex@ /must/ be less than the index into--- @pCreateInfos@ that corresponds to that element------ - #VUID-vkCreateComputePipelines-flags-00696# If the @flags@ member of--- any element of @pCreateInfos@ contains the--- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DERIVATIVE_BIT'--- flag, the base pipeline /must/ have been created with the--- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT'--- flag set------ - #VUID-vkCreateComputePipelines-pipelineCache-02873# If--- @pipelineCache@ was created with--- 'Vulkan.Core10.Enums.PipelineCacheCreateFlagBits.PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT',--- host access to @pipelineCache@ /must/ be--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#fundamentals-threadingbehavior externally synchronized>------ == Valid Usage (Implicit)------ - #VUID-vkCreateComputePipelines-device-parameter# @device@ /must/ be--- a valid 'Vulkan.Core10.Handles.Device' handle------ - #VUID-vkCreateComputePipelines-pipelineCache-parameter# If--- @pipelineCache@ is not 'Vulkan.Core10.APIConstants.NULL_HANDLE',--- @pipelineCache@ /must/ be a valid--- 'Vulkan.Core10.Handles.PipelineCache' handle------ - #VUID-vkCreateComputePipelines-pCreateInfos-parameter#--- @pCreateInfos@ /must/ be a valid pointer to an array of--- @createInfoCount@ valid 'ComputePipelineCreateInfo' structures------ - #VUID-vkCreateComputePipelines-pAllocator-parameter# If @pAllocator@--- is not @NULL@, @pAllocator@ /must/ be a valid pointer to a valid--- 'Vulkan.Core10.AllocationCallbacks.AllocationCallbacks' structure------ - #VUID-vkCreateComputePipelines-pPipelines-parameter# @pPipelines@--- /must/ be a valid pointer to an array of @createInfoCount@--- 'Vulkan.Core10.Handles.Pipeline' handles------ - #VUID-vkCreateComputePipelines-createInfoCount-arraylength#--- @createInfoCount@ /must/ be greater than @0@------ - #VUID-vkCreateComputePipelines-pipelineCache-parent# If--- @pipelineCache@ is a valid handle, it /must/ have been created,--- allocated, or retrieved from @device@------ == Return Codes------ [<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodes Success>]------ - 'Vulkan.Core10.Enums.Result.SUCCESS'------ - 'Vulkan.Extensions.VK_EXT_pipeline_creation_cache_control.PIPELINE_COMPILE_REQUIRED_EXT'------ [<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodes Failure>]------ - 'Vulkan.Core10.Enums.Result.ERROR_OUT_OF_HOST_MEMORY'------ - 'Vulkan.Core10.Enums.Result.ERROR_OUT_OF_DEVICE_MEMORY'------ - 'Vulkan.Core10.Enums.Result.ERROR_INVALID_SHADER_NV'------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,--- 'Vulkan.Core10.AllocationCallbacks.AllocationCallbacks',--- 'ComputePipelineCreateInfo', 'Vulkan.Core10.Handles.Device',--- 'Vulkan.Core10.Handles.Pipeline', 'Vulkan.Core10.Handles.PipelineCache'-createComputePipelines :: forall io- . (MonadIO io)- => -- | @device@ is the logical device that creates the compute pipelines.- Device- -> -- | @pipelineCache@ is either 'Vulkan.Core10.APIConstants.NULL_HANDLE',- -- indicating that pipeline caching is disabled; or the handle of a valid- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-cache pipeline cache>- -- object, in which case use of that cache is enabled for the duration of- -- the command.- PipelineCache- -> -- | @pCreateInfos@ is a pointer to an array of 'ComputePipelineCreateInfo'- -- structures.- ("createInfos" ::: Vector (SomeStruct ComputePipelineCreateInfo))- -> -- | @pAllocator@ controls host memory allocation as described in the- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>- -- chapter.- ("allocator" ::: Maybe AllocationCallbacks)- -> io (Result, ("pipelines" ::: Vector Pipeline))-createComputePipelines device pipelineCache createInfos allocator = liftIO . evalContT $ do- let vkCreateComputePipelinesPtr = pVkCreateComputePipelines (case device of Device{deviceCmds} -> deviceCmds)- lift $ unless (vkCreateComputePipelinesPtr /= nullFunPtr) $- throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCreateComputePipelines is null" Nothing Nothing- let vkCreateComputePipelines' = mkVkCreateComputePipelines vkCreateComputePipelinesPtr- pPCreateInfos <- ContT $ allocaBytes @(ComputePipelineCreateInfo _) ((Data.Vector.length (createInfos)) * 96)- Data.Vector.imapM_ (\i e -> ContT $ pokeSomeCStruct (forgetExtensions (pPCreateInfos `plusPtr` (96 * (i)) :: Ptr (ComputePipelineCreateInfo _))) (e) . ($ ())) (createInfos)- pAllocator <- case (allocator) of- Nothing -> pure nullPtr- Just j -> ContT $ withCStruct (j)- pPPipelines <- ContT $ bracket (callocBytes @Pipeline ((fromIntegral ((fromIntegral (Data.Vector.length $ (createInfos)) :: Word32))) * 8)) free- r <- lift $ traceAroundEvent "vkCreateComputePipelines" (vkCreateComputePipelines' (deviceHandle (device)) (pipelineCache) ((fromIntegral (Data.Vector.length $ (createInfos)) :: Word32)) (forgetExtensions (pPCreateInfos)) pAllocator (pPPipelines))- lift $ when (r < SUCCESS) (throwIO (VulkanException r))- pPipelines <- lift $ generateM (fromIntegral ((fromIntegral (Data.Vector.length $ (createInfos)) :: Word32))) (\i -> peek @Pipeline ((pPPipelines `advancePtrBytes` (8 * (i)) :: Ptr Pipeline)))- pure $ (r, pPipelines)---- | A convenience wrapper to make a compatible pair of calls to--- 'createComputePipelines' and 'destroyPipeline'------ To ensure that 'destroyPipeline' is always called: pass--- 'Control.Exception.bracket' (or the allocate function from your--- favourite resource management library) as the last argument.--- To just extract the pair pass '(,)' as the last argument.----withComputePipelines :: forall io r . MonadIO io => Device -> PipelineCache -> Vector (SomeStruct ComputePipelineCreateInfo) -> Maybe AllocationCallbacks -> (io (Result, Vector Pipeline) -> ((Result, Vector Pipeline) -> io ()) -> r) -> r-withComputePipelines device pipelineCache pCreateInfos pAllocator b =- b (createComputePipelines device pipelineCache pCreateInfos pAllocator)- (\(_, o1) -> traverse_ (\o1Elem -> destroyPipeline device o1Elem pAllocator) o1)---foreign import ccall-#if !defined(SAFE_FOREIGN_CALLS)- unsafe-#endif- "dynamic" mkVkDestroyPipeline- :: FunPtr (Ptr Device_T -> Pipeline -> Ptr AllocationCallbacks -> IO ()) -> Ptr Device_T -> Pipeline -> Ptr AllocationCallbacks -> IO ()---- | vkDestroyPipeline - Destroy a pipeline object------ == Valid Usage------ - #VUID-vkDestroyPipeline-pipeline-00765# All submitted commands that--- refer to @pipeline@ /must/ have completed execution------ - #VUID-vkDestroyPipeline-pipeline-00766# If--- 'Vulkan.Core10.AllocationCallbacks.AllocationCallbacks' were--- provided when @pipeline@ was created, a compatible set of callbacks--- /must/ be provided here------ - #VUID-vkDestroyPipeline-pipeline-00767# If no--- 'Vulkan.Core10.AllocationCallbacks.AllocationCallbacks' were--- provided when @pipeline@ was created, @pAllocator@ /must/ be @NULL@------ == Valid Usage (Implicit)------ - #VUID-vkDestroyPipeline-device-parameter# @device@ /must/ be a valid--- 'Vulkan.Core10.Handles.Device' handle------ - #VUID-vkDestroyPipeline-pipeline-parameter# If @pipeline@ is not--- 'Vulkan.Core10.APIConstants.NULL_HANDLE', @pipeline@ /must/ be a--- valid 'Vulkan.Core10.Handles.Pipeline' handle------ - #VUID-vkDestroyPipeline-pAllocator-parameter# If @pAllocator@ is not--- @NULL@, @pAllocator@ /must/ be a valid pointer to a valid--- 'Vulkan.Core10.AllocationCallbacks.AllocationCallbacks' structure------ - #VUID-vkDestroyPipeline-pipeline-parent# If @pipeline@ is a valid--- handle, it /must/ have been created, allocated, or retrieved from--- @device@------ == Host Synchronization------ - Host access to @pipeline@ /must/ be externally synchronized------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,--- 'Vulkan.Core10.AllocationCallbacks.AllocationCallbacks',--- 'Vulkan.Core10.Handles.Device', 'Vulkan.Core10.Handles.Pipeline'-destroyPipeline :: forall io- . (MonadIO io)- => -- | @device@ is the logical device that destroys the pipeline.- Device- -> -- | @pipeline@ is the handle of the pipeline to destroy.- Pipeline- -> -- | @pAllocator@ controls host memory allocation as described in the- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>- -- chapter.- ("allocator" ::: Maybe AllocationCallbacks)- -> io ()-destroyPipeline device pipeline allocator = liftIO . evalContT $ do- let vkDestroyPipelinePtr = pVkDestroyPipeline (case device of Device{deviceCmds} -> deviceCmds)- lift $ unless (vkDestroyPipelinePtr /= nullFunPtr) $- throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkDestroyPipeline is null" Nothing Nothing- let vkDestroyPipeline' = mkVkDestroyPipeline vkDestroyPipelinePtr- pAllocator <- case (allocator) of- Nothing -> pure nullPtr- Just j -> ContT $ withCStruct (j)- lift $ traceAroundEvent "vkDestroyPipeline" (vkDestroyPipeline' (deviceHandle (device)) (pipeline) pAllocator)- pure $ ()----- | VkViewport - Structure specifying a viewport------ = Description------ Note------ Despite their names, @minDepth@ /can/ be less than, equal to, or greater--- than @maxDepth@.------ The framebuffer depth coordinate @z@f /may/ be represented using either--- a fixed-point or floating-point representation. However, a--- floating-point representation /must/ be used if the depth\/stencil--- attachment has a floating-point depth component. If an m-bit fixed-point--- representation is used, we assume that it represents each value--- \(\frac{k}{2^m - 1}\), where k ∈ { 0, 1, …, 2m-1 }, as k (e.g. 1.0 is--- represented in binary as a string of all ones).------ The viewport parameters shown in the above equations are found from--- these values as------ - ox = @x@ + @width@ \/ 2------ - oy = @y@ + @height@ \/ 2------ - oz = @minDepth@------ - px = @width@------ - py = @height@------ - pz = @maxDepth@ - @minDepth@.------ If a render pass transform is enabled, the values (px,py) and (ox, oy)--- defining the viewport are transformed as described in--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#vertexpostproc-renderpass-transform render pass transform>--- before participating in the viewport transform.------ The application /can/ specify a negative term for @height@, which has--- the effect of negating the y coordinate in clip space before performing--- the transform. When using a negative @height@, the application /should/--- also adjust the @y@ value to point to the lower left corner of the--- viewport instead of the upper left corner. Using the negative @height@--- allows the application to avoid having to negate the y component of the--- @Position@ output from the last--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader stage>.------ The width and height of the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxViewportDimensions implementation-dependent maximum viewport dimensions>--- /must/ be greater than or equal to the width and height of the largest--- image which /can/ be created and attached to a framebuffer.------ The floating-point viewport bounds are represented with an--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-viewportSubPixelBits implementation-dependent precision>.------ == Valid Usage------ - #VUID-VkViewport-width-01770# @width@ /must/ be greater than @0.0@------ - #VUID-VkViewport-width-01771# @width@ /must/ be less than or equal--- to--- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxViewportDimensions@[0]------ - #VUID-VkViewport-height-01773# The absolute value of @height@ /must/--- be less than or equal to--- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxViewportDimensions@[1]------ - #VUID-VkViewport-x-01774# @x@ /must/ be greater than or equal to--- @viewportBoundsRange@[0]------ - #VUID-VkViewport-x-01232# (@x@ + @width@) /must/ be less than or--- equal to @viewportBoundsRange@[1]------ - #VUID-VkViewport-y-01775# @y@ /must/ be greater than or equal to--- @viewportBoundsRange@[0]------ - #VUID-VkViewport-y-01776# @y@ /must/ be less than or equal to--- @viewportBoundsRange@[1]------ - #VUID-VkViewport-y-01777# (@y@ + @height@) /must/ be greater than or--- equal to @viewportBoundsRange@[0]------ - #VUID-VkViewport-y-01233# (@y@ + @height@) /must/ be less than or--- equal to @viewportBoundsRange@[1]------ - #VUID-VkViewport-minDepth-01234# Unless--- @VK_EXT_depth_range_unrestricted@ extension is enabled @minDepth@--- /must/ be between @0.0@ and @1.0@, inclusive------ - #VUID-VkViewport-maxDepth-01235# Unless--- @VK_EXT_depth_range_unrestricted@ extension is enabled @maxDepth@--- /must/ be between @0.0@ and @1.0@, inclusive------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,--- 'Vulkan.Extensions.VK_NV_inherited_viewport_scissor.CommandBufferInheritanceViewportScissorInfoNV',--- 'PipelineViewportStateCreateInfo',--- 'Vulkan.Core10.CommandBufferBuilding.cmdSetViewport',--- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount',--- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'-data Viewport = Viewport- { -- | @x@ and @y@ are the viewport’s upper left corner (x,y).- x :: Float- , -- No documentation found for Nested "VkViewport" "y"- y :: Float- , -- | @width@ and @height@ are the viewport’s width and height, respectively.- width :: Float- , -- No documentation found for Nested "VkViewport" "height"- height :: Float- , -- | @minDepth@ and @maxDepth@ are the depth range for the viewport.- minDepth :: Float- , -- No documentation found for Nested "VkViewport" "maxDepth"- maxDepth :: Float- }- deriving (Typeable, Eq)-#if defined(GENERIC_INSTANCES)-deriving instance Generic (Viewport)-#endif-deriving instance Show Viewport--instance ToCStruct Viewport where- withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)- pokeCStruct p Viewport{..} f = do- poke ((p `plusPtr` 0 :: Ptr CFloat)) (CFloat (x))- poke ((p `plusPtr` 4 :: Ptr CFloat)) (CFloat (y))- poke ((p `plusPtr` 8 :: Ptr CFloat)) (CFloat (width))- poke ((p `plusPtr` 12 :: Ptr CFloat)) (CFloat (height))- poke ((p `plusPtr` 16 :: Ptr CFloat)) (CFloat (minDepth))- poke ((p `plusPtr` 20 :: Ptr CFloat)) (CFloat (maxDepth))- f- cStructSize = 24- cStructAlignment = 4- pokeZeroCStruct p f = do- poke ((p `plusPtr` 0 :: Ptr CFloat)) (CFloat (zero))- poke ((p `plusPtr` 4 :: Ptr CFloat)) (CFloat (zero))- poke ((p `plusPtr` 8 :: Ptr CFloat)) (CFloat (zero))- poke ((p `plusPtr` 12 :: Ptr CFloat)) (CFloat (zero))- poke ((p `plusPtr` 16 :: Ptr CFloat)) (CFloat (zero))- poke ((p `plusPtr` 20 :: Ptr CFloat)) (CFloat (zero))- f--instance FromCStruct Viewport where- peekCStruct p = do- x <- peek @CFloat ((p `plusPtr` 0 :: Ptr CFloat))- y <- peek @CFloat ((p `plusPtr` 4 :: Ptr CFloat))- width <- peek @CFloat ((p `plusPtr` 8 :: Ptr CFloat))- height <- peek @CFloat ((p `plusPtr` 12 :: Ptr CFloat))- minDepth <- peek @CFloat ((p `plusPtr` 16 :: Ptr CFloat))- maxDepth <- peek @CFloat ((p `plusPtr` 20 :: Ptr CFloat))- pure $ Viewport- (coerce @CFloat @Float x) (coerce @CFloat @Float y) (coerce @CFloat @Float width) (coerce @CFloat @Float height) (coerce @CFloat @Float minDepth) (coerce @CFloat @Float maxDepth)--instance Storable Viewport where- sizeOf ~_ = 24- alignment ~_ = 4- peek = peekCStruct- poke ptr poked = pokeCStruct ptr poked (pure ())--instance Zero Viewport where- zero = Viewport- zero- zero- zero- zero- zero- zero----- | VkSpecializationMapEntry - Structure specifying a specialization map--- entry------ = Description------ If a @constantID@ value is not a specialization constant ID used in the--- shader, that map entry does not affect the behavior of the pipeline.------ == Valid Usage------ - #VUID-VkSpecializationMapEntry-constantID-00776# For a @constantID@--- specialization constant declared in a shader, @size@ /must/ match--- the byte size of the @constantID@. If the specialization constant is--- of type @boolean@, @size@ /must/ be the byte size of--- 'Vulkan.Core10.FundamentalTypes.Bool32'------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,--- 'SpecializationInfo'-data SpecializationMapEntry = SpecializationMapEntry- { -- | @constantID@ is the ID of the specialization constant in SPIR-V.- constantID :: Word32- , -- | @offset@ is the byte offset of the specialization constant value within- -- the supplied data buffer.- offset :: Word32- , -- | @size@ is the byte size of the specialization constant value within the- -- supplied data buffer.- size :: Word64- }- deriving (Typeable, Eq)-#if defined(GENERIC_INSTANCES)-deriving instance Generic (SpecializationMapEntry)-#endif-deriving instance Show SpecializationMapEntry--instance ToCStruct SpecializationMapEntry where- withCStruct x f = allocaBytes 16 $ \p -> pokeCStruct p x (f p)- pokeCStruct p SpecializationMapEntry{..} f = do- poke ((p `plusPtr` 0 :: Ptr Word32)) (constantID)- poke ((p `plusPtr` 4 :: Ptr Word32)) (offset)- poke ((p `plusPtr` 8 :: Ptr CSize)) (CSize (size))- f- cStructSize = 16- cStructAlignment = 8- pokeZeroCStruct p f = do- poke ((p `plusPtr` 0 :: Ptr Word32)) (zero)- poke ((p `plusPtr` 4 :: Ptr Word32)) (zero)- poke ((p `plusPtr` 8 :: Ptr CSize)) (CSize (zero))- f--instance FromCStruct SpecializationMapEntry where- peekCStruct p = do- constantID <- peek @Word32 ((p `plusPtr` 0 :: Ptr Word32))- offset <- peek @Word32 ((p `plusPtr` 4 :: Ptr Word32))- size <- peek @CSize ((p `plusPtr` 8 :: Ptr CSize))- pure $ SpecializationMapEntry- constantID offset (coerce @CSize @Word64 size)--instance Storable SpecializationMapEntry where- sizeOf ~_ = 16- alignment ~_ = 8- peek = peekCStruct- poke ptr poked = pokeCStruct ptr poked (pure ())--instance Zero SpecializationMapEntry where- zero = SpecializationMapEntry- zero- zero- zero----- | VkSpecializationInfo - Structure specifying specialization information------ == Valid Usage------ - #VUID-VkSpecializationInfo-offset-00773# The @offset@ member of each--- element of @pMapEntries@ /must/ be less than @dataSize@------ - #VUID-VkSpecializationInfo-pMapEntries-00774# The @size@ member of--- each element of @pMapEntries@ /must/ be less than or equal to--- @dataSize@ minus @offset@------ - #VUID-VkSpecializationInfo-constantID-04911# The @constantID@ value--- of each element of @pMapEntries@ /must/ be unique within--- @pMapEntries@------ == Valid Usage (Implicit)------ - #VUID-VkSpecializationInfo-pMapEntries-parameter# If @mapEntryCount@--- is not @0@, @pMapEntries@ /must/ be a valid pointer to an array of--- @mapEntryCount@ valid 'SpecializationMapEntry' structures------ - #VUID-VkSpecializationInfo-pData-parameter# If @dataSize@ is not--- @0@, @pData@ /must/ be a valid pointer to an array of @dataSize@--- bytes------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,--- 'PipelineShaderStageCreateInfo', 'SpecializationMapEntry'-data SpecializationInfo = SpecializationInfo- { -- | @pMapEntries@ is a pointer to an array of 'SpecializationMapEntry'- -- structures which map constant IDs to offsets in @pData@.- mapEntries :: Vector SpecializationMapEntry- , -- | @dataSize@ is the byte size of the @pData@ buffer.- dataSize :: Word64- , -- | @pData@ contains the actual constant values to specialize with.- data' :: Ptr ()- }- deriving (Typeable)-#if defined(GENERIC_INSTANCES)-deriving instance Generic (SpecializationInfo)-#endif-deriving instance Show SpecializationInfo--instance ToCStruct SpecializationInfo where- withCStruct x f = allocaBytes 32 $ \p -> pokeCStruct p x (f p)- pokeCStruct p SpecializationInfo{..} f = evalContT $ do- lift $ poke ((p `plusPtr` 0 :: Ptr Word32)) ((fromIntegral (Data.Vector.length $ (mapEntries)) :: Word32))- pPMapEntries' <- ContT $ allocaBytes @SpecializationMapEntry ((Data.Vector.length (mapEntries)) * 16)- lift $ Data.Vector.imapM_ (\i e -> poke (pPMapEntries' `plusPtr` (16 * (i)) :: Ptr SpecializationMapEntry) (e)) (mapEntries)- lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr SpecializationMapEntry))) (pPMapEntries')- lift $ poke ((p `plusPtr` 16 :: Ptr CSize)) (CSize (dataSize))- lift $ poke ((p `plusPtr` 24 :: Ptr (Ptr ()))) (data')- lift $ f- cStructSize = 32- cStructAlignment = 8- pokeZeroCStruct p f = do- poke ((p `plusPtr` 24 :: Ptr (Ptr ()))) (zero)- f--instance FromCStruct SpecializationInfo where- peekCStruct p = do- mapEntryCount <- peek @Word32 ((p `plusPtr` 0 :: Ptr Word32))- pMapEntries <- peek @(Ptr SpecializationMapEntry) ((p `plusPtr` 8 :: Ptr (Ptr SpecializationMapEntry)))- pMapEntries' <- generateM (fromIntegral mapEntryCount) (\i -> peekCStruct @SpecializationMapEntry ((pMapEntries `advancePtrBytes` (16 * (i)) :: Ptr SpecializationMapEntry)))- dataSize <- peek @CSize ((p `plusPtr` 16 :: Ptr CSize))- pData <- peek @(Ptr ()) ((p `plusPtr` 24 :: Ptr (Ptr ())))- pure $ SpecializationInfo- pMapEntries' (coerce @CSize @Word64 dataSize) pData--instance Zero SpecializationInfo where- zero = SpecializationInfo- mempty- zero- zero----- | VkPipelineShaderStageCreateInfo - Structure specifying parameters of a--- newly created pipeline shader stage------ = Description------ If the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-graphicsPipelineLibrary graphicsPipelineLibrary>--- feature is enabled and an instance of--- 'Vulkan.Core10.Shader.ShaderModuleCreateInfo' is included in the @pNext@--- chain, @module@ /can/ be 'Vulkan.Core10.APIConstants.NULL_HANDLE'. If--- @module@ is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the shader--- code used by the pipeline is defined by @module@. If @module@ is--- 'Vulkan.Core10.APIConstants.NULL_HANDLE', the shader code is defined by--- the chained 'Vulkan.Core10.Shader.ShaderModuleCreateInfo'.------ == Valid Usage------ - #VUID-VkPipelineShaderStageCreateInfo-stage-00704# If the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-geometryShader geometry shaders>--- feature is not enabled, @stage@ /must/ not be--- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT'------ - #VUID-VkPipelineShaderStageCreateInfo-stage-00705# If the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-tessellationShader tessellation shaders>--- feature is not enabled, @stage@ /must/ not be--- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_CONTROL_BIT'--- or--- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT'------ - #VUID-VkPipelineShaderStageCreateInfo-stage-02091# If the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-meshShader mesh shader>--- feature is not enabled, @stage@ /must/ not be--- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_NV'------ - #VUID-VkPipelineShaderStageCreateInfo-stage-02092# If the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-taskShader task shader>--- feature is not enabled, @stage@ /must/ not be--- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_NV'------ - #VUID-VkPipelineShaderStageCreateInfo-stage-00706# @stage@ /must/--- not be--- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_ALL_GRAPHICS',--- or 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_ALL'------ - #VUID-VkPipelineShaderStageCreateInfo-pName-00707# @pName@ /must/ be--- the name of an @OpEntryPoint@ in @module@ with an execution model--- that matches @stage@------ - #VUID-VkPipelineShaderStageCreateInfo-maxClipDistances-00708# If the--- identified entry point includes any variable in its interface that--- is declared with the @ClipDistance@ @BuiltIn@ decoration, that--- variable /must/ not have an array size greater than--- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxClipDistances@------ - #VUID-VkPipelineShaderStageCreateInfo-maxCullDistances-00709# If the--- identified entry point includes any variable in its interface that--- is declared with the @CullDistance@ @BuiltIn@ decoration, that--- variable /must/ not have an array size greater than--- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxCullDistances@------ - #VUID-VkPipelineShaderStageCreateInfo-maxCombinedClipAndCullDistances-00710#--- If the identified entry point includes any variables in its--- interface that are declared with the @ClipDistance@ or--- @CullDistance@ @BuiltIn@ decoration, those variables /must/ not have--- array sizes which sum to more than--- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxCombinedClipAndCullDistances@------ - #VUID-VkPipelineShaderStageCreateInfo-maxSampleMaskWords-00711# If--- the identified entry point includes any variable in its interface--- that is declared with the--- 'Vulkan.Core10.FundamentalTypes.SampleMask' @BuiltIn@ decoration,--- that variable /must/ not have an array size greater than--- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxSampleMaskWords@------ - #VUID-VkPipelineShaderStageCreateInfo-stage-00712# If @stage@ is--- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT',--- the identified entry point /must/ not include any input variable in--- its interface that is decorated with @CullDistance@------ - #VUID-VkPipelineShaderStageCreateInfo-stage-00713# If @stage@ is--- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_CONTROL_BIT'--- or--- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT',--- and the identified entry point has an @OpExecutionMode@ instruction--- specifying a patch size with @OutputVertices@, the patch size /must/--- be greater than @0@ and less than or equal to--- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxTessellationPatchSize@------ - #VUID-VkPipelineShaderStageCreateInfo-stage-00714# If @stage@ is--- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT',--- the identified entry point /must/ have an @OpExecutionMode@--- instruction specifying a maximum output vertex count that is greater--- than @0@ and less than or equal to--- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxGeometryOutputVertices@------ - #VUID-VkPipelineShaderStageCreateInfo-stage-00715# If @stage@ is--- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT',--- the identified entry point /must/ have an @OpExecutionMode@--- instruction specifying an invocation count that is greater than @0@--- and less than or equal to--- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxGeometryShaderInvocations@------ - #VUID-VkPipelineShaderStageCreateInfo-stage-02596# If @stage@ is a--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader stage>,--- and the identified entry point writes to @Layer@ for any primitive,--- it /must/ write the same value to @Layer@ for all vertices of a--- given primitive------ - #VUID-VkPipelineShaderStageCreateInfo-stage-02597# If @stage@ is a--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader stage>,--- and the identified entry point writes to @ViewportIndex@ for any--- primitive, it /must/ write the same value to @ViewportIndex@ for all--- vertices of a given primitive------ - #VUID-VkPipelineShaderStageCreateInfo-stage-00718# If @stage@ is--- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT',--- the identified entry point /must/ not include any output variables--- in its interface decorated with @CullDistance@------ - #VUID-VkPipelineShaderStageCreateInfo-stage-06685# If @stage@ is--- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT',--- and the identified entry point writes to @FragDepth@ in any--- execution path, all execution paths that are not exclusive to helper--- invocations /must/ either discard the fragment, or write or--- initialize the value of @FragDepth@------ - #VUID-VkPipelineShaderStageCreateInfo-stage-06686# If @stage@ is--- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT',--- and the identified entry point writes to @FragStencilRefEXT@ in any--- execution path, all execution paths that are not exclusive to helper--- invocations /must/ either discard the fragment, or write or--- initialize the value of @FragStencilRefEXT@------ - #VUID-VkPipelineShaderStageCreateInfo-stage-02093# If @stage@ is--- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_NV',--- the identified entry point /must/ have an @OpExecutionMode@--- instruction specifying a maximum output vertex count,--- @OutputVertices@, that is greater than @0@ and less than or equal to--- 'Vulkan.Extensions.VK_NV_mesh_shader.PhysicalDeviceMeshShaderPropertiesNV'::@maxMeshOutputVertices@------ - #VUID-VkPipelineShaderStageCreateInfo-stage-02094# If @stage@ is--- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_NV',--- the identified entry point /must/ have an @OpExecutionMode@--- instruction specifying a maximum output primitive count,--- @OutputPrimitivesNV@, that is greater than @0@ and less than or--- equal to--- 'Vulkan.Extensions.VK_NV_mesh_shader.PhysicalDeviceMeshShaderPropertiesNV'::@maxMeshOutputPrimitives@------ - #VUID-VkPipelineShaderStageCreateInfo-flags-02784# If @flags@ has--- the--- 'Vulkan.Core10.Enums.PipelineShaderStageCreateFlagBits.PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT'--- flag set, the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-subgroupSizeControl subgroupSizeControl>--- feature /must/ be enabled------ - #VUID-VkPipelineShaderStageCreateInfo-flags-02785# If @flags@ has--- the--- 'Vulkan.Core10.Enums.PipelineShaderStageCreateFlagBits.PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT'--- flag set, the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-computeFullSubgroups computeFullSubgroups>--- feature /must/ be enabled------ - #VUID-VkPipelineShaderStageCreateInfo-pNext-02754# If a--- 'Vulkan.Core13.Promoted_From_VK_EXT_subgroup_size_control.PipelineShaderStageRequiredSubgroupSizeCreateInfo'--- structure is included in the @pNext@ chain, @flags@ /must/ not have--- the--- 'Vulkan.Core10.Enums.PipelineShaderStageCreateFlagBits.PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT'--- flag set------ - #VUID-VkPipelineShaderStageCreateInfo-pNext-02755# If a--- 'Vulkan.Core13.Promoted_From_VK_EXT_subgroup_size_control.PipelineShaderStageRequiredSubgroupSizeCreateInfo'--- structure is included in the @pNext@ chain, the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-subgroupSizeControl subgroupSizeControl>--- feature /must/ be enabled, and @stage@ /must/ be a valid bit--- specified in--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-requiredSubgroupSizeStages requiredSubgroupSizeStages>------ - #VUID-VkPipelineShaderStageCreateInfo-pNext-02756# If a--- 'Vulkan.Core13.Promoted_From_VK_EXT_subgroup_size_control.PipelineShaderStageRequiredSubgroupSizeCreateInfo'--- structure is included in the @pNext@ chain and @stage@ is--- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_COMPUTE_BIT',--- the local workgroup size of the shader /must/ be less than or equal--- to the product of--- 'Vulkan.Core13.Promoted_From_VK_EXT_subgroup_size_control.PipelineShaderStageRequiredSubgroupSizeCreateInfo'::@requiredSubgroupSize@--- and--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxComputeWorkgroupSubgroups maxComputeWorkgroupSubgroups>------ - #VUID-VkPipelineShaderStageCreateInfo-pNext-02757# If a--- 'Vulkan.Core13.Promoted_From_VK_EXT_subgroup_size_control.PipelineShaderStageRequiredSubgroupSizeCreateInfo'--- structure is included in the @pNext@ chain, and @flags@ has the--- 'Vulkan.Core10.Enums.PipelineShaderStageCreateFlagBits.PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT'--- flag set, the local workgroup size in the X dimension of the--- pipeline /must/ be a multiple of--- 'Vulkan.Core13.Promoted_From_VK_EXT_subgroup_size_control.PipelineShaderStageRequiredSubgroupSizeCreateInfo'::@requiredSubgroupSize@------ - #VUID-VkPipelineShaderStageCreateInfo-flags-02758# If @flags@ has--- both the--- 'Vulkan.Core10.Enums.PipelineShaderStageCreateFlagBits.PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT'--- and--- 'Vulkan.Core10.Enums.PipelineShaderStageCreateFlagBits.PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT'--- flags set, the local workgroup size in the X dimension of the--- pipeline /must/ be a multiple of--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxSubgroupSize maxSubgroupSize>------ - #VUID-VkPipelineShaderStageCreateInfo-flags-02759# If @flags@ has--- the--- 'Vulkan.Core10.Enums.PipelineShaderStageCreateFlagBits.PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT'--- flag set and @flags@ does not have the--- 'Vulkan.Core10.Enums.PipelineShaderStageCreateFlagBits.PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT'--- flag set and no--- 'Vulkan.Core13.Promoted_From_VK_EXT_subgroup_size_control.PipelineShaderStageRequiredSubgroupSizeCreateInfo'--- structure is included in the @pNext@ chain, the local workgroup size--- in the X dimension of the pipeline /must/ be a multiple of--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-subgroup-size subgroupSize>------ - #VUID-VkPipelineShaderStageCreateInfo-module-04145# The SPIR-V code--- that was used to create @module@ /must/ be valid as described by the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirv-spec Khronos SPIR-V Specification>--- after applying the specializations provided in--- @pSpecializationInfo@, if any, and then converting all--- specialization constants into fixed constants------ == Valid Usage (Implicit)------ - #VUID-VkPipelineShaderStageCreateInfo-sType-sType# @sType@ /must/ be--- 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO'------ - #VUID-VkPipelineShaderStageCreateInfo-pNext-pNext# Each @pNext@--- member of any structure (including this one) in the @pNext@ chain--- /must/ be either @NULL@ or a pointer to a valid instance of--- 'Vulkan.Extensions.VK_EXT_debug_utils.DebugUtilsObjectNameInfoEXT',--- 'Vulkan.Core13.Promoted_From_VK_EXT_subgroup_size_control.PipelineShaderStageRequiredSubgroupSizeCreateInfo',--- or 'Vulkan.Core10.Shader.ShaderModuleCreateInfo'------ - #VUID-VkPipelineShaderStageCreateInfo-sType-unique# The @sType@--- value of each struct in the @pNext@ chain /must/ be unique------ - #VUID-VkPipelineShaderStageCreateInfo-flags-parameter# @flags@--- /must/ be a valid combination of--- 'Vulkan.Core10.Enums.PipelineShaderStageCreateFlagBits.PipelineShaderStageCreateFlagBits'--- values------ - #VUID-VkPipelineShaderStageCreateInfo-stage-parameter# @stage@--- /must/ be a valid--- 'Vulkan.Core10.Enums.ShaderStageFlagBits.ShaderStageFlagBits' value------ - #VUID-VkPipelineShaderStageCreateInfo-module-parameter# If @module@--- is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', @module@ /must/ be--- a valid 'Vulkan.Core10.Handles.ShaderModule' handle------ - #VUID-VkPipelineShaderStageCreateInfo-pName-parameter# @pName@--- /must/ be a null-terminated UTF-8 string------ - #VUID-VkPipelineShaderStageCreateInfo-pSpecializationInfo-parameter#--- If @pSpecializationInfo@ is not @NULL@, @pSpecializationInfo@ /must/--- be a valid pointer to a valid 'SpecializationInfo' structure------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,--- 'ComputePipelineCreateInfo', 'GraphicsPipelineCreateInfo',--- 'Vulkan.Extensions.VK_NV_device_generated_commands.GraphicsShaderGroupCreateInfoNV',--- 'Vulkan.Core10.Enums.PipelineShaderStageCreateFlagBits.PipelineShaderStageCreateFlags',--- 'Vulkan.Extensions.VK_KHR_ray_tracing_pipeline.RayTracingPipelineCreateInfoKHR',--- 'Vulkan.Extensions.VK_NV_ray_tracing.RayTracingPipelineCreateInfoNV',--- 'Vulkan.Core10.Handles.ShaderModule',--- 'Vulkan.Core10.Enums.ShaderStageFlagBits.ShaderStageFlagBits',--- 'SpecializationInfo', 'Vulkan.Core10.Enums.StructureType.StructureType'-data PipelineShaderStageCreateInfo (es :: [Type]) = PipelineShaderStageCreateInfo- { -- | @pNext@ is @NULL@ or a pointer to a structure extending this structure.- next :: Chain es- , -- | @flags@ is a bitmask of- -- 'Vulkan.Core10.Enums.PipelineShaderStageCreateFlagBits.PipelineShaderStageCreateFlagBits'- -- specifying how the pipeline shader stage will be generated.- flags :: PipelineShaderStageCreateFlags- , -- | @stage@ is a- -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.ShaderStageFlagBits' value- -- specifying a single pipeline stage.- stage :: ShaderStageFlagBits- , -- | @module@ is a 'Vulkan.Core10.Handles.ShaderModule' object containing the- -- shader for this stage.- module' :: ShaderModule- , -- | @pName@ is a pointer to a null-terminated UTF-8 string specifying the- -- entry point name of the shader for this stage.- name :: ByteString- , -- | @pSpecializationInfo@ is a pointer to a 'SpecializationInfo' structure,- -- as described in- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-specialization-constants Specialization Constants>,- -- or @NULL@.- specializationInfo :: Maybe SpecializationInfo- }- deriving (Typeable)-#if defined(GENERIC_INSTANCES)-deriving instance Generic (PipelineShaderStageCreateInfo (es :: [Type]))-#endif-deriving instance Show (Chain es) => Show (PipelineShaderStageCreateInfo es)--instance Extensible PipelineShaderStageCreateInfo where- extensibleTypeName = "PipelineShaderStageCreateInfo"- setNext PipelineShaderStageCreateInfo{..} next' = PipelineShaderStageCreateInfo{next = next', ..}- getNext PipelineShaderStageCreateInfo{..} = next- extends :: forall e b proxy. Typeable e => proxy e -> (Extends PipelineShaderStageCreateInfo e => b) -> Maybe b- extends _ f- | Just Refl <- eqT @e @PipelineShaderStageRequiredSubgroupSizeCreateInfo = Just f- | Just Refl <- eqT @e @DebugUtilsObjectNameInfoEXT = Just f- | Just Refl <- eqT @e @(ShaderModuleCreateInfo '[]) = Just f- | otherwise = Nothing--instance (Extendss PipelineShaderStageCreateInfo es, PokeChain es) => ToCStruct (PipelineShaderStageCreateInfo es) where- withCStruct x f = allocaBytes 48 $ \p -> pokeCStruct p x (f p)- pokeCStruct p PipelineShaderStageCreateInfo{..} f = evalContT $ do- lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO)- pNext'' <- fmap castPtr . ContT $ withChain (next)- lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext''- lift $ poke ((p `plusPtr` 16 :: Ptr PipelineShaderStageCreateFlags)) (flags)- lift $ poke ((p `plusPtr` 20 :: Ptr ShaderStageFlagBits)) (stage)- lift $ poke ((p `plusPtr` 24 :: Ptr ShaderModule)) (module')- pName'' <- ContT $ useAsCString (name)- lift $ poke ((p `plusPtr` 32 :: Ptr (Ptr CChar))) pName''- pSpecializationInfo'' <- case (specializationInfo) of- Nothing -> pure nullPtr- Just j -> ContT $ withCStruct (j)- lift $ poke ((p `plusPtr` 40 :: Ptr (Ptr SpecializationInfo))) pSpecializationInfo''- lift $ f- cStructSize = 48- cStructAlignment = 8- pokeZeroCStruct p f = evalContT $ do- lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO)- pNext' <- fmap castPtr . ContT $ withZeroChain @es- lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext'- lift $ poke ((p `plusPtr` 20 :: Ptr ShaderStageFlagBits)) (zero)- pName'' <- ContT $ useAsCString (mempty)- lift $ poke ((p `plusPtr` 32 :: Ptr (Ptr CChar))) pName''- lift $ f--instance (Extendss PipelineShaderStageCreateInfo es, PeekChain es) => FromCStruct (PipelineShaderStageCreateInfo es) where- peekCStruct p = do- pNext <- peek @(Ptr ()) ((p `plusPtr` 8 :: Ptr (Ptr ())))- next <- peekChain (castPtr pNext)- flags <- peek @PipelineShaderStageCreateFlags ((p `plusPtr` 16 :: Ptr PipelineShaderStageCreateFlags))- stage <- peek @ShaderStageFlagBits ((p `plusPtr` 20 :: Ptr ShaderStageFlagBits))- module' <- peek @ShaderModule ((p `plusPtr` 24 :: Ptr ShaderModule))- pName <- packCString =<< peek ((p `plusPtr` 32 :: Ptr (Ptr CChar)))- pSpecializationInfo <- peek @(Ptr SpecializationInfo) ((p `plusPtr` 40 :: Ptr (Ptr SpecializationInfo)))- pSpecializationInfo' <- maybePeek (\j -> peekCStruct @SpecializationInfo (j)) pSpecializationInfo- pure $ PipelineShaderStageCreateInfo- next flags stage module' pName pSpecializationInfo'--instance es ~ '[] => Zero (PipelineShaderStageCreateInfo es) where- zero = PipelineShaderStageCreateInfo- ()- zero- zero- zero- mempty- Nothing----- | VkComputePipelineCreateInfo - Structure specifying parameters of a newly--- created compute pipeline------ = Description------ The parameters @basePipelineHandle@ and @basePipelineIndex@ are--- described in more detail in--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-pipeline-derivatives Pipeline Derivatives>.------ == Valid Usage------ - #VUID-VkComputePipelineCreateInfo-flags-00697# If @flags@ contains--- the--- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DERIVATIVE_BIT'--- flag, and @basePipelineIndex@ is -1, @basePipelineHandle@ /must/ be--- a valid handle to a compute 'Vulkan.Core10.Handles.Pipeline'------ - #VUID-VkComputePipelineCreateInfo-flags-00698# If @flags@ contains--- the--- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DERIVATIVE_BIT'--- flag, and @basePipelineHandle@ is--- 'Vulkan.Core10.APIConstants.NULL_HANDLE', @basePipelineIndex@ /must/--- be a valid index into the calling command’s @pCreateInfos@ parameter------ - #VUID-VkComputePipelineCreateInfo-flags-00699# If @flags@ contains--- the--- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DERIVATIVE_BIT'--- flag, and @basePipelineIndex@ is not -1, @basePipelineHandle@ /must/--- be 'Vulkan.Core10.APIConstants.NULL_HANDLE'------ - #VUID-VkComputePipelineCreateInfo-flags-00700# If @flags@ contains--- the--- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DERIVATIVE_BIT'--- flag, and @basePipelineHandle@ is not--- 'Vulkan.Core10.APIConstants.NULL_HANDLE', @basePipelineIndex@ /must/--- be -1------ - #VUID-VkComputePipelineCreateInfo-stage-00701# The @stage@ member of--- @stage@ /must/ be--- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_COMPUTE_BIT'------ - #VUID-VkComputePipelineCreateInfo-stage-00702# The shader code for--- the entry point identified by @stage@ and the rest of the state--- identified by this structure /must/ adhere to the pipeline linking--- rules described in the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces Shader Interfaces>--- chapter------ - #VUID-VkComputePipelineCreateInfo-layout-00703# @layout@ /must/ be--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-pipelinelayout-consistency consistent>--- with the layout of the compute shader specified in @stage@------ - #VUID-VkComputePipelineCreateInfo-layout-01687# The number of--- resources in @layout@ accessible to the compute shader stage /must/--- be less than or equal to--- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxPerStageResources@------ - #VUID-VkComputePipelineCreateInfo-flags-03364# @flags@ /must/ not--- include--- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_LIBRARY_BIT_KHR'------ - #VUID-VkComputePipelineCreateInfo-flags-03365# @flags@ /must/ not--- include--- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR'------ - #VUID-VkComputePipelineCreateInfo-flags-03366# @flags@ /must/ not--- include--- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR'------ - #VUID-VkComputePipelineCreateInfo-flags-03367# @flags@ /must/ not--- include--- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR'------ - #VUID-VkComputePipelineCreateInfo-flags-03368# @flags@ /must/ not--- include--- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR'------ - #VUID-VkComputePipelineCreateInfo-flags-03369# @flags@ /must/ not--- include--- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR'------ - #VUID-VkComputePipelineCreateInfo-flags-03370# @flags@ /must/ not--- include--- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHR'------ - #VUID-VkComputePipelineCreateInfo-flags-03576# @flags@ /must/ not--- include--- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR'------ - #VUID-VkComputePipelineCreateInfo-flags-04945# @flags@ /must/ not--- include--- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV'------ - #VUID-VkComputePipelineCreateInfo-flags-02874# @flags@ /must/ not--- include--- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV'------ - #VUID-VkComputePipelineCreateInfo-pipelineCreationCacheControl-02875#--- If the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-pipelineCreationCacheControl pipelineCreationCacheControl>--- feature is not enabled, @flags@ /must/ not include--- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT'--- or--- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT'------ - #VUID-VkComputePipelineCreateInfo-pipelineStageCreationFeedbackCount-06566#--- If--- 'Vulkan.Core13.Promoted_From_VK_EXT_pipeline_creation_feedback.PipelineCreationFeedbackCreateInfo'::@pipelineStageCreationFeedbackCount@--- is not @0@, it /must/ be @1@------ == Valid Usage (Implicit)------ - #VUID-VkComputePipelineCreateInfo-sType-sType# @sType@ /must/ be--- 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO'------ - #VUID-VkComputePipelineCreateInfo-pNext-pNext# Each @pNext@ member--- of any structure (including this one) in the @pNext@ chain /must/ be--- either @NULL@ or a pointer to a valid instance of--- 'Vulkan.Extensions.VK_AMD_pipeline_compiler_control.PipelineCompilerControlCreateInfoAMD',--- 'Vulkan.Core13.Promoted_From_VK_EXT_pipeline_creation_feedback.PipelineCreationFeedbackCreateInfo',--- or--- 'Vulkan.Extensions.VK_HUAWEI_subpass_shading.SubpassShadingPipelineCreateInfoHUAWEI'------ - #VUID-VkComputePipelineCreateInfo-sType-unique# The @sType@ value of--- each struct in the @pNext@ chain /must/ be unique------ - #VUID-VkComputePipelineCreateInfo-flags-parameter# @flags@ /must/ be--- a valid combination of--- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PipelineCreateFlagBits'--- values------ - #VUID-VkComputePipelineCreateInfo-stage-parameter# @stage@ /must/ be--- a valid 'PipelineShaderStageCreateInfo' structure------ - #VUID-VkComputePipelineCreateInfo-layout-parameter# @layout@ /must/--- be a valid 'Vulkan.Core10.Handles.PipelineLayout' handle------ - #VUID-VkComputePipelineCreateInfo-commonparent# Both of--- @basePipelineHandle@, and @layout@ that are valid handles of--- non-ignored parameters /must/ have been created, allocated, or--- retrieved from the same 'Vulkan.Core10.Handles.Device'------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,--- 'Vulkan.Core10.Handles.Pipeline',--- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PipelineCreateFlags',--- 'Vulkan.Core10.Handles.PipelineLayout', 'PipelineShaderStageCreateInfo',--- 'Vulkan.Core10.Enums.StructureType.StructureType',--- 'createComputePipelines'-data ComputePipelineCreateInfo (es :: [Type]) = ComputePipelineCreateInfo- { -- | @pNext@ is @NULL@ or a pointer to a structure extending this structure.- next :: Chain es- , -- | @flags@ is a bitmask of- -- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PipelineCreateFlagBits'- -- specifying how the pipeline will be generated.- flags :: PipelineCreateFlags- , -- | @stage@ is a 'PipelineShaderStageCreateInfo' structure describing the- -- compute shader.- stage :: SomeStruct PipelineShaderStageCreateInfo- , -- | @layout@ is the description of binding locations used by both the- -- pipeline and descriptor sets used with the pipeline.- layout :: PipelineLayout- , -- | @basePipelineHandle@ is a pipeline to derive from- basePipelineHandle :: Pipeline- , -- | @basePipelineIndex@ is an index into the @pCreateInfos@ parameter to use- -- as a pipeline to derive from- basePipelineIndex :: Int32- }- deriving (Typeable)-#if defined(GENERIC_INSTANCES)-deriving instance Generic (ComputePipelineCreateInfo (es :: [Type]))-#endif-deriving instance Show (Chain es) => Show (ComputePipelineCreateInfo es)--instance Extensible ComputePipelineCreateInfo where- extensibleTypeName = "ComputePipelineCreateInfo"- setNext ComputePipelineCreateInfo{..} next' = ComputePipelineCreateInfo{next = next', ..}- getNext ComputePipelineCreateInfo{..} = next- extends :: forall e b proxy. Typeable e => proxy e -> (Extends ComputePipelineCreateInfo e => b) -> Maybe b- extends _ f- | Just Refl <- eqT @e @PipelineCompilerControlCreateInfoAMD = Just f- | Just Refl <- eqT @e @SubpassShadingPipelineCreateInfoHUAWEI = Just f- | Just Refl <- eqT @e @PipelineCreationFeedbackCreateInfo = Just f- | otherwise = Nothing--instance (Extendss ComputePipelineCreateInfo es, PokeChain es) => ToCStruct (ComputePipelineCreateInfo es) where- withCStruct x f = allocaBytes 96 $ \p -> pokeCStruct p x (f p)- pokeCStruct p ComputePipelineCreateInfo{..} f = evalContT $ do- lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO)- pNext'' <- fmap castPtr . ContT $ withChain (next)- lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext''- lift $ poke ((p `plusPtr` 16 :: Ptr PipelineCreateFlags)) (flags)- ContT $ pokeSomeCStruct (forgetExtensions ((p `plusPtr` 24 :: Ptr (PipelineShaderStageCreateInfo _)))) (stage) . ($ ())- lift $ poke ((p `plusPtr` 72 :: Ptr PipelineLayout)) (layout)- lift $ poke ((p `plusPtr` 80 :: Ptr Pipeline)) (basePipelineHandle)- lift $ poke ((p `plusPtr` 88 :: Ptr Int32)) (basePipelineIndex)- lift $ f- cStructSize = 96- cStructAlignment = 8- pokeZeroCStruct p f = evalContT $ do- lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO)- pNext' <- fmap castPtr . ContT $ withZeroChain @es- lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext'- ContT $ pokeSomeCStruct (forgetExtensions ((p `plusPtr` 24 :: Ptr (PipelineShaderStageCreateInfo _)))) ((SomeStruct zero)) . ($ ())- lift $ poke ((p `plusPtr` 72 :: Ptr PipelineLayout)) (zero)- lift $ poke ((p `plusPtr` 88 :: Ptr Int32)) (zero)- lift $ f--instance (Extendss ComputePipelineCreateInfo es, PeekChain es) => FromCStruct (ComputePipelineCreateInfo es) where- peekCStruct p = do- pNext <- peek @(Ptr ()) ((p `plusPtr` 8 :: Ptr (Ptr ())))- next <- peekChain (castPtr pNext)- flags <- peek @PipelineCreateFlags ((p `plusPtr` 16 :: Ptr PipelineCreateFlags))- stage <- peekSomeCStruct (forgetExtensions ((p `plusPtr` 24 :: Ptr (PipelineShaderStageCreateInfo _))))- layout <- peek @PipelineLayout ((p `plusPtr` 72 :: Ptr PipelineLayout))- basePipelineHandle <- peek @Pipeline ((p `plusPtr` 80 :: Ptr Pipeline))- basePipelineIndex <- peek @Int32 ((p `plusPtr` 88 :: Ptr Int32))- pure $ ComputePipelineCreateInfo- next flags stage layout basePipelineHandle basePipelineIndex--instance es ~ '[] => Zero (ComputePipelineCreateInfo es) where- zero = ComputePipelineCreateInfo- ()- zero- (SomeStruct zero)- zero- zero- zero----- | VkVertexInputBindingDescription - Structure specifying vertex input--- binding description------ == Valid Usage------ - #VUID-VkVertexInputBindingDescription-binding-00618# @binding@--- /must/ be less than--- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxVertexInputBindings@------ - #VUID-VkVertexInputBindingDescription-stride-00619# @stride@ /must/--- be less than or equal to--- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxVertexInputBindingStride@------ - #VUID-VkVertexInputBindingDescription-stride-04456# If the--- @VK_KHR_portability_subset@ extension is enabled, @stride@ /must/ be--- a multiple of, and at least as large as,--- 'Vulkan.Extensions.VK_KHR_portability_subset.PhysicalDevicePortabilitySubsetPropertiesKHR'::@minVertexInputBindingStrideAlignment@------ == Valid Usage (Implicit)------ - #VUID-VkVertexInputBindingDescription-inputRate-parameter#--- @inputRate@ /must/ be a valid--- 'Vulkan.Core10.Enums.VertexInputRate.VertexInputRate' value------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,--- 'PipelineVertexInputStateCreateInfo',--- 'Vulkan.Core10.Enums.VertexInputRate.VertexInputRate'-data VertexInputBindingDescription = VertexInputBindingDescription- { -- | @binding@ is the binding number that this structure describes.- binding :: Word32- , -- | @stride@ is the byte stride between consecutive elements within the- -- buffer.- stride :: Word32- , -- | @inputRate@ is a 'Vulkan.Core10.Enums.VertexInputRate.VertexInputRate'- -- value specifying whether vertex attribute addressing is a function of- -- the vertex index or of the instance index.- inputRate :: VertexInputRate- }- deriving (Typeable, Eq)-#if defined(GENERIC_INSTANCES)-deriving instance Generic (VertexInputBindingDescription)-#endif-deriving instance Show VertexInputBindingDescription--instance ToCStruct VertexInputBindingDescription where- withCStruct x f = allocaBytes 12 $ \p -> pokeCStruct p x (f p)- pokeCStruct p VertexInputBindingDescription{..} f = do- poke ((p `plusPtr` 0 :: Ptr Word32)) (binding)- poke ((p `plusPtr` 4 :: Ptr Word32)) (stride)- poke ((p `plusPtr` 8 :: Ptr VertexInputRate)) (inputRate)- f- cStructSize = 12- cStructAlignment = 4- pokeZeroCStruct p f = do- poke ((p `plusPtr` 0 :: Ptr Word32)) (zero)- poke ((p `plusPtr` 4 :: Ptr Word32)) (zero)- poke ((p `plusPtr` 8 :: Ptr VertexInputRate)) (zero)- f--instance FromCStruct VertexInputBindingDescription where- peekCStruct p = do- binding <- peek @Word32 ((p `plusPtr` 0 :: Ptr Word32))- stride <- peek @Word32 ((p `plusPtr` 4 :: Ptr Word32))- inputRate <- peek @VertexInputRate ((p `plusPtr` 8 :: Ptr VertexInputRate))- pure $ VertexInputBindingDescription- binding stride inputRate--instance Storable VertexInputBindingDescription where- sizeOf ~_ = 12- alignment ~_ = 4- peek = peekCStruct- poke ptr poked = pokeCStruct ptr poked (pure ())--instance Zero VertexInputBindingDescription where- zero = VertexInputBindingDescription- zero- zero- zero----- | VkVertexInputAttributeDescription - Structure specifying vertex input--- attribute description------ == Valid Usage------ - #VUID-VkVertexInputAttributeDescription-location-00620# @location@--- /must/ be less than--- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxVertexInputAttributes@------ - #VUID-VkVertexInputAttributeDescription-binding-00621# @binding@--- /must/ be less than--- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxVertexInputBindings@------ - #VUID-VkVertexInputAttributeDescription-offset-00622# @offset@--- /must/ be less than or equal to--- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxVertexInputAttributeOffset@------ - #VUID-VkVertexInputAttributeDescription-format-00623# @format@--- /must/ be allowed as a vertex buffer format, as specified by the--- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_VERTEX_BUFFER_BIT'--- flag in--- 'Vulkan.Core10.DeviceInitialization.FormatProperties'::@bufferFeatures@--- returned by--- 'Vulkan.Core10.DeviceInitialization.getPhysicalDeviceFormatProperties'------ - #VUID-VkVertexInputAttributeDescription-vertexAttributeAccessBeyondStride-04457#--- If the @VK_KHR_portability_subset@ extension is enabled, and--- 'Vulkan.Extensions.VK_KHR_portability_subset.PhysicalDevicePortabilitySubsetFeaturesKHR'::@vertexAttributeAccessBeyondStride@--- is 'Vulkan.Core10.FundamentalTypes.FALSE', the sum of @offset@ plus--- the size of the vertex attribute data described by @format@ /must/--- not be greater than @stride@ in the 'VertexInputBindingDescription'--- referenced in @binding@------ == Valid Usage (Implicit)------ - #VUID-VkVertexInputAttributeDescription-format-parameter# @format@--- /must/ be a valid 'Vulkan.Core10.Enums.Format.Format' value------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,--- 'Vulkan.Core10.Enums.Format.Format',--- 'PipelineVertexInputStateCreateInfo'-data VertexInputAttributeDescription = VertexInputAttributeDescription- { -- | @location@ is the shader input location number for this attribute.- location :: Word32- , -- | @binding@ is the binding number which this attribute takes its data- -- from.- binding :: Word32- , -- | @format@ is the size and type of the vertex attribute data.- format :: Format- , -- | @offset@ is a byte offset of this attribute relative to the start of an- -- element in the vertex input binding.- offset :: Word32- }- deriving (Typeable, Eq)-#if defined(GENERIC_INSTANCES)-deriving instance Generic (VertexInputAttributeDescription)-#endif-deriving instance Show VertexInputAttributeDescription--instance ToCStruct VertexInputAttributeDescription where- withCStruct x f = allocaBytes 16 $ \p -> pokeCStruct p x (f p)- pokeCStruct p VertexInputAttributeDescription{..} f = do- poke ((p `plusPtr` 0 :: Ptr Word32)) (location)- poke ((p `plusPtr` 4 :: Ptr Word32)) (binding)- poke ((p `plusPtr` 8 :: Ptr Format)) (format)- poke ((p `plusPtr` 12 :: Ptr Word32)) (offset)- f- cStructSize = 16- cStructAlignment = 4- pokeZeroCStruct p f = do- poke ((p `plusPtr` 0 :: Ptr Word32)) (zero)- poke ((p `plusPtr` 4 :: Ptr Word32)) (zero)- poke ((p `plusPtr` 8 :: Ptr Format)) (zero)- poke ((p `plusPtr` 12 :: Ptr Word32)) (zero)- f--instance FromCStruct VertexInputAttributeDescription where- peekCStruct p = do- location <- peek @Word32 ((p `plusPtr` 0 :: Ptr Word32))- binding <- peek @Word32 ((p `plusPtr` 4 :: Ptr Word32))- format <- peek @Format ((p `plusPtr` 8 :: Ptr Format))- offset <- peek @Word32 ((p `plusPtr` 12 :: Ptr Word32))- pure $ VertexInputAttributeDescription- location binding format offset--instance Storable VertexInputAttributeDescription where- sizeOf ~_ = 16- alignment ~_ = 4- peek = peekCStruct- poke ptr poked = pokeCStruct ptr poked (pure ())--instance Zero VertexInputAttributeDescription where- zero = VertexInputAttributeDescription- zero- zero- zero- zero----- | VkPipelineVertexInputStateCreateInfo - Structure specifying parameters--- of a newly created pipeline vertex input state------ == Valid Usage------ - #VUID-VkPipelineVertexInputStateCreateInfo-vertexBindingDescriptionCount-00613#--- @vertexBindingDescriptionCount@ /must/ be less than or equal to--- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxVertexInputBindings@------ - #VUID-VkPipelineVertexInputStateCreateInfo-vertexAttributeDescriptionCount-00614#--- @vertexAttributeDescriptionCount@ /must/ be less than or equal to--- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxVertexInputAttributes@------ - #VUID-VkPipelineVertexInputStateCreateInfo-binding-00615# For every--- @binding@ specified by each element of--- @pVertexAttributeDescriptions@, a 'VertexInputBindingDescription'--- /must/ exist in @pVertexBindingDescriptions@ with the same value of--- @binding@------ - #VUID-VkPipelineVertexInputStateCreateInfo-pVertexBindingDescriptions-00616#--- All elements of @pVertexBindingDescriptions@ /must/ describe--- distinct binding numbers------ - #VUID-VkPipelineVertexInputStateCreateInfo-pVertexAttributeDescriptions-00617#--- All elements of @pVertexAttributeDescriptions@ /must/ describe--- distinct attribute locations------ == Valid Usage (Implicit)------ - #VUID-VkPipelineVertexInputStateCreateInfo-sType-sType# @sType@--- /must/ be--- 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO'------ - #VUID-VkPipelineVertexInputStateCreateInfo-pNext-pNext# @pNext@--- /must/ be @NULL@ or a pointer to a valid instance of--- 'Vulkan.Extensions.VK_EXT_vertex_attribute_divisor.PipelineVertexInputDivisorStateCreateInfoEXT'------ - #VUID-VkPipelineVertexInputStateCreateInfo-sType-unique# The @sType@--- value of each struct in the @pNext@ chain /must/ be unique------ - #VUID-VkPipelineVertexInputStateCreateInfo-flags-zerobitmask#--- @flags@ /must/ be @0@------ - #VUID-VkPipelineVertexInputStateCreateInfo-pVertexBindingDescriptions-parameter#--- If @vertexBindingDescriptionCount@ is not @0@,--- @pVertexBindingDescriptions@ /must/ be a valid pointer to an array--- of @vertexBindingDescriptionCount@ valid--- 'VertexInputBindingDescription' structures------ - #VUID-VkPipelineVertexInputStateCreateInfo-pVertexAttributeDescriptions-parameter#--- If @vertexAttributeDescriptionCount@ is not @0@,--- @pVertexAttributeDescriptions@ /must/ be a valid pointer to an array--- of @vertexAttributeDescriptionCount@ valid--- 'VertexInputAttributeDescription' structures------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,--- 'GraphicsPipelineCreateInfo',--- 'Vulkan.Extensions.VK_NV_device_generated_commands.GraphicsShaderGroupCreateInfoNV',--- 'Vulkan.Core10.Enums.PipelineVertexInputStateCreateFlags.PipelineVertexInputStateCreateFlags',--- 'Vulkan.Core10.Enums.StructureType.StructureType',--- 'VertexInputAttributeDescription', 'VertexInputBindingDescription'-data PipelineVertexInputStateCreateInfo (es :: [Type]) = PipelineVertexInputStateCreateInfo- { -- | @pNext@ is @NULL@ or a pointer to a structure extending this structure.- next :: Chain es- , -- | @flags@ is reserved for future use.- flags :: PipelineVertexInputStateCreateFlags- , -- | @pVertexBindingDescriptions@ is a pointer to an array of- -- 'VertexInputBindingDescription' structures.- vertexBindingDescriptions :: Vector VertexInputBindingDescription- , -- | @pVertexAttributeDescriptions@ is a pointer to an array of- -- 'VertexInputAttributeDescription' structures.- vertexAttributeDescriptions :: Vector VertexInputAttributeDescription- }- deriving (Typeable)-#if defined(GENERIC_INSTANCES)-deriving instance Generic (PipelineVertexInputStateCreateInfo (es :: [Type]))-#endif-deriving instance Show (Chain es) => Show (PipelineVertexInputStateCreateInfo es)--instance Extensible PipelineVertexInputStateCreateInfo where- extensibleTypeName = "PipelineVertexInputStateCreateInfo"- setNext PipelineVertexInputStateCreateInfo{..} next' = PipelineVertexInputStateCreateInfo{next = next', ..}- getNext PipelineVertexInputStateCreateInfo{..} = next- extends :: forall e b proxy. Typeable e => proxy e -> (Extends PipelineVertexInputStateCreateInfo e => b) -> Maybe b- extends _ f- | Just Refl <- eqT @e @PipelineVertexInputDivisorStateCreateInfoEXT = Just f- | otherwise = Nothing--instance (Extendss PipelineVertexInputStateCreateInfo es, PokeChain es) => ToCStruct (PipelineVertexInputStateCreateInfo es) where- withCStruct x f = allocaBytes 48 $ \p -> pokeCStruct p x (f p)- pokeCStruct p PipelineVertexInputStateCreateInfo{..} f = evalContT $ do- lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO)- pNext'' <- fmap castPtr . ContT $ withChain (next)- lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext''- lift $ poke ((p `plusPtr` 16 :: Ptr PipelineVertexInputStateCreateFlags)) (flags)- lift $ poke ((p `plusPtr` 20 :: Ptr Word32)) ((fromIntegral (Data.Vector.length $ (vertexBindingDescriptions)) :: Word32))- pPVertexBindingDescriptions' <- ContT $ allocaBytes @VertexInputBindingDescription ((Data.Vector.length (vertexBindingDescriptions)) * 12)- lift $ Data.Vector.imapM_ (\i e -> poke (pPVertexBindingDescriptions' `plusPtr` (12 * (i)) :: Ptr VertexInputBindingDescription) (e)) (vertexBindingDescriptions)- lift $ poke ((p `plusPtr` 24 :: Ptr (Ptr VertexInputBindingDescription))) (pPVertexBindingDescriptions')- lift $ poke ((p `plusPtr` 32 :: Ptr Word32)) ((fromIntegral (Data.Vector.length $ (vertexAttributeDescriptions)) :: Word32))- pPVertexAttributeDescriptions' <- ContT $ allocaBytes @VertexInputAttributeDescription ((Data.Vector.length (vertexAttributeDescriptions)) * 16)- lift $ Data.Vector.imapM_ (\i e -> poke (pPVertexAttributeDescriptions' `plusPtr` (16 * (i)) :: Ptr VertexInputAttributeDescription) (e)) (vertexAttributeDescriptions)- lift $ poke ((p `plusPtr` 40 :: Ptr (Ptr VertexInputAttributeDescription))) (pPVertexAttributeDescriptions')- lift $ f- cStructSize = 48- cStructAlignment = 8- pokeZeroCStruct p f = evalContT $ do- lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO)- pNext' <- fmap castPtr . ContT $ withZeroChain @es- lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext'- lift $ f--instance (Extendss PipelineVertexInputStateCreateInfo es, PeekChain es) => FromCStruct (PipelineVertexInputStateCreateInfo es) where- peekCStruct p = do- pNext <- peek @(Ptr ()) ((p `plusPtr` 8 :: Ptr (Ptr ())))- next <- peekChain (castPtr pNext)- flags <- peek @PipelineVertexInputStateCreateFlags ((p `plusPtr` 16 :: Ptr PipelineVertexInputStateCreateFlags))- vertexBindingDescriptionCount <- peek @Word32 ((p `plusPtr` 20 :: Ptr Word32))- pVertexBindingDescriptions <- peek @(Ptr VertexInputBindingDescription) ((p `plusPtr` 24 :: Ptr (Ptr VertexInputBindingDescription)))- pVertexBindingDescriptions' <- generateM (fromIntegral vertexBindingDescriptionCount) (\i -> peekCStruct @VertexInputBindingDescription ((pVertexBindingDescriptions `advancePtrBytes` (12 * (i)) :: Ptr VertexInputBindingDescription)))- vertexAttributeDescriptionCount <- peek @Word32 ((p `plusPtr` 32 :: Ptr Word32))- pVertexAttributeDescriptions <- peek @(Ptr VertexInputAttributeDescription) ((p `plusPtr` 40 :: Ptr (Ptr VertexInputAttributeDescription)))- pVertexAttributeDescriptions' <- generateM (fromIntegral vertexAttributeDescriptionCount) (\i -> peekCStruct @VertexInputAttributeDescription ((pVertexAttributeDescriptions `advancePtrBytes` (16 * (i)) :: Ptr VertexInputAttributeDescription)))- pure $ PipelineVertexInputStateCreateInfo- next flags pVertexBindingDescriptions' pVertexAttributeDescriptions'--instance es ~ '[] => Zero (PipelineVertexInputStateCreateInfo es) where- zero = PipelineVertexInputStateCreateInfo- ()- zero- mempty- mempty----- | VkPipelineInputAssemblyStateCreateInfo - Structure specifying parameters--- of a newly created pipeline input assembly state------ = Description------ Restarting the assembly of primitives discards the most recent index--- values if those elements formed an incomplete primitive, and restarts--- the primitive assembly using the subsequent indices, but only assembling--- the immediately following element through the end of the originally--- specified elements. The primitive restart index value comparison is--- performed before adding the @vertexOffset@ value to the index value.------ == Valid Usage------ - #VUID-VkPipelineInputAssemblyStateCreateInfo-topology-06252# If--- @topology@ is--- 'Vulkan.Core10.Enums.PrimitiveTopology.PRIMITIVE_TOPOLOGY_POINT_LIST',--- 'Vulkan.Core10.Enums.PrimitiveTopology.PRIMITIVE_TOPOLOGY_LINE_LIST',--- 'Vulkan.Core10.Enums.PrimitiveTopology.PRIMITIVE_TOPOLOGY_TRIANGLE_LIST',--- 'Vulkan.Core10.Enums.PrimitiveTopology.PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY'--- or--- 'Vulkan.Core10.Enums.PrimitiveTopology.PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY',--- and @primitiveRestartEnable@ is--- 'Vulkan.Core10.FundamentalTypes.TRUE', the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-primitiveTopologyListRestart primitiveTopologyListRestart>--- feature /must/ be enabled------ - #VUID-VkPipelineInputAssemblyStateCreateInfo-topology-06253# If--- @topology@ is--- 'Vulkan.Core10.Enums.PrimitiveTopology.PRIMITIVE_TOPOLOGY_PATCH_LIST',--- and @primitiveRestartEnable@ is--- 'Vulkan.Core10.FundamentalTypes.TRUE', the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-primitiveTopologyPatchListRestart primitiveTopologyPatchListRestart>--- feature /must/ be enabled------ - #VUID-VkPipelineInputAssemblyStateCreateInfo-topology-00429# If the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-geometryShader geometry shaders>--- feature is not enabled, @topology@ /must/ not be any of--- 'Vulkan.Core10.Enums.PrimitiveTopology.PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY',--- 'Vulkan.Core10.Enums.PrimitiveTopology.PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY',--- 'Vulkan.Core10.Enums.PrimitiveTopology.PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY'--- or--- 'Vulkan.Core10.Enums.PrimitiveTopology.PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY'------ - #VUID-VkPipelineInputAssemblyStateCreateInfo-topology-00430# If the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-tessellationShader tessellation shaders>--- feature is not enabled, @topology@ /must/ not be--- 'Vulkan.Core10.Enums.PrimitiveTopology.PRIMITIVE_TOPOLOGY_PATCH_LIST'------ - #VUID-VkPipelineInputAssemblyStateCreateInfo-triangleFans-04452# If--- the @VK_KHR_portability_subset@ extension is enabled, and--- 'Vulkan.Extensions.VK_KHR_portability_subset.PhysicalDevicePortabilitySubsetFeaturesKHR'::@triangleFans@--- is 'Vulkan.Core10.FundamentalTypes.FALSE', @topology@ /must/ not be--- 'Vulkan.Core10.Enums.PrimitiveTopology.PRIMITIVE_TOPOLOGY_TRIANGLE_FAN'------ == Valid Usage (Implicit)------ - #VUID-VkPipelineInputAssemblyStateCreateInfo-sType-sType# @sType@--- /must/ be--- 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO'------ - #VUID-VkPipelineInputAssemblyStateCreateInfo-pNext-pNext# @pNext@--- /must/ be @NULL@------ - #VUID-VkPipelineInputAssemblyStateCreateInfo-flags-zerobitmask#--- @flags@ /must/ be @0@------ - #VUID-VkPipelineInputAssemblyStateCreateInfo-topology-parameter#--- @topology@ /must/ be a valid--- 'Vulkan.Core10.Enums.PrimitiveTopology.PrimitiveTopology' value------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,--- 'Vulkan.Core10.FundamentalTypes.Bool32', 'GraphicsPipelineCreateInfo',--- 'Vulkan.Core10.Enums.PipelineInputAssemblyStateCreateFlags.PipelineInputAssemblyStateCreateFlags',--- 'Vulkan.Core10.Enums.PrimitiveTopology.PrimitiveTopology',--- 'Vulkan.Core10.Enums.StructureType.StructureType'-data PipelineInputAssemblyStateCreateInfo = PipelineInputAssemblyStateCreateInfo- { -- | @flags@ is reserved for future use.- flags :: PipelineInputAssemblyStateCreateFlags- , -- | @topology@ is a- -- 'Vulkan.Core10.Enums.PrimitiveTopology.PrimitiveTopology' defining the- -- primitive topology, as described below.- topology :: PrimitiveTopology- , -- | @primitiveRestartEnable@ controls whether a special vertex index value- -- is treated as restarting the assembly of primitives. This enable only- -- applies to indexed draws- -- ('Vulkan.Core10.CommandBufferBuilding.cmdDrawIndexed',- -- 'Vulkan.Extensions.VK_EXT_multi_draw.cmdDrawMultiIndexedEXT', and- -- 'Vulkan.Core10.CommandBufferBuilding.cmdDrawIndexedIndirect'), and the- -- special index value is either 0xFFFFFFFF when the @indexType@ parameter- -- of 'Vulkan.Core10.CommandBufferBuilding.cmdBindIndexBuffer' is equal to- -- 'Vulkan.Core10.Enums.IndexType.INDEX_TYPE_UINT32', 0xFF when @indexType@- -- is equal to 'Vulkan.Core10.Enums.IndexType.INDEX_TYPE_UINT8_EXT', or- -- 0xFFFF when @indexType@ is equal to- -- 'Vulkan.Core10.Enums.IndexType.INDEX_TYPE_UINT16'. Primitive restart is- -- not allowed for “list” topologies, unless one of the features- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-primitiveTopologyPatchListRestart primitiveTopologyPatchListRestart>- -- (for- -- 'Vulkan.Core10.Enums.PrimitiveTopology.PRIMITIVE_TOPOLOGY_PATCH_LIST')- -- or- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-primitiveTopologyListRestart primitiveTopologyListRestart>- -- (for all other list topologies) is enabled.- primitiveRestartEnable :: Bool- }- deriving (Typeable, Eq)-#if defined(GENERIC_INSTANCES)-deriving instance Generic (PipelineInputAssemblyStateCreateInfo)-#endif-deriving instance Show PipelineInputAssemblyStateCreateInfo--instance ToCStruct PipelineInputAssemblyStateCreateInfo where- withCStruct x f = allocaBytes 32 $ \p -> pokeCStruct p x (f p)- pokeCStruct p PipelineInputAssemblyStateCreateInfo{..} f = do- poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO)- poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)- poke ((p `plusPtr` 16 :: Ptr PipelineInputAssemblyStateCreateFlags)) (flags)- poke ((p `plusPtr` 20 :: Ptr PrimitiveTopology)) (topology)- poke ((p `plusPtr` 24 :: Ptr Bool32)) (boolToBool32 (primitiveRestartEnable))- f- cStructSize = 32- cStructAlignment = 8- pokeZeroCStruct p f = do- poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO)- poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)- poke ((p `plusPtr` 20 :: Ptr PrimitiveTopology)) (zero)- poke ((p `plusPtr` 24 :: Ptr Bool32)) (boolToBool32 (zero))- f--instance FromCStruct PipelineInputAssemblyStateCreateInfo where- peekCStruct p = do- flags <- peek @PipelineInputAssemblyStateCreateFlags ((p `plusPtr` 16 :: Ptr PipelineInputAssemblyStateCreateFlags))- topology <- peek @PrimitiveTopology ((p `plusPtr` 20 :: Ptr PrimitiveTopology))- primitiveRestartEnable <- peek @Bool32 ((p `plusPtr` 24 :: Ptr Bool32))- pure $ PipelineInputAssemblyStateCreateInfo- flags topology (bool32ToBool primitiveRestartEnable)--instance Storable PipelineInputAssemblyStateCreateInfo where- sizeOf ~_ = 32- alignment ~_ = 8- peek = peekCStruct- poke ptr poked = pokeCStruct ptr poked (pure ())--instance Zero PipelineInputAssemblyStateCreateInfo where- zero = PipelineInputAssemblyStateCreateInfo- zero- zero- zero----- | VkPipelineTessellationStateCreateInfo - Structure specifying parameters--- of a newly created pipeline tessellation state------ == Valid Usage------ - #VUID-VkPipelineTessellationStateCreateInfo-patchControlPoints-01214#--- @patchControlPoints@ /must/ be greater than zero and less than or--- equal to--- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxTessellationPatchSize@------ == Valid Usage (Implicit)------ - #VUID-VkPipelineTessellationStateCreateInfo-sType-sType# @sType@--- /must/ be--- 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO'------ - #VUID-VkPipelineTessellationStateCreateInfo-pNext-pNext# @pNext@--- /must/ be @NULL@ or a pointer to a valid instance of--- 'Vulkan.Core11.Promoted_From_VK_KHR_maintenance2.PipelineTessellationDomainOriginStateCreateInfo'------ - #VUID-VkPipelineTessellationStateCreateInfo-sType-unique# The--- @sType@ value of each struct in the @pNext@ chain /must/ be unique------ - #VUID-VkPipelineTessellationStateCreateInfo-flags-zerobitmask#--- @flags@ /must/ be @0@------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,--- 'GraphicsPipelineCreateInfo',--- 'Vulkan.Extensions.VK_NV_device_generated_commands.GraphicsShaderGroupCreateInfoNV',--- 'Vulkan.Core10.Enums.PipelineTessellationStateCreateFlags.PipelineTessellationStateCreateFlags',--- 'Vulkan.Core10.Enums.StructureType.StructureType'-data PipelineTessellationStateCreateInfo (es :: [Type]) = PipelineTessellationStateCreateInfo- { -- | @pNext@ is @NULL@ or a pointer to a structure extending this structure.- next :: Chain es- , -- | @flags@ is reserved for future use.- flags :: PipelineTessellationStateCreateFlags- , -- | @patchControlPoints@ is the number of control points per patch.- patchControlPoints :: Word32- }- deriving (Typeable)-#if defined(GENERIC_INSTANCES)-deriving instance Generic (PipelineTessellationStateCreateInfo (es :: [Type]))-#endif-deriving instance Show (Chain es) => Show (PipelineTessellationStateCreateInfo es)--instance Extensible PipelineTessellationStateCreateInfo where- extensibleTypeName = "PipelineTessellationStateCreateInfo"- setNext PipelineTessellationStateCreateInfo{..} next' = PipelineTessellationStateCreateInfo{next = next', ..}- getNext PipelineTessellationStateCreateInfo{..} = next- extends :: forall e b proxy. Typeable e => proxy e -> (Extends PipelineTessellationStateCreateInfo e => b) -> Maybe b- extends _ f- | Just Refl <- eqT @e @PipelineTessellationDomainOriginStateCreateInfo = Just f- | otherwise = Nothing--instance (Extendss PipelineTessellationStateCreateInfo es, PokeChain es) => ToCStruct (PipelineTessellationStateCreateInfo es) where- withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)- pokeCStruct p PipelineTessellationStateCreateInfo{..} f = evalContT $ do- lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO)- pNext'' <- fmap castPtr . ContT $ withChain (next)- lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext''- lift $ poke ((p `plusPtr` 16 :: Ptr PipelineTessellationStateCreateFlags)) (flags)- lift $ poke ((p `plusPtr` 20 :: Ptr Word32)) (patchControlPoints)- lift $ f- cStructSize = 24- cStructAlignment = 8- pokeZeroCStruct p f = evalContT $ do- lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO)- pNext' <- fmap castPtr . ContT $ withZeroChain @es- lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext'- lift $ poke ((p `plusPtr` 20 :: Ptr Word32)) (zero)- lift $ f--instance (Extendss PipelineTessellationStateCreateInfo es, PeekChain es) => FromCStruct (PipelineTessellationStateCreateInfo es) where- peekCStruct p = do- pNext <- peek @(Ptr ()) ((p `plusPtr` 8 :: Ptr (Ptr ())))- next <- peekChain (castPtr pNext)- flags <- peek @PipelineTessellationStateCreateFlags ((p `plusPtr` 16 :: Ptr PipelineTessellationStateCreateFlags))- patchControlPoints <- peek @Word32 ((p `plusPtr` 20 :: Ptr Word32))- pure $ PipelineTessellationStateCreateInfo- next flags patchControlPoints--instance es ~ '[] => Zero (PipelineTessellationStateCreateInfo es) where- zero = PipelineTessellationStateCreateInfo- ()- zero- zero----- | VkPipelineViewportStateCreateInfo - Structure specifying parameters of a--- newly created pipeline viewport state------ == Valid Usage------ - #VUID-VkPipelineViewportStateCreateInfo-viewportCount-01216# If the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-multiViewport multiple viewports>--- feature is not enabled, @viewportCount@ /must/ not be greater than--- @1@------ - #VUID-VkPipelineViewportStateCreateInfo-scissorCount-01217# If the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-multiViewport multiple viewports>--- feature is not enabled, @scissorCount@ /must/ not be greater than--- @1@------ - #VUID-VkPipelineViewportStateCreateInfo-viewportCount-01218#--- @viewportCount@ /must/ be less than or equal to--- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxViewports@------ - #VUID-VkPipelineViewportStateCreateInfo-scissorCount-01219#--- @scissorCount@ /must/ be less than or equal to--- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxViewports@------ - #VUID-VkPipelineViewportStateCreateInfo-x-02821# The @x@ and @y@--- members of @offset@ member of any element of @pScissors@ /must/ be--- greater than or equal to @0@------ - #VUID-VkPipelineViewportStateCreateInfo-offset-02822# Evaluation of--- (@offset.x@ + @extent.width@) /must/ not cause a signed integer--- addition overflow for any element of @pScissors@------ - #VUID-VkPipelineViewportStateCreateInfo-offset-02823# Evaluation of--- (@offset.y@ + @extent.height@) /must/ not cause a signed integer--- addition overflow for any element of @pScissors@------ - #VUID-VkPipelineViewportStateCreateInfo-scissorCount-04134# If the--- graphics pipeline is being created without--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'--- and--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT'--- set then @scissorCount@ and @viewportCount@ /must/ be identical------ - #VUID-VkPipelineViewportStateCreateInfo-viewportCount-04135# If the--- graphics pipeline is being created with--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'--- set then @viewportCount@ /must/ be @0@, otherwise it /must/ be--- greater than @0@------ - #VUID-VkPipelineViewportStateCreateInfo-scissorCount-04136# If the--- graphics pipeline is being created with--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT'--- set then @scissorCount@ /must/ be @0@, otherwise it /must/ be--- greater than @0@------ - #VUID-VkPipelineViewportStateCreateInfo-viewportWScalingEnable-01726#--- If the @viewportWScalingEnable@ member of a--- 'Vulkan.Extensions.VK_NV_clip_space_w_scaling.PipelineViewportWScalingStateCreateInfoNV'--- structure included in the @pNext@ chain is--- 'Vulkan.Core10.FundamentalTypes.TRUE', the @viewportCount@ member of--- the--- 'Vulkan.Extensions.VK_NV_clip_space_w_scaling.PipelineViewportWScalingStateCreateInfoNV'--- structure /must/ be greater than or equal to--- 'PipelineViewportStateCreateInfo'::@viewportCount@------ == Valid Usage (Implicit)------ - #VUID-VkPipelineViewportStateCreateInfo-sType-sType# @sType@ /must/--- be--- 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO'------ - #VUID-VkPipelineViewportStateCreateInfo-pNext-pNext# Each @pNext@--- member of any structure (including this one) in the @pNext@ chain--- /must/ be either @NULL@ or a pointer to a valid instance of--- 'Vulkan.Extensions.VK_NV_shading_rate_image.PipelineViewportCoarseSampleOrderStateCreateInfoNV',--- 'Vulkan.Extensions.VK_EXT_depth_clip_control.PipelineViewportDepthClipControlCreateInfoEXT',--- 'Vulkan.Extensions.VK_NV_scissor_exclusive.PipelineViewportExclusiveScissorStateCreateInfoNV',--- 'Vulkan.Extensions.VK_NV_shading_rate_image.PipelineViewportShadingRateImageStateCreateInfoNV',--- 'Vulkan.Extensions.VK_NV_viewport_swizzle.PipelineViewportSwizzleStateCreateInfoNV',--- or--- 'Vulkan.Extensions.VK_NV_clip_space_w_scaling.PipelineViewportWScalingStateCreateInfoNV'------ - #VUID-VkPipelineViewportStateCreateInfo-sType-unique# The @sType@--- value of each struct in the @pNext@ chain /must/ be unique------ - #VUID-VkPipelineViewportStateCreateInfo-flags-zerobitmask# @flags@--- /must/ be @0@------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,--- 'GraphicsPipelineCreateInfo',--- 'Vulkan.Core10.Enums.PipelineViewportStateCreateFlags.PipelineViewportStateCreateFlags',--- 'Vulkan.Core10.FundamentalTypes.Rect2D',--- 'Vulkan.Core10.Enums.StructureType.StructureType', 'Viewport'-data PipelineViewportStateCreateInfo (es :: [Type]) = PipelineViewportStateCreateInfo- { -- | @pNext@ is @NULL@ or a pointer to a structure extending this structure.- next :: Chain es- , -- | @flags@ is reserved for future use.- flags :: PipelineViewportStateCreateFlags- , -- | @viewportCount@ is the number of viewports used by the pipeline.- viewportCount :: Word32- , -- | @pViewports@ is a pointer to an array of 'Viewport' structures, defining- -- the viewport transforms. If the viewport state is dynamic, this member- -- is ignored.- viewports :: Vector Viewport- , -- | @scissorCount@ is the number of- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#fragops-scissor scissors>- -- and /must/ match the number of viewports.- scissorCount :: Word32- , -- | @pScissors@ is a pointer to an array of- -- 'Vulkan.Core10.FundamentalTypes.Rect2D' structures defining the- -- rectangular bounds of the scissor for the corresponding viewport. If the- -- scissor state is dynamic, this member is ignored.- scissors :: Vector Rect2D- }- deriving (Typeable)-#if defined(GENERIC_INSTANCES)-deriving instance Generic (PipelineViewportStateCreateInfo (es :: [Type]))-#endif-deriving instance Show (Chain es) => Show (PipelineViewportStateCreateInfo es)--instance Extensible PipelineViewportStateCreateInfo where- extensibleTypeName = "PipelineViewportStateCreateInfo"- setNext PipelineViewportStateCreateInfo{..} next' = PipelineViewportStateCreateInfo{next = next', ..}- getNext PipelineViewportStateCreateInfo{..} = next- extends :: forall e b proxy. Typeable e => proxy e -> (Extends PipelineViewportStateCreateInfo e => b) -> Maybe b- extends _ f- | Just Refl <- eqT @e @PipelineViewportDepthClipControlCreateInfoEXT = Just f- | Just Refl <- eqT @e @PipelineViewportCoarseSampleOrderStateCreateInfoNV = Just f- | Just Refl <- eqT @e @PipelineViewportShadingRateImageStateCreateInfoNV = Just f- | Just Refl <- eqT @e @PipelineViewportExclusiveScissorStateCreateInfoNV = Just f- | Just Refl <- eqT @e @PipelineViewportSwizzleStateCreateInfoNV = Just f- | Just Refl <- eqT @e @PipelineViewportWScalingStateCreateInfoNV = Just f- | otherwise = Nothing--instance (Extendss PipelineViewportStateCreateInfo es, PokeChain es) => ToCStruct (PipelineViewportStateCreateInfo es) where- withCStruct x f = allocaBytes 48 $ \p -> pokeCStruct p x (f p)- pokeCStruct p PipelineViewportStateCreateInfo{..} f = evalContT $ do- lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO)- pNext'' <- fmap castPtr . ContT $ withChain (next)- lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext''- lift $ poke ((p `plusPtr` 16 :: Ptr PipelineViewportStateCreateFlags)) (flags)- let pViewportsLength = Data.Vector.length $ (viewports)- viewportCount'' <- lift $ if (viewportCount) == 0- then pure $ fromIntegral pViewportsLength- else do- unless (fromIntegral pViewportsLength == (viewportCount) || pViewportsLength == 0) $- throwIO $ IOError Nothing InvalidArgument "" "pViewports must be empty or have 'viewportCount' elements" Nothing Nothing- pure (viewportCount)- lift $ poke ((p `plusPtr` 20 :: Ptr Word32)) (viewportCount'')- pViewports'' <- if Data.Vector.null (viewports)- then pure nullPtr- else do- pPViewports <- ContT $ allocaBytes @Viewport (((Data.Vector.length (viewports))) * 24)- lift $ Data.Vector.imapM_ (\i e -> poke (pPViewports `plusPtr` (24 * (i)) :: Ptr Viewport) (e)) ((viewports))- pure $ pPViewports- lift $ poke ((p `plusPtr` 24 :: Ptr (Ptr Viewport))) pViewports''- let pScissorsLength = Data.Vector.length $ (scissors)- scissorCount'' <- lift $ if (scissorCount) == 0- then pure $ fromIntegral pScissorsLength- else do- unless (fromIntegral pScissorsLength == (scissorCount) || pScissorsLength == 0) $- throwIO $ IOError Nothing InvalidArgument "" "pScissors must be empty or have 'scissorCount' elements" Nothing Nothing- pure (scissorCount)- lift $ poke ((p `plusPtr` 32 :: Ptr Word32)) (scissorCount'')- pScissors'' <- if Data.Vector.null (scissors)- then pure nullPtr- else do- pPScissors <- ContT $ allocaBytes @Rect2D (((Data.Vector.length (scissors))) * 16)- lift $ Data.Vector.imapM_ (\i e -> poke (pPScissors `plusPtr` (16 * (i)) :: Ptr Rect2D) (e)) ((scissors))- pure $ pPScissors- lift $ poke ((p `plusPtr` 40 :: Ptr (Ptr Rect2D))) pScissors''- lift $ f- cStructSize = 48- cStructAlignment = 8- pokeZeroCStruct p f = evalContT $ do- lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO)- pNext' <- fmap castPtr . ContT $ withZeroChain @es- lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext'- lift $ f--instance (Extendss PipelineViewportStateCreateInfo es, PeekChain es) => FromCStruct (PipelineViewportStateCreateInfo es) where- peekCStruct p = do- pNext <- peek @(Ptr ()) ((p `plusPtr` 8 :: Ptr (Ptr ())))- next <- peekChain (castPtr pNext)- flags <- peek @PipelineViewportStateCreateFlags ((p `plusPtr` 16 :: Ptr PipelineViewportStateCreateFlags))- viewportCount <- peek @Word32 ((p `plusPtr` 20 :: Ptr Word32))- pViewports <- peek @(Ptr Viewport) ((p `plusPtr` 24 :: Ptr (Ptr Viewport)))- let pViewportsLength = if pViewports == nullPtr then 0 else (fromIntegral viewportCount)- pViewports' <- generateM pViewportsLength (\i -> peekCStruct @Viewport ((pViewports `advancePtrBytes` (24 * (i)) :: Ptr Viewport)))- scissorCount <- peek @Word32 ((p `plusPtr` 32 :: Ptr Word32))- pScissors <- peek @(Ptr Rect2D) ((p `plusPtr` 40 :: Ptr (Ptr Rect2D)))- let pScissorsLength = if pScissors == nullPtr then 0 else (fromIntegral scissorCount)- pScissors' <- generateM pScissorsLength (\i -> peekCStruct @Rect2D ((pScissors `advancePtrBytes` (16 * (i)) :: Ptr Rect2D)))- pure $ PipelineViewportStateCreateInfo- next flags viewportCount pViewports' scissorCount pScissors'--instance es ~ '[] => Zero (PipelineViewportStateCreateInfo es) where- zero = PipelineViewportStateCreateInfo- ()- zero- zero- mempty- zero- mempty----- | VkPipelineRasterizationStateCreateInfo - Structure specifying parameters--- of a newly created pipeline rasterization state------ = Description------ The application /can/ also add a--- 'Vulkan.Extensions.VK_AMD_rasterization_order.PipelineRasterizationStateRasterizationOrderAMD'--- structure to the @pNext@ chain of a--- 'PipelineRasterizationStateCreateInfo' structure. This structure enables--- selecting the rasterization order to use when rendering with the--- corresponding graphics pipeline as described in--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-order Rasterization Order>.------ == Valid Usage------ - #VUID-VkPipelineRasterizationStateCreateInfo-depthClampEnable-00782#--- If the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-depthClamp depth clamping>--- feature is not enabled, @depthClampEnable@ /must/ be--- 'Vulkan.Core10.FundamentalTypes.FALSE'------ - #VUID-VkPipelineRasterizationStateCreateInfo-polygonMode-01507# If--- the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-fillModeNonSolid non-solid fill modes>--- feature is not enabled, @polygonMode@ /must/ be--- 'Vulkan.Core10.Enums.PolygonMode.POLYGON_MODE_FILL' or--- 'Vulkan.Core10.Enums.PolygonMode.POLYGON_MODE_FILL_RECTANGLE_NV'------ - #VUID-VkPipelineRasterizationStateCreateInfo-polygonMode-01414# If--- the @VK_NV_fill_rectangle@ extension is not enabled, @polygonMode@--- /must/ not be--- 'Vulkan.Core10.Enums.PolygonMode.POLYGON_MODE_FILL_RECTANGLE_NV'------ - #VUID-VkPipelineRasterizationStateCreateInfo-pointPolygons-04458# If--- the @VK_KHR_portability_subset@ extension is enabled, and--- 'Vulkan.Extensions.VK_KHR_portability_subset.PhysicalDevicePortabilitySubsetFeaturesKHR'::@pointPolygons@--- is 'Vulkan.Core10.FundamentalTypes.FALSE', and--- @rasterizerDiscardEnable@ is 'Vulkan.Core10.FundamentalTypes.FALSE',--- @polygonMode@ /must/ not be--- 'Vulkan.Core10.Enums.PolygonMode.POLYGON_MODE_POINT'------ == Valid Usage (Implicit)------ - #VUID-VkPipelineRasterizationStateCreateInfo-sType-sType# @sType@--- /must/ be--- 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO'------ - #VUID-VkPipelineRasterizationStateCreateInfo-pNext-pNext# Each--- @pNext@ member of any structure (including this one) in the @pNext@--- chain /must/ be either @NULL@ or a pointer to a valid instance of--- 'Vulkan.Extensions.VK_EXT_conservative_rasterization.PipelineRasterizationConservativeStateCreateInfoEXT',--- 'Vulkan.Extensions.VK_EXT_depth_clip_enable.PipelineRasterizationDepthClipStateCreateInfoEXT',--- 'Vulkan.Extensions.VK_EXT_line_rasterization.PipelineRasterizationLineStateCreateInfoEXT',--- 'Vulkan.Extensions.VK_EXT_provoking_vertex.PipelineRasterizationProvokingVertexStateCreateInfoEXT',--- 'Vulkan.Extensions.VK_AMD_rasterization_order.PipelineRasterizationStateRasterizationOrderAMD',--- or--- 'Vulkan.Extensions.VK_EXT_transform_feedback.PipelineRasterizationStateStreamCreateInfoEXT'------ - #VUID-VkPipelineRasterizationStateCreateInfo-sType-unique# The--- @sType@ value of each struct in the @pNext@ chain /must/ be unique------ - #VUID-VkPipelineRasterizationStateCreateInfo-flags-zerobitmask#--- @flags@ /must/ be @0@------ - #VUID-VkPipelineRasterizationStateCreateInfo-polygonMode-parameter#--- @polygonMode@ /must/ be a valid--- 'Vulkan.Core10.Enums.PolygonMode.PolygonMode' value------ - #VUID-VkPipelineRasterizationStateCreateInfo-cullMode-parameter#--- @cullMode@ /must/ be a valid combination of--- 'Vulkan.Core10.Enums.CullModeFlagBits.CullModeFlagBits' values------ - #VUID-VkPipelineRasterizationStateCreateInfo-frontFace-parameter#--- @frontFace@ /must/ be a valid--- 'Vulkan.Core10.Enums.FrontFace.FrontFace' value------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,--- 'Vulkan.Core10.FundamentalTypes.Bool32',--- 'Vulkan.Core10.Enums.CullModeFlagBits.CullModeFlags',--- 'Vulkan.Core10.Enums.FrontFace.FrontFace', 'GraphicsPipelineCreateInfo',--- 'Vulkan.Core10.Enums.PipelineRasterizationStateCreateFlags.PipelineRasterizationStateCreateFlags',--- 'Vulkan.Core10.Enums.PolygonMode.PolygonMode',--- 'Vulkan.Core10.Enums.StructureType.StructureType'-data PipelineRasterizationStateCreateInfo (es :: [Type]) = PipelineRasterizationStateCreateInfo- { -- | @pNext@ is @NULL@ or a pointer to a structure extending this structure.- next :: Chain es- , -- | @flags@ is reserved for future use.- flags :: PipelineRasterizationStateCreateFlags- , -- | @depthClampEnable@ controls whether to clamp the fragment’s depth values- -- as described in- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#fragops-depth Depth Test>.- -- If the pipeline is not created with- -- 'Vulkan.Extensions.VK_EXT_depth_clip_enable.PipelineRasterizationDepthClipStateCreateInfoEXT'- -- present then enabling depth clamp will also disable clipping primitives- -- to the z planes of the frustrum as described in- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#vertexpostproc-clipping Primitive Clipping>.- -- Otherwise depth clipping is controlled by the state set in- -- 'Vulkan.Extensions.VK_EXT_depth_clip_enable.PipelineRasterizationDepthClipStateCreateInfoEXT'.- depthClampEnable :: Bool- , -- | @rasterizerDiscardEnable@ controls whether primitives are discarded- -- immediately before the rasterization stage.- rasterizerDiscardEnable :: Bool- , -- | @polygonMode@ is the triangle rendering mode. See- -- 'Vulkan.Core10.Enums.PolygonMode.PolygonMode'.- polygonMode :: PolygonMode- , -- | @cullMode@ is the triangle facing direction used for primitive culling.- -- See 'Vulkan.Core10.Enums.CullModeFlagBits.CullModeFlagBits'.- cullMode :: CullModeFlags- , -- | @frontFace@ is a 'Vulkan.Core10.Enums.FrontFace.FrontFace' value- -- specifying the front-facing triangle orientation to be used for culling.- frontFace :: FrontFace- , -- | @depthBiasEnable@ controls whether to bias fragment depth values.- depthBiasEnable :: Bool- , -- | @depthBiasConstantFactor@ is a scalar factor controlling the constant- -- depth value added to each fragment.- depthBiasConstantFactor :: Float- , -- | @depthBiasClamp@ is the maximum (or minimum) depth bias of a fragment.- depthBiasClamp :: Float- , -- | @depthBiasSlopeFactor@ is a scalar factor applied to a fragment’s slope- -- in depth bias calculations.- depthBiasSlopeFactor :: Float- , -- | @lineWidth@ is the width of rasterized line segments.- lineWidth :: Float- }- deriving (Typeable)-#if defined(GENERIC_INSTANCES)-deriving instance Generic (PipelineRasterizationStateCreateInfo (es :: [Type]))-#endif-deriving instance Show (Chain es) => Show (PipelineRasterizationStateCreateInfo es)--instance Extensible PipelineRasterizationStateCreateInfo where- extensibleTypeName = "PipelineRasterizationStateCreateInfo"- setNext PipelineRasterizationStateCreateInfo{..} next' = PipelineRasterizationStateCreateInfo{next = next', ..}- getNext PipelineRasterizationStateCreateInfo{..} = next- extends :: forall e b proxy. Typeable e => proxy e -> (Extends PipelineRasterizationStateCreateInfo e => b) -> Maybe b- extends _ f- | Just Refl <- eqT @e @PipelineRasterizationProvokingVertexStateCreateInfoEXT = Just f- | Just Refl <- eqT @e @PipelineRasterizationLineStateCreateInfoEXT = Just f- | Just Refl <- eqT @e @PipelineRasterizationDepthClipStateCreateInfoEXT = Just f- | Just Refl <- eqT @e @PipelineRasterizationStateStreamCreateInfoEXT = Just f- | Just Refl <- eqT @e @PipelineRasterizationConservativeStateCreateInfoEXT = Just f- | Just Refl <- eqT @e @PipelineRasterizationStateRasterizationOrderAMD = Just f- | otherwise = Nothing--instance (Extendss PipelineRasterizationStateCreateInfo es, PokeChain es) => ToCStruct (PipelineRasterizationStateCreateInfo es) where- withCStruct x f = allocaBytes 64 $ \p -> pokeCStruct p x (f p)- pokeCStruct p PipelineRasterizationStateCreateInfo{..} f = evalContT $ do- lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO)- pNext'' <- fmap castPtr . ContT $ withChain (next)- lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext''- lift $ poke ((p `plusPtr` 16 :: Ptr PipelineRasterizationStateCreateFlags)) (flags)- lift $ poke ((p `plusPtr` 20 :: Ptr Bool32)) (boolToBool32 (depthClampEnable))- lift $ poke ((p `plusPtr` 24 :: Ptr Bool32)) (boolToBool32 (rasterizerDiscardEnable))- lift $ poke ((p `plusPtr` 28 :: Ptr PolygonMode)) (polygonMode)- lift $ poke ((p `plusPtr` 32 :: Ptr CullModeFlags)) (cullMode)- lift $ poke ((p `plusPtr` 36 :: Ptr FrontFace)) (frontFace)- lift $ poke ((p `plusPtr` 40 :: Ptr Bool32)) (boolToBool32 (depthBiasEnable))- lift $ poke ((p `plusPtr` 44 :: Ptr CFloat)) (CFloat (depthBiasConstantFactor))- lift $ poke ((p `plusPtr` 48 :: Ptr CFloat)) (CFloat (depthBiasClamp))- lift $ poke ((p `plusPtr` 52 :: Ptr CFloat)) (CFloat (depthBiasSlopeFactor))- lift $ poke ((p `plusPtr` 56 :: Ptr CFloat)) (CFloat (lineWidth))- lift $ f- cStructSize = 64- cStructAlignment = 8- pokeZeroCStruct p f = evalContT $ do- lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO)- pNext' <- fmap castPtr . ContT $ withZeroChain @es- lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext'- lift $ poke ((p `plusPtr` 20 :: Ptr Bool32)) (boolToBool32 (zero))- lift $ poke ((p `plusPtr` 24 :: Ptr Bool32)) (boolToBool32 (zero))- lift $ poke ((p `plusPtr` 28 :: Ptr PolygonMode)) (zero)- lift $ poke ((p `plusPtr` 36 :: Ptr FrontFace)) (zero)- lift $ poke ((p `plusPtr` 40 :: Ptr Bool32)) (boolToBool32 (zero))- lift $ poke ((p `plusPtr` 44 :: Ptr CFloat)) (CFloat (zero))- lift $ poke ((p `plusPtr` 48 :: Ptr CFloat)) (CFloat (zero))- lift $ poke ((p `plusPtr` 52 :: Ptr CFloat)) (CFloat (zero))- lift $ poke ((p `plusPtr` 56 :: Ptr CFloat)) (CFloat (zero))- lift $ f--instance (Extendss PipelineRasterizationStateCreateInfo es, PeekChain es) => FromCStruct (PipelineRasterizationStateCreateInfo es) where- peekCStruct p = do- pNext <- peek @(Ptr ()) ((p `plusPtr` 8 :: Ptr (Ptr ())))- next <- peekChain (castPtr pNext)- flags <- peek @PipelineRasterizationStateCreateFlags ((p `plusPtr` 16 :: Ptr PipelineRasterizationStateCreateFlags))- depthClampEnable <- peek @Bool32 ((p `plusPtr` 20 :: Ptr Bool32))- rasterizerDiscardEnable <- peek @Bool32 ((p `plusPtr` 24 :: Ptr Bool32))- polygonMode <- peek @PolygonMode ((p `plusPtr` 28 :: Ptr PolygonMode))- cullMode <- peek @CullModeFlags ((p `plusPtr` 32 :: Ptr CullModeFlags))- frontFace <- peek @FrontFace ((p `plusPtr` 36 :: Ptr FrontFace))- depthBiasEnable <- peek @Bool32 ((p `plusPtr` 40 :: Ptr Bool32))- depthBiasConstantFactor <- peek @CFloat ((p `plusPtr` 44 :: Ptr CFloat))- depthBiasClamp <- peek @CFloat ((p `plusPtr` 48 :: Ptr CFloat))- depthBiasSlopeFactor <- peek @CFloat ((p `plusPtr` 52 :: Ptr CFloat))- lineWidth <- peek @CFloat ((p `plusPtr` 56 :: Ptr CFloat))- pure $ PipelineRasterizationStateCreateInfo- next flags (bool32ToBool depthClampEnable) (bool32ToBool rasterizerDiscardEnable) polygonMode cullMode frontFace (bool32ToBool depthBiasEnable) (coerce @CFloat @Float depthBiasConstantFactor) (coerce @CFloat @Float depthBiasClamp) (coerce @CFloat @Float depthBiasSlopeFactor) (coerce @CFloat @Float lineWidth)--instance es ~ '[] => Zero (PipelineRasterizationStateCreateInfo es) where- zero = PipelineRasterizationStateCreateInfo- ()- zero- zero- zero- zero- zero- zero- zero- zero- zero- zero- zero----- | VkPipelineMultisampleStateCreateInfo - Structure specifying parameters--- of a newly created pipeline multisample state------ = Description------ Each bit in the sample mask is associated with a unique--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-multisampling-coverage-mask sample index>--- as defined for the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-multisampling-coverage-mask coverage mask>.--- Each bit b for mask word w in the sample mask corresponds to sample--- index i, where i = 32 × w + b. @pSampleMask@ has a length equal to ⌈--- @rasterizationSamples@ \/ 32 ⌉ words.------ If @pSampleMask@ is @NULL@, it is treated as if the mask has all bits--- set to @1@.------ == Valid Usage------ - #VUID-VkPipelineMultisampleStateCreateInfo-sampleShadingEnable-00784#--- If the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-sampleRateShading sample rate shading>--- feature is not enabled, @sampleShadingEnable@ /must/ be--- 'Vulkan.Core10.FundamentalTypes.FALSE'------ - #VUID-VkPipelineMultisampleStateCreateInfo-alphaToOneEnable-00785#--- If the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-alphaToOne alpha to one>--- feature is not enabled, @alphaToOneEnable@ /must/ be--- 'Vulkan.Core10.FundamentalTypes.FALSE'------ - #VUID-VkPipelineMultisampleStateCreateInfo-minSampleShading-00786#--- @minSampleShading@ /must/ be in the range [0,1]------ - #VUID-VkPipelineMultisampleStateCreateInfo-rasterizationSamples-01415#--- If the @VK_NV_framebuffer_mixed_samples@ extension is enabled, and--- if the subpass has any color attachments and @rasterizationSamples@--- is greater than the number of color samples, then--- @sampleShadingEnable@ /must/ be--- 'Vulkan.Core10.FundamentalTypes.FALSE'------ == Valid Usage (Implicit)------ - #VUID-VkPipelineMultisampleStateCreateInfo-sType-sType# @sType@--- /must/ be--- 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO'------ - #VUID-VkPipelineMultisampleStateCreateInfo-pNext-pNext# Each @pNext@--- member of any structure (including this one) in the @pNext@ chain--- /must/ be either @NULL@ or a pointer to a valid instance of--- 'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.PipelineCoverageModulationStateCreateInfoNV',--- 'Vulkan.Extensions.VK_NV_coverage_reduction_mode.PipelineCoverageReductionStateCreateInfoNV',--- 'Vulkan.Extensions.VK_NV_fragment_coverage_to_color.PipelineCoverageToColorStateCreateInfoNV',--- or--- 'Vulkan.Extensions.VK_EXT_sample_locations.PipelineSampleLocationsStateCreateInfoEXT'------ - #VUID-VkPipelineMultisampleStateCreateInfo-sType-unique# The @sType@--- value of each struct in the @pNext@ chain /must/ be unique------ - #VUID-VkPipelineMultisampleStateCreateInfo-flags-zerobitmask#--- @flags@ /must/ be @0@------ - #VUID-VkPipelineMultisampleStateCreateInfo-rasterizationSamples-parameter#--- @rasterizationSamples@ /must/ be a valid--- 'Vulkan.Core10.Enums.SampleCountFlagBits.SampleCountFlagBits' value------ - #VUID-VkPipelineMultisampleStateCreateInfo-pSampleMask-parameter# If--- @pSampleMask@ is not @NULL@, @pSampleMask@ /must/ be a valid pointer--- to an array of--- \(\lceil{\mathit{rasterizationSamples} \over 32}\rceil\)--- 'Vulkan.Core10.FundamentalTypes.SampleMask' values------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,--- 'Vulkan.Core10.FundamentalTypes.Bool32', 'GraphicsPipelineCreateInfo',--- 'Vulkan.Core10.Enums.PipelineMultisampleStateCreateFlags.PipelineMultisampleStateCreateFlags',--- 'Vulkan.Core10.Enums.SampleCountFlagBits.SampleCountFlagBits',--- 'Vulkan.Core10.FundamentalTypes.SampleMask',--- 'Vulkan.Core10.Enums.StructureType.StructureType'-data PipelineMultisampleStateCreateInfo (es :: [Type]) = PipelineMultisampleStateCreateInfo- { -- | @pNext@ is @NULL@ or a pointer to a structure extending this structure.- next :: Chain es- , -- | @flags@ is reserved for future use.- flags :: PipelineMultisampleStateCreateFlags- , -- | @rasterizationSamples@ is a- -- 'Vulkan.Core10.Enums.SampleCountFlagBits.SampleCountFlagBits' value- -- specifying the number of samples used in rasterization.- rasterizationSamples :: SampleCountFlagBits- , -- | @sampleShadingEnable@ /can/ be used to enable- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-sampleshading Sample Shading>.- sampleShadingEnable :: Bool- , -- | @minSampleShading@ specifies a minimum fraction of sample shading if- -- @sampleShadingEnable@ is set to 'Vulkan.Core10.FundamentalTypes.TRUE'.- minSampleShading :: Float- , -- | @pSampleMask@ is a pointer to an array of- -- 'Vulkan.Core10.FundamentalTypes.SampleMask' values used in the- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#fragops-samplemask sample mask test>.- sampleMask :: Vector SampleMask- , -- | @alphaToCoverageEnable@ controls whether a temporary coverage value is- -- generated based on the alpha component of the fragment’s first color- -- output as specified in the- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#fragops-covg Multisample Coverage>- -- section.- alphaToCoverageEnable :: Bool- , -- | @alphaToOneEnable@ controls whether the alpha component of the- -- fragment’s first color output is replaced with one as described in- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#fragops-covg Multisample Coverage>.- alphaToOneEnable :: Bool- }- deriving (Typeable)-#if defined(GENERIC_INSTANCES)-deriving instance Generic (PipelineMultisampleStateCreateInfo (es :: [Type]))-#endif-deriving instance Show (Chain es) => Show (PipelineMultisampleStateCreateInfo es)--instance Extensible PipelineMultisampleStateCreateInfo where- extensibleTypeName = "PipelineMultisampleStateCreateInfo"- setNext PipelineMultisampleStateCreateInfo{..} next' = PipelineMultisampleStateCreateInfo{next = next', ..}- getNext PipelineMultisampleStateCreateInfo{..} = next- extends :: forall e b proxy. Typeable e => proxy e -> (Extends PipelineMultisampleStateCreateInfo e => b) -> Maybe b- extends _ f- | Just Refl <- eqT @e @PipelineCoverageReductionStateCreateInfoNV = Just f- | Just Refl <- eqT @e @PipelineCoverageModulationStateCreateInfoNV = Just f- | Just Refl <- eqT @e @PipelineSampleLocationsStateCreateInfoEXT = Just f- | Just Refl <- eqT @e @PipelineCoverageToColorStateCreateInfoNV = Just f- | otherwise = Nothing--instance (Extendss PipelineMultisampleStateCreateInfo es, PokeChain es) => ToCStruct (PipelineMultisampleStateCreateInfo es) where- withCStruct x f = allocaBytes 48 $ \p -> pokeCStruct p x (f p)- pokeCStruct p PipelineMultisampleStateCreateInfo{..} f = evalContT $ do- lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO)- pNext'' <- fmap castPtr . ContT $ withChain (next)- lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext''- lift $ poke ((p `plusPtr` 16 :: Ptr PipelineMultisampleStateCreateFlags)) (flags)- lift $ poke ((p `plusPtr` 20 :: Ptr SampleCountFlagBits)) (rasterizationSamples)- lift $ poke ((p `plusPtr` 24 :: Ptr Bool32)) (boolToBool32 (sampleShadingEnable))- lift $ poke ((p `plusPtr` 28 :: Ptr CFloat)) (CFloat (minSampleShading))- pSampleMask'' <- case Data.Vector.length (sampleMask) of- 0 -> pure nullPtr- vecLen -> do- let requiredLen = case (rasterizationSamples) of- SampleCountFlagBits n -> (n + 31) `quot` 32- lift $ unless (requiredLen == fromIntegral vecLen) $- throwIO $ IOError Nothing InvalidArgument "" "sampleMask must be either empty or contain enough bits to cover all the sample specified by 'rasterizationSamples'" Nothing Nothing- do- pPSampleMask' <- ContT $ allocaBytes @SampleMask ((Data.Vector.length ((sampleMask))) * 4)- lift $ Data.Vector.imapM_ (\i e -> poke (pPSampleMask' `plusPtr` (4 * (i)) :: Ptr SampleMask) (e)) ((sampleMask))- pure $ pPSampleMask'- lift $ poke ((p `plusPtr` 32 :: Ptr (Ptr SampleMask))) pSampleMask''- lift $ poke ((p `plusPtr` 40 :: Ptr Bool32)) (boolToBool32 (alphaToCoverageEnable))- lift $ poke ((p `plusPtr` 44 :: Ptr Bool32)) (boolToBool32 (alphaToOneEnable))- lift $ f- cStructSize = 48- cStructAlignment = 8- pokeZeroCStruct p f = evalContT $ do- lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO)- pNext' <- fmap castPtr . ContT $ withZeroChain @es- lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext'- lift $ poke ((p `plusPtr` 20 :: Ptr SampleCountFlagBits)) (zero)- lift $ poke ((p `plusPtr` 24 :: Ptr Bool32)) (boolToBool32 (zero))- lift $ poke ((p `plusPtr` 28 :: Ptr CFloat)) (CFloat (zero))- lift $ poke ((p `plusPtr` 40 :: Ptr Bool32)) (boolToBool32 (zero))- lift $ poke ((p `plusPtr` 44 :: Ptr Bool32)) (boolToBool32 (zero))- lift $ f--instance (Extendss PipelineMultisampleStateCreateInfo es, PeekChain es) => FromCStruct (PipelineMultisampleStateCreateInfo es) where- peekCStruct p = do- pNext <- peek @(Ptr ()) ((p `plusPtr` 8 :: Ptr (Ptr ())))- next <- peekChain (castPtr pNext)- flags <- peek @PipelineMultisampleStateCreateFlags ((p `plusPtr` 16 :: Ptr PipelineMultisampleStateCreateFlags))- rasterizationSamples <- peek @SampleCountFlagBits ((p `plusPtr` 20 :: Ptr SampleCountFlagBits))- sampleShadingEnable <- peek @Bool32 ((p `plusPtr` 24 :: Ptr Bool32))- minSampleShading <- peek @CFloat ((p `plusPtr` 28 :: Ptr CFloat))- pSampleMask <- peek @(Ptr SampleMask) ((p `plusPtr` 32 :: Ptr (Ptr SampleMask)))- pSampleMask' <- if pSampleMask == nullPtr- then pure mempty- else generateM (case rasterizationSamples of- SampleCountFlagBits n -> (fromIntegral n + 31) `quot` 32) (\i -> peek @SampleMask (((pSampleMask) `advancePtrBytes` (4 * (i)) :: Ptr SampleMask)))- alphaToCoverageEnable <- peek @Bool32 ((p `plusPtr` 40 :: Ptr Bool32))- alphaToOneEnable <- peek @Bool32 ((p `plusPtr` 44 :: Ptr Bool32))- pure $ PipelineMultisampleStateCreateInfo- next flags rasterizationSamples (bool32ToBool sampleShadingEnable) (coerce @CFloat @Float minSampleShading) pSampleMask' (bool32ToBool alphaToCoverageEnable) (bool32ToBool alphaToOneEnable)--instance es ~ '[] => Zero (PipelineMultisampleStateCreateInfo es) where- zero = PipelineMultisampleStateCreateInfo- ()- zero- zero- zero- zero- mempty- zero- zero----- | VkPipelineColorBlendAttachmentState - Structure specifying a pipeline--- color blend attachment state------ == Valid Usage------ - #VUID-VkPipelineColorBlendAttachmentState-srcColorBlendFactor-00608#--- If the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-dualSrcBlend dual source blending>--- feature is not enabled, @srcColorBlendFactor@ /must/ not be--- 'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_SRC1_COLOR',--- 'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_ONE_MINUS_SRC1_COLOR',--- 'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_SRC1_ALPHA', or--- 'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA'------ - #VUID-VkPipelineColorBlendAttachmentState-dstColorBlendFactor-00609#--- If the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-dualSrcBlend dual source blending>--- feature is not enabled, @dstColorBlendFactor@ /must/ not be--- 'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_SRC1_COLOR',--- 'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_ONE_MINUS_SRC1_COLOR',--- 'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_SRC1_ALPHA', or--- 'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA'------ - #VUID-VkPipelineColorBlendAttachmentState-srcAlphaBlendFactor-00610#--- If the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-dualSrcBlend dual source blending>--- feature is not enabled, @srcAlphaBlendFactor@ /must/ not be--- 'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_SRC1_COLOR',--- 'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_ONE_MINUS_SRC1_COLOR',--- 'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_SRC1_ALPHA', or--- 'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA'------ - #VUID-VkPipelineColorBlendAttachmentState-dstAlphaBlendFactor-00611#--- If the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-dualSrcBlend dual source blending>--- feature is not enabled, @dstAlphaBlendFactor@ /must/ not be--- 'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_SRC1_COLOR',--- 'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_ONE_MINUS_SRC1_COLOR',--- 'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_SRC1_ALPHA', or--- 'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA'------ - #VUID-VkPipelineColorBlendAttachmentState-colorBlendOp-01406# If--- either of @colorBlendOp@ or @alphaBlendOp@ is an--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#framebuffer-blend-advanced advanced blend operation>,--- then @colorBlendOp@ /must/ equal @alphaBlendOp@------ - #VUID-VkPipelineColorBlendAttachmentState-advancedBlendIndependentBlend-01407#--- If--- 'Vulkan.Extensions.VK_EXT_blend_operation_advanced.PhysicalDeviceBlendOperationAdvancedPropertiesEXT'::@advancedBlendIndependentBlend@--- is 'Vulkan.Core10.FundamentalTypes.FALSE' and @colorBlendOp@ is an--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#framebuffer-blend-advanced advanced blend operation>,--- then @colorBlendOp@ /must/ be the same for all attachments------ - #VUID-VkPipelineColorBlendAttachmentState-advancedBlendIndependentBlend-01408#--- If--- 'Vulkan.Extensions.VK_EXT_blend_operation_advanced.PhysicalDeviceBlendOperationAdvancedPropertiesEXT'::@advancedBlendIndependentBlend@--- is 'Vulkan.Core10.FundamentalTypes.FALSE' and @alphaBlendOp@ is an--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#framebuffer-blend-advanced advanced blend operation>,--- then @alphaBlendOp@ /must/ be the same for all attachments------ - #VUID-VkPipelineColorBlendAttachmentState-advancedBlendAllOperations-01409#--- If--- 'Vulkan.Extensions.VK_EXT_blend_operation_advanced.PhysicalDeviceBlendOperationAdvancedPropertiesEXT'::@advancedBlendAllOperations@--- is 'Vulkan.Core10.FundamentalTypes.FALSE', then @colorBlendOp@--- /must/ not be 'Vulkan.Core10.Enums.BlendOp.BLEND_OP_ZERO_EXT',--- 'Vulkan.Core10.Enums.BlendOp.BLEND_OP_SRC_EXT',--- 'Vulkan.Core10.Enums.BlendOp.BLEND_OP_DST_EXT',--- 'Vulkan.Core10.Enums.BlendOp.BLEND_OP_SRC_OVER_EXT',--- 'Vulkan.Core10.Enums.BlendOp.BLEND_OP_DST_OVER_EXT',--- 'Vulkan.Core10.Enums.BlendOp.BLEND_OP_SRC_IN_EXT',--- 'Vulkan.Core10.Enums.BlendOp.BLEND_OP_DST_IN_EXT',--- 'Vulkan.Core10.Enums.BlendOp.BLEND_OP_SRC_OUT_EXT',--- 'Vulkan.Core10.Enums.BlendOp.BLEND_OP_DST_OUT_EXT',--- 'Vulkan.Core10.Enums.BlendOp.BLEND_OP_SRC_ATOP_EXT',--- 'Vulkan.Core10.Enums.BlendOp.BLEND_OP_DST_ATOP_EXT',--- 'Vulkan.Core10.Enums.BlendOp.BLEND_OP_XOR_EXT',--- 'Vulkan.Core10.Enums.BlendOp.BLEND_OP_INVERT_EXT',--- 'Vulkan.Core10.Enums.BlendOp.BLEND_OP_INVERT_RGB_EXT',--- 'Vulkan.Core10.Enums.BlendOp.BLEND_OP_LINEARDODGE_EXT',--- 'Vulkan.Core10.Enums.BlendOp.BLEND_OP_LINEARBURN_EXT',--- 'Vulkan.Core10.Enums.BlendOp.BLEND_OP_VIVIDLIGHT_EXT',--- 'Vulkan.Core10.Enums.BlendOp.BLEND_OP_LINEARLIGHT_EXT',--- 'Vulkan.Core10.Enums.BlendOp.BLEND_OP_PINLIGHT_EXT',--- 'Vulkan.Core10.Enums.BlendOp.BLEND_OP_HARDMIX_EXT',--- 'Vulkan.Core10.Enums.BlendOp.BLEND_OP_PLUS_EXT',--- 'Vulkan.Core10.Enums.BlendOp.BLEND_OP_PLUS_CLAMPED_EXT',--- 'Vulkan.Core10.Enums.BlendOp.BLEND_OP_PLUS_CLAMPED_ALPHA_EXT',--- 'Vulkan.Core10.Enums.BlendOp.BLEND_OP_PLUS_DARKER_EXT',--- 'Vulkan.Core10.Enums.BlendOp.BLEND_OP_MINUS_EXT',--- 'Vulkan.Core10.Enums.BlendOp.BLEND_OP_MINUS_CLAMPED_EXT',--- 'Vulkan.Core10.Enums.BlendOp.BLEND_OP_CONTRAST_EXT',--- 'Vulkan.Core10.Enums.BlendOp.BLEND_OP_INVERT_OVG_EXT',--- 'Vulkan.Core10.Enums.BlendOp.BLEND_OP_RED_EXT',--- 'Vulkan.Core10.Enums.BlendOp.BLEND_OP_GREEN_EXT', or--- 'Vulkan.Core10.Enums.BlendOp.BLEND_OP_BLUE_EXT'------ - #VUID-VkPipelineColorBlendAttachmentState-colorBlendOp-01410# If--- @colorBlendOp@ or @alphaBlendOp@ is an--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#framebuffer-blend-advanced advanced blend operation>,--- then @colorAttachmentCount@ of the subpass this pipeline is compiled--- against /must/ be less than or equal to--- 'Vulkan.Extensions.VK_EXT_blend_operation_advanced.PhysicalDeviceBlendOperationAdvancedPropertiesEXT'::@advancedBlendMaxColorAttachments@------ - #VUID-VkPipelineColorBlendAttachmentState-constantAlphaColorBlendFactors-04454#--- If the @VK_KHR_portability_subset@ extension is enabled, and--- 'Vulkan.Extensions.VK_KHR_portability_subset.PhysicalDevicePortabilitySubsetFeaturesKHR'::@constantAlphaColorBlendFactors@--- is 'Vulkan.Core10.FundamentalTypes.FALSE', @srcColorBlendFactor@--- /must/ not be--- 'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_CONSTANT_ALPHA' or--- 'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA'------ - #VUID-VkPipelineColorBlendAttachmentState-constantAlphaColorBlendFactors-04455#--- If the @VK_KHR_portability_subset@ extension is enabled, and--- 'Vulkan.Extensions.VK_KHR_portability_subset.PhysicalDevicePortabilitySubsetFeaturesKHR'::@constantAlphaColorBlendFactors@--- is 'Vulkan.Core10.FundamentalTypes.FALSE', @dstColorBlendFactor@--- /must/ not be--- 'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_CONSTANT_ALPHA' or--- 'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA'------ == Valid Usage (Implicit)------ - #VUID-VkPipelineColorBlendAttachmentState-srcColorBlendFactor-parameter#--- @srcColorBlendFactor@ /must/ be a valid--- 'Vulkan.Core10.Enums.BlendFactor.BlendFactor' value------ - #VUID-VkPipelineColorBlendAttachmentState-dstColorBlendFactor-parameter#--- @dstColorBlendFactor@ /must/ be a valid--- 'Vulkan.Core10.Enums.BlendFactor.BlendFactor' value------ - #VUID-VkPipelineColorBlendAttachmentState-colorBlendOp-parameter#--- @colorBlendOp@ /must/ be a valid--- 'Vulkan.Core10.Enums.BlendOp.BlendOp' value------ - #VUID-VkPipelineColorBlendAttachmentState-srcAlphaBlendFactor-parameter#--- @srcAlphaBlendFactor@ /must/ be a valid--- 'Vulkan.Core10.Enums.BlendFactor.BlendFactor' value------ - #VUID-VkPipelineColorBlendAttachmentState-dstAlphaBlendFactor-parameter#--- @dstAlphaBlendFactor@ /must/ be a valid--- 'Vulkan.Core10.Enums.BlendFactor.BlendFactor' value------ - #VUID-VkPipelineColorBlendAttachmentState-alphaBlendOp-parameter#--- @alphaBlendOp@ /must/ be a valid--- 'Vulkan.Core10.Enums.BlendOp.BlendOp' value------ - #VUID-VkPipelineColorBlendAttachmentState-colorWriteMask-parameter#--- @colorWriteMask@ /must/ be a valid combination of--- 'Vulkan.Core10.Enums.ColorComponentFlagBits.ColorComponentFlagBits'--- values------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,--- 'Vulkan.Core10.Enums.BlendFactor.BlendFactor',--- 'Vulkan.Core10.Enums.BlendOp.BlendOp',--- 'Vulkan.Core10.FundamentalTypes.Bool32',--- 'Vulkan.Core10.Enums.ColorComponentFlagBits.ColorComponentFlags',--- 'PipelineColorBlendStateCreateInfo'-data PipelineColorBlendAttachmentState = PipelineColorBlendAttachmentState- { -- | @blendEnable@ controls whether blending is enabled for the corresponding- -- color attachment. If blending is not enabled, the source fragment’s- -- color for that attachment is passed through unmodified.- blendEnable :: Bool- , -- | @srcColorBlendFactor@ selects which blend factor is used to determine- -- the source factors (Sr,Sg,Sb).- srcColorBlendFactor :: BlendFactor- , -- | @dstColorBlendFactor@ selects which blend factor is used to determine- -- the destination factors (Dr,Dg,Db).- dstColorBlendFactor :: BlendFactor- , -- | @colorBlendOp@ selects which blend operation is used to calculate the- -- RGB values to write to the color attachment.- colorBlendOp :: BlendOp- , -- | @srcAlphaBlendFactor@ selects which blend factor is used to determine- -- the source factor Sa.- srcAlphaBlendFactor :: BlendFactor- , -- | @dstAlphaBlendFactor@ selects which blend factor is used to determine- -- the destination factor Da.- dstAlphaBlendFactor :: BlendFactor- , -- | @alphaBlendOp@ selects which blend operation is use to calculate the- -- alpha values to write to the color attachment.- alphaBlendOp :: BlendOp- , -- | @colorWriteMask@ is a bitmask of- -- 'Vulkan.Core10.Enums.ColorComponentFlagBits.ColorComponentFlagBits'- -- specifying which of the R, G, B, and\/or A components are enabled for- -- writing, as described for the- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#framebuffer-color-write-mask Color Write Mask>.- colorWriteMask :: ColorComponentFlags- }- deriving (Typeable, Eq)-#if defined(GENERIC_INSTANCES)-deriving instance Generic (PipelineColorBlendAttachmentState)-#endif-deriving instance Show PipelineColorBlendAttachmentState--instance ToCStruct PipelineColorBlendAttachmentState where- withCStruct x f = allocaBytes 32 $ \p -> pokeCStruct p x (f p)- pokeCStruct p PipelineColorBlendAttachmentState{..} f = do- poke ((p `plusPtr` 0 :: Ptr Bool32)) (boolToBool32 (blendEnable))- poke ((p `plusPtr` 4 :: Ptr BlendFactor)) (srcColorBlendFactor)- poke ((p `plusPtr` 8 :: Ptr BlendFactor)) (dstColorBlendFactor)- poke ((p `plusPtr` 12 :: Ptr BlendOp)) (colorBlendOp)- poke ((p `plusPtr` 16 :: Ptr BlendFactor)) (srcAlphaBlendFactor)- poke ((p `plusPtr` 20 :: Ptr BlendFactor)) (dstAlphaBlendFactor)- poke ((p `plusPtr` 24 :: Ptr BlendOp)) (alphaBlendOp)- poke ((p `plusPtr` 28 :: Ptr ColorComponentFlags)) (colorWriteMask)- f- cStructSize = 32- cStructAlignment = 4- pokeZeroCStruct p f = do- poke ((p `plusPtr` 0 :: Ptr Bool32)) (boolToBool32 (zero))- poke ((p `plusPtr` 4 :: Ptr BlendFactor)) (zero)- poke ((p `plusPtr` 8 :: Ptr BlendFactor)) (zero)- poke ((p `plusPtr` 12 :: Ptr BlendOp)) (zero)- poke ((p `plusPtr` 16 :: Ptr BlendFactor)) (zero)- poke ((p `plusPtr` 20 :: Ptr BlendFactor)) (zero)- poke ((p `plusPtr` 24 :: Ptr BlendOp)) (zero)- f--instance FromCStruct PipelineColorBlendAttachmentState where- peekCStruct p = do- blendEnable <- peek @Bool32 ((p `plusPtr` 0 :: Ptr Bool32))- srcColorBlendFactor <- peek @BlendFactor ((p `plusPtr` 4 :: Ptr BlendFactor))- dstColorBlendFactor <- peek @BlendFactor ((p `plusPtr` 8 :: Ptr BlendFactor))- colorBlendOp <- peek @BlendOp ((p `plusPtr` 12 :: Ptr BlendOp))- srcAlphaBlendFactor <- peek @BlendFactor ((p `plusPtr` 16 :: Ptr BlendFactor))- dstAlphaBlendFactor <- peek @BlendFactor ((p `plusPtr` 20 :: Ptr BlendFactor))- alphaBlendOp <- peek @BlendOp ((p `plusPtr` 24 :: Ptr BlendOp))- colorWriteMask <- peek @ColorComponentFlags ((p `plusPtr` 28 :: Ptr ColorComponentFlags))- pure $ PipelineColorBlendAttachmentState- (bool32ToBool blendEnable) srcColorBlendFactor dstColorBlendFactor colorBlendOp srcAlphaBlendFactor dstAlphaBlendFactor alphaBlendOp colorWriteMask--instance Storable PipelineColorBlendAttachmentState where- sizeOf ~_ = 32- alignment ~_ = 4- peek = peekCStruct- poke ptr poked = pokeCStruct ptr poked (pure ())--instance Zero PipelineColorBlendAttachmentState where- zero = PipelineColorBlendAttachmentState- zero- zero- zero- zero- zero- zero- zero- zero----- | VkPipelineColorBlendStateCreateInfo - Structure specifying parameters of--- a newly created pipeline color blend state------ == Valid Usage------ - #VUID-VkPipelineColorBlendStateCreateInfo-pAttachments-00605# If the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-independentBlend independent blending>--- feature is not enabled, all elements of @pAttachments@ /must/ be--- identical------ - #VUID-VkPipelineColorBlendStateCreateInfo-logicOpEnable-00606# If--- the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-logicOp logic operations>--- feature is not enabled, @logicOpEnable@ /must/ be--- 'Vulkan.Core10.FundamentalTypes.FALSE'------ - #VUID-VkPipelineColorBlendStateCreateInfo-logicOpEnable-00607# If--- @logicOpEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE', @logicOp@--- /must/ be a valid 'Vulkan.Core10.Enums.LogicOp.LogicOp' value------ - #VUID-VkPipelineColorBlendStateCreateInfo-rasterizationOrderColorAttachmentAccess-06465#--- If the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-rasterizationOrderColorAttachmentAccess rasterizationOrderColorAttachmentAccess>--- feature is not enabled, @flags@ /must/ not include--- 'Vulkan.Core10.Enums.PipelineColorBlendStateCreateFlagBits.PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_ARM'------ == Valid Usage (Implicit)------ - #VUID-VkPipelineColorBlendStateCreateInfo-sType-sType# @sType@--- /must/ be--- 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO'------ - #VUID-VkPipelineColorBlendStateCreateInfo-pNext-pNext# Each @pNext@--- member of any structure (including this one) in the @pNext@ chain--- /must/ be either @NULL@ or a pointer to a valid instance of--- 'Vulkan.Extensions.VK_EXT_blend_operation_advanced.PipelineColorBlendAdvancedStateCreateInfoEXT'--- or--- 'Vulkan.Extensions.VK_EXT_color_write_enable.PipelineColorWriteCreateInfoEXT'------ - #VUID-VkPipelineColorBlendStateCreateInfo-sType-unique# The @sType@--- value of each struct in the @pNext@ chain /must/ be unique------ - #VUID-VkPipelineColorBlendStateCreateInfo-flags-parameter# @flags@--- /must/ be a valid combination of--- 'Vulkan.Core10.Enums.PipelineColorBlendStateCreateFlagBits.PipelineColorBlendStateCreateFlagBits'--- values------ - #VUID-VkPipelineColorBlendStateCreateInfo-pAttachments-parameter# If--- @attachmentCount@ is not @0@, @pAttachments@ /must/ be a valid--- pointer to an array of @attachmentCount@ valid--- 'PipelineColorBlendAttachmentState' structures------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,--- 'Vulkan.Core10.FundamentalTypes.Bool32', 'GraphicsPipelineCreateInfo',--- 'Vulkan.Core10.Enums.LogicOp.LogicOp',--- 'PipelineColorBlendAttachmentState',--- 'Vulkan.Core10.Enums.PipelineColorBlendStateCreateFlagBits.PipelineColorBlendStateCreateFlags',--- 'Vulkan.Core10.Enums.StructureType.StructureType'-data PipelineColorBlendStateCreateInfo (es :: [Type]) = PipelineColorBlendStateCreateInfo- { -- | @pNext@ is @NULL@ or a pointer to a structure extending this structure.- next :: Chain es- , -- | @flags@ is a bitmask of- -- 'Vulkan.Core10.Enums.PipelineColorBlendStateCreateFlagBits.PipelineColorBlendStateCreateFlagBits'- -- specifying additional color blending information.- flags :: PipelineColorBlendStateCreateFlags- , -- | @logicOpEnable@ controls whether to apply- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#framebuffer-logicop Logical Operations>.- logicOpEnable :: Bool- , -- | @logicOp@ selects which logical operation to apply.- logicOp :: LogicOp- , -- | @pAttachments@ is a pointer to an array of- -- 'PipelineColorBlendAttachmentState' structures defining blend state for- -- each color attachment.- attachments :: Vector PipelineColorBlendAttachmentState- , -- | @blendConstants@ is a pointer to an array of four values used as the R,- -- G, B, and A components of the blend constant that are used in blending,- -- depending on the- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#framebuffer-blendfactors blend factor>.- blendConstants :: (Float, Float, Float, Float)- }- deriving (Typeable)-#if defined(GENERIC_INSTANCES)-deriving instance Generic (PipelineColorBlendStateCreateInfo (es :: [Type]))-#endif-deriving instance Show (Chain es) => Show (PipelineColorBlendStateCreateInfo es)--instance Extensible PipelineColorBlendStateCreateInfo where- extensibleTypeName = "PipelineColorBlendStateCreateInfo"- setNext PipelineColorBlendStateCreateInfo{..} next' = PipelineColorBlendStateCreateInfo{next = next', ..}- getNext PipelineColorBlendStateCreateInfo{..} = next- extends :: forall e b proxy. Typeable e => proxy e -> (Extends PipelineColorBlendStateCreateInfo e => b) -> Maybe b- extends _ f- | Just Refl <- eqT @e @PipelineColorWriteCreateInfoEXT = Just f- | Just Refl <- eqT @e @PipelineColorBlendAdvancedStateCreateInfoEXT = Just f- | otherwise = Nothing--instance (Extendss PipelineColorBlendStateCreateInfo es, PokeChain es) => ToCStruct (PipelineColorBlendStateCreateInfo es) where- withCStruct x f = allocaBytes 56 $ \p -> pokeCStruct p x (f p)- pokeCStruct p PipelineColorBlendStateCreateInfo{..} f = evalContT $ do- lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO)- pNext'' <- fmap castPtr . ContT $ withChain (next)- lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext''- lift $ poke ((p `plusPtr` 16 :: Ptr PipelineColorBlendStateCreateFlags)) (flags)- lift $ poke ((p `plusPtr` 20 :: Ptr Bool32)) (boolToBool32 (logicOpEnable))- lift $ poke ((p `plusPtr` 24 :: Ptr LogicOp)) (logicOp)- lift $ poke ((p `plusPtr` 28 :: Ptr Word32)) ((fromIntegral (Data.Vector.length $ (attachments)) :: Word32))- pPAttachments' <- ContT $ allocaBytes @PipelineColorBlendAttachmentState ((Data.Vector.length (attachments)) * 32)- lift $ Data.Vector.imapM_ (\i e -> poke (pPAttachments' `plusPtr` (32 * (i)) :: Ptr PipelineColorBlendAttachmentState) (e)) (attachments)- lift $ poke ((p `plusPtr` 32 :: Ptr (Ptr PipelineColorBlendAttachmentState))) (pPAttachments')- let pBlendConstants' = lowerArrayPtr ((p `plusPtr` 40 :: Ptr (FixedArray 4 CFloat)))- lift $ case (blendConstants) of- (e0, e1, e2, e3) -> do- poke (pBlendConstants' :: Ptr CFloat) (CFloat (e0))- poke (pBlendConstants' `plusPtr` 4 :: Ptr CFloat) (CFloat (e1))- poke (pBlendConstants' `plusPtr` 8 :: Ptr CFloat) (CFloat (e2))- poke (pBlendConstants' `plusPtr` 12 :: Ptr CFloat) (CFloat (e3))- lift $ f- cStructSize = 56- cStructAlignment = 8- pokeZeroCStruct p f = evalContT $ do- lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO)- pNext' <- fmap castPtr . ContT $ withZeroChain @es- lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext'- lift $ poke ((p `plusPtr` 20 :: Ptr Bool32)) (boolToBool32 (zero))- lift $ poke ((p `plusPtr` 24 :: Ptr LogicOp)) (zero)- let pBlendConstants' = lowerArrayPtr ((p `plusPtr` 40 :: Ptr (FixedArray 4 CFloat)))- lift $ case ((zero, zero, zero, zero)) of- (e0, e1, e2, e3) -> do- poke (pBlendConstants' :: Ptr CFloat) (CFloat (e0))- poke (pBlendConstants' `plusPtr` 4 :: Ptr CFloat) (CFloat (e1))- poke (pBlendConstants' `plusPtr` 8 :: Ptr CFloat) (CFloat (e2))- poke (pBlendConstants' `plusPtr` 12 :: Ptr CFloat) (CFloat (e3))- lift $ f--instance (Extendss PipelineColorBlendStateCreateInfo es, PeekChain es) => FromCStruct (PipelineColorBlendStateCreateInfo es) where- peekCStruct p = do- pNext <- peek @(Ptr ()) ((p `plusPtr` 8 :: Ptr (Ptr ())))- next <- peekChain (castPtr pNext)- flags <- peek @PipelineColorBlendStateCreateFlags ((p `plusPtr` 16 :: Ptr PipelineColorBlendStateCreateFlags))- logicOpEnable <- peek @Bool32 ((p `plusPtr` 20 :: Ptr Bool32))- logicOp <- peek @LogicOp ((p `plusPtr` 24 :: Ptr LogicOp))- attachmentCount <- peek @Word32 ((p `plusPtr` 28 :: Ptr Word32))- pAttachments <- peek @(Ptr PipelineColorBlendAttachmentState) ((p `plusPtr` 32 :: Ptr (Ptr PipelineColorBlendAttachmentState)))- pAttachments' <- generateM (fromIntegral attachmentCount) (\i -> peekCStruct @PipelineColorBlendAttachmentState ((pAttachments `advancePtrBytes` (32 * (i)) :: Ptr PipelineColorBlendAttachmentState)))- let pblendConstants = lowerArrayPtr @CFloat ((p `plusPtr` 40 :: Ptr (FixedArray 4 CFloat)))- blendConstants0 <- peek @CFloat ((pblendConstants `advancePtrBytes` 0 :: Ptr CFloat))- blendConstants1 <- peek @CFloat ((pblendConstants `advancePtrBytes` 4 :: Ptr CFloat))- blendConstants2 <- peek @CFloat ((pblendConstants `advancePtrBytes` 8 :: Ptr CFloat))- blendConstants3 <- peek @CFloat ((pblendConstants `advancePtrBytes` 12 :: Ptr CFloat))- pure $ PipelineColorBlendStateCreateInfo- next flags (bool32ToBool logicOpEnable) logicOp pAttachments' (((coerce @CFloat @Float blendConstants0), (coerce @CFloat @Float blendConstants1), (coerce @CFloat @Float blendConstants2), (coerce @CFloat @Float blendConstants3)))--instance es ~ '[] => Zero (PipelineColorBlendStateCreateInfo es) where- zero = PipelineColorBlendStateCreateInfo- ()- zero- zero- zero- mempty- (zero, zero, zero, zero)----- | VkPipelineDynamicStateCreateInfo - Structure specifying parameters of a--- newly created pipeline dynamic state------ == Valid Usage------ - #VUID-VkPipelineDynamicStateCreateInfo-pDynamicStates-01442# Each--- element of @pDynamicStates@ /must/ be unique------ == Valid Usage (Implicit)------ - #VUID-VkPipelineDynamicStateCreateInfo-sType-sType# @sType@ /must/--- be--- 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO'------ - #VUID-VkPipelineDynamicStateCreateInfo-pNext-pNext# @pNext@ /must/--- be @NULL@------ - #VUID-VkPipelineDynamicStateCreateInfo-flags-zerobitmask# @flags@--- /must/ be @0@------ - #VUID-VkPipelineDynamicStateCreateInfo-pDynamicStates-parameter# If--- @dynamicStateCount@ is not @0@, @pDynamicStates@ /must/ be a valid--- pointer to an array of @dynamicStateCount@ valid--- 'Vulkan.Core10.Enums.DynamicState.DynamicState' values------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,--- 'Vulkan.Core10.Enums.DynamicState.DynamicState',--- 'GraphicsPipelineCreateInfo',--- 'Vulkan.Core10.Enums.PipelineDynamicStateCreateFlags.PipelineDynamicStateCreateFlags',--- 'Vulkan.Extensions.VK_KHR_ray_tracing_pipeline.RayTracingPipelineCreateInfoKHR',--- 'Vulkan.Core10.Enums.StructureType.StructureType'-data PipelineDynamicStateCreateInfo = PipelineDynamicStateCreateInfo- { -- | @flags@ is reserved for future use.- flags :: PipelineDynamicStateCreateFlags- , -- | @pDynamicStates@ is a pointer to an array of- -- 'Vulkan.Core10.Enums.DynamicState.DynamicState' values specifying which- -- pieces of pipeline state will use the values from dynamic state commands- -- rather than from pipeline state creation information.- dynamicStates :: Vector DynamicState- }- deriving (Typeable)-#if defined(GENERIC_INSTANCES)-deriving instance Generic (PipelineDynamicStateCreateInfo)-#endif-deriving instance Show PipelineDynamicStateCreateInfo--instance ToCStruct PipelineDynamicStateCreateInfo where- withCStruct x f = allocaBytes 32 $ \p -> pokeCStruct p x (f p)- pokeCStruct p PipelineDynamicStateCreateInfo{..} f = evalContT $ do- lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO)- lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)- lift $ poke ((p `plusPtr` 16 :: Ptr PipelineDynamicStateCreateFlags)) (flags)- lift $ poke ((p `plusPtr` 20 :: Ptr Word32)) ((fromIntegral (Data.Vector.length $ (dynamicStates)) :: Word32))- pPDynamicStates' <- ContT $ allocaBytes @DynamicState ((Data.Vector.length (dynamicStates)) * 4)- lift $ Data.Vector.imapM_ (\i e -> poke (pPDynamicStates' `plusPtr` (4 * (i)) :: Ptr DynamicState) (e)) (dynamicStates)- lift $ poke ((p `plusPtr` 24 :: Ptr (Ptr DynamicState))) (pPDynamicStates')- lift $ f- cStructSize = 32- cStructAlignment = 8- pokeZeroCStruct p f = do- poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO)- poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)- f--instance FromCStruct PipelineDynamicStateCreateInfo where- peekCStruct p = do- flags <- peek @PipelineDynamicStateCreateFlags ((p `plusPtr` 16 :: Ptr PipelineDynamicStateCreateFlags))- dynamicStateCount <- peek @Word32 ((p `plusPtr` 20 :: Ptr Word32))- pDynamicStates <- peek @(Ptr DynamicState) ((p `plusPtr` 24 :: Ptr (Ptr DynamicState)))- pDynamicStates' <- generateM (fromIntegral dynamicStateCount) (\i -> peek @DynamicState ((pDynamicStates `advancePtrBytes` (4 * (i)) :: Ptr DynamicState)))- pure $ PipelineDynamicStateCreateInfo- flags pDynamicStates'--instance Zero PipelineDynamicStateCreateInfo where- zero = PipelineDynamicStateCreateInfo- zero- mempty----- | VkStencilOpState - Structure specifying stencil operation state------ == Valid Usage (Implicit)------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,--- 'Vulkan.Core10.Enums.CompareOp.CompareOp',--- 'PipelineDepthStencilStateCreateInfo',--- 'Vulkan.Core10.Enums.StencilOp.StencilOp'-data StencilOpState = StencilOpState- { -- | @failOp@ is a 'Vulkan.Core10.Enums.StencilOp.StencilOp' value specifying- -- the action performed on samples that fail the stencil test.- --- -- #VUID-VkStencilOpState-failOp-parameter# @failOp@ /must/ be a valid- -- 'Vulkan.Core10.Enums.StencilOp.StencilOp' value- failOp :: StencilOp- , -- | @passOp@ is a 'Vulkan.Core10.Enums.StencilOp.StencilOp' value specifying- -- the action performed on samples that pass both the depth and stencil- -- tests.- --- -- #VUID-VkStencilOpState-passOp-parameter# @passOp@ /must/ be a valid- -- 'Vulkan.Core10.Enums.StencilOp.StencilOp' value- passOp :: StencilOp- , -- | @depthFailOp@ is a 'Vulkan.Core10.Enums.StencilOp.StencilOp' value- -- specifying the action performed on samples that pass the stencil test- -- and fail the depth test.- --- -- #VUID-VkStencilOpState-depthFailOp-parameter# @depthFailOp@ /must/ be a- -- valid 'Vulkan.Core10.Enums.StencilOp.StencilOp' value- depthFailOp :: StencilOp- , -- | @compareOp@ is a 'Vulkan.Core10.Enums.CompareOp.CompareOp' value- -- specifying the comparison operator used in the stencil test.- --- -- #VUID-VkStencilOpState-compareOp-parameter# @compareOp@ /must/ be a- -- valid 'Vulkan.Core10.Enums.CompareOp.CompareOp' value- compareOp :: CompareOp- , -- | @compareMask@ selects the bits of the unsigned integer stencil values- -- participating in the stencil test.- compareMask :: Word32- , -- | @writeMask@ selects the bits of the unsigned integer stencil values- -- updated by the stencil test in the stencil framebuffer attachment.- writeMask :: Word32- , -- | @reference@ is an integer reference value that is used in the unsigned- -- stencil comparison.- reference :: Word32- }- deriving (Typeable, Eq)-#if defined(GENERIC_INSTANCES)-deriving instance Generic (StencilOpState)-#endif-deriving instance Show StencilOpState--instance ToCStruct StencilOpState where- withCStruct x f = allocaBytes 28 $ \p -> pokeCStruct p x (f p)- pokeCStruct p StencilOpState{..} f = do- poke ((p `plusPtr` 0 :: Ptr StencilOp)) (failOp)- poke ((p `plusPtr` 4 :: Ptr StencilOp)) (passOp)- poke ((p `plusPtr` 8 :: Ptr StencilOp)) (depthFailOp)- poke ((p `plusPtr` 12 :: Ptr CompareOp)) (compareOp)- poke ((p `plusPtr` 16 :: Ptr Word32)) (compareMask)- poke ((p `plusPtr` 20 :: Ptr Word32)) (writeMask)- poke ((p `plusPtr` 24 :: Ptr Word32)) (reference)- f- cStructSize = 28- cStructAlignment = 4- pokeZeroCStruct p f = do- poke ((p `plusPtr` 0 :: Ptr StencilOp)) (zero)- poke ((p `plusPtr` 4 :: Ptr StencilOp)) (zero)- poke ((p `plusPtr` 8 :: Ptr StencilOp)) (zero)- poke ((p `plusPtr` 12 :: Ptr CompareOp)) (zero)- poke ((p `plusPtr` 16 :: Ptr Word32)) (zero)- poke ((p `plusPtr` 20 :: Ptr Word32)) (zero)- poke ((p `plusPtr` 24 :: Ptr Word32)) (zero)- f--instance FromCStruct StencilOpState where- peekCStruct p = do- failOp <- peek @StencilOp ((p `plusPtr` 0 :: Ptr StencilOp))- passOp <- peek @StencilOp ((p `plusPtr` 4 :: Ptr StencilOp))- depthFailOp <- peek @StencilOp ((p `plusPtr` 8 :: Ptr StencilOp))- compareOp <- peek @CompareOp ((p `plusPtr` 12 :: Ptr CompareOp))- compareMask <- peek @Word32 ((p `plusPtr` 16 :: Ptr Word32))- writeMask <- peek @Word32 ((p `plusPtr` 20 :: Ptr Word32))- reference <- peek @Word32 ((p `plusPtr` 24 :: Ptr Word32))- pure $ StencilOpState- failOp passOp depthFailOp compareOp compareMask writeMask reference--instance Storable StencilOpState where- sizeOf ~_ = 28- alignment ~_ = 4- peek = peekCStruct- poke ptr poked = pokeCStruct ptr poked (pure ())--instance Zero StencilOpState where- zero = StencilOpState- zero- zero- zero- zero- zero- zero- zero----- | VkPipelineDepthStencilStateCreateInfo - Structure specifying parameters--- of a newly created pipeline depth stencil state------ == Valid Usage------ - #VUID-VkPipelineDepthStencilStateCreateInfo-depthBoundsTestEnable-00598#--- If the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-depthBounds depth bounds testing>--- feature is not enabled, @depthBoundsTestEnable@ /must/ be--- 'Vulkan.Core10.FundamentalTypes.FALSE'------ - #VUID-VkPipelineDepthStencilStateCreateInfo-separateStencilMaskRef-04453#--- If the @VK_KHR_portability_subset@ extension is enabled, and--- 'Vulkan.Extensions.VK_KHR_portability_subset.PhysicalDevicePortabilitySubsetFeaturesKHR'::@separateStencilMaskRef@--- is 'Vulkan.Core10.FundamentalTypes.FALSE', and the value of--- 'PipelineDepthStencilStateCreateInfo'::@stencilTestEnable@ is--- 'Vulkan.Core10.FundamentalTypes.TRUE', and the value of--- 'PipelineRasterizationStateCreateInfo'::@cullMode@ is--- 'Vulkan.Core10.Enums.CullModeFlagBits.CULL_MODE_NONE', the value of--- @reference@ in each of the 'StencilOpState' structs in @front@ and--- @back@ /must/ be the same------ - #VUID-VkPipelineDepthStencilStateCreateInfo-rasterizationOrderDepthAttachmentAccess-06463#--- If the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-rasterizationOrderDepthAttachmentAccess rasterizationOrderDepthAttachmentAccess>--- feature is not enabled, @flags@ /must/ not include--- 'Vulkan.Core10.Enums.PipelineDepthStencilStateCreateFlagBits.PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_ARM'------ - #VUID-VkPipelineDepthStencilStateCreateInfo-rasterizationOrderStencilAttachmentAccess-06464#--- If the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-rasterizationOrderStencilAttachmentAccess rasterizationOrderStencilAttachmentAccess>--- feature is not enabled, @flags@ /must/ not include--- 'Vulkan.Core10.Enums.PipelineDepthStencilStateCreateFlagBits.PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_ARM'------ == Valid Usage (Implicit)------ - #VUID-VkPipelineDepthStencilStateCreateInfo-sType-sType# @sType@--- /must/ be--- 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO'------ - #VUID-VkPipelineDepthStencilStateCreateInfo-pNext-pNext# @pNext@--- /must/ be @NULL@------ - #VUID-VkPipelineDepthStencilStateCreateInfo-flags-parameter# @flags@--- /must/ be a valid combination of--- 'Vulkan.Core10.Enums.PipelineDepthStencilStateCreateFlagBits.PipelineDepthStencilStateCreateFlagBits'--- values------ - #VUID-VkPipelineDepthStencilStateCreateInfo-depthCompareOp-parameter#--- @depthCompareOp@ /must/ be a valid--- 'Vulkan.Core10.Enums.CompareOp.CompareOp' value------ - #VUID-VkPipelineDepthStencilStateCreateInfo-front-parameter# @front@--- /must/ be a valid 'StencilOpState' structure------ - #VUID-VkPipelineDepthStencilStateCreateInfo-back-parameter# @back@--- /must/ be a valid 'StencilOpState' structure------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,--- 'Vulkan.Core10.FundamentalTypes.Bool32',--- 'Vulkan.Core10.Enums.CompareOp.CompareOp', 'GraphicsPipelineCreateInfo',--- 'Vulkan.Core10.Enums.PipelineDepthStencilStateCreateFlagBits.PipelineDepthStencilStateCreateFlags',--- 'StencilOpState', 'Vulkan.Core10.Enums.StructureType.StructureType'-data PipelineDepthStencilStateCreateInfo = PipelineDepthStencilStateCreateInfo- { -- | @flags@ is a bitmask of- -- 'Vulkan.Core10.Enums.PipelineDepthStencilStateCreateFlagBits.PipelineDepthStencilStateCreateFlagBits'- -- specifying additional depth\/stencil state information.- flags :: PipelineDepthStencilStateCreateFlags- , -- | @depthTestEnable@ controls whether- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#fragops-depth depth testing>- -- is enabled.- depthTestEnable :: Bool- , -- | @depthWriteEnable@ controls whether- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#fragops-depth-write depth writes>- -- are enabled when @depthTestEnable@ is- -- 'Vulkan.Core10.FundamentalTypes.TRUE'. Depth writes are always disabled- -- when @depthTestEnable@ is 'Vulkan.Core10.FundamentalTypes.FALSE'.- depthWriteEnable :: Bool- , -- | @depthCompareOp@ is the comparison operator used in the- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#fragops-depth depth test>.- depthCompareOp :: CompareOp- , -- | @depthBoundsTestEnable@ controls whether- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#fragops-dbt depth bounds testing>- -- is enabled.- depthBoundsTestEnable :: Bool- , -- | @stencilTestEnable@ controls whether- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#fragops-stencil stencil testing>- -- is enabled.- stencilTestEnable :: Bool- , -- | @front@ and @back@ control the parameters of the- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#fragops-stencil stencil test>.- front :: StencilOpState- , -- No documentation found for Nested "VkPipelineDepthStencilStateCreateInfo" "back"- back :: StencilOpState- , -- | @minDepthBounds@ is the minimum depth bound used in the- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#fragops-dbt depth bounds test>.- minDepthBounds :: Float- , -- | @maxDepthBounds@ is the maximum depth bound used in the- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#fragops-dbt depth bounds test>.- maxDepthBounds :: Float- }- deriving (Typeable)-#if defined(GENERIC_INSTANCES)-deriving instance Generic (PipelineDepthStencilStateCreateInfo)-#endif-deriving instance Show PipelineDepthStencilStateCreateInfo--instance ToCStruct PipelineDepthStencilStateCreateInfo where- withCStruct x f = allocaBytes 104 $ \p -> pokeCStruct p x (f p)- pokeCStruct p PipelineDepthStencilStateCreateInfo{..} f = do- poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO)- poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)- poke ((p `plusPtr` 16 :: Ptr PipelineDepthStencilStateCreateFlags)) (flags)- poke ((p `plusPtr` 20 :: Ptr Bool32)) (boolToBool32 (depthTestEnable))- poke ((p `plusPtr` 24 :: Ptr Bool32)) (boolToBool32 (depthWriteEnable))- poke ((p `plusPtr` 28 :: Ptr CompareOp)) (depthCompareOp)- poke ((p `plusPtr` 32 :: Ptr Bool32)) (boolToBool32 (depthBoundsTestEnable))- poke ((p `plusPtr` 36 :: Ptr Bool32)) (boolToBool32 (stencilTestEnable))- poke ((p `plusPtr` 40 :: Ptr StencilOpState)) (front)- poke ((p `plusPtr` 68 :: Ptr StencilOpState)) (back)- poke ((p `plusPtr` 96 :: Ptr CFloat)) (CFloat (minDepthBounds))- poke ((p `plusPtr` 100 :: Ptr CFloat)) (CFloat (maxDepthBounds))- f- cStructSize = 104- cStructAlignment = 8- pokeZeroCStruct p f = do- poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO)- poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)- poke ((p `plusPtr` 20 :: Ptr Bool32)) (boolToBool32 (zero))- poke ((p `plusPtr` 24 :: Ptr Bool32)) (boolToBool32 (zero))- poke ((p `plusPtr` 28 :: Ptr CompareOp)) (zero)- poke ((p `plusPtr` 32 :: Ptr Bool32)) (boolToBool32 (zero))- poke ((p `plusPtr` 36 :: Ptr Bool32)) (boolToBool32 (zero))- poke ((p `plusPtr` 40 :: Ptr StencilOpState)) (zero)- poke ((p `plusPtr` 68 :: Ptr StencilOpState)) (zero)- poke ((p `plusPtr` 96 :: Ptr CFloat)) (CFloat (zero))- poke ((p `plusPtr` 100 :: Ptr CFloat)) (CFloat (zero))- f--instance FromCStruct PipelineDepthStencilStateCreateInfo where- peekCStruct p = do- flags <- peek @PipelineDepthStencilStateCreateFlags ((p `plusPtr` 16 :: Ptr PipelineDepthStencilStateCreateFlags))- depthTestEnable <- peek @Bool32 ((p `plusPtr` 20 :: Ptr Bool32))- depthWriteEnable <- peek @Bool32 ((p `plusPtr` 24 :: Ptr Bool32))- depthCompareOp <- peek @CompareOp ((p `plusPtr` 28 :: Ptr CompareOp))- depthBoundsTestEnable <- peek @Bool32 ((p `plusPtr` 32 :: Ptr Bool32))- stencilTestEnable <- peek @Bool32 ((p `plusPtr` 36 :: Ptr Bool32))- front <- peekCStruct @StencilOpState ((p `plusPtr` 40 :: Ptr StencilOpState))- back <- peekCStruct @StencilOpState ((p `plusPtr` 68 :: Ptr StencilOpState))- minDepthBounds <- peek @CFloat ((p `plusPtr` 96 :: Ptr CFloat))- maxDepthBounds <- peek @CFloat ((p `plusPtr` 100 :: Ptr CFloat))- pure $ PipelineDepthStencilStateCreateInfo- flags (bool32ToBool depthTestEnable) (bool32ToBool depthWriteEnable) depthCompareOp (bool32ToBool depthBoundsTestEnable) (bool32ToBool stencilTestEnable) front back (coerce @CFloat @Float minDepthBounds) (coerce @CFloat @Float maxDepthBounds)--instance Storable PipelineDepthStencilStateCreateInfo where- sizeOf ~_ = 104- alignment ~_ = 8- peek = peekCStruct- poke ptr poked = pokeCStruct ptr poked (pure ())--instance Zero PipelineDepthStencilStateCreateInfo where- zero = PipelineDepthStencilStateCreateInfo- zero- zero- zero- zero- zero- zero- zero- zero- zero- zero----- | VkGraphicsPipelineCreateInfo - Structure specifying parameters of a--- newly created graphics pipeline------ = Description------ The parameters @basePipelineHandle@ and @basePipelineIndex@ are--- described in more detail in--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-pipeline-derivatives Pipeline Derivatives>.------ If any shader stage fails to compile, the compile log will be reported--- back to the application, and--- 'Vulkan.Core10.Enums.Result.ERROR_INVALID_SHADER_NV' will be generated.------ The state required for a graphics pipeline is divided into--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-vertex-input vertex input state>,--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>,--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>,--- and--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-output fragment output state>.------ Vertex input state is defined by:------ - 'PipelineVertexInputStateCreateInfo'------ - 'PipelineInputAssemblyStateCreateInfo'------ Pre-rasterization shader state is defined by:------ - 'PipelineShaderStageCreateInfo' entries for:------ - Vertex shaders------ - Tessellation control shaders------ - Tessellation evaluation shaders------ - Geometry shaders------ - Task shaders------ - Mesh shaders------ - Within the 'Vulkan.Core10.Handles.PipelineLayout', all descriptor--- sets with pre-rasterization shader bindings if--- 'Vulkan.Core10.Enums.PipelineLayoutCreateFlagBits.PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT'--- was specified.------ - If--- 'Vulkan.Core10.Enums.PipelineLayoutCreateFlagBits.PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT'--- was not specified, the full pipeline layout must be specified.------ - 'PipelineViewportStateCreateInfo'------ - 'PipelineRasterizationStateCreateInfo'------ - 'PipelineTessellationStateCreateInfo'------ - 'Vulkan.Core10.Handles.RenderPass' and @subpass@ parameter------ - The @viewMask@ parameter of--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'--- (formats are ignored)------ - 'Vulkan.Extensions.VK_EXT_discard_rectangles.PipelineDiscardRectangleStateCreateInfoEXT'------ - 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.PipelineFragmentShadingRateStateCreateInfoKHR'------ Fragment shader state is defined by:------ - A 'PipelineShaderStageCreateInfo' entry for the fragment shader------ - Within the 'Vulkan.Core10.Handles.PipelineLayout', all descriptor--- sets with fragment shader bindings if--- 'Vulkan.Core10.Enums.PipelineLayoutCreateFlagBits.PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT'--- was specified.------ - If--- 'Vulkan.Core10.Enums.PipelineLayoutCreateFlagBits.PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT'--- was not specified, the full pipeline layout must be specified.------ - 'PipelineMultisampleStateCreateInfo' if--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-sampleshading sample shading>--- is enabled or @renderpass@ is not--- 'Vulkan.Core10.APIConstants.NULL_HANDLE'------ - 'PipelineDepthStencilStateCreateInfo'------ - 'Vulkan.Core10.Handles.RenderPass' and @subpass@ parameter------ - The @viewMask@ parameter of--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'--- (formats are ignored)------ - 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.PipelineFragmentShadingRateStateCreateInfoKHR'------ - 'Vulkan.Extensions.VK_NV_fragment_shading_rate_enums.PipelineFragmentShadingRateEnumStateCreateInfoNV'------ - 'Vulkan.Extensions.VK_NV_representative_fragment_test.PipelineRepresentativeFragmentTestStateCreateInfoNV'------ - Inclusion\/omission of the--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR'--- flag------ - Inclusion\/omission of the--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT'--- flag------ Fragment output state is defined by:------ - 'PipelineColorBlendStateCreateInfo'------ - 'Vulkan.Core10.Handles.RenderPass' and @subpass@ parameter------ - 'PipelineMultisampleStateCreateInfo'------ - 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'------ - 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'------ - 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'------ A complete graphics pipeline always includes--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>,--- with other subsets included depending on that state. If the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>--- includes a vertex shader, then--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-vertex-input vertex input state>--- is included in a complete graphics pipeline. If the value of--- 'PipelineRasterizationStateCreateInfo'::@rasterizerDiscardEnable@ in the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>--- is 'Vulkan.Core10.FundamentalTypes.FALSE' or the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE'--- dynamic state is enabled--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>--- and--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-output fragment output interface state>--- is included in a complete graphics pipeline.------ If different subsets are linked together with pipeline layouts created--- with--- 'Vulkan.Core10.Enums.PipelineLayoutCreateFlagBits.PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT',--- the final effective pipeline layout is effectively the union of the--- linked pipeline layouts. When binding descriptor sets for this pipeline,--- the pipeline layout used /must/ be compatible with this union. This--- pipeline layout /can/ be overridden when linking with--- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_LINK_TIME_OPTIMIZATION_BIT_EXT';--- by providing a 'Vulkan.Core10.Handles.PipelineLayout' that is compatible--- with this union other than--- 'Vulkan.Core10.Enums.PipelineLayoutCreateFlagBits.PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT'.------ == Valid Usage------ - #VUID-VkGraphicsPipelineCreateInfo-flags-00722# If @flags@ contains--- the--- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DERIVATIVE_BIT'--- flag, and @basePipelineIndex@ is -1, @basePipelineHandle@ /must/ be--- a valid handle to a graphics 'Vulkan.Core10.Handles.Pipeline'------ - #VUID-VkGraphicsPipelineCreateInfo-flags-00723# If @flags@ contains--- the--- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DERIVATIVE_BIT'--- flag, and @basePipelineHandle@ is--- 'Vulkan.Core10.APIConstants.NULL_HANDLE', @basePipelineIndex@ /must/--- be a valid index into the calling command’s @pCreateInfos@ parameter------ - #VUID-VkGraphicsPipelineCreateInfo-flags-00724# If @flags@ contains--- the--- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DERIVATIVE_BIT'--- flag, and @basePipelineIndex@ is not -1, @basePipelineHandle@ /must/--- be 'Vulkan.Core10.APIConstants.NULL_HANDLE'------ - #VUID-VkGraphicsPipelineCreateInfo-flags-00725# If @flags@ contains--- the--- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DERIVATIVE_BIT'--- flag, and @basePipelineHandle@ is not--- 'Vulkan.Core10.APIConstants.NULL_HANDLE', @basePipelineIndex@ /must/--- be -1------ - #VUID-VkGraphicsPipelineCreateInfo-stage-00726# The @stage@ member--- of each element of @pStages@ /must/ be unique------ - #VUID-VkGraphicsPipelineCreateInfo-pStages-02095# If the pipeline is--- being created with--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>--- the geometric shader stages provided in @pStages@ /must/ be either--- from the mesh shading pipeline (@stage@ is--- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_NV'--- or--- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_NV')--- or from the primitive shading pipeline (@stage@ is--- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT',--- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_CONTROL_BIT',--- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT',--- or--- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT')------ - #VUID-VkGraphicsPipelineCreateInfo-stage-02096# If the pipeline is--- being created with--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>--- the @stage@ member of one element of @pStages@ /must/ be either--- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT' or--- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_NV'------ - #VUID-VkGraphicsPipelineCreateInfo-stage-00728# The @stage@ member--- of each element of @pStages@ /must/ not be--- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_COMPUTE_BIT'------ - #VUID-VkGraphicsPipelineCreateInfo-pStages-00729# If the pipeline is--- being created with--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>--- and @pStages@ includes a tessellation control shader stage, it--- /must/ include a tessellation evaluation shader stage------ - #VUID-VkGraphicsPipelineCreateInfo-pStages-00730# If the pipeline is--- being created with--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>--- and @pStages@ includes a tessellation evaluation shader stage, it--- /must/ include a tessellation control shader stage------ - #VUID-VkGraphicsPipelineCreateInfo-pStages-00731# If the pipeline is--- being created with--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>--- and @pStages@ includes a tessellation control shader stage and a--- tessellation evaluation shader stage, @pTessellationState@ /must/ be--- a valid pointer to a valid 'PipelineTessellationStateCreateInfo'--- structure------ - #VUID-VkGraphicsPipelineCreateInfo-pStages-00732# If the pipeline is--- being created with--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>--- and @pStages@ includes tessellation shader stages, the shader code--- of at least one stage /must/ contain an @OpExecutionMode@--- instruction specifying the type of subdivision in the pipeline------ - #VUID-VkGraphicsPipelineCreateInfo-pStages-00733# If the pipeline is--- being created with--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>--- and @pStages@ includes tessellation shader stages, and the shader--- code of both stages contain an @OpExecutionMode@ instruction--- specifying the type of subdivision in the pipeline, they /must/ both--- specify the same subdivision mode------ - #VUID-VkGraphicsPipelineCreateInfo-pStages-00734# If the pipeline is--- being created with--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>--- and @pStages@ includes tessellation shader stages, the shader code--- of at least one stage /must/ contain an @OpExecutionMode@--- instruction specifying the output patch size in the pipeline------ - #VUID-VkGraphicsPipelineCreateInfo-pStages-00735# If the pipeline is--- being created with--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>--- and @pStages@ includes tessellation shader stages, and the shader--- code of both contain an @OpExecutionMode@ instruction specifying the--- out patch size in the pipeline, they /must/ both specify the same--- patch size------ - #VUID-VkGraphicsPipelineCreateInfo-pStages-00736# If the pipeline is--- being created with--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>--- and @pStages@ includes tessellation shader stages, the @topology@--- member of @pInputAssembly@ /must/ be--- 'Vulkan.Core10.Enums.PrimitiveTopology.PRIMITIVE_TOPOLOGY_PATCH_LIST'------ - #VUID-VkGraphicsPipelineCreateInfo-topology-00737# If the pipeline--- is being created with--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>--- and the @topology@ member of @pInputAssembly@ is--- 'Vulkan.Core10.Enums.PrimitiveTopology.PRIMITIVE_TOPOLOGY_PATCH_LIST',--- @pStages@ /must/ include tessellation shader stages------ - #VUID-VkGraphicsPipelineCreateInfo-pStages-00738# If the pipeline is--- being created with--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>--- and @pStages@ includes a geometry shader stage, and does not include--- any tessellation shader stages, its shader code /must/ contain an--- @OpExecutionMode@ instruction specifying an input primitive type--- that is--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-geometry-execution compatible>--- with the primitive topology specified in @pInputAssembly@------ - #VUID-VkGraphicsPipelineCreateInfo-pStages-00739# If the pipeline is--- being created with--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>--- and @pStages@ includes a geometry shader stage, and also includes--- tessellation shader stages, its shader code /must/ contain an--- @OpExecutionMode@ instruction specifying an input primitive type--- that is--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-geometry-execution compatible>--- with the primitive topology that is output by the tessellation--- stages------ - #VUID-VkGraphicsPipelineCreateInfo-pStages-00740# If the pipeline is--- being created with--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>--- and--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>,--- it includes both a fragment shader and a geometry shader, and the--- fragment shader code reads from an input variable that is decorated--- with @PrimitiveId@, then the geometry shader code /must/ write to a--- matching output variable, decorated with @PrimitiveId@, in all--- execution paths------ - #VUID-VkGraphicsPipelineCreateInfo-PrimitiveId-06264# If the--- pipeline is being created with--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>,--- it includes a mesh shader and the fragment shader code reads from an--- input variable that is decorated with @PrimitiveId@, then the mesh--- shader code /must/ write to a matching output variable, decorated--- with @PrimitiveId@, in all execution paths------ - #VUID-VkGraphicsPipelineCreateInfo-renderPass-06038# If @renderPass@--- is not 'Vulkan.Core10.APIConstants.NULL_HANDLE' and the pipeline is--- being created with--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>--- the fragment shader /must/ not read from any input attachment that--- is defined as 'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED' in--- @subpass@------ - #VUID-VkGraphicsPipelineCreateInfo-pStages-00742# If the pipeline is--- being created with--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>--- and multiple pre-rasterization shader stages are included in--- @pStages@, the shader code for the entry points identified by those--- @pStages@ and the rest of the state identified by this structure--- /must/ adhere to the pipeline linking rules described in the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces Shader Interfaces>--- chapter------ - #VUID-VkGraphicsPipelineCreateInfo-None-04889# If the pipeline is--- being created with--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>--- and--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>,--- the fragment shader and last--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader stage>--- and any relevant state /must/ adhere to the pipeline linking rules--- described in the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces Shader Interfaces>--- chapter------ - #VUID-VkGraphicsPipelineCreateInfo-renderPass-06039# If @renderPass@--- is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the pipeline is--- being created with--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>,--- and @subpass@ uses a depth\/stencil attachment in @renderPass@ with--- a read-only layout for the depth aspect in the--- 'Vulkan.Core10.Pass.AttachmentReference' defined by @subpass@, the--- @depthWriteEnable@ member of @pDepthStencilState@ /must/ be--- 'Vulkan.Core10.FundamentalTypes.FALSE'------ - #VUID-VkGraphicsPipelineCreateInfo-renderPass-06040# If @renderPass@--- is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the pipeline is--- being created with--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>,--- and @subpass@ uses a depth\/stencil attachment in @renderPass@ with--- a read-only layout for the stencil aspect in the--- 'Vulkan.Core10.Pass.AttachmentReference' defined by @subpass@, the--- @failOp@, @passOp@ and @depthFailOp@ members of each of the @front@--- and @back@ members of @pDepthStencilState@ /must/ be--- 'Vulkan.Core10.Enums.StencilOp.STENCIL_OP_KEEP'------ - #VUID-VkGraphicsPipelineCreateInfo-renderPass-06041# If @renderPass@--- is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', and the pipeline is--- being created with--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-output fragment output interface state>,--- then for each color attachment in the subpass, if the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#potential-format-features potential format features>--- of the format of the corresponding attachment description do not--- contain--- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT',--- then the @blendEnable@ member of the corresponding element of the--- @pAttachments@ member of @pColorBlendState@ /must/ be--- 'Vulkan.Core10.FundamentalTypes.FALSE'------ - #VUID-VkGraphicsPipelineCreateInfo-renderPass-06042# If @renderPass@--- is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', and the pipeline is--- being created with--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-output fragment output interface state>,--- and the subpass uses color attachments, the @attachmentCount@ member--- of @pColorBlendState@ /must/ be equal to the @colorAttachmentCount@--- used to create @subpass@------ - #VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04130# If the--- pipeline is being created with--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>,--- and no element of the @pDynamicStates@ member of @pDynamicState@ is--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT' or--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT',--- the @pViewports@ member of @pViewportState@ /must/ be a valid--- pointer to an array of @pViewportState->viewportCount@ valid--- 'Viewport' structures------ - #VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04131# If the--- pipeline is being created with--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>,--- and no element of the @pDynamicStates@ member of @pDynamicState@ is--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR' or--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT',--- the @pScissors@ member of @pViewportState@ /must/ be a valid pointer--- to an array of @pViewportState->scissorCount@--- 'Vulkan.Core10.FundamentalTypes.Rect2D' structures------ - #VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-00749# If the--- pipeline is being created with--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>,--- and the wide lines feature is not enabled, and no element of the--- @pDynamicStates@ member of @pDynamicState@ is--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_WIDTH', the--- @lineWidth@ member of @pRasterizationState@ /must/ be @1.0@------ - #VUID-VkGraphicsPipelineCreateInfo-rasterizerDiscardEnable-00750# If--- the pipeline is being created with--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>,--- and the @rasterizerDiscardEnable@ member of @pRasterizationState@ is--- 'Vulkan.Core10.FundamentalTypes.FALSE', @pViewportState@ /must/ be a--- valid pointer to a valid 'PipelineViewportStateCreateInfo' structure------ - #VUID-VkGraphicsPipelineCreateInfo-pViewportState-04892# If the--- pipeline is being created with--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>,--- and the graphics pipeline state was created with the--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE'--- dynamic state enabled, @pViewportState@ /must/ be a valid pointer to--- a valid 'PipelineViewportStateCreateInfo' structure------ - #VUID-VkGraphicsPipelineCreateInfo-rasterizerDiscardEnable-00751# If--- the pipeline is being created with--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-output fragment output interface state>,--- @pMultisampleState@ /must/ be a valid pointer to a valid--- 'PipelineMultisampleStateCreateInfo' structure------ - #VUID-VkGraphicsPipelineCreateInfo-renderPass-06043# If @renderPass@--- is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the pipeline is--- being created with--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>,--- and @subpass@ uses a depth\/stencil attachment, @pDepthStencilState@--- /must/ be a valid pointer to a valid--- 'PipelineDepthStencilStateCreateInfo' structure------ - #VUID-VkGraphicsPipelineCreateInfo-renderPass-06044# If @renderPass@--- is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the pipeline is--- being created with--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-output fragment output interface state>,--- and @subpass@ uses color attachments, @pColorBlendState@ /must/ be a--- valid pointer to a valid 'PipelineColorBlendStateCreateInfo'--- structure------ - #VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-00754# If the--- pipeline is being created with--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>,--- the depth bias clamping feature is not enabled, no element of the--- @pDynamicStates@ member of @pDynamicState@ is--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BIAS', and the--- @depthBiasEnable@ member of @pRasterizationState@ is--- 'Vulkan.Core10.FundamentalTypes.TRUE', the @depthBiasClamp@ member--- of @pRasterizationState@ /must/ be @0.0@------ - #VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-02510# If the--- pipeline is being created with--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>,--- and the @VK_EXT_depth_range_unrestricted@ extension is not enabled--- and no element of the @pDynamicStates@ member of @pDynamicState@ is--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BOUNDS', and--- the @depthBoundsTestEnable@ member of @pDepthStencilState@ is--- 'Vulkan.Core10.FundamentalTypes.TRUE', the @minDepthBounds@ and--- @maxDepthBounds@ members of @pDepthStencilState@ /must/ be between--- @0.0@ and @1.0@, inclusive------ - #VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-01521# If the--- pipeline is being created with--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>--- or--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-output fragment output interface state>,--- and no element of the @pDynamicStates@ member of @pDynamicState@ is--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT',--- and the @sampleLocationsEnable@ member of a--- 'Vulkan.Extensions.VK_EXT_sample_locations.PipelineSampleLocationsStateCreateInfoEXT'--- structure included in the @pNext@ chain of @pMultisampleState@ is--- 'Vulkan.Core10.FundamentalTypes.TRUE',--- @sampleLocationsInfo.sampleLocationGridSize.width@ /must/ evenly--- divide--- 'Vulkan.Extensions.VK_EXT_sample_locations.MultisamplePropertiesEXT'::@sampleLocationGridSize.width@--- as returned by--- 'Vulkan.Extensions.VK_EXT_sample_locations.getPhysicalDeviceMultisamplePropertiesEXT'--- with a @samples@ parameter equaling @rasterizationSamples@------ - #VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-01522# If the--- pipeline is being created with--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>--- or--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-output fragment output interface state>,--- and no element of the @pDynamicStates@ member of @pDynamicState@ is--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT',--- and the @sampleLocationsEnable@ member of a--- 'Vulkan.Extensions.VK_EXT_sample_locations.PipelineSampleLocationsStateCreateInfoEXT'--- structure included in the @pNext@ chain of @pMultisampleState@ is--- 'Vulkan.Core10.FundamentalTypes.TRUE',--- @sampleLocationsInfo.sampleLocationGridSize.height@ /must/ evenly--- divide--- 'Vulkan.Extensions.VK_EXT_sample_locations.MultisamplePropertiesEXT'::@sampleLocationGridSize.height@--- as returned by--- 'Vulkan.Extensions.VK_EXT_sample_locations.getPhysicalDeviceMultisamplePropertiesEXT'--- with a @samples@ parameter equaling @rasterizationSamples@------ - #VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-01523# If the--- pipeline is being created with--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>--- or--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-output fragment output interface state>,--- and no element of the @pDynamicStates@ member of @pDynamicState@ is--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT',--- and the @sampleLocationsEnable@ member of a--- 'Vulkan.Extensions.VK_EXT_sample_locations.PipelineSampleLocationsStateCreateInfoEXT'--- structure included in the @pNext@ chain of @pMultisampleState@ is--- 'Vulkan.Core10.FundamentalTypes.TRUE',--- @sampleLocationsInfo.sampleLocationsPerPixel@ /must/ equal--- @rasterizationSamples@------ - #VUID-VkGraphicsPipelineCreateInfo-sampleLocationsEnable-01524# If--- the pipeline is being created with--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>,--- and the @sampleLocationsEnable@ member of a--- 'Vulkan.Extensions.VK_EXT_sample_locations.PipelineSampleLocationsStateCreateInfoEXT'--- structure included in the @pNext@ chain of @pMultisampleState@ is--- 'Vulkan.Core10.FundamentalTypes.TRUE', the fragment shader code--- /must/ not statically use the extended instruction--- @InterpolateAtSample@------ - #VUID-VkGraphicsPipelineCreateInfo-layout-00756# @layout@ /must/ be--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-pipelinelayout-consistency consistent>--- with all shaders specified in @pStages@------ - #VUID-VkGraphicsPipelineCreateInfo-subpass-00757# If the pipeline is--- being created with--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-output fragment output interface state>,--- and neither the @VK_AMD_mixed_attachment_samples@ nor the--- @VK_NV_framebuffer_mixed_samples@ extensions are enabled, and if--- @subpass@ uses color and\/or depth\/stencil attachments, then the--- @rasterizationSamples@ member of @pMultisampleState@ /must/ be the--- same as the sample count for those subpass attachments------ - #VUID-VkGraphicsPipelineCreateInfo-subpass-01505# If the pipeline is--- being created with--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-output fragment output interface state>,--- and the @VK_AMD_mixed_attachment_samples@ extension is enabled, and--- if @subpass@ uses color and\/or depth\/stencil attachments, then the--- @rasterizationSamples@ member of @pMultisampleState@ /must/ equal--- the maximum of the sample counts of those subpass attachments------ - #VUID-VkGraphicsPipelineCreateInfo-subpass-01411# If the pipeline is--- being created with--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-output fragment output interface state>,--- and the @VK_NV_framebuffer_mixed_samples@ extension is enabled, and--- if @subpass@ has a depth\/stencil attachment and depth test, stencil--- test, or depth bounds test are enabled, then the--- @rasterizationSamples@ member of @pMultisampleState@ /must/ be the--- same as the sample count of the depth\/stencil attachment------ - #VUID-VkGraphicsPipelineCreateInfo-subpass-01412# If the pipeline is--- being created with--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-output fragment output interface state>,--- and the @VK_NV_framebuffer_mixed_samples@ extension is enabled, and--- if @subpass@ has any color attachments, then the--- @rasterizationSamples@ member of @pMultisampleState@ /must/ be--- greater than or equal to the sample count for those subpass--- attachments------ - #VUID-VkGraphicsPipelineCreateInfo-coverageReductionMode-02722# If--- the pipeline is being created with--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-output fragment output interface state>,--- and the @VK_NV_coverage_reduction_mode@ extension is enabled, the--- coverage reduction mode specified by--- 'Vulkan.Extensions.VK_NV_coverage_reduction_mode.PipelineCoverageReductionStateCreateInfoNV'::@coverageReductionMode@,--- the @rasterizationSamples@ member of @pMultisampleState@ and the--- sample counts for the color and depth\/stencil attachments (if the--- subpass has them) /must/ be a valid combination returned by--- 'Vulkan.Extensions.VK_NV_coverage_reduction_mode.getPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV'------ - #VUID-VkGraphicsPipelineCreateInfo-subpass-00758# If the pipeline is--- being created with--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-output fragment output interface state>,--- and @subpass@ does not use any color and\/or depth\/stencil--- attachments, then the @rasterizationSamples@ member of--- @pMultisampleState@ /must/ follow the rules for a--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-noattachments zero-attachment subpass>------ - #VUID-VkGraphicsPipelineCreateInfo-renderPass-06046# If @renderPass@--- is a valid renderPass, @subpass@ /must/ be a valid subpass within--- @renderPass@------ - #VUID-VkGraphicsPipelineCreateInfo-renderPass-06047# If @renderPass@--- is a valid renderPass, the pipeline is being created with--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>,--- and the @renderPass@ has multiview enabled and @subpass@ has more--- than one bit set in the view mask and @multiviewTessellationShader@--- is not enabled, then @pStages@ /must/ not include tessellation--- shaders------ - #VUID-VkGraphicsPipelineCreateInfo-renderPass-06048# If @renderPass@--- is a valid renderPass, the pipeline is being created with--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>,--- and the @renderPass@ has multiview enabled and @subpass@ has more--- than one bit set in the view mask and @multiviewGeometryShader@ is--- not enabled, then @pStages@ /must/ not include a geometry shader------ - #VUID-VkGraphicsPipelineCreateInfo-renderPass-06049# If @renderPass@--- is a valid renderPass, the pipeline is being created with--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>,--- and the @renderPass@ has multiview enabled and @subpass@ has more--- than one bit set in the view mask, shaders in the pipeline /must/--- not write to the @Layer@ built-in output------ - #VUID-VkGraphicsPipelineCreateInfo-renderPass-06050# If @renderPass@--- is a valid renderPass and the pipeline is being created with--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>,--- and the @renderPass@ has multiview enabled, then all shaders /must/--- not include variables decorated with the @Layer@ built-in decoration--- in their interfaces------ - #VUID-VkGraphicsPipelineCreateInfo-flags-00764# @flags@ /must/ not--- contain the--- 'Vulkan.Core11.Promoted_From_VK_KHR_device_group.PIPELINE_CREATE_DISPATCH_BASE'--- flag------ - #VUID-VkGraphicsPipelineCreateInfo-pStages-01565# If the pipeline is--- being created with--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>--- and an input attachment was referenced by an @aspectMask@ at--- @renderPass@ creation time, the fragment shader /must/ only read--- from the aspects that were specified for that input attachment------ - #VUID-VkGraphicsPipelineCreateInfo-layout-01688# The number of--- resources in @layout@ accessible to each shader stage that is used--- by the pipeline /must/ be less than or equal to--- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxPerStageResources@------ - #VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-01715# If the--- pipeline is being created with--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>,--- and no element of the @pDynamicStates@ member of @pDynamicState@ is--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_W_SCALING_NV',--- and the @viewportWScalingEnable@ member of a--- 'Vulkan.Extensions.VK_NV_clip_space_w_scaling.PipelineViewportWScalingStateCreateInfoNV'--- structure, included in the @pNext@ chain of @pViewportState@, is--- 'Vulkan.Core10.FundamentalTypes.TRUE', the @pViewportWScalings@--- member of the--- 'Vulkan.Extensions.VK_NV_clip_space_w_scaling.PipelineViewportWScalingStateCreateInfoNV'--- /must/ be a pointer to an array of--- 'Vulkan.Extensions.VK_NV_clip_space_w_scaling.PipelineViewportWScalingStateCreateInfoNV'::@viewportCount@--- valid--- 'Vulkan.Extensions.VK_NV_clip_space_w_scaling.ViewportWScalingNV'--- structures------ - #VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04056# If the--- pipeline is being created with--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>,--- and no element of the @pDynamicStates@ member of @pDynamicState@ is--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV',--- and if @pViewportState->pNext@ chain includes a--- 'Vulkan.Extensions.VK_NV_scissor_exclusive.PipelineViewportExclusiveScissorStateCreateInfoNV'--- structure, and if its @exclusiveScissorCount@ member is not @0@,--- then its @pExclusiveScissors@ member /must/ be a valid pointer to an--- array of @exclusiveScissorCount@--- 'Vulkan.Core10.FundamentalTypes.Rect2D' structures------ - #VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04057# If the--- pipeline is being created with--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>,--- and no element of the @pDynamicStates@ member of @pDynamicState@ is--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV',--- and if @pViewportState->pNext@ chain includes a--- 'Vulkan.Extensions.VK_NV_shading_rate_image.PipelineViewportShadingRateImageStateCreateInfoNV'--- structure, then its @pShadingRatePalettes@ member /must/ be a valid--- pointer to an array of @viewportCount@ valid--- 'Vulkan.Extensions.VK_NV_shading_rate_image.ShadingRatePaletteNV'--- structures------ - #VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04058# If the--- pipeline is being created with--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>,--- and no element of the @pDynamicStates@ member of @pDynamicState@ is--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DISCARD_RECTANGLE_EXT',--- and if @pNext@ chain includes a--- 'Vulkan.Extensions.VK_EXT_discard_rectangles.PipelineDiscardRectangleStateCreateInfoEXT'--- structure, and if its @discardRectangleCount@ member is not @0@,--- then its @pDiscardRectangles@ member /must/ be a valid pointer to an--- array of @discardRectangleCount@--- 'Vulkan.Core10.FundamentalTypes.Rect2D' structures------ - #VUID-VkGraphicsPipelineCreateInfo-pVertexInputState-04910# If the--- pipeline is being created with--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-vertex-input vertex input state>,--- and--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT' is--- not set, @pVertexInputState@ /must/ be a valid pointer to a valid--- 'PipelineVertexInputStateCreateInfo' structure------ - #VUID-VkGraphicsPipelineCreateInfo-pStages-02098# If the pipeline is--- being created with--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-vertex-input vertex input state>,--- @pInputAssemblyState@ /must/ be a valid pointer to a valid--- 'PipelineInputAssemblyStateCreateInfo' structure------ - #VUID-VkGraphicsPipelineCreateInfo-pStages-02317# If the pipeline is--- being created with--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>,--- the @Xfb@ execution mode /can/ be specified by no more than one--- shader stage in @pStages@------ - #VUID-VkGraphicsPipelineCreateInfo-pStages-02318# If the pipeline is--- being created with--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>,--- and any shader stage in @pStages@ specifies @Xfb@ execution mode it--- /must/ be the last--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader stage>------ - #VUID-VkGraphicsPipelineCreateInfo-rasterizationStream-02319# If the--- pipeline is being created with--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>,--- and a--- 'Vulkan.Extensions.VK_EXT_transform_feedback.PipelineRasterizationStateStreamCreateInfoEXT'::@rasterizationStream@--- value other than zero is specified, all variables in the output--- interface of the entry point being compiled decorated with--- @Position@, @PointSize@, @ClipDistance@, or @CullDistance@ /must/ be--- decorated with identical @Stream@ values that match the--- @rasterizationStream@------ - #VUID-VkGraphicsPipelineCreateInfo-rasterizationStream-02320# If the--- pipeline is being created with--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>,--- and--- 'Vulkan.Extensions.VK_EXT_transform_feedback.PipelineRasterizationStateStreamCreateInfoEXT'::@rasterizationStream@--- is zero, or not specified, all variables in the output interface of--- the entry point being compiled decorated with @Position@,--- @PointSize@, @ClipDistance@, or @CullDistance@ /must/ be decorated--- with a @Stream@ value of zero, or /must/ not specify the @Stream@--- decoration------ - #VUID-VkGraphicsPipelineCreateInfo-geometryStreams-02321# If the--- pipeline is being created with--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>,--- and the last--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader stage>--- is a geometry shader, and that geometry shader uses the--- @GeometryStreams@ capability, then--- 'Vulkan.Extensions.VK_EXT_transform_feedback.PhysicalDeviceTransformFeedbackFeaturesEXT'::@geometryStreams@--- feature /must/ be enabled------ - #VUID-VkGraphicsPipelineCreateInfo-None-02322# If the pipeline is--- being created with--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>,--- and there are any mesh shader stages in the pipeline there /must/--- not be any shader stage in the pipeline with a @Xfb@ execution mode------ - #VUID-VkGraphicsPipelineCreateInfo-lineRasterizationMode-02766# If--- the pipeline is being created with--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>--- and at least one of--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-output fragment output interface state>--- or--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>,--- and @pMultisampleState@ is not @NULL@, the @lineRasterizationMode@--- member of a--- 'Vulkan.Extensions.VK_EXT_line_rasterization.PipelineRasterizationLineStateCreateInfoEXT'--- structure included in the @pNext@ chain of @pRasterizationState@ is--- 'Vulkan.Extensions.VK_EXT_line_rasterization.LINE_RASTERIZATION_MODE_BRESENHAM_EXT'--- or--- 'Vulkan.Extensions.VK_EXT_line_rasterization.LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT',--- then the @alphaToCoverageEnable@, @alphaToOneEnable@, and--- @sampleShadingEnable@ members of @pMultisampleState@ /must/ all be--- 'Vulkan.Core10.FundamentalTypes.FALSE'------ - #VUID-VkGraphicsPipelineCreateInfo-stippledLineEnable-02767# If the--- pipeline is being created with--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>,--- the @stippledLineEnable@ member of--- 'Vulkan.Extensions.VK_EXT_line_rasterization.PipelineRasterizationLineStateCreateInfoEXT'--- is 'Vulkan.Core10.FundamentalTypes.TRUE', and no element of the--- @pDynamicStates@ member of @pDynamicState@ is--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_STIPPLE_EXT',--- then the @lineStippleFactor@ member of--- 'Vulkan.Extensions.VK_EXT_line_rasterization.PipelineRasterizationLineStateCreateInfoEXT'--- /must/ be in the range [1,256]------ - #VUID-VkGraphicsPipelineCreateInfo-flags-03372# @flags@ /must/ not--- include--- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR'------ - #VUID-VkGraphicsPipelineCreateInfo-flags-03373# @flags@ /must/ not--- include--- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR'------ - #VUID-VkGraphicsPipelineCreateInfo-flags-03374# @flags@ /must/ not--- include--- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR'------ - #VUID-VkGraphicsPipelineCreateInfo-flags-03375# @flags@ /must/ not--- include--- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR'------ - #VUID-VkGraphicsPipelineCreateInfo-flags-03376# @flags@ /must/ not--- include--- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR'------ - #VUID-VkGraphicsPipelineCreateInfo-flags-03377# @flags@ /must/ not--- include--- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHR'------ - #VUID-VkGraphicsPipelineCreateInfo-flags-03577# @flags@ /must/ not--- include--- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR'------ - #VUID-VkGraphicsPipelineCreateInfo-flags-04947# @flags@ /must/ not--- include--- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV'------ - #VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-03379# If the--- pipeline is being created with--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>,--- and--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'--- is included in the @pDynamicStates@ array then @viewportCount@--- /must/ be zero------ - #VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-03380# If the--- pipeline is being created with--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>,--- and--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT'--- is included in the @pDynamicStates@ array then @scissorCount@ /must/--- be zero------ - #VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04132# If the--- pipeline is being created with--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>,--- and--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'--- is included in the @pDynamicStates@ array then--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT' /must/ not--- be present------ - #VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04133# If the--- pipeline is being created with--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>,--- and--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT'--- is included in the @pDynamicStates@ array then--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR' /must/ not--- be present------ - #VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04869# If the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState2LogicOp extendedDynamicState2LogicOp>--- feature is not enabled, there /must/ be no element of the--- @pDynamicStates@ member of @pDynamicState@ set to--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LOGIC_OP_EXT'------ - #VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04870# If the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState2PatchControlPoints extendedDynamicState2PatchControlPoints>--- feature is not enabled, there /must/ be no element of the--- @pDynamicStates@ member of @pDynamicState@ set to--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT'------ - #VUID-VkGraphicsPipelineCreateInfo-flags-02877# If @flags@ includes--- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV',--- then the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-deviceGeneratedCommands ::deviceGeneratedCommands>--- feature /must/ be enabled------ - #VUID-VkGraphicsPipelineCreateInfo-flags-02966# If the pipeline is--- being created with--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>--- and @flags@ includes--- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV',--- then all stages /must/ not specify @Xfb@ execution mode------ - #VUID-VkGraphicsPipelineCreateInfo-pipelineCreationCacheControl-02878#--- If the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-pipelineCreationCacheControl pipelineCreationCacheControl>--- feature is not enabled, @flags@ /must/ not include--- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT'--- or--- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT'------ - #VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04494# If the--- pipeline is being created with--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>--- or--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>--- and--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR'--- is not included in @pDynamicState->pDynamicStates@,--- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.PipelineFragmentShadingRateStateCreateInfoKHR'::@fragmentSize.width@--- /must/ be greater than or equal to @1@------ - #VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04495# If the--- pipeline is being created with--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>--- or--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>--- and--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR'--- is not included in @pDynamicState->pDynamicStates@,--- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.PipelineFragmentShadingRateStateCreateInfoKHR'::@fragmentSize.height@--- /must/ be greater than or equal to @1@------ - #VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04496# If the--- pipeline is being created with--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>--- or--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>--- and--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR'--- is not included in @pDynamicState->pDynamicStates@,--- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.PipelineFragmentShadingRateStateCreateInfoKHR'::@fragmentSize.width@--- /must/ be a power-of-two value------ - #VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04497# If the--- pipeline is being created with--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>--- or--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>--- and--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR'--- is not included in @pDynamicState->pDynamicStates@,--- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.PipelineFragmentShadingRateStateCreateInfoKHR'::@fragmentSize.height@--- /must/ be a power-of-two value------ - #VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04498# If the--- pipeline is being created with--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>--- or--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>--- and--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR'--- is not included in @pDynamicState->pDynamicStates@,--- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.PipelineFragmentShadingRateStateCreateInfoKHR'::@fragmentSize.width@--- /must/ be less than or equal to @4@------ - #VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04499# If the--- pipeline is being created with--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>--- or--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>--- and--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR'--- is not included in @pDynamicState->pDynamicStates@,--- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.PipelineFragmentShadingRateStateCreateInfoKHR'::@fragmentSize.height@--- /must/ be less than or equal to @4@------ - #VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04500# If the--- pipeline is being created with--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>--- or--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>--- and--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR'--- is not included in @pDynamicState->pDynamicStates@, and the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-pipelineFragmentShadingRate pipelineFragmentShadingRate feature>--- is not enabled,--- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.PipelineFragmentShadingRateStateCreateInfoKHR'::@fragmentSize.width@--- and--- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.PipelineFragmentShadingRateStateCreateInfoKHR'::@fragmentSize.height@--- /must/ both be equal to @1@------ - #VUID-VkGraphicsPipelineCreateInfo-pDynamicState-06567# If the--- pipeline is being created with--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>--- or--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>--- and--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR'--- is not included in @pDynamicState->pDynamicStates@,--- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.PipelineFragmentShadingRateStateCreateInfoKHR'::@combinerOps@[0]--- /must/ be a valid--- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.FragmentShadingRateCombinerOpKHR'--- value------ - #VUID-VkGraphicsPipelineCreateInfo-pDynamicState-06568# If the--- pipeline is being created with--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>--- or--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>--- and--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR'--- is not included in @pDynamicState->pDynamicStates@,--- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.PipelineFragmentShadingRateStateCreateInfoKHR'::@combinerOps@[1]--- /must/ be a valid--- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.FragmentShadingRateCombinerOpKHR'--- value------ - #VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04501# If the--- pipeline is being created with--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>--- or--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>--- and--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR'--- is not included in @pDynamicState->pDynamicStates@, and the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-primitiveFragmentShadingRate primitiveFragmentShadingRate feature>--- is not enabled,--- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.PipelineFragmentShadingRateStateCreateInfoKHR'::@combinerOps@[0]--- /must/ be--- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR'------ - #VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04502# If the--- pipeline is being created with--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>--- or--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>--- and--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR'--- is not included in @pDynamicState->pDynamicStates@, and the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-attachmentFragmentShadingRate attachmentFragmentShadingRate feature>--- is not enabled,--- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.PipelineFragmentShadingRateStateCreateInfoKHR'::@combinerOps@[1]--- /must/ be--- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR'------ - #VUID-VkGraphicsPipelineCreateInfo-primitiveFragmentShadingRateWithMultipleViewports-04503#--- If the pipeline is being created with--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>--- and the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-primitiveFragmentShadingRateWithMultipleViewports primitiveFragmentShadingRateWithMultipleViewports>--- limit is not supported,--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'--- is not included in @pDynamicState->pDynamicStates@, and--- 'PipelineViewportStateCreateInfo'::@viewportCount@ is greater than--- @1@, entry points specified in @pStages@ /must/ not write to the--- @PrimitiveShadingRateKHR@ built-in------ - #VUID-VkGraphicsPipelineCreateInfo-primitiveFragmentShadingRateWithMultipleViewports-04504#--- If the pipeline is being created with--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>--- and the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-primitiveFragmentShadingRateWithMultipleViewports primitiveFragmentShadingRateWithMultipleViewports>--- limit is not supported, and entry points specified in @pStages@--- write to the @ViewportIndex@ built-in, they /must/ not also write to--- the @PrimitiveShadingRateKHR@ built-in------ - #VUID-VkGraphicsPipelineCreateInfo-primitiveFragmentShadingRateWithMultipleViewports-04505#--- If the pipeline is being created with--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>--- and the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-primitiveFragmentShadingRateWithMultipleViewports primitiveFragmentShadingRateWithMultipleViewports>--- limit is not supported, and entry points specified in @pStages@--- write to the @ViewportMaskNV@ built-in, they /must/ not also write--- to the @PrimitiveShadingRateKHR@ built-in------ - #VUID-VkGraphicsPipelineCreateInfo-fragmentShadingRateNonTrivialCombinerOps-04506#--- If the pipeline is being created with--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>--- or--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>,--- the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-fragmentShadingRateNonTrivialCombinerOps fragmentShadingRateNonTrivialCombinerOps>--- limit is not supported, and--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR'--- is not included in @pDynamicState->pDynamicStates@, elements of--- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.PipelineFragmentShadingRateStateCreateInfoKHR'::@combinerOps@--- /must/ be--- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR'--- or--- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.FRAGMENT_SHADING_RATE_COMBINER_OP_REPLACE_KHR'------ - #VUID-VkGraphicsPipelineCreateInfo-None-06569# If the pipeline is--- being created with--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>--- and--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR'--- is not included in @pDynamicState->pDynamicStates@,--- 'Vulkan.Extensions.VK_NV_fragment_shading_rate_enums.PipelineFragmentShadingRateEnumStateCreateInfoNV'::@shadingRateType@--- /must/ be a valid--- 'Vulkan.Extensions.VK_NV_fragment_shading_rate_enums.FragmentShadingRateTypeNV'--- value------ - #VUID-VkGraphicsPipelineCreateInfo-pDynamicState-06570# If the--- pipeline is being created with--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>--- and--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR'--- is not included in @pDynamicState->pDynamicStates@,--- 'Vulkan.Extensions.VK_NV_fragment_shading_rate_enums.PipelineFragmentShadingRateEnumStateCreateInfoNV'::@shadingRate@--- /must/ be a valid--- 'Vulkan.Extensions.VK_NV_fragment_shading_rate_enums.FragmentShadingRateNV'--- value------ - #VUID-VkGraphicsPipelineCreateInfo-pDynamicState-06571# If the--- pipeline is being created with--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>--- and--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR'--- is not included in @pDynamicState->pDynamicStates@,--- 'Vulkan.Extensions.VK_NV_fragment_shading_rate_enums.PipelineFragmentShadingRateEnumStateCreateInfoNV'::@combinerOps@[0]--- /must/ be a valid--- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.FragmentShadingRateCombinerOpKHR'--- value------ - #VUID-VkGraphicsPipelineCreateInfo-pDynamicState-06572# If the--- pipeline is being created with--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>--- and--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR'--- is not included in @pDynamicState->pDynamicStates@,--- 'Vulkan.Extensions.VK_NV_fragment_shading_rate_enums.PipelineFragmentShadingRateEnumStateCreateInfoNV'::@combinerOps@[1]--- /must/ be a valid--- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.FragmentShadingRateCombinerOpKHR'--- value------ - #VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04569# If the--- pipeline is being created with--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>--- and--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR'--- is not included in @pDynamicState->pDynamicStates@, and the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-fragmentShadingRateEnums fragmentShadingRateEnums feature>--- is not enabled,--- 'Vulkan.Extensions.VK_NV_fragment_shading_rate_enums.PipelineFragmentShadingRateEnumStateCreateInfoNV'::@shadingRateType@--- /must/ be equal to--- 'Vulkan.Extensions.VK_NV_fragment_shading_rate_enums.FRAGMENT_SHADING_RATE_TYPE_FRAGMENT_SIZE_NV'------ - #VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04570# If the--- pipeline is being created with--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>--- and--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR'--- is not included in @pDynamicState->pDynamicStates@, and the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-pipelineFragmentShadingRate pipelineFragmentShadingRate feature>--- is not enabled,--- 'Vulkan.Extensions.VK_NV_fragment_shading_rate_enums.PipelineFragmentShadingRateEnumStateCreateInfoNV'::@shadingRate@--- /must/ be equal to--- 'Vulkan.Extensions.VK_NV_fragment_shading_rate_enums.FRAGMENT_SHADING_RATE_1_INVOCATION_PER_PIXEL_NV'------ - #VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04571# If the--- pipeline is being created with--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>--- and--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR'--- is not included in @pDynamicState->pDynamicStates@, and the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-primitiveFragmentShadingRate primitiveFragmentShadingRate feature>--- is not enabled,--- 'Vulkan.Extensions.VK_NV_fragment_shading_rate_enums.PipelineFragmentShadingRateEnumStateCreateInfoNV'::@combinerOps@[0]--- /must/ be--- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR'------ - #VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04572# If the--- pipeline is being created with--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>--- and--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR'--- is not included in @pDynamicState->pDynamicStates@, and the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-attachmentFragmentShadingRate attachmentFragmentShadingRate>--- feature is not enabled,--- 'Vulkan.Extensions.VK_NV_fragment_shading_rate_enums.PipelineFragmentShadingRateEnumStateCreateInfoNV'::@combinerOps@[1]--- /must/ be--- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR'------ - #VUID-VkGraphicsPipelineCreateInfo-fragmentShadingRateNonTrivialCombinerOps-04573#--- If the pipeline is being created with--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>,--- and the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-fragmentShadingRateNonTrivialCombinerOps fragmentShadingRateNonTrivialCombinerOps>--- limit is not supported and--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR'--- is not included in @pDynamicState->pDynamicStates@, elements of--- 'Vulkan.Extensions.VK_NV_fragment_shading_rate_enums.PipelineFragmentShadingRateEnumStateCreateInfoNV'::@combinerOps@--- /must/ be--- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR'--- or--- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.FRAGMENT_SHADING_RATE_COMBINER_OP_REPLACE_KHR'------ - #VUID-VkGraphicsPipelineCreateInfo-None-04574# If the pipeline is--- being created with--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>,--- and the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-supersampleFragmentShadingRates supersampleFragmentShadingRates>--- feature is not enabled,--- 'Vulkan.Extensions.VK_NV_fragment_shading_rate_enums.PipelineFragmentShadingRateEnumStateCreateInfoNV'::@shadingRate@--- /must/ not be equal to--- 'Vulkan.Extensions.VK_NV_fragment_shading_rate_enums.FRAGMENT_SHADING_RATE_2_INVOCATIONS_PER_PIXEL_NV',--- 'Vulkan.Extensions.VK_NV_fragment_shading_rate_enums.FRAGMENT_SHADING_RATE_4_INVOCATIONS_PER_PIXEL_NV',--- 'Vulkan.Extensions.VK_NV_fragment_shading_rate_enums.FRAGMENT_SHADING_RATE_8_INVOCATIONS_PER_PIXEL_NV',--- or--- 'Vulkan.Extensions.VK_NV_fragment_shading_rate_enums.FRAGMENT_SHADING_RATE_16_INVOCATIONS_PER_PIXEL_NV'------ - #VUID-VkGraphicsPipelineCreateInfo-None-04575# If the pipeline is--- being created with--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>,--- and the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-noInvocationFragmentShadingRates noInvocationFragmentShadingRates>--- feature is not enabled,--- 'Vulkan.Extensions.VK_NV_fragment_shading_rate_enums.PipelineFragmentShadingRateEnumStateCreateInfoNV'::@shadingRate@--- /must/ not be equal to--- 'Vulkan.Extensions.VK_NV_fragment_shading_rate_enums.FRAGMENT_SHADING_RATE_NO_INVOCATIONS_NV'------ - #VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-03578# All--- elements of the @pDynamicStates@ member of @pDynamicState@ /must/--- not be--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RAY_TRACING_PIPELINE_STACK_SIZE_KHR'------ - #VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04807# If the--- pipeline is being created with--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>--- and the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-vertexInputDynamicState vertexInputDynamicState>--- feature is not enabled, there /must/ be no element of the--- @pDynamicStates@ member of @pDynamicState@ set to--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'------ - #VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04800# If the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-colorWriteEnable colorWriteEnable>--- feature is not enabled, there /must/ be no element of the--- @pDynamicStates@ member of @pDynamicState@ set to--- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT'------ - #VUID-VkGraphicsPipelineCreateInfo-rasterizationSamples-04899# If--- the pipeline is being created with fragment shader state, and the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_QCOM_render_pass_shader_resolve VK_QCOM_render_pass_shader_resolve>--- extension is enabled, and if subpass has any input attachments, and--- if the subpass description contains--- 'Vulkan.Core10.Enums.SubpassDescriptionFlagBits.SUBPASS_DESCRIPTION_FRAGMENT_REGION_BIT_QCOM',--- then the sample count of the input attachments /must/ equal--- @rasterizationSamples@------ - #VUID-VkGraphicsPipelineCreateInfo-sampleShadingEnable-04900# If the--- pipeline is being created with fragment shader state, and the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_QCOM_render_pass_shader_resolve VK_QCOM_render_pass_shader_resolve>--- extension is enabled, and if the subpass description contains--- 'Vulkan.Core10.Enums.SubpassDescriptionFlagBits.SUBPASS_DESCRIPTION_FRAGMENT_REGION_BIT_QCOM',--- then @sampleShadingEnable@ /must/ be false------ - #VUID-VkGraphicsPipelineCreateInfo-flags-04901# If @flags@ includes--- 'Vulkan.Core10.Enums.SubpassDescriptionFlagBits.SUBPASS_DESCRIPTION_SHADER_RESOLVE_BIT_QCOM',--- then the subpass /must/ be the last subpass in a subpass dependency--- chain------ - #VUID-VkGraphicsPipelineCreateInfo-flags-04902# If @flags@ includes--- 'Vulkan.Core10.Enums.SubpassDescriptionFlagBits.SUBPASS_DESCRIPTION_SHADER_RESOLVE_BIT_QCOM',--- and if @pResolveAttachments@ is not @NULL@, then each resolve--- attachment /must/ be 'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED'------ - #VUID-VkGraphicsPipelineCreateInfo-renderPass-06575# If the pipeline--- is being created with--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>,--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>,--- or--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-output fragment output interface state>,--- @renderPass@ /must/ be 'Vulkan.Core10.APIConstants.NULL_HANDLE' or a--- valid render pass object------ - #VUID-VkGraphicsPipelineCreateInfo-dynamicRendering-06576# If the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-dynamicRendering dynamicRendering>--- feature is not enabled and the pipeline is being created with--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>,--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>,--- or--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-output fragment output interface state>,--- @renderPass@ /must/ not be 'Vulkan.Core10.APIConstants.NULL_HANDLE'------ - #VUID-VkGraphicsPipelineCreateInfo-multiview-06577# If the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-multiview multiview>--- feature is not enabled, the pipeline is being created with--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>,--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>,--- or--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-output fragment output interface state>,--- and @renderPass@ is 'Vulkan.Core10.APIConstants.NULL_HANDLE',--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@viewMask@--- /must/ be @0@------ - #VUID-VkGraphicsPipelineCreateInfo-renderPass-06578# If the pipeline--- is being created with--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>,--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>,--- or--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-output fragment output interface state>,--- and @renderPass@ is 'Vulkan.Core10.APIConstants.NULL_HANDLE', the--- index of the most significant bit in--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@viewMask@--- /must/ be less than--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxMultiviewViewCount maxMultiviewViewCount>------ - #VUID-VkGraphicsPipelineCreateInfo-renderPass-06579# If the pipeline--- is being created with--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-output fragment output interface state>,--- and @renderPass@ is 'Vulkan.Core10.APIConstants.NULL_HANDLE', and--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@colorAttachmentCount@--- is not 0,--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@--- /must/ be a valid pointer to an array of @colorAttachmentCount@--- valid 'Vulkan.Core10.Enums.Format.Format' values------ - #VUID-VkGraphicsPipelineCreateInfo-renderPass-06580# If the pipeline--- is being created with--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-output fragment output interface state>,--- and @renderPass@ is 'Vulkan.Core10.APIConstants.NULL_HANDLE', each--- element of--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@--- /must/ be a valid 'Vulkan.Core10.Enums.Format.Format' value------ - #VUID-VkGraphicsPipelineCreateInfo-renderPass-06582# If the pipeline--- is being created with--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-output fragment output interface state>,--- @renderPass@ is 'Vulkan.Core10.APIConstants.NULL_HANDLE', and any--- element of--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@--- is not 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED', that format--- /must/ be a format with--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#potential-format-features potential format features>--- that include--- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_COLOR_ATTACHMENT_BIT'--- or--- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV'------ - #VUID-VkGraphicsPipelineCreateInfo-renderPass-06583# If the pipeline--- is being created with--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-output fragment output interface state>,--- and @renderPass@ is 'Vulkan.Core10.APIConstants.NULL_HANDLE',--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@depthAttachmentFormat@--- /must/ be a valid 'Vulkan.Core10.Enums.Format.Format' value------ - #VUID-VkGraphicsPipelineCreateInfo-renderPass-06584# If the pipeline--- is being created with--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-output fragment output interface state>,--- and @renderPass@ is 'Vulkan.Core10.APIConstants.NULL_HANDLE',--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@stencilAttachmentFormat@--- /must/ be a valid 'Vulkan.Core10.Enums.Format.Format' value------ - #VUID-VkGraphicsPipelineCreateInfo-renderPass-06585# If the pipeline--- is being created with--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-output fragment output interface state>,--- @renderPass@ is 'Vulkan.Core10.APIConstants.NULL_HANDLE', and--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@depthAttachmentFormat@--- is not 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED', it /must/ be a--- format with--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#potential-format-features potential format features>--- that include--- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT'------ - #VUID-VkGraphicsPipelineCreateInfo-renderPass-06586# If the pipeline--- is being created with--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-output fragment output interface state>,--- @renderPass@ is 'Vulkan.Core10.APIConstants.NULL_HANDLE', and--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@stencilAttachmentFormat@--- is not 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED', it /must/ be a--- format with--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#potential-format-features potential format features>--- that include--- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT'------ - #VUID-VkGraphicsPipelineCreateInfo-renderPass-06587# If the pipeline--- is being created with--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-output fragment output interface state>,--- @renderPass@ is 'Vulkan.Core10.APIConstants.NULL_HANDLE', and--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@depthAttachmentFormat@--- is not 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED', it /must/ be a--- format that includes a depth aspect------ - #VUID-VkGraphicsPipelineCreateInfo-renderPass-06588# If the pipeline--- is being created with--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-output fragment output interface state>,--- @renderPass@ is 'Vulkan.Core10.APIConstants.NULL_HANDLE', and--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@stencilAttachmentFormat@--- is not 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED', it /must/ be a--- format that includes a stencil aspect------ - #VUID-VkGraphicsPipelineCreateInfo-renderPass-06589# If the pipeline--- is being created with--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-output fragment output interface state>,--- @renderPass@ is 'Vulkan.Core10.APIConstants.NULL_HANDLE',--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@depthAttachmentFormat@--- is not 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED', and--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@stencilAttachmentFormat@--- is not 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED',--- @depthAttachmentFormat@ /must/ equal @stencilAttachmentFormat@------ - #VUID-VkGraphicsPipelineCreateInfo-renderPass-06053# If @renderPass@--- is 'Vulkan.Core10.APIConstants.NULL_HANDLE', the pipeline is being--- created with--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>--- and--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-output fragment output interface state>,--- and either of--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::depthAttachmentFormat--- or--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::stencilAttachmentFormat--- are not 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED',--- @pDepthStencilState@ /must/ be a valid pointer to a valid--- 'PipelineDepthStencilStateCreateInfo' structure------ - #VUID-VkGraphicsPipelineCreateInfo-renderPass-06590# If @renderPass@--- is 'Vulkan.Core10.APIConstants.NULL_HANDLE' and the pipeline is--- being created with--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>--- but not--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-output fragment output interface state>,--- @pDepthStencilState@ /must/ be a valid pointer to a valid--- 'PipelineDepthStencilStateCreateInfo' structure------ - #VUID-VkGraphicsPipelineCreateInfo-renderPass-06054# If @renderPass@--- is 'Vulkan.Core10.APIConstants.NULL_HANDLE', the pipeline is being--- created with--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-output fragment output interface state>,--- and--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::colorAttachmentCount--- is not equal to @0@, @pColorBlendState@ /must/ be a valid pointer to--- a valid 'PipelineColorBlendStateCreateInfo' structure------ - #VUID-VkGraphicsPipelineCreateInfo-renderPass-06055# If @renderPass@--- is 'Vulkan.Core10.APIConstants.NULL_HANDLE' and the pipeline is--- being created with--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-output fragment output interface state>,--- @pColorBlendState->attachmentCount@ /must/ be equal to--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::colorAttachmentCount------ - #VUID-VkGraphicsPipelineCreateInfo-renderPass-06056# If @renderPass@--- is 'Vulkan.Core10.APIConstants.NULL_HANDLE' and the pipeline is--- being created with--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>--- the fragment shader /must/ not read from any input attachment------ - #VUID-VkGraphicsPipelineCreateInfo-renderPass-06057# If @renderPass@--- is 'Vulkan.Core10.APIConstants.NULL_HANDLE', the pipeline is being--- created with--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>,--- the @viewMask@ member of a--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'--- structure included in the @pNext@ chain is not @0@, and the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-multiview-tess multiviewTessellationShader>--- feature is not enabled, then @pStages@ /must/ not include--- tessellation shaders------ - #VUID-VkGraphicsPipelineCreateInfo-renderPass-06058# If @renderPass@--- is 'Vulkan.Core10.APIConstants.NULL_HANDLE', the pipeline is being--- created with--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>,--- the @viewMask@ member of a--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'--- structure included in the @pNext@ chain is not @0@, and the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-multiview-gs multiviewGeometryShader>--- feature is not enabled, then @pStages@ /must/ not include a geometry--- shader------ - #VUID-VkGraphicsPipelineCreateInfo-renderPass-06059# If @renderPass@--- is 'Vulkan.Core10.APIConstants.NULL_HANDLE', the pipeline is being--- created with--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>,--- and the @viewMask@ member of a--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'--- structure included in the @pNext@ chain is not @0@, shaders in--- @pStages@ /must/ not include variables decorated with the @Layer@--- built-in decoration in their interfaces------ - #VUID-VkGraphicsPipelineCreateInfo-renderPass-06060# If the pipeline--- is being created with--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-output fragment output interface state>--- and @renderPass@ is 'Vulkan.Core10.APIConstants.NULL_HANDLE',--- @pColorBlendState->attachmentCount@ /must/ be equal to the--- @colorAttachmentCount@ member of the--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'--- structure included in the @pNext@ chain------ - #VUID-VkGraphicsPipelineCreateInfo-renderPass-06061# If the pipeline--- is being created with--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>--- and @renderPass@ is 'Vulkan.Core10.APIConstants.NULL_HANDLE',--- fragment shaders in @pStages@ /must/ not include the--- @InputAttachment@ capability------ - #VUID-VkGraphicsPipelineCreateInfo-renderPass-06062# If the pipeline--- is being created with--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-output fragment output interface state>--- and @renderPass@ is 'Vulkan.Core10.APIConstants.NULL_HANDLE', for--- each color attachment format defined by the--- @pColorAttachmentFormats@ member of--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo',--- if its--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#potential-format-features potential format features>--- do not contain--- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT',--- then the @blendEnable@ member of the corresponding element of the--- @pAttachments@ member of @pColorBlendState@ /must/ be--- 'Vulkan.Core10.FundamentalTypes.FALSE'------ - #VUID-VkGraphicsPipelineCreateInfo-renderPass-06063# If the pipeline--- is being created with--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-output fragment output interface state>--- and @renderPass@ is 'Vulkan.Core10.APIConstants.NULL_HANDLE', if the--- @pNext@ chain includes--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'--- or--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV',--- the @colorAttachmentCount@ member of that structure /must/ be equal--- to the value of--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@colorAttachmentCount@------ - #VUID-VkGraphicsPipelineCreateInfo-flags-06591# If the pipeline is--- being created with--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>,--- and the fragment shader code enables--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-fragment-earlytest early fragment tests>,--- the @flags@ member of 'PipelineDepthStencilStateCreateInfo' /must/--- not include--- 'Vulkan.Core10.Enums.PipelineDepthStencilStateCreateFlagBits.PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_ARM'--- or--- 'Vulkan.Core10.Enums.PipelineDepthStencilStateCreateFlagBits.PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_ARM'------ - #VUID-VkGraphicsPipelineCreateInfo-flags-06482# If the pipeline is--- being created with--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-output fragment output interface state>--- and the @flags@ member of 'PipelineColorBlendStateCreateInfo'--- includes--- 'Vulkan.Core10.Enums.PipelineColorBlendStateCreateFlagBits.PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_ARM',--- @renderpass@ /must/ not be 'Vulkan.Core10.APIConstants.NULL_HANDLE'------ - #VUID-VkGraphicsPipelineCreateInfo-flags-06483# If the pipeline is--- being created with--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-output fragment output interface state>--- and the @flags@ member of 'PipelineDepthStencilStateCreateInfo'--- includes--- 'Vulkan.Core10.Enums.PipelineDepthStencilStateCreateFlagBits.PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_ARM'--- or--- 'Vulkan.Core10.Enums.PipelineDepthStencilStateCreateFlagBits.PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_ARM',--- @renderpass@ /must/ not be 'Vulkan.Core10.APIConstants.NULL_HANDLE'------ - #VUID-VkGraphicsPipelineCreateInfo-pColorAttachmentSamples-06592# If--- the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-output fragment output interface state>,--- elements of the @pColorAttachmentSamples@ member of--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'--- or--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'--- /must/ be valid--- 'Vulkan.Core10.Enums.SampleCountFlagBits.SampleCountFlagBits' values------ - #VUID-VkGraphicsPipelineCreateInfo-depthStencilAttachmentSamples-06593#--- If the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-output fragment output interface state>--- and the @depthStencilAttachmentSamples@ member of--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'--- or--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'--- is not 0, it /must/ be a valid--- 'Vulkan.Core10.Enums.SampleCountFlagBits.SampleCountFlagBits' value------ - #VUID-VkGraphicsPipelineCreateInfo-flags-06484# If the pipeline is--- being created with--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-output fragment output interface state>--- and the @flags@ member of 'PipelineColorBlendStateCreateInfo'--- includes--- 'Vulkan.Core10.Enums.PipelineColorBlendStateCreateFlagBits.PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_ARM'--- @subpass@ /must/ have been created with--- 'Vulkan.Core10.Enums.SubpassDescriptionFlagBits.SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_COLOR_ACCESS_BIT_ARM'------ - #VUID-VkGraphicsPipelineCreateInfo-flags-06485# If the pipeline is--- being created with--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-output fragment output interface state>--- and the @flags@ member of 'PipelineDepthStencilStateCreateInfo'--- includes--- 'Vulkan.Core10.Enums.PipelineDepthStencilStateCreateFlagBits.PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_ARM',--- @subpass@ /must/ have been created with--- 'Vulkan.Core10.Enums.SubpassDescriptionFlagBits.SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_ARM'------ - #VUID-VkGraphicsPipelineCreateInfo-flags-06486# If the pipeline is--- being created with--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-output fragment output interface state>--- and the @flags@ member of 'PipelineDepthStencilStateCreateInfo'--- includes--- 'Vulkan.Core10.Enums.PipelineDepthStencilStateCreateFlagBits.PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_ARM',--- @subpass@ /must/ have been created with--- 'Vulkan.Core10.Enums.SubpassDescriptionFlagBits.SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_ARM'------ - #VUID-VkGraphicsPipelineCreateInfo-pipelineStageCreationFeedbackCount-06594#--- If--- 'Vulkan.Core13.Promoted_From_VK_EXT_pipeline_creation_feedback.PipelineCreationFeedbackCreateInfo'::@pipelineStageCreationFeedbackCount@--- is not @0@, it /must/ be equal to @stageCount@------ - #VUID-VkGraphicsPipelineCreateInfo-renderPass-06595# If @renderPass@--- is 'Vulkan.Core10.APIConstants.NULL_HANDLE', the pipeline is being--- created with--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>--- or--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>,--- and--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.MultiviewPerViewAttributesInfoNVX'::@perViewAttributesPositionXOnly@--- is 'Vulkan.Core10.FundamentalTypes.TRUE' then--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.MultiviewPerViewAttributesInfoNVX'::@perViewAttributes@--- /must/ also be 'Vulkan.Core10.FundamentalTypes.TRUE'------ - #VUID-VkGraphicsPipelineCreateInfo-flags-06596# If--- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GraphicsPipelineLibraryCreateInfoEXT'::@flags@--- includes only one of--- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT'--- or--- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT',--- and an element of--- 'Vulkan.Extensions.VK_KHR_pipeline_library.PipelineLibraryCreateInfoKHR'::@pLibraries@--- includes the other flag, the value of--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.MultiviewPerViewAttributesInfoNVX'::@perViewAttributes@--- specified in both this pipeline and the library /must/ be equal------ - #VUID-VkGraphicsPipelineCreateInfo-pLibraries-06597# If one element--- of--- 'Vulkan.Extensions.VK_KHR_pipeline_library.PipelineLibraryCreateInfoKHR'::@pLibraries@--- includes--- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT'--- and another element includes--- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT',--- the value of--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.MultiviewPerViewAttributesInfoNVX'::@perViewAttributes@--- specified in both libraries /must/ be equal------ - #VUID-VkGraphicsPipelineCreateInfo-flags-06598# If--- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GraphicsPipelineLibraryCreateInfoEXT'::@flags@--- includes only one of--- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT'--- or--- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT',--- and an element of--- 'Vulkan.Extensions.VK_KHR_pipeline_library.PipelineLibraryCreateInfoKHR'::@pLibraries@--- includes the other flag, the value of--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.MultiviewPerViewAttributesInfoNVX'::@perViewAttributesPositionXOnly@--- specified in both this pipeline and the library /must/ be equal------ - #VUID-VkGraphicsPipelineCreateInfo-pLibraries-06599# If one element--- of--- 'Vulkan.Extensions.VK_KHR_pipeline_library.PipelineLibraryCreateInfoKHR'::@pLibraries@--- includes--- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT'--- and another element includes--- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT',--- the value of--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.MultiviewPerViewAttributesInfoNVX'::@perViewAttributesPositionXOnly@--- specified in both libraries /must/ be equal------ - #VUID-VkGraphicsPipelineCreateInfo-graphicsPipelineLibrary-06606# If--- the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-graphicsPipelineLibrary graphicsPipelineLibrary>--- feature is not enabled, @flags@ /must/ not include--- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_LIBRARY_BIT_KHR'------ - #VUID-VkGraphicsPipelineCreateInfo-graphicsPipelineLibrary-06607# If--- the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-graphicsPipelineLibrary graphicsPipelineLibrary>--- feature is not enabled, the pipeline /must/ be created with a--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-complete complete set of state>------ - #VUID-VkGraphicsPipelineCreateInfo-flags-06608# If the pipeline is--- being created with--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-complete all possible state subsets>,--- @flags@ /must/ not include--- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_LIBRARY_BIT_KHR'------ - #VUID-VkGraphicsPipelineCreateInfo-flags-06609# If @flags@ includes--- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_LINK_TIME_OPTIMIZATION_BIT_EXT',--- pipeline libraries included via--- 'Vulkan.Extensions.VK_KHR_pipeline_library.PipelineLibraryCreateInfoKHR'--- /must/ have been created with--- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RETAIN_LINK_TIME_OPTIMIZATION_INFO_BIT_EXT'------ - #VUID-VkGraphicsPipelineCreateInfo-flags-06610# If @flags@ includes--- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RETAIN_LINK_TIME_OPTIMIZATION_INFO_BIT_EXT',--- pipeline libraries included via--- 'Vulkan.Extensions.VK_KHR_pipeline_library.PipelineLibraryCreateInfoKHR'--- /must/ have been created with--- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RETAIN_LINK_TIME_OPTIMIZATION_INFO_BIT_EXT'------ - #VUID-VkGraphicsPipelineCreateInfo-pLibraries-06611# Any pipeline--- libraries included via--- 'Vulkan.Extensions.VK_KHR_pipeline_library.PipelineLibraryCreateInfoKHR'::@pLibraries@--- /must/ not include any--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets state subset>--- already defined by this structure or defined by any other pipeline--- library in--- 'Vulkan.Extensions.VK_KHR_pipeline_library.PipelineLibraryCreateInfoKHR'::@pLibraries@------ - #VUID-VkGraphicsPipelineCreateInfo-flags-06612# If--- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GraphicsPipelineLibraryCreateInfoEXT'::@flags@--- includes only one of--- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT'--- or--- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT',--- and an element of--- 'Vulkan.Extensions.VK_KHR_pipeline_library.PipelineLibraryCreateInfoKHR'::@pLibraries@--- includes the other flag, and @layout@ was not created with--- 'Vulkan.Core10.Enums.PipelineLayoutCreateFlagBits.PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT',--- then the @layout@ used by this pipeline and the library /must/ be--- /identically defined/------ - #VUID-VkGraphicsPipelineCreateInfo-pLibraries-06613# If one element--- of--- 'Vulkan.Extensions.VK_KHR_pipeline_library.PipelineLibraryCreateInfoKHR'::@pLibraries@--- includes--- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT'--- and another element includes--- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT',--- and the @layout@ specified by either library was not created with--- 'Vulkan.Core10.Enums.PipelineLayoutCreateFlagBits.PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT',--- then the @layout@ used by each library /must/ be /identically--- defined/------ - #VUID-VkGraphicsPipelineCreateInfo-flags-06614# If--- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GraphicsPipelineLibraryCreateInfoEXT'::@flags@--- includes only one of--- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT'--- or--- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT',--- an element of--- 'Vulkan.Extensions.VK_KHR_pipeline_library.PipelineLibraryCreateInfoKHR'::@pLibraries@--- includes the other subset, and @layout@ was created with--- 'Vulkan.Core10.Enums.PipelineLayoutCreateFlagBits.PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT',--- then the @layout@ used by the library /must/ also have been created--- with--- 'Vulkan.Core10.Enums.PipelineLayoutCreateFlagBits.PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT'------ - #VUID-VkGraphicsPipelineCreateInfo-pLibraries-06615# If one element--- of--- 'Vulkan.Extensions.VK_KHR_pipeline_library.PipelineLibraryCreateInfoKHR'::@pLibraries@--- includes--- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT'--- and another element includes--- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT',--- and the @layout@ specified by either library was created with--- 'Vulkan.Core10.Enums.PipelineLayoutCreateFlagBits.PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT',--- then the @layout@ used by both libaries /must/ have been created--- with--- 'Vulkan.Core10.Enums.PipelineLayoutCreateFlagBits.PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT'------ - #VUID-VkGraphicsPipelineCreateInfo-flags-06616# If--- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GraphicsPipelineLibraryCreateInfoEXT'::@flags@--- includes only one of--- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT'--- or--- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT',--- an element of--- 'Vulkan.Extensions.VK_KHR_pipeline_library.PipelineLibraryCreateInfoKHR'::@pLibraries@--- includes the other subset, and @layout@ was created with--- 'Vulkan.Core10.Enums.PipelineLayoutCreateFlagBits.PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT',--- elements of the @pSetLayouts@ array which @layout@ was created with--- that are not 'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ be--- /identically defined/ to the element at the same index of--- @pSetLayouts@ used to create the library’s @layout@------ - #VUID-VkGraphicsPipelineCreateInfo-pLibraries-06617# If one element--- of--- 'Vulkan.Extensions.VK_KHR_pipeline_library.PipelineLibraryCreateInfoKHR'::@pLibraries@--- includes--- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT'--- and another element includes--- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT',--- and the @layout@ specified by either library was created with--- 'Vulkan.Core10.Enums.PipelineLayoutCreateFlagBits.PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT',--- elements of the @pSetLayouts@ array which either @layout@ was--- created with that are not 'Vulkan.Core10.APIConstants.NULL_HANDLE'--- /must/ be /identically defined/ to the element at the same index of--- @pSetLayouts@ used to create the other library’s @layout@------ - #VUID-VkGraphicsPipelineCreateInfo-flags-06618# If--- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GraphicsPipelineLibraryCreateInfoEXT'::@flags@--- includes only one of--- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT'--- or--- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT',--- and an element of--- 'Vulkan.Extensions.VK_KHR_pipeline_library.PipelineLibraryCreateInfoKHR'::@pLibraries@--- includes the other flag, any descriptor set layout /N/ specified by--- @layout@ in both this pipeline and the library which include--- bindings accessed by shader stages in each /must/ be /identically--- defined/------ - #VUID-VkGraphicsPipelineCreateInfo-pLibraries-06619# If one element--- of--- 'Vulkan.Extensions.VK_KHR_pipeline_library.PipelineLibraryCreateInfoKHR'::@pLibraries@--- includes--- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT'--- and another element includes--- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT',--- any descriptor set layout /N/ specified by @layout@ in both--- libraries which include bindings accessed by shader stages in each--- /must/ be /identically defined/------ - #VUID-VkGraphicsPipelineCreateInfo-flags-06620# If--- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GraphicsPipelineLibraryCreateInfoEXT'::@flags@--- includes only one of--- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT'--- or--- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT',--- and an element of--- 'Vulkan.Extensions.VK_KHR_pipeline_library.PipelineLibraryCreateInfoKHR'::@pLibraries@--- includes the other flag, push constants specified in @layout@ in--- both this pipeline and the library which are available to shader--- stages in each /must/ be /identically defined/------ - #VUID-VkGraphicsPipelineCreateInfo-pLibraries-06621# If one element--- of--- 'Vulkan.Extensions.VK_KHR_pipeline_library.PipelineLibraryCreateInfoKHR'::@pLibraries@--- includes--- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT'--- and another element includes--- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT',--- push constants specified in @layout@ in both this pipeline and the--- library which are available to shader stages in each /must/ be--- /identically defined/------ - #VUID-VkGraphicsPipelineCreateInfo-flags-06679# If--- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GraphicsPipelineLibraryCreateInfoEXT'::@flags@--- includes only one of--- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT'--- or--- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT',--- an element of--- 'Vulkan.Extensions.VK_KHR_pipeline_library.PipelineLibraryCreateInfoKHR'::@pLibraries@--- includes the other subset, and any element of the @pSetLayouts@--- array which @layout@ was created with was--- 'Vulkan.Core10.APIConstants.NULL_HANDLE', then the corresponding--- element of the @pSetLayouts@ array used to create the library’s--- @layout@ /must/ not be 'Vulkan.Core10.APIConstants.NULL_HANDLE'------ - #VUID-VkGraphicsPipelineCreateInfo-flags-06680# If--- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GraphicsPipelineLibraryCreateInfoEXT'::@flags@--- includes only one of--- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT'--- or--- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT',--- an element of--- 'Vulkan.Extensions.VK_KHR_pipeline_library.PipelineLibraryCreateInfoKHR'::@pLibraries@--- includes the other subset, and any element of the @pSetLayouts@--- array used to create the library’s @layout@ was--- 'Vulkan.Core10.APIConstants.NULL_HANDLE', then the corresponding--- element of the @pSetLayouts@ array used to create this pipeline’s--- @layout@ /must/ not be 'Vulkan.Core10.APIConstants.NULL_HANDLE'------ - #VUID-VkGraphicsPipelineCreateInfo-pLibraries-06681# If one element--- of--- 'Vulkan.Extensions.VK_KHR_pipeline_library.PipelineLibraryCreateInfoKHR'::@pLibraries@--- includes--- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT'--- and another element includes--- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT',--- and any element of the @pSetLayouts@ array used to create each--- library’s @layout@ was 'Vulkan.Core10.APIConstants.NULL_HANDLE',--- then the corresponding element of the @pSetLayouts@ array used to--- create the other library’s @layout@ /must/ not be--- 'Vulkan.Core10.APIConstants.NULL_HANDLE'------ - #VUID-VkGraphicsPipelineCreateInfo-flags-06682# If--- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GraphicsPipelineLibraryCreateInfoEXT'::@flags@--- includes both--- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT'--- and--- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT',--- @layout@ /must/ have been created with no elements of the--- @pSetLayouts@ array set to 'Vulkan.Core10.APIConstants.NULL_HANDLE'------ - #VUID-VkGraphicsPipelineCreateInfo-flags-06683# If--- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GraphicsPipelineLibraryCreateInfoEXT'::@flags@--- includes--- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT'--- and @pRasterizationState@->@rasterizerDiscardEnable@ is--- 'Vulkan.Core10.FundamentalTypes.TRUE', @layout@ /must/ have been--- created with no elements of the @pSetLayouts@ array set to--- 'Vulkan.Core10.APIConstants.NULL_HANDLE'------ - #VUID-VkGraphicsPipelineCreateInfo-flags-06684# If--- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GraphicsPipelineLibraryCreateInfoEXT'::@flags@--- includes at least one of and no more than two of--- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT',--- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT',--- or--- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT',--- and an element of--- 'Vulkan.Extensions.VK_KHR_pipeline_library.PipelineLibraryCreateInfoKHR'::@pLibraries@--- includes one of the other flags, the value of @subpass@ /must/ be--- equal to that used to create the library------ - #VUID-VkGraphicsPipelineCreateInfo-pLibraries-06623# If one element--- of--- 'Vulkan.Extensions.VK_KHR_pipeline_library.PipelineLibraryCreateInfoKHR'::@pLibraries@--- includes at least one of and no more than two of--- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT',--- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT',--- or--- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT',--- and another element of--- 'Vulkan.Extensions.VK_KHR_pipeline_library.PipelineLibraryCreateInfoKHR'::@pLibraries@--- includes one of the other flags, the value of @subpass@ used to--- create each library /must/ be identical------ - #VUID-VkGraphicsPipelineCreateInfo-renderpass-06624# If @renderpass@--- is not 'Vulkan.Core10.APIConstants.NULL_HANDLE',--- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GraphicsPipelineLibraryCreateInfoEXT'::@flags@--- includes at least one of and no more than two of--- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT',--- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT',--- or--- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT',--- and an element of--- 'Vulkan.Extensions.VK_KHR_pipeline_library.PipelineLibraryCreateInfoKHR'::@pLibraries@--- includes one of the other flags, @renderPass@ /must/ be compatible--- with that used to create the library------ - #VUID-VkGraphicsPipelineCreateInfo-renderpass-06625# If @renderpass@--- is 'Vulkan.Core10.APIConstants.NULL_HANDLE',--- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GraphicsPipelineLibraryCreateInfoEXT'::@flags@--- includes at least one of and no more than two of--- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT',--- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT',--- or--- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT',--- and an element of--- 'Vulkan.Extensions.VK_KHR_pipeline_library.PipelineLibraryCreateInfoKHR'::@pLibraries@--- includes one of the other flags, the value of @renderPass@ used to--- create that library /must/ also be--- 'Vulkan.Core10.APIConstants.NULL_HANDLE'------ - #VUID-VkGraphicsPipelineCreateInfo-flags-06626# If--- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GraphicsPipelineLibraryCreateInfoEXT'::@flags@--- includes at least one of and no more than two of--- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT',--- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT',--- or--- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT',--- an element of--- 'Vulkan.Extensions.VK_KHR_pipeline_library.PipelineLibraryCreateInfoKHR'::@pLibraries@--- includes one of the other flags, and @renderPass@ is--- 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@viewMask@--- used by this pipeline and that specified by the library /must/ be--- identical------ - #VUID-VkGraphicsPipelineCreateInfo-pLibraries-06627# If one element--- of--- 'Vulkan.Extensions.VK_KHR_pipeline_library.PipelineLibraryCreateInfoKHR'::@pLibraries@--- includes at least one of and no more than two of--- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT',--- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT',--- or--- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT',--- another element of--- 'Vulkan.Extensions.VK_KHR_pipeline_library.PipelineLibraryCreateInfoKHR'::@pLibraries@--- includes one of the other flags, and @renderPass@ was--- 'Vulkan.Core10.APIConstants.NULL_HANDLE' for both libraries, the--- value of--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@viewMask@--- set by each library /must/ be identical------ - #VUID-VkGraphicsPipelineCreateInfo-pLibraries-06628# If one element--- of--- 'Vulkan.Extensions.VK_KHR_pipeline_library.PipelineLibraryCreateInfoKHR'::@pLibraries@--- includes at least one of and no more than two of--- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT',--- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT',--- or--- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT',--- and another element of--- 'Vulkan.Extensions.VK_KHR_pipeline_library.PipelineLibraryCreateInfoKHR'::@pLibraries@--- includes one of the other flags, the @renderPass@ objects used to--- create each library /must/ be compatible or all equal to--- 'Vulkan.Core10.APIConstants.NULL_HANDLE'------ - #VUID-VkGraphicsPipelineCreateInfo-pMultisampleState-06629# If the--- pipeline is being created with--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>--- @pMultisampleState@ /must/ be @NULL@ or a valid pointer to a valid--- 'PipelineMultisampleStateCreateInfo' structure------ - #VUID-VkGraphicsPipelineCreateInfo-renderpass-06631# If the pipeline--- is being created with--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>--- and @renderpass@ is not 'Vulkan.Core10.APIConstants.NULL_HANDLE',--- then @pMultisampleState@ /must/ not be @NULL@------ - #VUID-VkGraphicsPipelineCreateInfo-Input-06632# If the pipeline is--- being created with--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>--- with a fragment shader that either enables--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-sampleshading sample shading>--- or decorates any variable in the @Input@ storage class with--- @Sample@, then @pMultisampleState@ /must/ not be @NULL@------ - #VUID-VkGraphicsPipelineCreateInfo-flags-06633# If--- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GraphicsPipelineLibraryCreateInfoEXT'::@flags@--- includes--- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT'--- with a @pMultisampleState@ that was not @NULL@, and an element of--- 'Vulkan.Extensions.VK_KHR_pipeline_library.PipelineLibraryCreateInfoKHR'::@pLibraries@--- was created with--- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT',--- @pMultisampleState@ /must/ be /identically defined/ to that used to--- create the library------ - #VUID-VkGraphicsPipelineCreateInfo-pLibraries-06634# If an element--- of--- 'Vulkan.Extensions.VK_KHR_pipeline_library.PipelineLibraryCreateInfoKHR'::@pLibraries@--- was created with--- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT'--- with a @pMultisampleState@ that was not @NULL@, and if--- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GraphicsPipelineLibraryCreateInfoEXT'::@flags@--- includes--- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT',--- @pMultisampleState@ /must/ be /identically defined/ to that used to--- create the library------ - #VUID-VkGraphicsPipelineCreateInfo-pLibraries-06635# If one element--- of--- 'Vulkan.Extensions.VK_KHR_pipeline_library.PipelineLibraryCreateInfoKHR'::@pLibraries@--- was created with--- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT'--- with a @pMultisampleState@ that was not @NULL@, and if a different--- element of--- 'Vulkan.Extensions.VK_KHR_pipeline_library.PipelineLibraryCreateInfoKHR'::@pLibraries@--- was created with--- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT',--- the @pMultisampleState@ used to create each library /must/ be--- /identically defined/------ - #VUID-VkGraphicsPipelineCreateInfo-pLibraries-06636# If one element--- of--- 'Vulkan.Extensions.VK_KHR_pipeline_library.PipelineLibraryCreateInfoKHR'::@pLibraries@--- was created with--- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT'--- and a value of @pMultisampleState->sampleShading@ equal--- 'Vulkan.Core10.FundamentalTypes.TRUE', and if a different element of--- 'Vulkan.Extensions.VK_KHR_pipeline_library.PipelineLibraryCreateInfoKHR'::@pLibraries@--- was created with--- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT',--- the @pMultisampleState@ used to create each library /must/ be--- /identically defined/------ - #VUID-VkGraphicsPipelineCreateInfo-flags-06637# If--- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GraphicsPipelineLibraryCreateInfoEXT'::@flags@--- includes--- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT',--- @pMultisampleState->sampleShading@ is--- 'Vulkan.Core10.FundamentalTypes.TRUE', and an element of--- 'Vulkan.Extensions.VK_KHR_pipeline_library.PipelineLibraryCreateInfoKHR'::@pLibraries@--- was created with--- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT',--- the @pMultisampleState@ used to create that library /must/ be--- /identically defined/ @pMultisampleState@------ - #VUID-VkGraphicsPipelineCreateInfo-flags-06638# If--- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GraphicsPipelineLibraryCreateInfoEXT'::@flags@--- includes only one of--- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT'--- or--- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT',--- and an element of--- 'Vulkan.Extensions.VK_KHR_pipeline_library.PipelineLibraryCreateInfoKHR'::@pLibraries@--- includes the other flag, values specified in--- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.PipelineFragmentShadingRateStateCreateInfoKHR'--- for both this pipeline and that library /must/ be identical------ - #VUID-VkGraphicsPipelineCreateInfo-pLibraries-06639# If one element--- of--- 'Vulkan.Extensions.VK_KHR_pipeline_library.PipelineLibraryCreateInfoKHR'::@pLibraries@--- includes--- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT'--- and another element includes--- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT',--- values specified in--- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.PipelineFragmentShadingRateStateCreateInfoKHR'--- for both this pipeline and that library /must/ be identical------ - #VUID-VkGraphicsPipelineCreateInfo-flags-06640# If--- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GraphicsPipelineLibraryCreateInfoEXT'::@flags@--- includes--- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT'--- or--- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT',--- @pStages@ /must/ be a valid pointer to an array of @stageCount@--- valid 'PipelineShaderStageCreateInfo' structures------ - #VUID-VkGraphicsPipelineCreateInfo-flags-06641# If--- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GraphicsPipelineLibraryCreateInfoEXT'::@flags@--- includes--- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT',--- @pRasterizationState@ /must/ be a valid pointer to a valid--- 'PipelineRasterizationStateCreateInfo' structure------ - #VUID-VkGraphicsPipelineCreateInfo-flags-06642# If--- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GraphicsPipelineLibraryCreateInfoEXT'::@flags@--- includes--- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT'--- or--- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT',--- @layout@ /must/ be a valid 'Vulkan.Core10.Handles.PipelineLayout'--- handle------ - #VUID-VkGraphicsPipelineCreateInfo-flags-06643# If--- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GraphicsPipelineLibraryCreateInfoEXT'::@flags@--- includes--- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT',--- or--- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT',--- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT',--- and @renderPass@ is not 'Vulkan.Core10.APIConstants.NULL_HANDLE',--- @renderPass@ /must/ be a valid 'Vulkan.Core10.Handles.RenderPass'--- handle------ - #VUID-VkGraphicsPipelineCreateInfo-flags-06644# If--- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GraphicsPipelineLibraryCreateInfoEXT'::@flags@--- includes--- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT'--- or--- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT',--- @stageCount@ /must/ be greater than @0@------ - #VUID-VkGraphicsPipelineCreateInfo-flags-06645# If--- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GraphicsPipelineLibraryCreateInfoEXT'::@flags@--- is non-zero, if @flags@ includes--- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR',--- any libraries /must/ have also been created with--- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR'------ - #VUID-VkGraphicsPipelineCreateInfo-pLibraries-06646# If--- 'Vulkan.Extensions.VK_KHR_pipeline_library.PipelineLibraryCreateInfoKHR'::@pLibraries@--- includes more than one library, and any library was created with--- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR',--- all libraries /must/ have also been created with--- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR'------ - #VUID-VkGraphicsPipelineCreateInfo-pLibraries-06647# If--- 'Vulkan.Extensions.VK_KHR_pipeline_library.PipelineLibraryCreateInfoKHR'::@pLibraries@--- includes at least one library,--- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GraphicsPipelineLibraryCreateInfoEXT'::@flags@--- is non-zero, and any library was created with--- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR',--- @flags@ /must/ include--- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR'------ - #VUID-VkGraphicsPipelineCreateInfo-libraryCount-06648# If the--- pipeline is not created with a--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-complete complete set of state>,--- or--- 'Vulkan.Extensions.VK_KHR_pipeline_library.PipelineLibraryCreateInfoKHR'::@libraryCount@--- is not @0@,--- 'Vulkan.Extensions.VK_NV_device_generated_commands.GraphicsPipelineShaderGroupsCreateInfoNV'::@groupCount@--- and--- 'Vulkan.Extensions.VK_NV_device_generated_commands.GraphicsPipelineShaderGroupsCreateInfoNV'::@pipelineCount@--- /must/ be @0@------ - #VUID-VkGraphicsPipelineCreateInfo-libraryCount-06649# If the--- pipeline is created with a--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-complete complete set of state>,--- 'Vulkan.Extensions.VK_KHR_pipeline_library.PipelineLibraryCreateInfoKHR'::@libraryCount@--- is @0@, and the @pNext@ chain includes an instance of--- 'Vulkan.Extensions.VK_NV_device_generated_commands.GraphicsPipelineShaderGroupsCreateInfoNV',--- 'Vulkan.Extensions.VK_NV_device_generated_commands.GraphicsPipelineShaderGroupsCreateInfoNV'::@groupCount@--- /must/ be greater than @0@------ - #VUID-VkGraphicsPipelineCreateInfo-flags-06650# If @flags@ includes--- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_LINK_TIME_OPTIMIZATION_BIT_EXT'--- and the pipeline includes a--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-complete complete set of state>--- specified entirely by libraries, @pipelineLayout@ /must/ be either--- 'Vulkan.Core10.APIConstants.NULL_HANDLE', or a--- 'Vulkan.Core10.Handles.PipelineLayout' that was created without--- 'Vulkan.Core10.Enums.PipelineLayoutCreateFlagBits.PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT'--- but would be compatible with the union of the pipeline layouts used--- in the libraries if it had included--- 'Vulkan.Core10.Enums.PipelineLayoutCreateFlagBits.PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT'------ == Valid Usage (Implicit)------ - #VUID-VkGraphicsPipelineCreateInfo-sType-sType# @sType@ /must/ be--- 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO'------ - #VUID-VkGraphicsPipelineCreateInfo-pNext-pNext# Each @pNext@ member--- of any structure (including this one) in the @pNext@ chain /must/ be--- either @NULL@ or a pointer to a valid instance of--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD',--- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GraphicsPipelineLibraryCreateInfoEXT',--- 'Vulkan.Extensions.VK_NV_device_generated_commands.GraphicsPipelineShaderGroupsCreateInfoNV',--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.MultiviewPerViewAttributesInfoNVX',--- 'Vulkan.Extensions.VK_AMD_pipeline_compiler_control.PipelineCompilerControlCreateInfoAMD',--- 'Vulkan.Core13.Promoted_From_VK_EXT_pipeline_creation_feedback.PipelineCreationFeedbackCreateInfo',--- 'Vulkan.Extensions.VK_EXT_discard_rectangles.PipelineDiscardRectangleStateCreateInfoEXT',--- 'Vulkan.Extensions.VK_NV_fragment_shading_rate_enums.PipelineFragmentShadingRateEnumStateCreateInfoNV',--- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.PipelineFragmentShadingRateStateCreateInfoKHR',--- 'Vulkan.Extensions.VK_KHR_pipeline_library.PipelineLibraryCreateInfoKHR',--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo',--- or--- 'Vulkan.Extensions.VK_NV_representative_fragment_test.PipelineRepresentativeFragmentTestStateCreateInfoNV'------ - #VUID-VkGraphicsPipelineCreateInfo-sType-unique# The @sType@ value--- of each struct in the @pNext@ chain /must/ be unique------ - #VUID-VkGraphicsPipelineCreateInfo-flags-parameter# @flags@ /must/--- be a valid combination of--- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PipelineCreateFlagBits'--- values------ - #VUID-VkGraphicsPipelineCreateInfo-pDynamicState-parameter# If--- @pDynamicState@ is not @NULL@, @pDynamicState@ /must/ be a valid--- pointer to a valid 'PipelineDynamicStateCreateInfo' structure------ - #VUID-VkGraphicsPipelineCreateInfo-commonparent# Each of--- @basePipelineHandle@, @layout@, and @renderPass@ that are valid--- handles of non-ignored parameters /must/ have been created,--- allocated, or retrieved from the same 'Vulkan.Core10.Handles.Device'------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,--- 'Vulkan.Core10.Handles.Pipeline', 'PipelineColorBlendStateCreateInfo',--- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PipelineCreateFlags',--- 'PipelineDepthStencilStateCreateInfo', 'PipelineDynamicStateCreateInfo',--- 'PipelineInputAssemblyStateCreateInfo',--- 'Vulkan.Core10.Handles.PipelineLayout',--- 'PipelineMultisampleStateCreateInfo',--- 'PipelineRasterizationStateCreateInfo', 'PipelineShaderStageCreateInfo',--- 'PipelineTessellationStateCreateInfo',--- 'PipelineVertexInputStateCreateInfo', 'PipelineViewportStateCreateInfo',--- 'Vulkan.Core10.Handles.RenderPass',--- 'Vulkan.Core10.Enums.StructureType.StructureType',--- 'createGraphicsPipelines'-data GraphicsPipelineCreateInfo (es :: [Type]) = GraphicsPipelineCreateInfo- { -- | @pNext@ is @NULL@ or a pointer to a structure extending this structure.- next :: Chain es- , -- | @flags@ is a bitmask of- -- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PipelineCreateFlagBits'- -- specifying how the pipeline will be generated.- flags :: PipelineCreateFlags- , -- | @stageCount@ is the number of entries in the @pStages@ array.- stageCount :: Word32- , -- | @pStages@ is a pointer to an array of @stageCount@- -- 'PipelineShaderStageCreateInfo' structures describing the set of the- -- shader stages to be included in the graphics pipeline.- stages :: Vector (SomeStruct PipelineShaderStageCreateInfo)- , -- | @pVertexInputState@ is a pointer to a- -- 'PipelineVertexInputStateCreateInfo' structure defining vertex input- -- state for use with vertex shading.- vertexInputState :: Maybe (SomeStruct PipelineVertexInputStateCreateInfo)- , -- | @pInputAssemblyState@ is a pointer to a- -- 'PipelineInputAssemblyStateCreateInfo' structure which determines input- -- assembly behavior for vertex shading, as described in- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#drawing Drawing Commands>.- inputAssemblyState :: Maybe PipelineInputAssemblyStateCreateInfo- , -- | @pTessellationState@ is a pointer to a- -- 'PipelineTessellationStateCreateInfo' structure defining tessellation- -- state used by tessellation shaders.- tessellationState :: Maybe (SomeStruct PipelineTessellationStateCreateInfo)- , -- | @pViewportState@ is a pointer to a 'PipelineViewportStateCreateInfo'- -- structure defining viewport state used when rasterization is enabled.- viewportState :: Maybe (SomeStruct PipelineViewportStateCreateInfo)- , -- | @pRasterizationState@ is a pointer to a- -- 'PipelineRasterizationStateCreateInfo' structure defining rasterization- -- state.- rasterizationState :: Maybe (SomeStruct PipelineRasterizationStateCreateInfo)- , -- | @pMultisampleState@ is a pointer to a- -- 'PipelineMultisampleStateCreateInfo' structure defining multisample- -- state used when rasterization is enabled.- multisampleState :: Maybe (SomeStruct PipelineMultisampleStateCreateInfo)- , -- | @pDepthStencilState@ is a pointer to a- -- 'PipelineDepthStencilStateCreateInfo' structure defining depth\/stencil- -- state used when rasterization is enabled for depth or stencil- -- attachments accessed during rendering.- depthStencilState :: Maybe PipelineDepthStencilStateCreateInfo- , -- | @pColorBlendState@ is a pointer to a 'PipelineColorBlendStateCreateInfo'- -- structure defining color blend state used when rasterization is enabled- -- for any color attachments accessed during rendering.- colorBlendState :: Maybe (SomeStruct PipelineColorBlendStateCreateInfo)- , -- | @pDynamicState@ is a pointer to a 'PipelineDynamicStateCreateInfo'- -- structure defining which properties of the pipeline state object are- -- dynamic and /can/ be changed independently of the pipeline state. This- -- /can/ be @NULL@, which means no state in the pipeline is considered- -- dynamic.- dynamicState :: Maybe PipelineDynamicStateCreateInfo- , -- | @layout@ is the description of binding locations used by both the- -- pipeline and descriptor sets used with the pipeline.- layout :: PipelineLayout- , -- | @renderPass@ is a handle to a render pass object describing the- -- environment in which the pipeline will be used. The pipeline /must/ only- -- be used with a render pass instance compatible with the one provided.- -- See- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-compatibility Render Pass Compatibility>- -- for more information.- renderPass :: RenderPass- , -- | @subpass@ is the index of the subpass in the render pass where this- -- pipeline will be used.- subpass :: Word32- , -- | @basePipelineHandle@ is a pipeline to derive from.- basePipelineHandle :: Pipeline- , -- | @basePipelineIndex@ is an index into the @pCreateInfos@ parameter to use- -- as a pipeline to derive from.- basePipelineIndex :: Int32- }- deriving (Typeable)-#if defined(GENERIC_INSTANCES)-deriving instance Generic (GraphicsPipelineCreateInfo (es :: [Type]))-#endif-deriving instance Show (Chain es) => Show (GraphicsPipelineCreateInfo es)--instance Extensible GraphicsPipelineCreateInfo where- extensibleTypeName = "GraphicsPipelineCreateInfo"- setNext GraphicsPipelineCreateInfo{..} next' = GraphicsPipelineCreateInfo{next = next', ..}- getNext GraphicsPipelineCreateInfo{..} = next- extends :: forall e b proxy. Typeable e => proxy e -> (Extends GraphicsPipelineCreateInfo e => b) -> Maybe b- extends _ f+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_pipeline_robustness (PipelineRobustnessCreateInfoEXT)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_sample_locations (PipelineSampleLocationsStateCreateInfoEXT)+import Vulkan.Core10.Enums.PipelineShaderStageCreateFlagBits (PipelineShaderStageCreateFlags)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_shader_module_identifier (PipelineShaderStageModuleIdentifierCreateInfoEXT)+import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_EXT_subgroup_size_control (PipelineShaderStageRequiredSubgroupSizeCreateInfo)+import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_maintenance2 (PipelineTessellationDomainOriginStateCreateInfo)+import Vulkan.Core10.Enums.PipelineTessellationStateCreateFlags (PipelineTessellationStateCreateFlags)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_vertex_attribute_divisor (PipelineVertexInputDivisorStateCreateInfoEXT)+import Vulkan.Core10.Enums.PipelineVertexInputStateCreateFlags (PipelineVertexInputStateCreateFlags)+import {-# SOURCE #-} Vulkan.Extensions.VK_NV_shading_rate_image (PipelineViewportCoarseSampleOrderStateCreateInfoNV)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_depth_clip_control (PipelineViewportDepthClipControlCreateInfoEXT)+import {-# SOURCE #-} Vulkan.Extensions.VK_NV_scissor_exclusive (PipelineViewportExclusiveScissorStateCreateInfoNV)+import {-# SOURCE #-} Vulkan.Extensions.VK_NV_shading_rate_image (PipelineViewportShadingRateImageStateCreateInfoNV)+import Vulkan.Core10.Enums.PipelineViewportStateCreateFlags (PipelineViewportStateCreateFlags)+import {-# SOURCE #-} Vulkan.Extensions.VK_NV_viewport_swizzle (PipelineViewportSwizzleStateCreateInfoNV)+import {-# SOURCE #-} Vulkan.Extensions.VK_NV_clip_space_w_scaling (PipelineViewportWScalingStateCreateInfoNV)+import Vulkan.CStruct.Extends (PokeChain)+import Vulkan.CStruct.Extends (PokeChain(..))+import Vulkan.Core10.Enums.PolygonMode (PolygonMode)+import Vulkan.Core10.Enums.PrimitiveTopology (PrimitiveTopology)+import Vulkan.Core10.FundamentalTypes (Rect2D)+import Vulkan.Core10.Handles (RenderPass)+import Vulkan.Core10.Enums.Result (Result)+import Vulkan.Core10.Enums.Result (Result(..))+import Vulkan.Core10.Enums.SampleCountFlagBits (SampleCountFlagBits)+import Vulkan.Core10.Enums.SampleCountFlagBits (SampleCountFlagBits(SampleCountFlagBits))+import Vulkan.Core10.FundamentalTypes (SampleMask)+import Vulkan.Core10.Handles (ShaderModule)+import {-# SOURCE #-} Vulkan.Core10.Shader (ShaderModuleCreateInfo)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_validation_cache (ShaderModuleValidationCacheCreateInfoEXT)+import Vulkan.Core10.Enums.ShaderStageFlagBits (ShaderStageFlagBits)+import Vulkan.CStruct.Extends (SomeStruct)+import Vulkan.CStruct.Extends (SomeStruct(..))+import Vulkan.Core10.Enums.StencilOp (StencilOp)+import Vulkan.Core10.Enums.StructureType (StructureType)+import {-# SOURCE #-} Vulkan.Extensions.VK_HUAWEI_subpass_shading (SubpassShadingPipelineCreateInfoHUAWEI)+import Vulkan.Core10.Enums.VertexInputRate (VertexInputRate)+import Vulkan.Exception (VulkanException(..))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO))+import Vulkan.Core10.Enums.Result (Result(SUCCESS))+import Vulkan.Core10.Enums.BlendFactor (BlendFactor(..))+import Vulkan.Core10.Enums.BlendOp (BlendOp(..))+import Vulkan.Core10.Enums.ColorComponentFlagBits (ColorComponentFlagBits(..))+import Vulkan.Core10.Enums.ColorComponentFlagBits (ColorComponentFlags)+import Vulkan.Core10.Enums.CompareOp (CompareOp(..))+import Vulkan.Core10.Enums.CullModeFlagBits (CullModeFlagBits(..))+import Vulkan.Core10.Enums.CullModeFlagBits (CullModeFlags)+import Vulkan.Core10.Enums.DynamicState (DynamicState(..))+import Vulkan.Core10.Enums.FrontFace (FrontFace(..))+import Vulkan.Core10.Enums.LogicOp (LogicOp(..))+import Vulkan.Core10.Handles (Pipeline(..))+import Vulkan.Core10.Enums.PipelineColorBlendStateCreateFlagBits (PipelineColorBlendStateCreateFlagBits(..))+import Vulkan.Core10.Enums.PipelineColorBlendStateCreateFlagBits (PipelineColorBlendStateCreateFlags)+import Vulkan.Core10.Enums.PipelineCreateFlagBits (PipelineCreateFlagBits(..))+import Vulkan.Core10.Enums.PipelineCreateFlagBits (PipelineCreateFlags)+import Vulkan.Core10.Enums.PipelineDepthStencilStateCreateFlagBits (PipelineDepthStencilStateCreateFlagBits(..))+import Vulkan.Core10.Enums.PipelineDepthStencilStateCreateFlagBits (PipelineDepthStencilStateCreateFlags)+import Vulkan.Core10.Enums.PipelineDynamicStateCreateFlags (PipelineDynamicStateCreateFlags(..))+import Vulkan.Core10.Enums.PipelineInputAssemblyStateCreateFlags (PipelineInputAssemblyStateCreateFlags(..))+import Vulkan.Core10.Enums.PipelineLayoutCreateFlagBits (PipelineLayoutCreateFlagBits(..))+import Vulkan.Core10.Enums.PipelineLayoutCreateFlagBits (PipelineLayoutCreateFlags)+import Vulkan.Core10.Enums.PipelineMultisampleStateCreateFlags (PipelineMultisampleStateCreateFlags(..))+import Vulkan.Core10.Enums.PipelineRasterizationStateCreateFlags (PipelineRasterizationStateCreateFlags(..))+import Vulkan.Core10.Enums.PipelineShaderStageCreateFlagBits (PipelineShaderStageCreateFlagBits(..))+import Vulkan.Core10.Enums.PipelineShaderStageCreateFlagBits (PipelineShaderStageCreateFlags)+import Vulkan.Core10.Enums.PipelineTessellationStateCreateFlags (PipelineTessellationStateCreateFlags(..))+import Vulkan.Core10.Enums.PipelineVertexInputStateCreateFlags (PipelineVertexInputStateCreateFlags(..))+import Vulkan.Core10.Enums.PipelineViewportStateCreateFlags (PipelineViewportStateCreateFlags(..))+import Vulkan.Core10.Enums.PolygonMode (PolygonMode(..))+import Vulkan.Core10.Enums.PrimitiveTopology (PrimitiveTopology(..))+import Vulkan.Core10.FundamentalTypes (SampleMask)+import Vulkan.Core10.Enums.ShaderStageFlagBits (ShaderStageFlagBits(..))+import Vulkan.Core10.Enums.ShaderStageFlagBits (ShaderStageFlags)+import Vulkan.Core10.Enums.StencilOp (StencilOp(..))+import Vulkan.Core10.Enums.VertexInputRate (VertexInputRate(..))+foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+ unsafe+#endif+ "dynamic" mkVkCreateGraphicsPipelines+ :: FunPtr (Ptr Device_T -> PipelineCache -> Word32 -> Ptr (SomeStruct GraphicsPipelineCreateInfo) -> Ptr AllocationCallbacks -> Ptr Pipeline -> IO Result) -> Ptr Device_T -> PipelineCache -> Word32 -> Ptr (SomeStruct GraphicsPipelineCreateInfo) -> Ptr AllocationCallbacks -> Ptr Pipeline -> IO Result++-- | vkCreateGraphicsPipelines - Create graphics pipelines+--+-- = Description+--+-- The 'GraphicsPipelineCreateInfo' structure includes an array of+-- 'PipelineShaderStageCreateInfo' structures for each of the desired+-- active shader stages, as well as creation information for all relevant+-- fixed-function stages, and a pipeline layout.+--+-- == Valid Usage+--+-- - #VUID-vkCreateGraphicsPipelines-flags-00720# If the @flags@ member+-- of any element of @pCreateInfos@ contains the+-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DERIVATIVE_BIT'+-- flag, and the @basePipelineIndex@ member of that same element is not+-- @-1@, @basePipelineIndex@ /must/ be less than the index into+-- @pCreateInfos@ that corresponds to that element+--+-- - #VUID-vkCreateGraphicsPipelines-flags-00721# If the @flags@ member+-- of any element of @pCreateInfos@ contains the+-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DERIVATIVE_BIT'+-- flag, the base pipeline /must/ have been created with the+-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT'+-- flag set+--+-- - #VUID-vkCreateGraphicsPipelines-pipelineCache-02876# If+-- @pipelineCache@ was created with+-- 'Vulkan.Core10.Enums.PipelineCacheCreateFlagBits.PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT',+-- host access to @pipelineCache@ /must/ be+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fundamentals-threadingbehavior externally synchronized>+--+-- Note+--+-- An implicit cache may be provided by the implementation or a layer. For+-- this reason, it is still valid to set+-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT'+-- on @flags@ for any element of @pCreateInfos@ while passing+-- 'Vulkan.Core10.APIConstants.NULL_HANDLE' for @pipelineCache@.+--+-- == Valid Usage (Implicit)+--+-- - #VUID-vkCreateGraphicsPipelines-device-parameter# @device@ /must/ be+-- a valid 'Vulkan.Core10.Handles.Device' handle+--+-- - #VUID-vkCreateGraphicsPipelines-pipelineCache-parameter# If+-- @pipelineCache@ is not 'Vulkan.Core10.APIConstants.NULL_HANDLE',+-- @pipelineCache@ /must/ be a valid+-- 'Vulkan.Core10.Handles.PipelineCache' handle+--+-- - #VUID-vkCreateGraphicsPipelines-pCreateInfos-parameter#+-- @pCreateInfos@ /must/ be a valid pointer to an array of+-- @createInfoCount@ valid 'GraphicsPipelineCreateInfo' structures+--+-- - #VUID-vkCreateGraphicsPipelines-pAllocator-parameter# If+-- @pAllocator@ is not @NULL@, @pAllocator@ /must/ be a valid pointer+-- to a valid 'Vulkan.Core10.AllocationCallbacks.AllocationCallbacks'+-- structure+--+-- - #VUID-vkCreateGraphicsPipelines-pPipelines-parameter# @pPipelines@+-- /must/ be a valid pointer to an array of @createInfoCount@+-- 'Vulkan.Core10.Handles.Pipeline' handles+--+-- - #VUID-vkCreateGraphicsPipelines-createInfoCount-arraylength#+-- @createInfoCount@ /must/ be greater than @0@+--+-- - #VUID-vkCreateGraphicsPipelines-pipelineCache-parent# If+-- @pipelineCache@ is a valid handle, it /must/ have been created,+-- allocated, or retrieved from @device@+--+-- == Return Codes+--+-- [<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodes Success>]+--+-- - 'Vulkan.Core10.Enums.Result.SUCCESS'+--+-- - 'Vulkan.Extensions.VK_EXT_pipeline_creation_cache_control.PIPELINE_COMPILE_REQUIRED_EXT'+--+-- [<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodes Failure>]+--+-- - 'Vulkan.Core10.Enums.Result.ERROR_OUT_OF_HOST_MEMORY'+--+-- - 'Vulkan.Core10.Enums.Result.ERROR_OUT_OF_DEVICE_MEMORY'+--+-- - 'Vulkan.Core10.Enums.Result.ERROR_INVALID_SHADER_NV'+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,+-- 'Vulkan.Core10.AllocationCallbacks.AllocationCallbacks',+-- 'Vulkan.Core10.Handles.Device', 'GraphicsPipelineCreateInfo',+-- 'Vulkan.Core10.Handles.Pipeline', 'Vulkan.Core10.Handles.PipelineCache'+createGraphicsPipelines :: forall io+ . (MonadIO io)+ => -- | @device@ is the logical device that creates the graphics pipelines.+ Device+ -> -- | @pipelineCache@ is either 'Vulkan.Core10.APIConstants.NULL_HANDLE',+ -- indicating that pipeline caching is disabled; or the handle of a valid+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-cache pipeline cache>+ -- object, in which case use of that cache is enabled for the duration of+ -- the command.+ PipelineCache+ -> -- | @pCreateInfos@ is a pointer to an array of 'GraphicsPipelineCreateInfo'+ -- structures.+ ("createInfos" ::: Vector (SomeStruct GraphicsPipelineCreateInfo))+ -> -- | @pAllocator@ controls host memory allocation as described in the+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>+ -- chapter.+ ("allocator" ::: Maybe AllocationCallbacks)+ -> io (Result, ("pipelines" ::: Vector Pipeline))+createGraphicsPipelines device pipelineCache createInfos allocator = liftIO . evalContT $ do+ let vkCreateGraphicsPipelinesPtr = pVkCreateGraphicsPipelines (case device of Device{deviceCmds} -> deviceCmds)+ lift $ unless (vkCreateGraphicsPipelinesPtr /= nullFunPtr) $+ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCreateGraphicsPipelines is null" Nothing Nothing+ let vkCreateGraphicsPipelines' = mkVkCreateGraphicsPipelines vkCreateGraphicsPipelinesPtr+ pPCreateInfos <- ContT $ allocaBytes @(GraphicsPipelineCreateInfo _) ((Data.Vector.length (createInfos)) * 144)+ Data.Vector.imapM_ (\i e -> ContT $ pokeSomeCStruct (forgetExtensions (pPCreateInfos `plusPtr` (144 * (i)) :: Ptr (GraphicsPipelineCreateInfo _))) (e) . ($ ())) (createInfos)+ pAllocator <- case (allocator) of+ Nothing -> pure nullPtr+ Just j -> ContT $ withCStruct (j)+ pPPipelines <- ContT $ bracket (callocBytes @Pipeline ((fromIntegral ((fromIntegral (Data.Vector.length $ (createInfos)) :: Word32))) * 8)) free+ r <- lift $ traceAroundEvent "vkCreateGraphicsPipelines" (vkCreateGraphicsPipelines' (deviceHandle (device)) (pipelineCache) ((fromIntegral (Data.Vector.length $ (createInfos)) :: Word32)) (forgetExtensions (pPCreateInfos)) pAllocator (pPPipelines))+ lift $ when (r < SUCCESS) (throwIO (VulkanException r))+ pPipelines <- lift $ generateM (fromIntegral ((fromIntegral (Data.Vector.length $ (createInfos)) :: Word32))) (\i -> peek @Pipeline ((pPPipelines `advancePtrBytes` (8 * (i)) :: Ptr Pipeline)))+ pure $ (r, pPipelines)++-- | A convenience wrapper to make a compatible pair of calls to+-- 'createGraphicsPipelines' and 'destroyPipeline'+--+-- To ensure that 'destroyPipeline' is always called: pass+-- 'Control.Exception.bracket' (or the allocate function from your+-- favourite resource management library) as the last argument.+-- To just extract the pair pass '(,)' as the last argument.+--+withGraphicsPipelines :: forall io r . MonadIO io => Device -> PipelineCache -> Vector (SomeStruct GraphicsPipelineCreateInfo) -> Maybe AllocationCallbacks -> (io (Result, Vector Pipeline) -> ((Result, Vector Pipeline) -> io ()) -> r) -> r+withGraphicsPipelines device pipelineCache pCreateInfos pAllocator b =+ b (createGraphicsPipelines device pipelineCache pCreateInfos pAllocator)+ (\(_, o1) -> traverse_ (\o1Elem -> destroyPipeline device o1Elem pAllocator) o1)+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+ unsafe+#endif+ "dynamic" mkVkCreateComputePipelines+ :: FunPtr (Ptr Device_T -> PipelineCache -> Word32 -> Ptr (SomeStruct ComputePipelineCreateInfo) -> Ptr AllocationCallbacks -> Ptr Pipeline -> IO Result) -> Ptr Device_T -> PipelineCache -> Word32 -> Ptr (SomeStruct ComputePipelineCreateInfo) -> Ptr AllocationCallbacks -> Ptr Pipeline -> IO Result++-- | vkCreateComputePipelines - Creates a new compute pipeline object+--+-- == Valid Usage+--+-- - #VUID-vkCreateComputePipelines-flags-00695# If the @flags@ member of+-- any element of @pCreateInfos@ contains the+-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DERIVATIVE_BIT'+-- flag, and the @basePipelineIndex@ member of that same element is not+-- @-1@, @basePipelineIndex@ /must/ be less than the index into+-- @pCreateInfos@ that corresponds to that element+--+-- - #VUID-vkCreateComputePipelines-flags-00696# If the @flags@ member of+-- any element of @pCreateInfos@ contains the+-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DERIVATIVE_BIT'+-- flag, the base pipeline /must/ have been created with the+-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT'+-- flag set+--+-- - #VUID-vkCreateComputePipelines-pipelineCache-02873# If+-- @pipelineCache@ was created with+-- 'Vulkan.Core10.Enums.PipelineCacheCreateFlagBits.PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT',+-- host access to @pipelineCache@ /must/ be+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fundamentals-threadingbehavior externally synchronized>+--+-- == Valid Usage (Implicit)+--+-- - #VUID-vkCreateComputePipelines-device-parameter# @device@ /must/ be+-- a valid 'Vulkan.Core10.Handles.Device' handle+--+-- - #VUID-vkCreateComputePipelines-pipelineCache-parameter# If+-- @pipelineCache@ is not 'Vulkan.Core10.APIConstants.NULL_HANDLE',+-- @pipelineCache@ /must/ be a valid+-- 'Vulkan.Core10.Handles.PipelineCache' handle+--+-- - #VUID-vkCreateComputePipelines-pCreateInfos-parameter#+-- @pCreateInfos@ /must/ be a valid pointer to an array of+-- @createInfoCount@ valid 'ComputePipelineCreateInfo' structures+--+-- - #VUID-vkCreateComputePipelines-pAllocator-parameter# If @pAllocator@+-- is not @NULL@, @pAllocator@ /must/ be a valid pointer to a valid+-- 'Vulkan.Core10.AllocationCallbacks.AllocationCallbacks' structure+--+-- - #VUID-vkCreateComputePipelines-pPipelines-parameter# @pPipelines@+-- /must/ be a valid pointer to an array of @createInfoCount@+-- 'Vulkan.Core10.Handles.Pipeline' handles+--+-- - #VUID-vkCreateComputePipelines-createInfoCount-arraylength#+-- @createInfoCount@ /must/ be greater than @0@+--+-- - #VUID-vkCreateComputePipelines-pipelineCache-parent# If+-- @pipelineCache@ is a valid handle, it /must/ have been created,+-- allocated, or retrieved from @device@+--+-- == Return Codes+--+-- [<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodes Success>]+--+-- - 'Vulkan.Core10.Enums.Result.SUCCESS'+--+-- - 'Vulkan.Extensions.VK_EXT_pipeline_creation_cache_control.PIPELINE_COMPILE_REQUIRED_EXT'+--+-- [<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodes Failure>]+--+-- - 'Vulkan.Core10.Enums.Result.ERROR_OUT_OF_HOST_MEMORY'+--+-- - 'Vulkan.Core10.Enums.Result.ERROR_OUT_OF_DEVICE_MEMORY'+--+-- - 'Vulkan.Core10.Enums.Result.ERROR_INVALID_SHADER_NV'+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,+-- 'Vulkan.Core10.AllocationCallbacks.AllocationCallbacks',+-- 'ComputePipelineCreateInfo', 'Vulkan.Core10.Handles.Device',+-- 'Vulkan.Core10.Handles.Pipeline', 'Vulkan.Core10.Handles.PipelineCache'+createComputePipelines :: forall io+ . (MonadIO io)+ => -- | @device@ is the logical device that creates the compute pipelines.+ Device+ -> -- | @pipelineCache@ is either 'Vulkan.Core10.APIConstants.NULL_HANDLE',+ -- indicating that pipeline caching is disabled; or the handle of a valid+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-cache pipeline cache>+ -- object, in which case use of that cache is enabled for the duration of+ -- the command.+ PipelineCache+ -> -- | @pCreateInfos@ is a pointer to an array of 'ComputePipelineCreateInfo'+ -- structures.+ ("createInfos" ::: Vector (SomeStruct ComputePipelineCreateInfo))+ -> -- | @pAllocator@ controls host memory allocation as described in the+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>+ -- chapter.+ ("allocator" ::: Maybe AllocationCallbacks)+ -> io (Result, ("pipelines" ::: Vector Pipeline))+createComputePipelines device pipelineCache createInfos allocator = liftIO . evalContT $ do+ let vkCreateComputePipelinesPtr = pVkCreateComputePipelines (case device of Device{deviceCmds} -> deviceCmds)+ lift $ unless (vkCreateComputePipelinesPtr /= nullFunPtr) $+ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCreateComputePipelines is null" Nothing Nothing+ let vkCreateComputePipelines' = mkVkCreateComputePipelines vkCreateComputePipelinesPtr+ pPCreateInfos <- ContT $ allocaBytes @(ComputePipelineCreateInfo _) ((Data.Vector.length (createInfos)) * 96)+ Data.Vector.imapM_ (\i e -> ContT $ pokeSomeCStruct (forgetExtensions (pPCreateInfos `plusPtr` (96 * (i)) :: Ptr (ComputePipelineCreateInfo _))) (e) . ($ ())) (createInfos)+ pAllocator <- case (allocator) of+ Nothing -> pure nullPtr+ Just j -> ContT $ withCStruct (j)+ pPPipelines <- ContT $ bracket (callocBytes @Pipeline ((fromIntegral ((fromIntegral (Data.Vector.length $ (createInfos)) :: Word32))) * 8)) free+ r <- lift $ traceAroundEvent "vkCreateComputePipelines" (vkCreateComputePipelines' (deviceHandle (device)) (pipelineCache) ((fromIntegral (Data.Vector.length $ (createInfos)) :: Word32)) (forgetExtensions (pPCreateInfos)) pAllocator (pPPipelines))+ lift $ when (r < SUCCESS) (throwIO (VulkanException r))+ pPipelines <- lift $ generateM (fromIntegral ((fromIntegral (Data.Vector.length $ (createInfos)) :: Word32))) (\i -> peek @Pipeline ((pPPipelines `advancePtrBytes` (8 * (i)) :: Ptr Pipeline)))+ pure $ (r, pPipelines)++-- | A convenience wrapper to make a compatible pair of calls to+-- 'createComputePipelines' and 'destroyPipeline'+--+-- To ensure that 'destroyPipeline' is always called: pass+-- 'Control.Exception.bracket' (or the allocate function from your+-- favourite resource management library) as the last argument.+-- To just extract the pair pass '(,)' as the last argument.+--+withComputePipelines :: forall io r . MonadIO io => Device -> PipelineCache -> Vector (SomeStruct ComputePipelineCreateInfo) -> Maybe AllocationCallbacks -> (io (Result, Vector Pipeline) -> ((Result, Vector Pipeline) -> io ()) -> r) -> r+withComputePipelines device pipelineCache pCreateInfos pAllocator b =+ b (createComputePipelines device pipelineCache pCreateInfos pAllocator)+ (\(_, o1) -> traverse_ (\o1Elem -> destroyPipeline device o1Elem pAllocator) o1)+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+ unsafe+#endif+ "dynamic" mkVkDestroyPipeline+ :: FunPtr (Ptr Device_T -> Pipeline -> Ptr AllocationCallbacks -> IO ()) -> Ptr Device_T -> Pipeline -> Ptr AllocationCallbacks -> IO ()++-- | vkDestroyPipeline - Destroy a pipeline object+--+-- == Valid Usage+--+-- - #VUID-vkDestroyPipeline-pipeline-00765# All submitted commands that+-- refer to @pipeline@ /must/ have completed execution+--+-- - #VUID-vkDestroyPipeline-pipeline-00766# If+-- 'Vulkan.Core10.AllocationCallbacks.AllocationCallbacks' were+-- provided when @pipeline@ was created, a compatible set of callbacks+-- /must/ be provided here+--+-- - #VUID-vkDestroyPipeline-pipeline-00767# If no+-- 'Vulkan.Core10.AllocationCallbacks.AllocationCallbacks' were+-- provided when @pipeline@ was created, @pAllocator@ /must/ be @NULL@+--+-- == Valid Usage (Implicit)+--+-- - #VUID-vkDestroyPipeline-device-parameter# @device@ /must/ be a valid+-- 'Vulkan.Core10.Handles.Device' handle+--+-- - #VUID-vkDestroyPipeline-pipeline-parameter# If @pipeline@ is not+-- 'Vulkan.Core10.APIConstants.NULL_HANDLE', @pipeline@ /must/ be a+-- valid 'Vulkan.Core10.Handles.Pipeline' handle+--+-- - #VUID-vkDestroyPipeline-pAllocator-parameter# If @pAllocator@ is not+-- @NULL@, @pAllocator@ /must/ be a valid pointer to a valid+-- 'Vulkan.Core10.AllocationCallbacks.AllocationCallbacks' structure+--+-- - #VUID-vkDestroyPipeline-pipeline-parent# If @pipeline@ is a valid+-- handle, it /must/ have been created, allocated, or retrieved from+-- @device@+--+-- == Host Synchronization+--+-- - Host access to @pipeline@ /must/ be externally synchronized+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,+-- 'Vulkan.Core10.AllocationCallbacks.AllocationCallbacks',+-- 'Vulkan.Core10.Handles.Device', 'Vulkan.Core10.Handles.Pipeline'+destroyPipeline :: forall io+ . (MonadIO io)+ => -- | @device@ is the logical device that destroys the pipeline.+ Device+ -> -- | @pipeline@ is the handle of the pipeline to destroy.+ Pipeline+ -> -- | @pAllocator@ controls host memory allocation as described in the+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>+ -- chapter.+ ("allocator" ::: Maybe AllocationCallbacks)+ -> io ()+destroyPipeline device pipeline allocator = liftIO . evalContT $ do+ let vkDestroyPipelinePtr = pVkDestroyPipeline (case device of Device{deviceCmds} -> deviceCmds)+ lift $ unless (vkDestroyPipelinePtr /= nullFunPtr) $+ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkDestroyPipeline is null" Nothing Nothing+ let vkDestroyPipeline' = mkVkDestroyPipeline vkDestroyPipelinePtr+ pAllocator <- case (allocator) of+ Nothing -> pure nullPtr+ Just j -> ContT $ withCStruct (j)+ lift $ traceAroundEvent "vkDestroyPipeline" (vkDestroyPipeline' (deviceHandle (device)) (pipeline) pAllocator)+ pure $ ()+++-- | VkViewport - Structure specifying a viewport+--+-- = Description+--+-- Note+--+-- Despite their names, @minDepth@ /can/ be less than, equal to, or greater+-- than @maxDepth@.+--+-- The framebuffer depth coordinate @z@f /may/ be represented using either+-- a fixed-point or floating-point representation. However, a+-- floating-point representation /must/ be used if the depth\/stencil+-- attachment has a floating-point depth component. If an m-bit fixed-point+-- representation is used, we assume that it represents each value+-- \(\frac{k}{2^m - 1}\), where k ∈ { 0, 1, …, 2m-1 }, as k (e.g. 1.0 is+-- represented in binary as a string of all ones).+--+-- The viewport parameters shown in the above equations are found from+-- these values as+--+-- - ox = @x@ + @width@ \/ 2+--+-- - oy = @y@ + @height@ \/ 2+--+-- - oz = @minDepth@ (or (@maxDepth@ + @minDepth@) \/ 2 if+-- 'Vulkan.Extensions.VK_EXT_depth_clip_control.PipelineViewportDepthClipControlCreateInfoEXT'::@negativeOneToOne@+-- is 'Vulkan.Core10.FundamentalTypes.TRUE')+--+-- - px = @width@+--+-- - py = @height@+--+-- - pz = @maxDepth@ - @minDepth@ (or (@maxDepth@ - @minDepth@) \/ 2 if+-- 'Vulkan.Extensions.VK_EXT_depth_clip_control.PipelineViewportDepthClipControlCreateInfoEXT'::@negativeOneToOne@+-- is 'Vulkan.Core10.FundamentalTypes.TRUE')+--+-- If a render pass transform is enabled, the values (px,py) and (ox, oy)+-- defining the viewport are transformed as described in+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#vertexpostproc-renderpass-transform render pass transform>+-- before participating in the viewport transform.+--+-- The application /can/ specify a negative term for @height@, which has+-- the effect of negating the y coordinate in clip space before performing+-- the transform. When using a negative @height@, the application /should/+-- also adjust the @y@ value to point to the lower left corner of the+-- viewport instead of the upper left corner. Using the negative @height@+-- allows the application to avoid having to negate the y component of the+-- @Position@ output from the last+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader stage>.+--+-- The width and height of the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxViewportDimensions implementation-dependent maximum viewport dimensions>+-- /must/ be greater than or equal to the width and height of the largest+-- image which /can/ be created and attached to a framebuffer.+--+-- The floating-point viewport bounds are represented with an+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-viewportSubPixelBits implementation-dependent precision>.+--+-- == Valid Usage+--+-- - #VUID-VkViewport-width-01770# @width@ /must/ be greater than @0.0@+--+-- - #VUID-VkViewport-width-01771# @width@ /must/ be less than or equal+-- to+-- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxViewportDimensions@[0]+--+-- - #VUID-VkViewport-height-01773# The absolute value of @height@ /must/+-- be less than or equal to+-- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxViewportDimensions@[1]+--+-- - #VUID-VkViewport-x-01774# @x@ /must/ be greater than or equal to+-- @viewportBoundsRange@[0]+--+-- - #VUID-VkViewport-x-01232# (@x@ + @width@) /must/ be less than or+-- equal to @viewportBoundsRange@[1]+--+-- - #VUID-VkViewport-y-01775# @y@ /must/ be greater than or equal to+-- @viewportBoundsRange@[0]+--+-- - #VUID-VkViewport-y-01776# @y@ /must/ be less than or equal to+-- @viewportBoundsRange@[1]+--+-- - #VUID-VkViewport-y-01777# (@y@ + @height@) /must/ be greater than or+-- equal to @viewportBoundsRange@[0]+--+-- - #VUID-VkViewport-y-01233# (@y@ + @height@) /must/ be less than or+-- equal to @viewportBoundsRange@[1]+--+-- - #VUID-VkViewport-minDepth-01234# Unless+-- @VK_EXT_depth_range_unrestricted@ extension is enabled @minDepth@+-- /must/ be between @0.0@ and @1.0@, inclusive+--+-- - #VUID-VkViewport-maxDepth-01235# Unless+-- @VK_EXT_depth_range_unrestricted@ extension is enabled @maxDepth@+-- /must/ be between @0.0@ and @1.0@, inclusive+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,+-- 'Vulkan.Extensions.VK_NV_inherited_viewport_scissor.CommandBufferInheritanceViewportScissorInfoNV',+-- 'PipelineViewportStateCreateInfo',+-- 'Vulkan.Core10.CommandBufferBuilding.cmdSetViewport',+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount',+-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+data Viewport = Viewport+ { -- | @x@ and @y@ are the viewport’s upper left corner (x,y).+ x :: Float+ , -- No documentation found for Nested "VkViewport" "y"+ y :: Float+ , -- | @width@ and @height@ are the viewport’s width and height, respectively.+ width :: Float+ , -- No documentation found for Nested "VkViewport" "height"+ height :: Float+ , -- | @minDepth@ and @maxDepth@ are the depth range for the viewport.+ minDepth :: Float+ , -- No documentation found for Nested "VkViewport" "maxDepth"+ maxDepth :: Float+ }+ deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (Viewport)+#endif+deriving instance Show Viewport++instance ToCStruct Viewport where+ withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)+ pokeCStruct p Viewport{..} f = do+ poke ((p `plusPtr` 0 :: Ptr CFloat)) (CFloat (x))+ poke ((p `plusPtr` 4 :: Ptr CFloat)) (CFloat (y))+ poke ((p `plusPtr` 8 :: Ptr CFloat)) (CFloat (width))+ poke ((p `plusPtr` 12 :: Ptr CFloat)) (CFloat (height))+ poke ((p `plusPtr` 16 :: Ptr CFloat)) (CFloat (minDepth))+ poke ((p `plusPtr` 20 :: Ptr CFloat)) (CFloat (maxDepth))+ f+ cStructSize = 24+ cStructAlignment = 4+ pokeZeroCStruct p f = do+ poke ((p `plusPtr` 0 :: Ptr CFloat)) (CFloat (zero))+ poke ((p `plusPtr` 4 :: Ptr CFloat)) (CFloat (zero))+ poke ((p `plusPtr` 8 :: Ptr CFloat)) (CFloat (zero))+ poke ((p `plusPtr` 12 :: Ptr CFloat)) (CFloat (zero))+ poke ((p `plusPtr` 16 :: Ptr CFloat)) (CFloat (zero))+ poke ((p `plusPtr` 20 :: Ptr CFloat)) (CFloat (zero))+ f++instance FromCStruct Viewport where+ peekCStruct p = do+ x <- peek @CFloat ((p `plusPtr` 0 :: Ptr CFloat))+ y <- peek @CFloat ((p `plusPtr` 4 :: Ptr CFloat))+ width <- peek @CFloat ((p `plusPtr` 8 :: Ptr CFloat))+ height <- peek @CFloat ((p `plusPtr` 12 :: Ptr CFloat))+ minDepth <- peek @CFloat ((p `plusPtr` 16 :: Ptr CFloat))+ maxDepth <- peek @CFloat ((p `plusPtr` 20 :: Ptr CFloat))+ pure $ Viewport+ (coerce @CFloat @Float x) (coerce @CFloat @Float y) (coerce @CFloat @Float width) (coerce @CFloat @Float height) (coerce @CFloat @Float minDepth) (coerce @CFloat @Float maxDepth)++instance Storable Viewport where+ sizeOf ~_ = 24+ alignment ~_ = 4+ peek = peekCStruct+ poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero Viewport where+ zero = Viewport+ zero+ zero+ zero+ zero+ zero+ zero+++-- | VkSpecializationMapEntry - Structure specifying a specialization map+-- entry+--+-- = Description+--+-- If a @constantID@ value is not a specialization constant ID used in the+-- shader, that map entry does not affect the behavior of the pipeline.+--+-- == Valid Usage+--+-- - #VUID-VkSpecializationMapEntry-constantID-00776# For a @constantID@+-- specialization constant declared in a shader, @size@ /must/ match+-- the byte size of the @constantID@. If the specialization constant is+-- of type @boolean@, @size@ /must/ be the byte size of+-- 'Vulkan.Core10.FundamentalTypes.Bool32'+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,+-- 'SpecializationInfo'+data SpecializationMapEntry = SpecializationMapEntry+ { -- | @constantID@ is the ID of the specialization constant in SPIR-V.+ constantID :: Word32+ , -- | @offset@ is the byte offset of the specialization constant value within+ -- the supplied data buffer.+ offset :: Word32+ , -- | @size@ is the byte size of the specialization constant value within the+ -- supplied data buffer.+ size :: Word64+ }+ deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (SpecializationMapEntry)+#endif+deriving instance Show SpecializationMapEntry++instance ToCStruct SpecializationMapEntry where+ withCStruct x f = allocaBytes 16 $ \p -> pokeCStruct p x (f p)+ pokeCStruct p SpecializationMapEntry{..} f = do+ poke ((p `plusPtr` 0 :: Ptr Word32)) (constantID)+ poke ((p `plusPtr` 4 :: Ptr Word32)) (offset)+ poke ((p `plusPtr` 8 :: Ptr CSize)) (CSize (size))+ f+ cStructSize = 16+ cStructAlignment = 8+ pokeZeroCStruct p f = do+ poke ((p `plusPtr` 0 :: Ptr Word32)) (zero)+ poke ((p `plusPtr` 4 :: Ptr Word32)) (zero)+ poke ((p `plusPtr` 8 :: Ptr CSize)) (CSize (zero))+ f++instance FromCStruct SpecializationMapEntry where+ peekCStruct p = do+ constantID <- peek @Word32 ((p `plusPtr` 0 :: Ptr Word32))+ offset <- peek @Word32 ((p `plusPtr` 4 :: Ptr Word32))+ size <- peek @CSize ((p `plusPtr` 8 :: Ptr CSize))+ pure $ SpecializationMapEntry+ constantID offset (coerce @CSize @Word64 size)++instance Storable SpecializationMapEntry where+ sizeOf ~_ = 16+ alignment ~_ = 8+ peek = peekCStruct+ poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero SpecializationMapEntry where+ zero = SpecializationMapEntry+ zero+ zero+ zero+++-- | VkSpecializationInfo - Structure specifying specialization information+--+-- == Valid Usage+--+-- - #VUID-VkSpecializationInfo-offset-00773# The @offset@ member of each+-- element of @pMapEntries@ /must/ be less than @dataSize@+--+-- - #VUID-VkSpecializationInfo-pMapEntries-00774# The @size@ member of+-- each element of @pMapEntries@ /must/ be less than or equal to+-- @dataSize@ minus @offset@+--+-- - #VUID-VkSpecializationInfo-constantID-04911# The @constantID@ value+-- of each element of @pMapEntries@ /must/ be unique within+-- @pMapEntries@+--+-- == Valid Usage (Implicit)+--+-- - #VUID-VkSpecializationInfo-pMapEntries-parameter# If @mapEntryCount@+-- is not @0@, @pMapEntries@ /must/ be a valid pointer to an array of+-- @mapEntryCount@ valid 'SpecializationMapEntry' structures+--+-- - #VUID-VkSpecializationInfo-pData-parameter# If @dataSize@ is not+-- @0@, @pData@ /must/ be a valid pointer to an array of @dataSize@+-- bytes+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,+-- 'PipelineShaderStageCreateInfo', 'SpecializationMapEntry'+data SpecializationInfo = SpecializationInfo+ { -- | @pMapEntries@ is a pointer to an array of 'SpecializationMapEntry'+ -- structures which map constant IDs to offsets in @pData@.+ mapEntries :: Vector SpecializationMapEntry+ , -- | @dataSize@ is the byte size of the @pData@ buffer.+ dataSize :: Word64+ , -- | @pData@ contains the actual constant values to specialize with.+ data' :: Ptr ()+ }+ deriving (Typeable)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (SpecializationInfo)+#endif+deriving instance Show SpecializationInfo++instance ToCStruct SpecializationInfo where+ withCStruct x f = allocaBytes 32 $ \p -> pokeCStruct p x (f p)+ pokeCStruct p SpecializationInfo{..} f = evalContT $ do+ lift $ poke ((p `plusPtr` 0 :: Ptr Word32)) ((fromIntegral (Data.Vector.length $ (mapEntries)) :: Word32))+ pPMapEntries' <- ContT $ allocaBytes @SpecializationMapEntry ((Data.Vector.length (mapEntries)) * 16)+ lift $ Data.Vector.imapM_ (\i e -> poke (pPMapEntries' `plusPtr` (16 * (i)) :: Ptr SpecializationMapEntry) (e)) (mapEntries)+ lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr SpecializationMapEntry))) (pPMapEntries')+ lift $ poke ((p `plusPtr` 16 :: Ptr CSize)) (CSize (dataSize))+ lift $ poke ((p `plusPtr` 24 :: Ptr (Ptr ()))) (data')+ lift $ f+ cStructSize = 32+ cStructAlignment = 8+ pokeZeroCStruct p f = do+ poke ((p `plusPtr` 24 :: Ptr (Ptr ()))) (zero)+ f++instance FromCStruct SpecializationInfo where+ peekCStruct p = do+ mapEntryCount <- peek @Word32 ((p `plusPtr` 0 :: Ptr Word32))+ pMapEntries <- peek @(Ptr SpecializationMapEntry) ((p `plusPtr` 8 :: Ptr (Ptr SpecializationMapEntry)))+ pMapEntries' <- generateM (fromIntegral mapEntryCount) (\i -> peekCStruct @SpecializationMapEntry ((pMapEntries `advancePtrBytes` (16 * (i)) :: Ptr SpecializationMapEntry)))+ dataSize <- peek @CSize ((p `plusPtr` 16 :: Ptr CSize))+ pData <- peek @(Ptr ()) ((p `plusPtr` 24 :: Ptr (Ptr ())))+ pure $ SpecializationInfo+ pMapEntries' (coerce @CSize @Word64 dataSize) pData++instance Zero SpecializationInfo where+ zero = SpecializationInfo+ mempty+ zero+ zero+++-- | VkPipelineShaderStageCreateInfo - Structure specifying parameters of a+-- newly created pipeline shader stage+--+-- = Description+--+-- If the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-graphicsPipelineLibrary graphicsPipelineLibrary>+-- feature is enabled and an instance of+-- 'Vulkan.Core10.Shader.ShaderModuleCreateInfo' is included in the @pNext@+-- chain, @module@ /can/ be 'Vulkan.Core10.APIConstants.NULL_HANDLE'. If+-- @module@ is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the shader+-- code used by the pipeline is defined by @module@. If @module@ is+-- 'Vulkan.Core10.APIConstants.NULL_HANDLE', the shader code is defined by+-- the chained 'Vulkan.Core10.Shader.ShaderModuleCreateInfo' if present.+--+-- If the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-shaderModuleIdentifier shaderModuleIdentifier>+-- feature is enabled, applications /can/ omit shader code for @stage@ and+-- instead provide a module identifier. This is done by including a+-- 'Vulkan.Extensions.VK_EXT_shader_module_identifier.PipelineShaderStageModuleIdentifierCreateInfoEXT'+-- struct with @identifierSize@ not equal to 0 in the @pNext@ chain. A+-- shader stage created in this way is equivalent to one created using a+-- shader module with the same identifier. The identifier allows an+-- implementation to look up a pipeline without consuming a valid SPIR-V+-- module. If a pipeline is not found, pipeline compilation is not possible+-- and the implementation /must/ fail as specified by+-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT'.+--+-- When an identifier is used in lieu of a shader module, implementations+-- /may/ fail pipeline compilation with+-- 'Vulkan.Core10.Enums.Result.PIPELINE_COMPILE_REQUIRED' for any reason.+--+-- Note+--+-- The rationale for the relaxed requirement on implementations to return a+-- pipeline with+-- 'Vulkan.Extensions.VK_EXT_shader_module_identifier.PipelineShaderStageModuleIdentifierCreateInfoEXT'+-- is that layers or tools may intercept pipeline creation calls and+-- require the full SPIR-V context to operate correctly. ICDs are not+-- expected to fail pipeline compilation if the pipeline exists in a cache+-- somewhere.+--+-- Applications /can/ use identifiers when creating pipelines with+-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_LIBRARY_BIT_KHR'.+-- When creating such pipelines, 'Vulkan.Core10.Enums.Result.SUCCESS' /may/+-- be returned, but subsequently fail when referencing the pipeline in a+-- 'Vulkan.Extensions.VK_KHR_pipeline_library.PipelineLibraryCreateInfoKHR'+-- struct. Applications /must/ allow pipeline compilation to fail during+-- link steps with+-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT'+-- as it /may/ not be possible to determine if a pipeline /can/ be created+-- from identifiers until the link step.+--+-- == Valid Usage+--+-- - #VUID-VkPipelineShaderStageCreateInfo-stage-00704# If the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-geometryShader geometryShader>+-- feature is not enabled, @stage@ /must/ not be+-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT'+--+-- - #VUID-VkPipelineShaderStageCreateInfo-stage-00705# If the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-tessellationShader tessellationShader>+-- feature is not enabled, @stage@ /must/ not be+-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_CONTROL_BIT'+-- or+-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT'+--+-- - #VUID-VkPipelineShaderStageCreateInfo-stage-02091# If the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-meshShader meshShaders>+-- feature is not enabled, @stage@ /must/ not be+-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'+--+-- - #VUID-VkPipelineShaderStageCreateInfo-stage-02092# If the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-taskShader taskShaders>+-- feature is not enabled, @stage@ /must/ not be+-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT'+--+-- - #VUID-VkPipelineShaderStageCreateInfo-stage-00706# @stage@ /must/+-- not be+-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_ALL_GRAPHICS',+-- or 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_ALL'+--+-- - #VUID-VkPipelineShaderStageCreateInfo-pName-00707# @pName@ /must/ be+-- the name of an @OpEntryPoint@ in @module@ with an execution model+-- that matches @stage@+--+-- - #VUID-VkPipelineShaderStageCreateInfo-maxClipDistances-00708# If the+-- identified entry point includes any variable in its interface that+-- is declared with the @ClipDistance@ @BuiltIn@ decoration, that+-- variable /must/ not have an array size greater than+-- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxClipDistances@+--+-- - #VUID-VkPipelineShaderStageCreateInfo-maxCullDistances-00709# If the+-- identified entry point includes any variable in its interface that+-- is declared with the @CullDistance@ @BuiltIn@ decoration, that+-- variable /must/ not have an array size greater than+-- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxCullDistances@+--+-- - #VUID-VkPipelineShaderStageCreateInfo-maxCombinedClipAndCullDistances-00710#+-- If the identified entry point includes any variables in its+-- interface that are declared with the @ClipDistance@ or+-- @CullDistance@ @BuiltIn@ decoration, those variables /must/ not have+-- array sizes which sum to more than+-- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxCombinedClipAndCullDistances@+--+-- - #VUID-VkPipelineShaderStageCreateInfo-maxSampleMaskWords-00711# If+-- the identified entry point includes any variable in its interface+-- that is declared with the+-- 'Vulkan.Core10.FundamentalTypes.SampleMask' @BuiltIn@ decoration,+-- that variable /must/ not have an array size greater than+-- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxSampleMaskWords@+--+-- - #VUID-VkPipelineShaderStageCreateInfo-stage-00712# If @stage@ is+-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT',+-- the identified entry point /must/ not include any input variable in+-- its interface that is decorated with @CullDistance@+--+-- - #VUID-VkPipelineShaderStageCreateInfo-stage-00713# If @stage@ is+-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_CONTROL_BIT'+-- or+-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT',+-- and the identified entry point has an @OpExecutionMode@ instruction+-- specifying a patch size with @OutputVertices@, the patch size /must/+-- be greater than @0@ and less than or equal to+-- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxTessellationPatchSize@+--+-- - #VUID-VkPipelineShaderStageCreateInfo-stage-00714# If @stage@ is+-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT',+-- the identified entry point /must/ have an @OpExecutionMode@+-- instruction specifying a maximum output vertex count that is greater+-- than @0@ and less than or equal to+-- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxGeometryOutputVertices@+--+-- - #VUID-VkPipelineShaderStageCreateInfo-stage-00715# If @stage@ is+-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT',+-- the identified entry point /must/ have an @OpExecutionMode@+-- instruction specifying an invocation count that is greater than @0@+-- and less than or equal to+-- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxGeometryShaderInvocations@+--+-- - #VUID-VkPipelineShaderStageCreateInfo-stage-02596# If @stage@ is+-- either+-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT',+-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_CONTROL_BIT',+-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT',+-- or+-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT',+-- and the identified entry point writes to @Layer@ for any primitive,+-- it /must/ write the same value to @Layer@ for all vertices of a+-- given primitive+--+-- - #VUID-VkPipelineShaderStageCreateInfo-stage-02597# If @stage@ is+-- either+-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT',+-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_CONTROL_BIT',+-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT',+-- or+-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT',+-- and the identified entry point writes to @ViewportIndex@ for any+-- primitive, it /must/ write the same value to @ViewportIndex@ for all+-- vertices of a given primitive+--+-- - #VUID-VkPipelineShaderStageCreateInfo-stage-00718# If @stage@ is+-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT',+-- the identified entry point /must/ not include any output variables+-- in its interface decorated with @CullDistance@+--+-- - #VUID-VkPipelineShaderStageCreateInfo-stage-06685# If @stage@ is+-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT',+-- and the identified entry point writes to @FragDepth@ in any+-- execution path, all execution paths that are not exclusive to helper+-- invocations /must/ either discard the fragment, or write or+-- initialize the value of @FragDepth@+--+-- - #VUID-VkPipelineShaderStageCreateInfo-stage-06686# If @stage@ is+-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT',+-- and the identified entry point writes to @FragStencilRefEXT@ in any+-- execution path, all execution paths that are not exclusive to helper+-- invocations /must/ either discard the fragment, or write or+-- initialize the value of @FragStencilRefEXT@+--+-- - #VUID-VkPipelineShaderStageCreateInfo-stage-02093# If @stage@ is+-- 'Vulkan.Extensions.VK_NV_mesh_shader.SHADER_STAGE_MESH_BIT_NV' and+-- the @MeshNV@ @Execution@ @Model@ is used, the identified entry point+-- /must/ have an @OpExecutionMode@ instruction specifying a maximum+-- output vertex count, @OutputVertices@, that is greater than @0@ and+-- less than or equal to+-- 'Vulkan.Extensions.VK_NV_mesh_shader.PhysicalDeviceMeshShaderPropertiesNV'::@maxMeshOutputVertices@+--+-- - #VUID-VkPipelineShaderStageCreateInfo-stage-02094# If @stage@ is+-- 'Vulkan.Extensions.VK_NV_mesh_shader.SHADER_STAGE_MESH_BIT_NV' and+-- the @MeshNV@ @Execution@ @Model@ is used, the identified entry point+-- /must/ have an @OpExecutionMode@ instruction specifying a maximum+-- output primitive count, @OutputPrimitivesNV@, that is greater than+-- @0@ and less than or equal to+-- 'Vulkan.Extensions.VK_NV_mesh_shader.PhysicalDeviceMeshShaderPropertiesNV'::@maxMeshOutputPrimitives@+--+-- - #VUID-VkPipelineShaderStageCreateInfo-stage-07061# If @stage@ is+-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'+-- and the @MeshEXT@ @Execution@ @Model@ is used, the identified entry+-- point /must/ have an @OpExecutionMode@ instruction specifying a+-- maximum output vertex count, @OutputVertices@, that is greater than+-- @0@ and less than or equal to+-- 'Vulkan.Extensions.VK_EXT_mesh_shader.PhysicalDeviceMeshShaderPropertiesEXT'::@maxMeshOutputVertices@+--+-- - #VUID-VkPipelineShaderStageCreateInfo-stage-07062# If @stage@ is+-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'+-- and the @MeshEXT@ @Execution@ @Model@ is used, the identified entry+-- point /must/ have an @OpExecutionMode@ instruction specifying a+-- maximum output primitive count, @OutputPrimitivesEXT@, that is+-- greater than @0@ and less than or equal to+-- 'Vulkan.Extensions.VK_EXT_mesh_shader.PhysicalDeviceMeshShaderPropertiesEXT'::@maxMeshOutputPrimitives@+--+-- - #VUID-VkPipelineShaderStageCreateInfo-flags-02784# If @flags@ has+-- the+-- 'Vulkan.Core10.Enums.PipelineShaderStageCreateFlagBits.PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT'+-- flag set, the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-subgroupSizeControl subgroupSizeControl>+-- feature /must/ be enabled+--+-- - #VUID-VkPipelineShaderStageCreateInfo-flags-02785# If @flags@ has+-- the+-- 'Vulkan.Core10.Enums.PipelineShaderStageCreateFlagBits.PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT'+-- flag set, the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-computeFullSubgroups computeFullSubgroups>+-- feature /must/ be enabled+--+-- - #VUID-VkPipelineShaderStageCreateInfo-pNext-02754# If a+-- 'Vulkan.Core13.Promoted_From_VK_EXT_subgroup_size_control.PipelineShaderStageRequiredSubgroupSizeCreateInfo'+-- structure is included in the @pNext@ chain, @flags@ /must/ not have+-- the+-- 'Vulkan.Core10.Enums.PipelineShaderStageCreateFlagBits.PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT'+-- flag set+--+-- - #VUID-VkPipelineShaderStageCreateInfo-pNext-02755# If a+-- 'Vulkan.Core13.Promoted_From_VK_EXT_subgroup_size_control.PipelineShaderStageRequiredSubgroupSizeCreateInfo'+-- structure is included in the @pNext@ chain, the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-subgroupSizeControl subgroupSizeControl>+-- feature /must/ be enabled, and @stage@ /must/ be a valid bit+-- specified in+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-requiredSubgroupSizeStages requiredSubgroupSizeStages>+--+-- - #VUID-VkPipelineShaderStageCreateInfo-pNext-02756# If a+-- 'Vulkan.Core13.Promoted_From_VK_EXT_subgroup_size_control.PipelineShaderStageRequiredSubgroupSizeCreateInfo'+-- structure is included in the @pNext@ chain and @stage@ is+-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_COMPUTE_BIT',+-- the local workgroup size of the shader /must/ be less than or equal+-- to the product of+-- 'Vulkan.Core13.Promoted_From_VK_EXT_subgroup_size_control.PipelineShaderStageRequiredSubgroupSizeCreateInfo'::@requiredSubgroupSize@+-- and+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxComputeWorkgroupSubgroups maxComputeWorkgroupSubgroups>+--+-- - #VUID-VkPipelineShaderStageCreateInfo-pNext-02757# If a+-- 'Vulkan.Core13.Promoted_From_VK_EXT_subgroup_size_control.PipelineShaderStageRequiredSubgroupSizeCreateInfo'+-- structure is included in the @pNext@ chain, and @flags@ has the+-- 'Vulkan.Core10.Enums.PipelineShaderStageCreateFlagBits.PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT'+-- flag set, the local workgroup size in the X dimension of the+-- pipeline /must/ be a multiple of+-- 'Vulkan.Core13.Promoted_From_VK_EXT_subgroup_size_control.PipelineShaderStageRequiredSubgroupSizeCreateInfo'::@requiredSubgroupSize@+--+-- - #VUID-VkPipelineShaderStageCreateInfo-flags-02758# If @flags@ has+-- both the+-- 'Vulkan.Core10.Enums.PipelineShaderStageCreateFlagBits.PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT'+-- and+-- 'Vulkan.Core10.Enums.PipelineShaderStageCreateFlagBits.PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT'+-- flags set, the local workgroup size in the X dimension of the+-- pipeline /must/ be a multiple of+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxSubgroupSize maxSubgroupSize>+--+-- - #VUID-VkPipelineShaderStageCreateInfo-flags-02759# If @flags@ has+-- the+-- 'Vulkan.Core10.Enums.PipelineShaderStageCreateFlagBits.PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT'+-- flag set and @flags@ does not have the+-- 'Vulkan.Core10.Enums.PipelineShaderStageCreateFlagBits.PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT'+-- flag set and no+-- 'Vulkan.Core13.Promoted_From_VK_EXT_subgroup_size_control.PipelineShaderStageRequiredSubgroupSizeCreateInfo'+-- structure is included in the @pNext@ chain, the local workgroup size+-- in the X dimension of the pipeline /must/ be a multiple of+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-subgroup-size subgroupSize>+--+-- - #VUID-VkPipelineShaderStageCreateInfo-stage-06844# If a shader+-- module identifier is specified for this @stage@, a+-- 'Vulkan.Core10.Shader.ShaderModuleCreateInfo' structure /must/ not+-- be present in the @pNext@ chain+--+-- - #VUID-VkPipelineShaderStageCreateInfo-stage-06845# If a shader+-- module identifier is not specified for this @stage@, @module@ /must/+-- be a valid 'Vulkan.Core10.Handles.ShaderModule' or there /must/ be a+-- valid 'Vulkan.Core10.Shader.ShaderModuleCreateInfo' structure in the+-- @pNext@ chain+--+-- - #VUID-VkPipelineShaderStageCreateInfo-stage-06846# If a shader+-- module identifier is not specified for this @stage@, and the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-graphicsPipelineLibrary graphicsPipelineLibrary>+-- feature is not enabled, @module@ /must/ be a valid+-- 'Vulkan.Core10.Handles.ShaderModule'+--+-- - #VUID-VkPipelineShaderStageCreateInfo-stage-06848# If a shader+-- module identifier is specified for this @stage@, @module@ /must/ be+-- 'Vulkan.Core10.APIConstants.NULL_HANDLE'+--+-- - #VUID-VkPipelineShaderStageCreateInfo-pSpecializationInfo-06849# If+-- a shader module identifier is not specified, the shader code used by+-- the pipeline /must/ be valid as described by the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#spirv-spec Khronos SPIR-V Specification>+-- after applying the specializations provided in+-- @pSpecializationInfo@, if any, and then converting all+-- specialization constants into fixed constants+--+-- == Valid Usage (Implicit)+--+-- - #VUID-VkPipelineShaderStageCreateInfo-sType-sType# @sType@ /must/ be+-- 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO'+--+-- - #VUID-VkPipelineShaderStageCreateInfo-pNext-pNext# Each @pNext@+-- member of any structure (including this one) in the @pNext@ chain+-- /must/ be either @NULL@ or a pointer to a valid instance of+-- 'Vulkan.Extensions.VK_EXT_debug_utils.DebugUtilsObjectNameInfoEXT',+-- 'Vulkan.Extensions.VK_EXT_pipeline_robustness.PipelineRobustnessCreateInfoEXT',+-- 'Vulkan.Extensions.VK_EXT_shader_module_identifier.PipelineShaderStageModuleIdentifierCreateInfoEXT',+-- 'Vulkan.Core13.Promoted_From_VK_EXT_subgroup_size_control.PipelineShaderStageRequiredSubgroupSizeCreateInfo',+-- 'Vulkan.Core10.Shader.ShaderModuleCreateInfo', or+-- 'Vulkan.Extensions.VK_EXT_validation_cache.ShaderModuleValidationCacheCreateInfoEXT'+--+-- - #VUID-VkPipelineShaderStageCreateInfo-sType-unique# The @sType@+-- value of each struct in the @pNext@ chain /must/ be unique+--+-- - #VUID-VkPipelineShaderStageCreateInfo-flags-parameter# @flags@+-- /must/ be a valid combination of+-- 'Vulkan.Core10.Enums.PipelineShaderStageCreateFlagBits.PipelineShaderStageCreateFlagBits'+-- values+--+-- - #VUID-VkPipelineShaderStageCreateInfo-stage-parameter# @stage@+-- /must/ be a valid+-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.ShaderStageFlagBits' value+--+-- - #VUID-VkPipelineShaderStageCreateInfo-module-parameter# If @module@+-- is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', @module@ /must/ be+-- a valid 'Vulkan.Core10.Handles.ShaderModule' handle+--+-- - #VUID-VkPipelineShaderStageCreateInfo-pName-parameter# @pName@+-- /must/ be a null-terminated UTF-8 string+--+-- - #VUID-VkPipelineShaderStageCreateInfo-pSpecializationInfo-parameter#+-- If @pSpecializationInfo@ is not @NULL@, @pSpecializationInfo@ /must/+-- be a valid pointer to a valid 'SpecializationInfo' structure+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,+-- 'ComputePipelineCreateInfo', 'GraphicsPipelineCreateInfo',+-- 'Vulkan.Extensions.VK_NV_device_generated_commands.GraphicsShaderGroupCreateInfoNV',+-- 'Vulkan.Core10.Enums.PipelineShaderStageCreateFlagBits.PipelineShaderStageCreateFlags',+-- 'Vulkan.Extensions.VK_KHR_ray_tracing_pipeline.RayTracingPipelineCreateInfoKHR',+-- 'Vulkan.Extensions.VK_NV_ray_tracing.RayTracingPipelineCreateInfoNV',+-- 'Vulkan.Core10.Handles.ShaderModule',+-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.ShaderStageFlagBits',+-- 'SpecializationInfo', 'Vulkan.Core10.Enums.StructureType.StructureType'+data PipelineShaderStageCreateInfo (es :: [Type]) = PipelineShaderStageCreateInfo+ { -- | @pNext@ is @NULL@ or a pointer to a structure extending this structure.+ next :: Chain es+ , -- | @flags@ is a bitmask of+ -- 'Vulkan.Core10.Enums.PipelineShaderStageCreateFlagBits.PipelineShaderStageCreateFlagBits'+ -- specifying how the pipeline shader stage will be generated.+ flags :: PipelineShaderStageCreateFlags+ , -- | @stage@ is a+ -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.ShaderStageFlagBits' value+ -- specifying a single pipeline stage.+ stage :: ShaderStageFlagBits+ , -- | @module@ is optionally a 'Vulkan.Core10.Handles.ShaderModule' object+ -- containing the shader code for this stage.+ module' :: ShaderModule+ , -- | @pName@ is a pointer to a null-terminated UTF-8 string specifying the+ -- entry point name of the shader for this stage.+ name :: ByteString+ , -- | @pSpecializationInfo@ is a pointer to a 'SpecializationInfo' structure,+ -- as described in+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-specialization-constants Specialization Constants>,+ -- or @NULL@.+ specializationInfo :: Maybe SpecializationInfo+ }+ deriving (Typeable)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (PipelineShaderStageCreateInfo (es :: [Type]))+#endif+deriving instance Show (Chain es) => Show (PipelineShaderStageCreateInfo es)++instance Extensible PipelineShaderStageCreateInfo where+ extensibleTypeName = "PipelineShaderStageCreateInfo"+ setNext PipelineShaderStageCreateInfo{..} next' = PipelineShaderStageCreateInfo{next = next', ..}+ getNext PipelineShaderStageCreateInfo{..} = next+ extends :: forall e b proxy. Typeable e => proxy e -> (Extends PipelineShaderStageCreateInfo e => b) -> Maybe b+ extends _ f+ | Just Refl <- eqT @e @PipelineRobustnessCreateInfoEXT = Just f+ | Just Refl <- eqT @e @PipelineShaderStageModuleIdentifierCreateInfoEXT = Just f+ | Just Refl <- eqT @e @PipelineShaderStageRequiredSubgroupSizeCreateInfo = Just f+ | Just Refl <- eqT @e @DebugUtilsObjectNameInfoEXT = Just f+ | Just Refl <- eqT @e @ShaderModuleValidationCacheCreateInfoEXT = Just f+ | Just Refl <- eqT @e @(ShaderModuleCreateInfo '[]) = Just f+ | otherwise = Nothing++instance (Extendss PipelineShaderStageCreateInfo es, PokeChain es) => ToCStruct (PipelineShaderStageCreateInfo es) where+ withCStruct x f = allocaBytes 48 $ \p -> pokeCStruct p x (f p)+ pokeCStruct p PipelineShaderStageCreateInfo{..} f = evalContT $ do+ lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO)+ pNext'' <- fmap castPtr . ContT $ withChain (next)+ lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext''+ lift $ poke ((p `plusPtr` 16 :: Ptr PipelineShaderStageCreateFlags)) (flags)+ lift $ poke ((p `plusPtr` 20 :: Ptr ShaderStageFlagBits)) (stage)+ lift $ poke ((p `plusPtr` 24 :: Ptr ShaderModule)) (module')+ pName'' <- ContT $ useAsCString (name)+ lift $ poke ((p `plusPtr` 32 :: Ptr (Ptr CChar))) pName''+ pSpecializationInfo'' <- case (specializationInfo) of+ Nothing -> pure nullPtr+ Just j -> ContT $ withCStruct (j)+ lift $ poke ((p `plusPtr` 40 :: Ptr (Ptr SpecializationInfo))) pSpecializationInfo''+ lift $ f+ cStructSize = 48+ cStructAlignment = 8+ pokeZeroCStruct p f = evalContT $ do+ lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO)+ pNext' <- fmap castPtr . ContT $ withZeroChain @es+ lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext'+ lift $ poke ((p `plusPtr` 20 :: Ptr ShaderStageFlagBits)) (zero)+ pName'' <- ContT $ useAsCString (mempty)+ lift $ poke ((p `plusPtr` 32 :: Ptr (Ptr CChar))) pName''+ lift $ f++instance (Extendss PipelineShaderStageCreateInfo es, PeekChain es) => FromCStruct (PipelineShaderStageCreateInfo es) where+ peekCStruct p = do+ pNext <- peek @(Ptr ()) ((p `plusPtr` 8 :: Ptr (Ptr ())))+ next <- peekChain (castPtr pNext)+ flags <- peek @PipelineShaderStageCreateFlags ((p `plusPtr` 16 :: Ptr PipelineShaderStageCreateFlags))+ stage <- peek @ShaderStageFlagBits ((p `plusPtr` 20 :: Ptr ShaderStageFlagBits))+ module' <- peek @ShaderModule ((p `plusPtr` 24 :: Ptr ShaderModule))+ pName <- packCString =<< peek ((p `plusPtr` 32 :: Ptr (Ptr CChar)))+ pSpecializationInfo <- peek @(Ptr SpecializationInfo) ((p `plusPtr` 40 :: Ptr (Ptr SpecializationInfo)))+ pSpecializationInfo' <- maybePeek (\j -> peekCStruct @SpecializationInfo (j)) pSpecializationInfo+ pure $ PipelineShaderStageCreateInfo+ next flags stage module' pName pSpecializationInfo'++instance es ~ '[] => Zero (PipelineShaderStageCreateInfo es) where+ zero = PipelineShaderStageCreateInfo+ ()+ zero+ zero+ zero+ mempty+ Nothing+++-- | VkComputePipelineCreateInfo - Structure specifying parameters of a newly+-- created compute pipeline+--+-- = Description+--+-- The parameters @basePipelineHandle@ and @basePipelineIndex@ are+-- described in more detail in+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-pipeline-derivatives Pipeline Derivatives>.+--+-- == Valid Usage+--+-- - #VUID-VkComputePipelineCreateInfo-flags-00697# If @flags@ contains+-- the+-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DERIVATIVE_BIT'+-- flag, and @basePipelineIndex@ is -1, @basePipelineHandle@ /must/ be+-- a valid handle to a compute 'Vulkan.Core10.Handles.Pipeline'+--+-- - #VUID-VkComputePipelineCreateInfo-flags-00698# If @flags@ contains+-- the+-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DERIVATIVE_BIT'+-- flag, and @basePipelineHandle@ is+-- 'Vulkan.Core10.APIConstants.NULL_HANDLE', @basePipelineIndex@ /must/+-- be a valid index into the calling command’s @pCreateInfos@ parameter+--+-- - #VUID-VkComputePipelineCreateInfo-flags-00699# If @flags@ contains+-- the+-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DERIVATIVE_BIT'+-- flag, and @basePipelineIndex@ is not -1, @basePipelineHandle@ /must/+-- be 'Vulkan.Core10.APIConstants.NULL_HANDLE'+--+-- - #VUID-VkComputePipelineCreateInfo-flags-00700# If @flags@ contains+-- the+-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DERIVATIVE_BIT'+-- flag, and @basePipelineHandle@ is not+-- 'Vulkan.Core10.APIConstants.NULL_HANDLE', @basePipelineIndex@ /must/+-- be -1+--+-- - #VUID-VkComputePipelineCreateInfo-stage-00701# The @stage@ member of+-- @stage@ /must/ be+-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_COMPUTE_BIT'+--+-- - #VUID-VkComputePipelineCreateInfo-stage-00702# The shader code for+-- the entry point identified by @stage@ and the rest of the state+-- identified by this structure /must/ adhere to the pipeline linking+-- rules described in the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces Shader Interfaces>+-- chapter+--+-- - #VUID-VkComputePipelineCreateInfo-layout-00703# @layout@ /must/ be+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-pipelinelayout-consistency consistent>+-- with the layout of the compute shader specified in @stage@+--+-- - #VUID-VkComputePipelineCreateInfo-layout-01687# The number of+-- resources in @layout@ accessible to the compute shader stage /must/+-- be less than or equal to+-- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxPerStageResources@+--+-- - #VUID-VkComputePipelineCreateInfo-flags-03364# @flags@ /must/ not+-- include+-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_LIBRARY_BIT_KHR'+--+-- - #VUID-VkComputePipelineCreateInfo-flags-03365# @flags@ /must/ not+-- include+-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR'+--+-- - #VUID-VkComputePipelineCreateInfo-flags-03366# @flags@ /must/ not+-- include+-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR'+--+-- - #VUID-VkComputePipelineCreateInfo-flags-03367# @flags@ /must/ not+-- include+-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR'+--+-- - #VUID-VkComputePipelineCreateInfo-flags-03368# @flags@ /must/ not+-- include+-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR'+--+-- - #VUID-VkComputePipelineCreateInfo-flags-03369# @flags@ /must/ not+-- include+-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR'+--+-- - #VUID-VkComputePipelineCreateInfo-flags-03370# @flags@ /must/ not+-- include+-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHR'+--+-- - #VUID-VkComputePipelineCreateInfo-flags-03576# @flags@ /must/ not+-- include+-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR'+--+-- - #VUID-VkComputePipelineCreateInfo-flags-04945# @flags@ /must/ not+-- include+-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV'+--+-- - #VUID-VkComputePipelineCreateInfo-flags-02874# @flags@ /must/ not+-- include+-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV'+--+-- - #VUID-VkComputePipelineCreateInfo-pipelineCreationCacheControl-02875#+-- If the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-pipelineCreationCacheControl pipelineCreationCacheControl>+-- feature is not enabled, @flags@ /must/ not include+-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT'+-- or+-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT'+--+-- - #VUID-VkComputePipelineCreateInfo-pipelineStageCreationFeedbackCount-06566#+-- If+-- 'Vulkan.Core13.Promoted_From_VK_EXT_pipeline_creation_feedback.PipelineCreationFeedbackCreateInfo'::@pipelineStageCreationFeedbackCount@+-- is not @0@, it /must/ be @1@+--+-- == Valid Usage (Implicit)+--+-- - #VUID-VkComputePipelineCreateInfo-sType-sType# @sType@ /must/ be+-- 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO'+--+-- - #VUID-VkComputePipelineCreateInfo-pNext-pNext# Each @pNext@ member+-- of any structure (including this one) in the @pNext@ chain /must/ be+-- either @NULL@ or a pointer to a valid instance of+-- 'Vulkan.Extensions.VK_AMD_pipeline_compiler_control.PipelineCompilerControlCreateInfoAMD',+-- 'Vulkan.Core13.Promoted_From_VK_EXT_pipeline_creation_feedback.PipelineCreationFeedbackCreateInfo',+-- 'Vulkan.Extensions.VK_EXT_pipeline_robustness.PipelineRobustnessCreateInfoEXT',+-- or+-- 'Vulkan.Extensions.VK_HUAWEI_subpass_shading.SubpassShadingPipelineCreateInfoHUAWEI'+--+-- - #VUID-VkComputePipelineCreateInfo-sType-unique# The @sType@ value of+-- each struct in the @pNext@ chain /must/ be unique+--+-- - #VUID-VkComputePipelineCreateInfo-flags-parameter# @flags@ /must/ be+-- a valid combination of+-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PipelineCreateFlagBits'+-- values+--+-- - #VUID-VkComputePipelineCreateInfo-stage-parameter# @stage@ /must/ be+-- a valid 'PipelineShaderStageCreateInfo' structure+--+-- - #VUID-VkComputePipelineCreateInfo-layout-parameter# @layout@ /must/+-- be a valid 'Vulkan.Core10.Handles.PipelineLayout' handle+--+-- - #VUID-VkComputePipelineCreateInfo-commonparent# Both of+-- @basePipelineHandle@, and @layout@ that are valid handles of+-- non-ignored parameters /must/ have been created, allocated, or+-- retrieved from the same 'Vulkan.Core10.Handles.Device'+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,+-- 'Vulkan.Core10.Handles.Pipeline',+-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PipelineCreateFlags',+-- 'Vulkan.Core10.Handles.PipelineLayout', 'PipelineShaderStageCreateInfo',+-- 'Vulkan.Core10.Enums.StructureType.StructureType',+-- 'createComputePipelines'+data ComputePipelineCreateInfo (es :: [Type]) = ComputePipelineCreateInfo+ { -- | @pNext@ is @NULL@ or a pointer to a structure extending this structure.+ next :: Chain es+ , -- | @flags@ is a bitmask of+ -- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PipelineCreateFlagBits'+ -- specifying how the pipeline will be generated.+ flags :: PipelineCreateFlags+ , -- | @stage@ is a 'PipelineShaderStageCreateInfo' structure describing the+ -- compute shader.+ stage :: SomeStruct PipelineShaderStageCreateInfo+ , -- | @layout@ is the description of binding locations used by both the+ -- pipeline and descriptor sets used with the pipeline.+ layout :: PipelineLayout+ , -- | @basePipelineHandle@ is a pipeline to derive from+ basePipelineHandle :: Pipeline+ , -- | @basePipelineIndex@ is an index into the @pCreateInfos@ parameter to use+ -- as a pipeline to derive from+ basePipelineIndex :: Int32+ }+ deriving (Typeable)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (ComputePipelineCreateInfo (es :: [Type]))+#endif+deriving instance Show (Chain es) => Show (ComputePipelineCreateInfo es)++instance Extensible ComputePipelineCreateInfo where+ extensibleTypeName = "ComputePipelineCreateInfo"+ setNext ComputePipelineCreateInfo{..} next' = ComputePipelineCreateInfo{next = next', ..}+ getNext ComputePipelineCreateInfo{..} = next+ extends :: forall e b proxy. Typeable e => proxy e -> (Extends ComputePipelineCreateInfo e => b) -> Maybe b+ extends _ f+ | Just Refl <- eqT @e @PipelineRobustnessCreateInfoEXT = Just f+ | Just Refl <- eqT @e @PipelineCompilerControlCreateInfoAMD = Just f+ | Just Refl <- eqT @e @SubpassShadingPipelineCreateInfoHUAWEI = Just f+ | Just Refl <- eqT @e @PipelineCreationFeedbackCreateInfo = Just f+ | otherwise = Nothing++instance (Extendss ComputePipelineCreateInfo es, PokeChain es) => ToCStruct (ComputePipelineCreateInfo es) where+ withCStruct x f = allocaBytes 96 $ \p -> pokeCStruct p x (f p)+ pokeCStruct p ComputePipelineCreateInfo{..} f = evalContT $ do+ lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO)+ pNext'' <- fmap castPtr . ContT $ withChain (next)+ lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext''+ lift $ poke ((p `plusPtr` 16 :: Ptr PipelineCreateFlags)) (flags)+ ContT $ pokeSomeCStruct (forgetExtensions ((p `plusPtr` 24 :: Ptr (PipelineShaderStageCreateInfo _)))) (stage) . ($ ())+ lift $ poke ((p `plusPtr` 72 :: Ptr PipelineLayout)) (layout)+ lift $ poke ((p `plusPtr` 80 :: Ptr Pipeline)) (basePipelineHandle)+ lift $ poke ((p `plusPtr` 88 :: Ptr Int32)) (basePipelineIndex)+ lift $ f+ cStructSize = 96+ cStructAlignment = 8+ pokeZeroCStruct p f = evalContT $ do+ lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO)+ pNext' <- fmap castPtr . ContT $ withZeroChain @es+ lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext'+ ContT $ pokeSomeCStruct (forgetExtensions ((p `plusPtr` 24 :: Ptr (PipelineShaderStageCreateInfo _)))) ((SomeStruct zero)) . ($ ())+ lift $ poke ((p `plusPtr` 72 :: Ptr PipelineLayout)) (zero)+ lift $ poke ((p `plusPtr` 88 :: Ptr Int32)) (zero)+ lift $ f++instance (Extendss ComputePipelineCreateInfo es, PeekChain es) => FromCStruct (ComputePipelineCreateInfo es) where+ peekCStruct p = do+ pNext <- peek @(Ptr ()) ((p `plusPtr` 8 :: Ptr (Ptr ())))+ next <- peekChain (castPtr pNext)+ flags <- peek @PipelineCreateFlags ((p `plusPtr` 16 :: Ptr PipelineCreateFlags))+ stage <- peekSomeCStruct (forgetExtensions ((p `plusPtr` 24 :: Ptr (PipelineShaderStageCreateInfo _))))+ layout <- peek @PipelineLayout ((p `plusPtr` 72 :: Ptr PipelineLayout))+ basePipelineHandle <- peek @Pipeline ((p `plusPtr` 80 :: Ptr Pipeline))+ basePipelineIndex <- peek @Int32 ((p `plusPtr` 88 :: Ptr Int32))+ pure $ ComputePipelineCreateInfo+ next flags stage layout basePipelineHandle basePipelineIndex++instance es ~ '[] => Zero (ComputePipelineCreateInfo es) where+ zero = ComputePipelineCreateInfo+ ()+ zero+ (SomeStruct zero)+ zero+ zero+ zero+++-- | VkVertexInputBindingDescription - Structure specifying vertex input+-- binding description+--+-- == Valid Usage+--+-- - #VUID-VkVertexInputBindingDescription-binding-00618# @binding@+-- /must/ be less than+-- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxVertexInputBindings@+--+-- - #VUID-VkVertexInputBindingDescription-stride-00619# @stride@ /must/+-- be less than or equal to+-- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxVertexInputBindingStride@+--+-- - #VUID-VkVertexInputBindingDescription-stride-04456# If the+-- @VK_KHR_portability_subset@ extension is enabled, @stride@ /must/ be+-- a multiple of, and at least as large as,+-- 'Vulkan.Extensions.VK_KHR_portability_subset.PhysicalDevicePortabilitySubsetPropertiesKHR'::@minVertexInputBindingStrideAlignment@+--+-- == Valid Usage (Implicit)+--+-- - #VUID-VkVertexInputBindingDescription-inputRate-parameter#+-- @inputRate@ /must/ be a valid+-- 'Vulkan.Core10.Enums.VertexInputRate.VertexInputRate' value+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,+-- 'PipelineVertexInputStateCreateInfo',+-- 'Vulkan.Core10.Enums.VertexInputRate.VertexInputRate'+data VertexInputBindingDescription = VertexInputBindingDescription+ { -- | @binding@ is the binding number that this structure describes.+ binding :: Word32+ , -- | @stride@ is the byte stride between consecutive elements within the+ -- buffer.+ stride :: Word32+ , -- | @inputRate@ is a 'Vulkan.Core10.Enums.VertexInputRate.VertexInputRate'+ -- value specifying whether vertex attribute addressing is a function of+ -- the vertex index or of the instance index.+ inputRate :: VertexInputRate+ }+ deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (VertexInputBindingDescription)+#endif+deriving instance Show VertexInputBindingDescription++instance ToCStruct VertexInputBindingDescription where+ withCStruct x f = allocaBytes 12 $ \p -> pokeCStruct p x (f p)+ pokeCStruct p VertexInputBindingDescription{..} f = do+ poke ((p `plusPtr` 0 :: Ptr Word32)) (binding)+ poke ((p `plusPtr` 4 :: Ptr Word32)) (stride)+ poke ((p `plusPtr` 8 :: Ptr VertexInputRate)) (inputRate)+ f+ cStructSize = 12+ cStructAlignment = 4+ pokeZeroCStruct p f = do+ poke ((p `plusPtr` 0 :: Ptr Word32)) (zero)+ poke ((p `plusPtr` 4 :: Ptr Word32)) (zero)+ poke ((p `plusPtr` 8 :: Ptr VertexInputRate)) (zero)+ f++instance FromCStruct VertexInputBindingDescription where+ peekCStruct p = do+ binding <- peek @Word32 ((p `plusPtr` 0 :: Ptr Word32))+ stride <- peek @Word32 ((p `plusPtr` 4 :: Ptr Word32))+ inputRate <- peek @VertexInputRate ((p `plusPtr` 8 :: Ptr VertexInputRate))+ pure $ VertexInputBindingDescription+ binding stride inputRate++instance Storable VertexInputBindingDescription where+ sizeOf ~_ = 12+ alignment ~_ = 4+ peek = peekCStruct+ poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero VertexInputBindingDescription where+ zero = VertexInputBindingDescription+ zero+ zero+ zero+++-- | VkVertexInputAttributeDescription - Structure specifying vertex input+-- attribute description+--+-- == Valid Usage+--+-- - #VUID-VkVertexInputAttributeDescription-location-00620# @location@+-- /must/ be less than+-- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxVertexInputAttributes@+--+-- - #VUID-VkVertexInputAttributeDescription-binding-00621# @binding@+-- /must/ be less than+-- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxVertexInputBindings@+--+-- - #VUID-VkVertexInputAttributeDescription-offset-00622# @offset@+-- /must/ be less than or equal to+-- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxVertexInputAttributeOffset@+--+-- - #VUID-VkVertexInputAttributeDescription-format-00623# @format@+-- /must/ be allowed as a vertex buffer format, as specified by the+-- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_VERTEX_BUFFER_BIT'+-- flag in+-- 'Vulkan.Core10.DeviceInitialization.FormatProperties'::@bufferFeatures@+-- returned by+-- 'Vulkan.Core10.DeviceInitialization.getPhysicalDeviceFormatProperties'+--+-- - #VUID-VkVertexInputAttributeDescription-vertexAttributeAccessBeyondStride-04457#+-- If the @VK_KHR_portability_subset@ extension is enabled, and+-- 'Vulkan.Extensions.VK_KHR_portability_subset.PhysicalDevicePortabilitySubsetFeaturesKHR'::@vertexAttributeAccessBeyondStride@+-- is 'Vulkan.Core10.FundamentalTypes.FALSE', the sum of @offset@ plus+-- the size of the vertex attribute data described by @format@ /must/+-- not be greater than @stride@ in the 'VertexInputBindingDescription'+-- referenced in @binding@+--+-- == Valid Usage (Implicit)+--+-- - #VUID-VkVertexInputAttributeDescription-format-parameter# @format@+-- /must/ be a valid 'Vulkan.Core10.Enums.Format.Format' value+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,+-- 'Vulkan.Core10.Enums.Format.Format',+-- 'PipelineVertexInputStateCreateInfo'+data VertexInputAttributeDescription = VertexInputAttributeDescription+ { -- | @location@ is the shader input location number for this attribute.+ location :: Word32+ , -- | @binding@ is the binding number which this attribute takes its data+ -- from.+ binding :: Word32+ , -- | @format@ is the size and type of the vertex attribute data.+ format :: Format+ , -- | @offset@ is a byte offset of this attribute relative to the start of an+ -- element in the vertex input binding.+ offset :: Word32+ }+ deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (VertexInputAttributeDescription)+#endif+deriving instance Show VertexInputAttributeDescription++instance ToCStruct VertexInputAttributeDescription where+ withCStruct x f = allocaBytes 16 $ \p -> pokeCStruct p x (f p)+ pokeCStruct p VertexInputAttributeDescription{..} f = do+ poke ((p `plusPtr` 0 :: Ptr Word32)) (location)+ poke ((p `plusPtr` 4 :: Ptr Word32)) (binding)+ poke ((p `plusPtr` 8 :: Ptr Format)) (format)+ poke ((p `plusPtr` 12 :: Ptr Word32)) (offset)+ f+ cStructSize = 16+ cStructAlignment = 4+ pokeZeroCStruct p f = do+ poke ((p `plusPtr` 0 :: Ptr Word32)) (zero)+ poke ((p `plusPtr` 4 :: Ptr Word32)) (zero)+ poke ((p `plusPtr` 8 :: Ptr Format)) (zero)+ poke ((p `plusPtr` 12 :: Ptr Word32)) (zero)+ f++instance FromCStruct VertexInputAttributeDescription where+ peekCStruct p = do+ location <- peek @Word32 ((p `plusPtr` 0 :: Ptr Word32))+ binding <- peek @Word32 ((p `plusPtr` 4 :: Ptr Word32))+ format <- peek @Format ((p `plusPtr` 8 :: Ptr Format))+ offset <- peek @Word32 ((p `plusPtr` 12 :: Ptr Word32))+ pure $ VertexInputAttributeDescription+ location binding format offset++instance Storable VertexInputAttributeDescription where+ sizeOf ~_ = 16+ alignment ~_ = 4+ peek = peekCStruct+ poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero VertexInputAttributeDescription where+ zero = VertexInputAttributeDescription+ zero+ zero+ zero+ zero+++-- | VkPipelineVertexInputStateCreateInfo - Structure specifying parameters+-- of a newly created pipeline vertex input state+--+-- == Valid Usage+--+-- - #VUID-VkPipelineVertexInputStateCreateInfo-vertexBindingDescriptionCount-00613#+-- @vertexBindingDescriptionCount@ /must/ be less than or equal to+-- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxVertexInputBindings@+--+-- - #VUID-VkPipelineVertexInputStateCreateInfo-vertexAttributeDescriptionCount-00614#+-- @vertexAttributeDescriptionCount@ /must/ be less than or equal to+-- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxVertexInputAttributes@+--+-- - #VUID-VkPipelineVertexInputStateCreateInfo-binding-00615# For every+-- @binding@ specified by each element of+-- @pVertexAttributeDescriptions@, a 'VertexInputBindingDescription'+-- /must/ exist in @pVertexBindingDescriptions@ with the same value of+-- @binding@+--+-- - #VUID-VkPipelineVertexInputStateCreateInfo-pVertexBindingDescriptions-00616#+-- All elements of @pVertexBindingDescriptions@ /must/ describe+-- distinct binding numbers+--+-- - #VUID-VkPipelineVertexInputStateCreateInfo-pVertexAttributeDescriptions-00617#+-- All elements of @pVertexAttributeDescriptions@ /must/ describe+-- distinct attribute locations+--+-- == Valid Usage (Implicit)+--+-- - #VUID-VkPipelineVertexInputStateCreateInfo-sType-sType# @sType@+-- /must/ be+-- 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO'+--+-- - #VUID-VkPipelineVertexInputStateCreateInfo-pNext-pNext# @pNext@+-- /must/ be @NULL@ or a pointer to a valid instance of+-- 'Vulkan.Extensions.VK_EXT_vertex_attribute_divisor.PipelineVertexInputDivisorStateCreateInfoEXT'+--+-- - #VUID-VkPipelineVertexInputStateCreateInfo-sType-unique# The @sType@+-- value of each struct in the @pNext@ chain /must/ be unique+--+-- - #VUID-VkPipelineVertexInputStateCreateInfo-flags-zerobitmask#+-- @flags@ /must/ be @0@+--+-- - #VUID-VkPipelineVertexInputStateCreateInfo-pVertexBindingDescriptions-parameter#+-- If @vertexBindingDescriptionCount@ is not @0@,+-- @pVertexBindingDescriptions@ /must/ be a valid pointer to an array+-- of @vertexBindingDescriptionCount@ valid+-- 'VertexInputBindingDescription' structures+--+-- - #VUID-VkPipelineVertexInputStateCreateInfo-pVertexAttributeDescriptions-parameter#+-- If @vertexAttributeDescriptionCount@ is not @0@,+-- @pVertexAttributeDescriptions@ /must/ be a valid pointer to an array+-- of @vertexAttributeDescriptionCount@ valid+-- 'VertexInputAttributeDescription' structures+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,+-- 'GraphicsPipelineCreateInfo',+-- 'Vulkan.Extensions.VK_NV_device_generated_commands.GraphicsShaderGroupCreateInfoNV',+-- 'Vulkan.Core10.Enums.PipelineVertexInputStateCreateFlags.PipelineVertexInputStateCreateFlags',+-- 'Vulkan.Core10.Enums.StructureType.StructureType',+-- 'VertexInputAttributeDescription', 'VertexInputBindingDescription'+data PipelineVertexInputStateCreateInfo (es :: [Type]) = PipelineVertexInputStateCreateInfo+ { -- | @pNext@ is @NULL@ or a pointer to a structure extending this structure.+ next :: Chain es+ , -- | @flags@ is reserved for future use.+ flags :: PipelineVertexInputStateCreateFlags+ , -- | @pVertexBindingDescriptions@ is a pointer to an array of+ -- 'VertexInputBindingDescription' structures.+ vertexBindingDescriptions :: Vector VertexInputBindingDescription+ , -- | @pVertexAttributeDescriptions@ is a pointer to an array of+ -- 'VertexInputAttributeDescription' structures.+ vertexAttributeDescriptions :: Vector VertexInputAttributeDescription+ }+ deriving (Typeable)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (PipelineVertexInputStateCreateInfo (es :: [Type]))+#endif+deriving instance Show (Chain es) => Show (PipelineVertexInputStateCreateInfo es)++instance Extensible PipelineVertexInputStateCreateInfo where+ extensibleTypeName = "PipelineVertexInputStateCreateInfo"+ setNext PipelineVertexInputStateCreateInfo{..} next' = PipelineVertexInputStateCreateInfo{next = next', ..}+ getNext PipelineVertexInputStateCreateInfo{..} = next+ extends :: forall e b proxy. Typeable e => proxy e -> (Extends PipelineVertexInputStateCreateInfo e => b) -> Maybe b+ extends _ f+ | Just Refl <- eqT @e @PipelineVertexInputDivisorStateCreateInfoEXT = Just f+ | otherwise = Nothing++instance (Extendss PipelineVertexInputStateCreateInfo es, PokeChain es) => ToCStruct (PipelineVertexInputStateCreateInfo es) where+ withCStruct x f = allocaBytes 48 $ \p -> pokeCStruct p x (f p)+ pokeCStruct p PipelineVertexInputStateCreateInfo{..} f = evalContT $ do+ lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO)+ pNext'' <- fmap castPtr . ContT $ withChain (next)+ lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext''+ lift $ poke ((p `plusPtr` 16 :: Ptr PipelineVertexInputStateCreateFlags)) (flags)+ lift $ poke ((p `plusPtr` 20 :: Ptr Word32)) ((fromIntegral (Data.Vector.length $ (vertexBindingDescriptions)) :: Word32))+ pPVertexBindingDescriptions' <- ContT $ allocaBytes @VertexInputBindingDescription ((Data.Vector.length (vertexBindingDescriptions)) * 12)+ lift $ Data.Vector.imapM_ (\i e -> poke (pPVertexBindingDescriptions' `plusPtr` (12 * (i)) :: Ptr VertexInputBindingDescription) (e)) (vertexBindingDescriptions)+ lift $ poke ((p `plusPtr` 24 :: Ptr (Ptr VertexInputBindingDescription))) (pPVertexBindingDescriptions')+ lift $ poke ((p `plusPtr` 32 :: Ptr Word32)) ((fromIntegral (Data.Vector.length $ (vertexAttributeDescriptions)) :: Word32))+ pPVertexAttributeDescriptions' <- ContT $ allocaBytes @VertexInputAttributeDescription ((Data.Vector.length (vertexAttributeDescriptions)) * 16)+ lift $ Data.Vector.imapM_ (\i e -> poke (pPVertexAttributeDescriptions' `plusPtr` (16 * (i)) :: Ptr VertexInputAttributeDescription) (e)) (vertexAttributeDescriptions)+ lift $ poke ((p `plusPtr` 40 :: Ptr (Ptr VertexInputAttributeDescription))) (pPVertexAttributeDescriptions')+ lift $ f+ cStructSize = 48+ cStructAlignment = 8+ pokeZeroCStruct p f = evalContT $ do+ lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO)+ pNext' <- fmap castPtr . ContT $ withZeroChain @es+ lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext'+ lift $ f++instance (Extendss PipelineVertexInputStateCreateInfo es, PeekChain es) => FromCStruct (PipelineVertexInputStateCreateInfo es) where+ peekCStruct p = do+ pNext <- peek @(Ptr ()) ((p `plusPtr` 8 :: Ptr (Ptr ())))+ next <- peekChain (castPtr pNext)+ flags <- peek @PipelineVertexInputStateCreateFlags ((p `plusPtr` 16 :: Ptr PipelineVertexInputStateCreateFlags))+ vertexBindingDescriptionCount <- peek @Word32 ((p `plusPtr` 20 :: Ptr Word32))+ pVertexBindingDescriptions <- peek @(Ptr VertexInputBindingDescription) ((p `plusPtr` 24 :: Ptr (Ptr VertexInputBindingDescription)))+ pVertexBindingDescriptions' <- generateM (fromIntegral vertexBindingDescriptionCount) (\i -> peekCStruct @VertexInputBindingDescription ((pVertexBindingDescriptions `advancePtrBytes` (12 * (i)) :: Ptr VertexInputBindingDescription)))+ vertexAttributeDescriptionCount <- peek @Word32 ((p `plusPtr` 32 :: Ptr Word32))+ pVertexAttributeDescriptions <- peek @(Ptr VertexInputAttributeDescription) ((p `plusPtr` 40 :: Ptr (Ptr VertexInputAttributeDescription)))+ pVertexAttributeDescriptions' <- generateM (fromIntegral vertexAttributeDescriptionCount) (\i -> peekCStruct @VertexInputAttributeDescription ((pVertexAttributeDescriptions `advancePtrBytes` (16 * (i)) :: Ptr VertexInputAttributeDescription)))+ pure $ PipelineVertexInputStateCreateInfo+ next flags pVertexBindingDescriptions' pVertexAttributeDescriptions'++instance es ~ '[] => Zero (PipelineVertexInputStateCreateInfo es) where+ zero = PipelineVertexInputStateCreateInfo+ ()+ zero+ mempty+ mempty+++-- | VkPipelineInputAssemblyStateCreateInfo - Structure specifying parameters+-- of a newly created pipeline input assembly state+--+-- = Description+--+-- Restarting the assembly of primitives discards the most recent index+-- values if those elements formed an incomplete primitive, and restarts+-- the primitive assembly using the subsequent indices, but only assembling+-- the immediately following element through the end of the originally+-- specified elements. The primitive restart index value comparison is+-- performed before adding the @vertexOffset@ value to the index value.+--+-- == Valid Usage+--+-- - #VUID-VkPipelineInputAssemblyStateCreateInfo-topology-06252# If+-- @topology@ is+-- 'Vulkan.Core10.Enums.PrimitiveTopology.PRIMITIVE_TOPOLOGY_POINT_LIST',+-- 'Vulkan.Core10.Enums.PrimitiveTopology.PRIMITIVE_TOPOLOGY_LINE_LIST',+-- 'Vulkan.Core10.Enums.PrimitiveTopology.PRIMITIVE_TOPOLOGY_TRIANGLE_LIST',+-- 'Vulkan.Core10.Enums.PrimitiveTopology.PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY'+-- or+-- 'Vulkan.Core10.Enums.PrimitiveTopology.PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY',+-- and @primitiveRestartEnable@ is+-- 'Vulkan.Core10.FundamentalTypes.TRUE', the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-primitiveTopologyListRestart primitiveTopologyListRestart>+-- feature /must/ be enabled+--+-- - #VUID-VkPipelineInputAssemblyStateCreateInfo-topology-06253# If+-- @topology@ is+-- 'Vulkan.Core10.Enums.PrimitiveTopology.PRIMITIVE_TOPOLOGY_PATCH_LIST',+-- and @primitiveRestartEnable@ is+-- 'Vulkan.Core10.FundamentalTypes.TRUE', the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-primitiveTopologyPatchListRestart primitiveTopologyPatchListRestart>+-- feature /must/ be enabled+--+-- - #VUID-VkPipelineInputAssemblyStateCreateInfo-topology-00429# If the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-geometryShader geometryShader>+-- feature is not enabled, @topology@ /must/ not be any of+-- 'Vulkan.Core10.Enums.PrimitiveTopology.PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY',+-- 'Vulkan.Core10.Enums.PrimitiveTopology.PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY',+-- 'Vulkan.Core10.Enums.PrimitiveTopology.PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY'+-- or+-- 'Vulkan.Core10.Enums.PrimitiveTopology.PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY'+--+-- - #VUID-VkPipelineInputAssemblyStateCreateInfo-topology-00430# If the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-tessellationShader tessellationShader>+-- feature is not enabled, @topology@ /must/ not be+-- 'Vulkan.Core10.Enums.PrimitiveTopology.PRIMITIVE_TOPOLOGY_PATCH_LIST'+--+-- - #VUID-VkPipelineInputAssemblyStateCreateInfo-triangleFans-04452# If+-- the @VK_KHR_portability_subset@ extension is enabled, and+-- 'Vulkan.Extensions.VK_KHR_portability_subset.PhysicalDevicePortabilitySubsetFeaturesKHR'::@triangleFans@+-- is 'Vulkan.Core10.FundamentalTypes.FALSE', @topology@ /must/ not be+-- 'Vulkan.Core10.Enums.PrimitiveTopology.PRIMITIVE_TOPOLOGY_TRIANGLE_FAN'+--+-- == Valid Usage (Implicit)+--+-- - #VUID-VkPipelineInputAssemblyStateCreateInfo-sType-sType# @sType@+-- /must/ be+-- 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO'+--+-- - #VUID-VkPipelineInputAssemblyStateCreateInfo-pNext-pNext# @pNext@+-- /must/ be @NULL@+--+-- - #VUID-VkPipelineInputAssemblyStateCreateInfo-flags-zerobitmask#+-- @flags@ /must/ be @0@+--+-- - #VUID-VkPipelineInputAssemblyStateCreateInfo-topology-parameter#+-- @topology@ /must/ be a valid+-- 'Vulkan.Core10.Enums.PrimitiveTopology.PrimitiveTopology' value+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,+-- 'Vulkan.Core10.FundamentalTypes.Bool32', 'GraphicsPipelineCreateInfo',+-- 'Vulkan.Core10.Enums.PipelineInputAssemblyStateCreateFlags.PipelineInputAssemblyStateCreateFlags',+-- 'Vulkan.Core10.Enums.PrimitiveTopology.PrimitiveTopology',+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data PipelineInputAssemblyStateCreateInfo = PipelineInputAssemblyStateCreateInfo+ { -- | @flags@ is reserved for future use.+ flags :: PipelineInputAssemblyStateCreateFlags+ , -- | @topology@ is a+ -- 'Vulkan.Core10.Enums.PrimitiveTopology.PrimitiveTopology' defining the+ -- primitive topology, as described below.+ topology :: PrimitiveTopology+ , -- | @primitiveRestartEnable@ controls whether a special vertex index value+ -- is treated as restarting the assembly of primitives. This enable only+ -- applies to indexed draws+ -- ('Vulkan.Core10.CommandBufferBuilding.cmdDrawIndexed',+ -- 'Vulkan.Extensions.VK_EXT_multi_draw.cmdDrawMultiIndexedEXT', and+ -- 'Vulkan.Core10.CommandBufferBuilding.cmdDrawIndexedIndirect'), and the+ -- special index value is either 0xFFFFFFFF when the @indexType@ parameter+ -- of 'Vulkan.Core10.CommandBufferBuilding.cmdBindIndexBuffer' is equal to+ -- 'Vulkan.Core10.Enums.IndexType.INDEX_TYPE_UINT32', 0xFF when @indexType@+ -- is equal to 'Vulkan.Core10.Enums.IndexType.INDEX_TYPE_UINT8_EXT', or+ -- 0xFFFF when @indexType@ is equal to+ -- 'Vulkan.Core10.Enums.IndexType.INDEX_TYPE_UINT16'. Primitive restart is+ -- not allowed for “list” topologies, unless one of the features+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-primitiveTopologyPatchListRestart primitiveTopologyPatchListRestart>+ -- (for+ -- 'Vulkan.Core10.Enums.PrimitiveTopology.PRIMITIVE_TOPOLOGY_PATCH_LIST')+ -- or+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-primitiveTopologyListRestart primitiveTopologyListRestart>+ -- (for all other list topologies) is enabled.+ primitiveRestartEnable :: Bool+ }+ deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (PipelineInputAssemblyStateCreateInfo)+#endif+deriving instance Show PipelineInputAssemblyStateCreateInfo++instance ToCStruct PipelineInputAssemblyStateCreateInfo where+ withCStruct x f = allocaBytes 32 $ \p -> pokeCStruct p x (f p)+ pokeCStruct p PipelineInputAssemblyStateCreateInfo{..} f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr PipelineInputAssemblyStateCreateFlags)) (flags)+ poke ((p `plusPtr` 20 :: Ptr PrimitiveTopology)) (topology)+ poke ((p `plusPtr` 24 :: Ptr Bool32)) (boolToBool32 (primitiveRestartEnable))+ f+ cStructSize = 32+ cStructAlignment = 8+ pokeZeroCStruct p f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 20 :: Ptr PrimitiveTopology)) (zero)+ poke ((p `plusPtr` 24 :: Ptr Bool32)) (boolToBool32 (zero))+ f++instance FromCStruct PipelineInputAssemblyStateCreateInfo where+ peekCStruct p = do+ flags <- peek @PipelineInputAssemblyStateCreateFlags ((p `plusPtr` 16 :: Ptr PipelineInputAssemblyStateCreateFlags))+ topology <- peek @PrimitiveTopology ((p `plusPtr` 20 :: Ptr PrimitiveTopology))+ primitiveRestartEnable <- peek @Bool32 ((p `plusPtr` 24 :: Ptr Bool32))+ pure $ PipelineInputAssemblyStateCreateInfo+ flags topology (bool32ToBool primitiveRestartEnable)++instance Storable PipelineInputAssemblyStateCreateInfo where+ sizeOf ~_ = 32+ alignment ~_ = 8+ peek = peekCStruct+ poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero PipelineInputAssemblyStateCreateInfo where+ zero = PipelineInputAssemblyStateCreateInfo+ zero+ zero+ zero+++-- | VkPipelineTessellationStateCreateInfo - Structure specifying parameters+-- of a newly created pipeline tessellation state+--+-- == Valid Usage+--+-- - #VUID-VkPipelineTessellationStateCreateInfo-patchControlPoints-01214#+-- @patchControlPoints@ /must/ be greater than zero and less than or+-- equal to+-- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxTessellationPatchSize@+--+-- == Valid Usage (Implicit)+--+-- - #VUID-VkPipelineTessellationStateCreateInfo-sType-sType# @sType@+-- /must/ be+-- 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO'+--+-- - #VUID-VkPipelineTessellationStateCreateInfo-pNext-pNext# @pNext@+-- /must/ be @NULL@ or a pointer to a valid instance of+-- 'Vulkan.Core11.Promoted_From_VK_KHR_maintenance2.PipelineTessellationDomainOriginStateCreateInfo'+--+-- - #VUID-VkPipelineTessellationStateCreateInfo-sType-unique# The+-- @sType@ value of each struct in the @pNext@ chain /must/ be unique+--+-- - #VUID-VkPipelineTessellationStateCreateInfo-flags-zerobitmask#+-- @flags@ /must/ be @0@+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,+-- 'GraphicsPipelineCreateInfo',+-- 'Vulkan.Extensions.VK_NV_device_generated_commands.GraphicsShaderGroupCreateInfoNV',+-- 'Vulkan.Core10.Enums.PipelineTessellationStateCreateFlags.PipelineTessellationStateCreateFlags',+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data PipelineTessellationStateCreateInfo (es :: [Type]) = PipelineTessellationStateCreateInfo+ { -- | @pNext@ is @NULL@ or a pointer to a structure extending this structure.+ next :: Chain es+ , -- | @flags@ is reserved for future use.+ flags :: PipelineTessellationStateCreateFlags+ , -- | @patchControlPoints@ is the number of control points per patch.+ patchControlPoints :: Word32+ }+ deriving (Typeable)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (PipelineTessellationStateCreateInfo (es :: [Type]))+#endif+deriving instance Show (Chain es) => Show (PipelineTessellationStateCreateInfo es)++instance Extensible PipelineTessellationStateCreateInfo where+ extensibleTypeName = "PipelineTessellationStateCreateInfo"+ setNext PipelineTessellationStateCreateInfo{..} next' = PipelineTessellationStateCreateInfo{next = next', ..}+ getNext PipelineTessellationStateCreateInfo{..} = next+ extends :: forall e b proxy. Typeable e => proxy e -> (Extends PipelineTessellationStateCreateInfo e => b) -> Maybe b+ extends _ f+ | Just Refl <- eqT @e @PipelineTessellationDomainOriginStateCreateInfo = Just f+ | otherwise = Nothing++instance (Extendss PipelineTessellationStateCreateInfo es, PokeChain es) => ToCStruct (PipelineTessellationStateCreateInfo es) where+ withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)+ pokeCStruct p PipelineTessellationStateCreateInfo{..} f = evalContT $ do+ lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO)+ pNext'' <- fmap castPtr . ContT $ withChain (next)+ lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext''+ lift $ poke ((p `plusPtr` 16 :: Ptr PipelineTessellationStateCreateFlags)) (flags)+ lift $ poke ((p `plusPtr` 20 :: Ptr Word32)) (patchControlPoints)+ lift $ f+ cStructSize = 24+ cStructAlignment = 8+ pokeZeroCStruct p f = evalContT $ do+ lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO)+ pNext' <- fmap castPtr . ContT $ withZeroChain @es+ lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext'+ lift $ poke ((p `plusPtr` 20 :: Ptr Word32)) (zero)+ lift $ f++instance (Extendss PipelineTessellationStateCreateInfo es, PeekChain es) => FromCStruct (PipelineTessellationStateCreateInfo es) where+ peekCStruct p = do+ pNext <- peek @(Ptr ()) ((p `plusPtr` 8 :: Ptr (Ptr ())))+ next <- peekChain (castPtr pNext)+ flags <- peek @PipelineTessellationStateCreateFlags ((p `plusPtr` 16 :: Ptr PipelineTessellationStateCreateFlags))+ patchControlPoints <- peek @Word32 ((p `plusPtr` 20 :: Ptr Word32))+ pure $ PipelineTessellationStateCreateInfo+ next flags patchControlPoints++instance es ~ '[] => Zero (PipelineTessellationStateCreateInfo es) where+ zero = PipelineTessellationStateCreateInfo+ ()+ zero+ zero+++-- | VkPipelineViewportStateCreateInfo - Structure specifying parameters of a+-- newly created pipeline viewport state+--+-- == Valid Usage+--+-- - #VUID-VkPipelineViewportStateCreateInfo-viewportCount-01216# If the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-multiViewport multiViewport>+-- feature is not enabled, @viewportCount@ /must/ not be greater than+-- @1@+--+-- - #VUID-VkPipelineViewportStateCreateInfo-scissorCount-01217# If the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-multiViewport multiViewport>+-- feature is not enabled, @scissorCount@ /must/ not be greater than+-- @1@+--+-- - #VUID-VkPipelineViewportStateCreateInfo-viewportCount-01218#+-- @viewportCount@ /must/ be less than or equal to+-- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxViewports@+--+-- - #VUID-VkPipelineViewportStateCreateInfo-scissorCount-01219#+-- @scissorCount@ /must/ be less than or equal to+-- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxViewports@+--+-- - #VUID-VkPipelineViewportStateCreateInfo-x-02821# The @x@ and @y@+-- members of @offset@ member of any element of @pScissors@ /must/ be+-- greater than or equal to @0@+--+-- - #VUID-VkPipelineViewportStateCreateInfo-offset-02822# Evaluation of+-- (@offset.x@ + @extent.width@) /must/ not cause a signed integer+-- addition overflow for any element of @pScissors@+--+-- - #VUID-VkPipelineViewportStateCreateInfo-offset-02823# Evaluation of+-- (@offset.y@ + @extent.height@) /must/ not cause a signed integer+-- addition overflow for any element of @pScissors@+--+-- - #VUID-VkPipelineViewportStateCreateInfo-scissorCount-04134# If the+-- graphics pipeline is being created without+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'+-- and+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT'+-- set then @scissorCount@ and @viewportCount@ /must/ be identical+--+-- - #VUID-VkPipelineViewportStateCreateInfo-viewportCount-04135# If the+-- graphics pipeline is being created with+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'+-- set then @viewportCount@ /must/ be @0@, otherwise it /must/ be+-- greater than @0@+--+-- - #VUID-VkPipelineViewportStateCreateInfo-scissorCount-04136# If the+-- graphics pipeline is being created with+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT'+-- set then @scissorCount@ /must/ be @0@, otherwise it /must/ be+-- greater than @0@+--+-- - #VUID-VkPipelineViewportStateCreateInfo-viewportWScalingEnable-01726#+-- If the @viewportWScalingEnable@ member of a+-- 'Vulkan.Extensions.VK_NV_clip_space_w_scaling.PipelineViewportWScalingStateCreateInfoNV'+-- structure included in the @pNext@ chain is+-- 'Vulkan.Core10.FundamentalTypes.TRUE', the @viewportCount@ member of+-- the+-- 'Vulkan.Extensions.VK_NV_clip_space_w_scaling.PipelineViewportWScalingStateCreateInfoNV'+-- structure /must/ be greater than or equal to+-- 'PipelineViewportStateCreateInfo'::@viewportCount@+--+-- == Valid Usage (Implicit)+--+-- - #VUID-VkPipelineViewportStateCreateInfo-sType-sType# @sType@ /must/+-- be+-- 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO'+--+-- - #VUID-VkPipelineViewportStateCreateInfo-pNext-pNext# Each @pNext@+-- member of any structure (including this one) in the @pNext@ chain+-- /must/ be either @NULL@ or a pointer to a valid instance of+-- 'Vulkan.Extensions.VK_NV_shading_rate_image.PipelineViewportCoarseSampleOrderStateCreateInfoNV',+-- 'Vulkan.Extensions.VK_EXT_depth_clip_control.PipelineViewportDepthClipControlCreateInfoEXT',+-- 'Vulkan.Extensions.VK_NV_scissor_exclusive.PipelineViewportExclusiveScissorStateCreateInfoNV',+-- 'Vulkan.Extensions.VK_NV_shading_rate_image.PipelineViewportShadingRateImageStateCreateInfoNV',+-- 'Vulkan.Extensions.VK_NV_viewport_swizzle.PipelineViewportSwizzleStateCreateInfoNV',+-- or+-- 'Vulkan.Extensions.VK_NV_clip_space_w_scaling.PipelineViewportWScalingStateCreateInfoNV'+--+-- - #VUID-VkPipelineViewportStateCreateInfo-sType-unique# The @sType@+-- value of each struct in the @pNext@ chain /must/ be unique+--+-- - #VUID-VkPipelineViewportStateCreateInfo-flags-zerobitmask# @flags@+-- /must/ be @0@+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,+-- 'GraphicsPipelineCreateInfo',+-- 'Vulkan.Core10.Enums.PipelineViewportStateCreateFlags.PipelineViewportStateCreateFlags',+-- 'Vulkan.Core10.FundamentalTypes.Rect2D',+-- 'Vulkan.Core10.Enums.StructureType.StructureType', 'Viewport'+data PipelineViewportStateCreateInfo (es :: [Type]) = PipelineViewportStateCreateInfo+ { -- | @pNext@ is @NULL@ or a pointer to a structure extending this structure.+ next :: Chain es+ , -- | @flags@ is reserved for future use.+ flags :: PipelineViewportStateCreateFlags+ , -- | @viewportCount@ is the number of viewports used by the pipeline.+ viewportCount :: Word32+ , -- | @pViewports@ is a pointer to an array of 'Viewport' structures, defining+ -- the viewport transforms. If the viewport state is dynamic, this member+ -- is ignored.+ viewports :: Vector Viewport+ , -- | @scissorCount@ is the number of+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fragops-scissor scissors>+ -- and /must/ match the number of viewports.+ scissorCount :: Word32+ , -- | @pScissors@ is a pointer to an array of+ -- 'Vulkan.Core10.FundamentalTypes.Rect2D' structures defining the+ -- rectangular bounds of the scissor for the corresponding viewport. If the+ -- scissor state is dynamic, this member is ignored.+ scissors :: Vector Rect2D+ }+ deriving (Typeable)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (PipelineViewportStateCreateInfo (es :: [Type]))+#endif+deriving instance Show (Chain es) => Show (PipelineViewportStateCreateInfo es)++instance Extensible PipelineViewportStateCreateInfo where+ extensibleTypeName = "PipelineViewportStateCreateInfo"+ setNext PipelineViewportStateCreateInfo{..} next' = PipelineViewportStateCreateInfo{next = next', ..}+ getNext PipelineViewportStateCreateInfo{..} = next+ extends :: forall e b proxy. Typeable e => proxy e -> (Extends PipelineViewportStateCreateInfo e => b) -> Maybe b+ extends _ f+ | Just Refl <- eqT @e @PipelineViewportDepthClipControlCreateInfoEXT = Just f+ | Just Refl <- eqT @e @PipelineViewportCoarseSampleOrderStateCreateInfoNV = Just f+ | Just Refl <- eqT @e @PipelineViewportShadingRateImageStateCreateInfoNV = Just f+ | Just Refl <- eqT @e @PipelineViewportExclusiveScissorStateCreateInfoNV = Just f+ | Just Refl <- eqT @e @PipelineViewportSwizzleStateCreateInfoNV = Just f+ | Just Refl <- eqT @e @PipelineViewportWScalingStateCreateInfoNV = Just f+ | otherwise = Nothing++instance (Extendss PipelineViewportStateCreateInfo es, PokeChain es) => ToCStruct (PipelineViewportStateCreateInfo es) where+ withCStruct x f = allocaBytes 48 $ \p -> pokeCStruct p x (f p)+ pokeCStruct p PipelineViewportStateCreateInfo{..} f = evalContT $ do+ lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO)+ pNext'' <- fmap castPtr . ContT $ withChain (next)+ lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext''+ lift $ poke ((p `plusPtr` 16 :: Ptr PipelineViewportStateCreateFlags)) (flags)+ let pViewportsLength = Data.Vector.length $ (viewports)+ viewportCount'' <- lift $ if (viewportCount) == 0+ then pure $ fromIntegral pViewportsLength+ else do+ unless (fromIntegral pViewportsLength == (viewportCount) || pViewportsLength == 0) $+ throwIO $ IOError Nothing InvalidArgument "" "pViewports must be empty or have 'viewportCount' elements" Nothing Nothing+ pure (viewportCount)+ lift $ poke ((p `plusPtr` 20 :: Ptr Word32)) (viewportCount'')+ pViewports'' <- if Data.Vector.null (viewports)+ then pure nullPtr+ else do+ pPViewports <- ContT $ allocaBytes @Viewport (((Data.Vector.length (viewports))) * 24)+ lift $ Data.Vector.imapM_ (\i e -> poke (pPViewports `plusPtr` (24 * (i)) :: Ptr Viewport) (e)) ((viewports))+ pure $ pPViewports+ lift $ poke ((p `plusPtr` 24 :: Ptr (Ptr Viewport))) pViewports''+ let pScissorsLength = Data.Vector.length $ (scissors)+ scissorCount'' <- lift $ if (scissorCount) == 0+ then pure $ fromIntegral pScissorsLength+ else do+ unless (fromIntegral pScissorsLength == (scissorCount) || pScissorsLength == 0) $+ throwIO $ IOError Nothing InvalidArgument "" "pScissors must be empty or have 'scissorCount' elements" Nothing Nothing+ pure (scissorCount)+ lift $ poke ((p `plusPtr` 32 :: Ptr Word32)) (scissorCount'')+ pScissors'' <- if Data.Vector.null (scissors)+ then pure nullPtr+ else do+ pPScissors <- ContT $ allocaBytes @Rect2D (((Data.Vector.length (scissors))) * 16)+ lift $ Data.Vector.imapM_ (\i e -> poke (pPScissors `plusPtr` (16 * (i)) :: Ptr Rect2D) (e)) ((scissors))+ pure $ pPScissors+ lift $ poke ((p `plusPtr` 40 :: Ptr (Ptr Rect2D))) pScissors''+ lift $ f+ cStructSize = 48+ cStructAlignment = 8+ pokeZeroCStruct p f = evalContT $ do+ lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO)+ pNext' <- fmap castPtr . ContT $ withZeroChain @es+ lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext'+ lift $ f++instance (Extendss PipelineViewportStateCreateInfo es, PeekChain es) => FromCStruct (PipelineViewportStateCreateInfo es) where+ peekCStruct p = do+ pNext <- peek @(Ptr ()) ((p `plusPtr` 8 :: Ptr (Ptr ())))+ next <- peekChain (castPtr pNext)+ flags <- peek @PipelineViewportStateCreateFlags ((p `plusPtr` 16 :: Ptr PipelineViewportStateCreateFlags))+ viewportCount <- peek @Word32 ((p `plusPtr` 20 :: Ptr Word32))+ pViewports <- peek @(Ptr Viewport) ((p `plusPtr` 24 :: Ptr (Ptr Viewport)))+ let pViewportsLength = if pViewports == nullPtr then 0 else (fromIntegral viewportCount)+ pViewports' <- generateM pViewportsLength (\i -> peekCStruct @Viewport ((pViewports `advancePtrBytes` (24 * (i)) :: Ptr Viewport)))+ scissorCount <- peek @Word32 ((p `plusPtr` 32 :: Ptr Word32))+ pScissors <- peek @(Ptr Rect2D) ((p `plusPtr` 40 :: Ptr (Ptr Rect2D)))+ let pScissorsLength = if pScissors == nullPtr then 0 else (fromIntegral scissorCount)+ pScissors' <- generateM pScissorsLength (\i -> peekCStruct @Rect2D ((pScissors `advancePtrBytes` (16 * (i)) :: Ptr Rect2D)))+ pure $ PipelineViewportStateCreateInfo+ next flags viewportCount pViewports' scissorCount pScissors'++instance es ~ '[] => Zero (PipelineViewportStateCreateInfo es) where+ zero = PipelineViewportStateCreateInfo+ ()+ zero+ zero+ mempty+ zero+ mempty+++-- | VkPipelineRasterizationStateCreateInfo - Structure specifying parameters+-- of a newly created pipeline rasterization state+--+-- = Description+--+-- The application /can/ also add a+-- 'Vulkan.Extensions.VK_AMD_rasterization_order.PipelineRasterizationStateRasterizationOrderAMD'+-- structure to the @pNext@ chain of a+-- 'PipelineRasterizationStateCreateInfo' structure. This structure enables+-- selecting the rasterization order to use when rendering with the+-- corresponding graphics pipeline as described in+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-order Rasterization Order>.+--+-- == Valid Usage+--+-- - #VUID-VkPipelineRasterizationStateCreateInfo-depthClampEnable-00782#+-- If the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-depthClamp depthClamp>+-- feature is not enabled, @depthClampEnable@ /must/ be+-- 'Vulkan.Core10.FundamentalTypes.FALSE'+--+-- - #VUID-VkPipelineRasterizationStateCreateInfo-polygonMode-01507# If+-- the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-fillModeNonSolid fillModeNonSolid>+-- feature is not enabled, @polygonMode@ /must/ be+-- 'Vulkan.Core10.Enums.PolygonMode.POLYGON_MODE_FILL' or+-- 'Vulkan.Core10.Enums.PolygonMode.POLYGON_MODE_FILL_RECTANGLE_NV'+--+-- - #VUID-VkPipelineRasterizationStateCreateInfo-polygonMode-01414# If+-- the @VK_NV_fill_rectangle@ extension is not enabled, @polygonMode@+-- /must/ not be+-- 'Vulkan.Core10.Enums.PolygonMode.POLYGON_MODE_FILL_RECTANGLE_NV'+--+-- - #VUID-VkPipelineRasterizationStateCreateInfo-pointPolygons-04458# If+-- the @VK_KHR_portability_subset@ extension is enabled, and+-- 'Vulkan.Extensions.VK_KHR_portability_subset.PhysicalDevicePortabilitySubsetFeaturesKHR'::@pointPolygons@+-- is 'Vulkan.Core10.FundamentalTypes.FALSE', and+-- @rasterizerDiscardEnable@ is 'Vulkan.Core10.FundamentalTypes.FALSE',+-- @polygonMode@ /must/ not be+-- 'Vulkan.Core10.Enums.PolygonMode.POLYGON_MODE_POINT'+--+-- == Valid Usage (Implicit)+--+-- - #VUID-VkPipelineRasterizationStateCreateInfo-sType-sType# @sType@+-- /must/ be+-- 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO'+--+-- - #VUID-VkPipelineRasterizationStateCreateInfo-pNext-pNext# Each+-- @pNext@ member of any structure (including this one) in the @pNext@+-- chain /must/ be either @NULL@ or a pointer to a valid instance of+-- 'Vulkan.Extensions.VK_EXT_conservative_rasterization.PipelineRasterizationConservativeStateCreateInfoEXT',+-- 'Vulkan.Extensions.VK_EXT_depth_clip_enable.PipelineRasterizationDepthClipStateCreateInfoEXT',+-- 'Vulkan.Extensions.VK_EXT_line_rasterization.PipelineRasterizationLineStateCreateInfoEXT',+-- 'Vulkan.Extensions.VK_EXT_provoking_vertex.PipelineRasterizationProvokingVertexStateCreateInfoEXT',+-- 'Vulkan.Extensions.VK_AMD_rasterization_order.PipelineRasterizationStateRasterizationOrderAMD',+-- or+-- 'Vulkan.Extensions.VK_EXT_transform_feedback.PipelineRasterizationStateStreamCreateInfoEXT'+--+-- - #VUID-VkPipelineRasterizationStateCreateInfo-sType-unique# The+-- @sType@ value of each struct in the @pNext@ chain /must/ be unique+--+-- - #VUID-VkPipelineRasterizationStateCreateInfo-flags-zerobitmask#+-- @flags@ /must/ be @0@+--+-- - #VUID-VkPipelineRasterizationStateCreateInfo-polygonMode-parameter#+-- @polygonMode@ /must/ be a valid+-- 'Vulkan.Core10.Enums.PolygonMode.PolygonMode' value+--+-- - #VUID-VkPipelineRasterizationStateCreateInfo-cullMode-parameter#+-- @cullMode@ /must/ be a valid combination of+-- 'Vulkan.Core10.Enums.CullModeFlagBits.CullModeFlagBits' values+--+-- - #VUID-VkPipelineRasterizationStateCreateInfo-frontFace-parameter#+-- @frontFace@ /must/ be a valid+-- 'Vulkan.Core10.Enums.FrontFace.FrontFace' value+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,+-- 'Vulkan.Core10.FundamentalTypes.Bool32',+-- 'Vulkan.Core10.Enums.CullModeFlagBits.CullModeFlags',+-- 'Vulkan.Core10.Enums.FrontFace.FrontFace', 'GraphicsPipelineCreateInfo',+-- 'Vulkan.Core10.Enums.PipelineRasterizationStateCreateFlags.PipelineRasterizationStateCreateFlags',+-- 'Vulkan.Core10.Enums.PolygonMode.PolygonMode',+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data PipelineRasterizationStateCreateInfo (es :: [Type]) = PipelineRasterizationStateCreateInfo+ { -- | @pNext@ is @NULL@ or a pointer to a structure extending this structure.+ next :: Chain es+ , -- | @flags@ is reserved for future use.+ flags :: PipelineRasterizationStateCreateFlags+ , -- | @depthClampEnable@ controls whether to clamp the fragment’s depth values+ -- as described in+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fragops-depth Depth Test>.+ -- If the pipeline is not created with+ -- 'Vulkan.Extensions.VK_EXT_depth_clip_enable.PipelineRasterizationDepthClipStateCreateInfoEXT'+ -- present then enabling depth clamp will also disable clipping primitives+ -- to the z planes of the frustrum as described in+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#vertexpostproc-clipping Primitive Clipping>.+ -- Otherwise depth clipping is controlled by the state set in+ -- 'Vulkan.Extensions.VK_EXT_depth_clip_enable.PipelineRasterizationDepthClipStateCreateInfoEXT'.+ depthClampEnable :: Bool+ , -- | @rasterizerDiscardEnable@ controls whether primitives are discarded+ -- immediately before the rasterization stage.+ rasterizerDiscardEnable :: Bool+ , -- | @polygonMode@ is the triangle rendering mode. See+ -- 'Vulkan.Core10.Enums.PolygonMode.PolygonMode'.+ polygonMode :: PolygonMode+ , -- | @cullMode@ is the triangle facing direction used for primitive culling.+ -- See 'Vulkan.Core10.Enums.CullModeFlagBits.CullModeFlagBits'.+ cullMode :: CullModeFlags+ , -- | @frontFace@ is a 'Vulkan.Core10.Enums.FrontFace.FrontFace' value+ -- specifying the front-facing triangle orientation to be used for culling.+ frontFace :: FrontFace+ , -- | @depthBiasEnable@ controls whether to bias fragment depth values.+ depthBiasEnable :: Bool+ , -- | @depthBiasConstantFactor@ is a scalar factor controlling the constant+ -- depth value added to each fragment.+ depthBiasConstantFactor :: Float+ , -- | @depthBiasClamp@ is the maximum (or minimum) depth bias of a fragment.+ depthBiasClamp :: Float+ , -- | @depthBiasSlopeFactor@ is a scalar factor applied to a fragment’s slope+ -- in depth bias calculations.+ depthBiasSlopeFactor :: Float+ , -- | @lineWidth@ is the width of rasterized line segments.+ lineWidth :: Float+ }+ deriving (Typeable)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (PipelineRasterizationStateCreateInfo (es :: [Type]))+#endif+deriving instance Show (Chain es) => Show (PipelineRasterizationStateCreateInfo es)++instance Extensible PipelineRasterizationStateCreateInfo where+ extensibleTypeName = "PipelineRasterizationStateCreateInfo"+ setNext PipelineRasterizationStateCreateInfo{..} next' = PipelineRasterizationStateCreateInfo{next = next', ..}+ getNext PipelineRasterizationStateCreateInfo{..} = next+ extends :: forall e b proxy. Typeable e => proxy e -> (Extends PipelineRasterizationStateCreateInfo e => b) -> Maybe b+ extends _ f+ | Just Refl <- eqT @e @PipelineRasterizationProvokingVertexStateCreateInfoEXT = Just f+ | Just Refl <- eqT @e @PipelineRasterizationLineStateCreateInfoEXT = Just f+ | Just Refl <- eqT @e @PipelineRasterizationDepthClipStateCreateInfoEXT = Just f+ | Just Refl <- eqT @e @PipelineRasterizationStateStreamCreateInfoEXT = Just f+ | Just Refl <- eqT @e @PipelineRasterizationConservativeStateCreateInfoEXT = Just f+ | Just Refl <- eqT @e @PipelineRasterizationStateRasterizationOrderAMD = Just f+ | otherwise = Nothing++instance (Extendss PipelineRasterizationStateCreateInfo es, PokeChain es) => ToCStruct (PipelineRasterizationStateCreateInfo es) where+ withCStruct x f = allocaBytes 64 $ \p -> pokeCStruct p x (f p)+ pokeCStruct p PipelineRasterizationStateCreateInfo{..} f = evalContT $ do+ lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO)+ pNext'' <- fmap castPtr . ContT $ withChain (next)+ lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext''+ lift $ poke ((p `plusPtr` 16 :: Ptr PipelineRasterizationStateCreateFlags)) (flags)+ lift $ poke ((p `plusPtr` 20 :: Ptr Bool32)) (boolToBool32 (depthClampEnable))+ lift $ poke ((p `plusPtr` 24 :: Ptr Bool32)) (boolToBool32 (rasterizerDiscardEnable))+ lift $ poke ((p `plusPtr` 28 :: Ptr PolygonMode)) (polygonMode)+ lift $ poke ((p `plusPtr` 32 :: Ptr CullModeFlags)) (cullMode)+ lift $ poke ((p `plusPtr` 36 :: Ptr FrontFace)) (frontFace)+ lift $ poke ((p `plusPtr` 40 :: Ptr Bool32)) (boolToBool32 (depthBiasEnable))+ lift $ poke ((p `plusPtr` 44 :: Ptr CFloat)) (CFloat (depthBiasConstantFactor))+ lift $ poke ((p `plusPtr` 48 :: Ptr CFloat)) (CFloat (depthBiasClamp))+ lift $ poke ((p `plusPtr` 52 :: Ptr CFloat)) (CFloat (depthBiasSlopeFactor))+ lift $ poke ((p `plusPtr` 56 :: Ptr CFloat)) (CFloat (lineWidth))+ lift $ f+ cStructSize = 64+ cStructAlignment = 8+ pokeZeroCStruct p f = evalContT $ do+ lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO)+ pNext' <- fmap castPtr . ContT $ withZeroChain @es+ lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext'+ lift $ poke ((p `plusPtr` 20 :: Ptr Bool32)) (boolToBool32 (zero))+ lift $ poke ((p `plusPtr` 24 :: Ptr Bool32)) (boolToBool32 (zero))+ lift $ poke ((p `plusPtr` 28 :: Ptr PolygonMode)) (zero)+ lift $ poke ((p `plusPtr` 36 :: Ptr FrontFace)) (zero)+ lift $ poke ((p `plusPtr` 40 :: Ptr Bool32)) (boolToBool32 (zero))+ lift $ poke ((p `plusPtr` 44 :: Ptr CFloat)) (CFloat (zero))+ lift $ poke ((p `plusPtr` 48 :: Ptr CFloat)) (CFloat (zero))+ lift $ poke ((p `plusPtr` 52 :: Ptr CFloat)) (CFloat (zero))+ lift $ poke ((p `plusPtr` 56 :: Ptr CFloat)) (CFloat (zero))+ lift $ f++instance (Extendss PipelineRasterizationStateCreateInfo es, PeekChain es) => FromCStruct (PipelineRasterizationStateCreateInfo es) where+ peekCStruct p = do+ pNext <- peek @(Ptr ()) ((p `plusPtr` 8 :: Ptr (Ptr ())))+ next <- peekChain (castPtr pNext)+ flags <- peek @PipelineRasterizationStateCreateFlags ((p `plusPtr` 16 :: Ptr PipelineRasterizationStateCreateFlags))+ depthClampEnable <- peek @Bool32 ((p `plusPtr` 20 :: Ptr Bool32))+ rasterizerDiscardEnable <- peek @Bool32 ((p `plusPtr` 24 :: Ptr Bool32))+ polygonMode <- peek @PolygonMode ((p `plusPtr` 28 :: Ptr PolygonMode))+ cullMode <- peek @CullModeFlags ((p `plusPtr` 32 :: Ptr CullModeFlags))+ frontFace <- peek @FrontFace ((p `plusPtr` 36 :: Ptr FrontFace))+ depthBiasEnable <- peek @Bool32 ((p `plusPtr` 40 :: Ptr Bool32))+ depthBiasConstantFactor <- peek @CFloat ((p `plusPtr` 44 :: Ptr CFloat))+ depthBiasClamp <- peek @CFloat ((p `plusPtr` 48 :: Ptr CFloat))+ depthBiasSlopeFactor <- peek @CFloat ((p `plusPtr` 52 :: Ptr CFloat))+ lineWidth <- peek @CFloat ((p `plusPtr` 56 :: Ptr CFloat))+ pure $ PipelineRasterizationStateCreateInfo+ next flags (bool32ToBool depthClampEnable) (bool32ToBool rasterizerDiscardEnable) polygonMode cullMode frontFace (bool32ToBool depthBiasEnable) (coerce @CFloat @Float depthBiasConstantFactor) (coerce @CFloat @Float depthBiasClamp) (coerce @CFloat @Float depthBiasSlopeFactor) (coerce @CFloat @Float lineWidth)++instance es ~ '[] => Zero (PipelineRasterizationStateCreateInfo es) where+ zero = PipelineRasterizationStateCreateInfo+ ()+ zero+ zero+ zero+ zero+ zero+ zero+ zero+ zero+ zero+ zero+ zero+++-- | VkPipelineMultisampleStateCreateInfo - Structure specifying parameters+-- of a newly created pipeline multisample state+--+-- = Description+--+-- Each bit in the sample mask is associated with a unique+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-multisampling-coverage-mask sample index>+-- as defined for the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-multisampling-coverage-mask coverage mask>.+-- Each bit b for mask word w in the sample mask corresponds to sample+-- index i, where i = 32 × w + b. @pSampleMask@ has a length equal to ⌈+-- @rasterizationSamples@ \/ 32 ⌉ words.+--+-- If @pSampleMask@ is @NULL@, it is treated as if the mask has all bits+-- set to @1@.+--+-- == Valid Usage+--+-- - #VUID-VkPipelineMultisampleStateCreateInfo-sampleShadingEnable-00784#+-- If the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-sampleRateShading sampleRateShading>+-- feature is not enabled, @sampleShadingEnable@ /must/ be+-- 'Vulkan.Core10.FundamentalTypes.FALSE'+--+-- - #VUID-VkPipelineMultisampleStateCreateInfo-alphaToOneEnable-00785#+-- If the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-alphaToOne alphaToOne>+-- feature is not enabled, @alphaToOneEnable@ /must/ be+-- 'Vulkan.Core10.FundamentalTypes.FALSE'+--+-- - #VUID-VkPipelineMultisampleStateCreateInfo-minSampleShading-00786#+-- @minSampleShading@ /must/ be in the range [0,1]+--+-- - #VUID-VkPipelineMultisampleStateCreateInfo-rasterizationSamples-01415#+-- If the @VK_NV_framebuffer_mixed_samples@ extension is enabled, and+-- if the subpass has any color attachments and @rasterizationSamples@+-- is greater than the number of color samples, then+-- @sampleShadingEnable@ /must/ be+-- 'Vulkan.Core10.FundamentalTypes.FALSE'+--+-- == Valid Usage (Implicit)+--+-- - #VUID-VkPipelineMultisampleStateCreateInfo-sType-sType# @sType@+-- /must/ be+-- 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO'+--+-- - #VUID-VkPipelineMultisampleStateCreateInfo-pNext-pNext# Each @pNext@+-- member of any structure (including this one) in the @pNext@ chain+-- /must/ be either @NULL@ or a pointer to a valid instance of+-- 'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.PipelineCoverageModulationStateCreateInfoNV',+-- 'Vulkan.Extensions.VK_NV_coverage_reduction_mode.PipelineCoverageReductionStateCreateInfoNV',+-- 'Vulkan.Extensions.VK_NV_fragment_coverage_to_color.PipelineCoverageToColorStateCreateInfoNV',+-- or+-- 'Vulkan.Extensions.VK_EXT_sample_locations.PipelineSampleLocationsStateCreateInfoEXT'+--+-- - #VUID-VkPipelineMultisampleStateCreateInfo-sType-unique# The @sType@+-- value of each struct in the @pNext@ chain /must/ be unique+--+-- - #VUID-VkPipelineMultisampleStateCreateInfo-flags-zerobitmask#+-- @flags@ /must/ be @0@+--+-- - #VUID-VkPipelineMultisampleStateCreateInfo-rasterizationSamples-parameter#+-- @rasterizationSamples@ /must/ be a valid+-- 'Vulkan.Core10.Enums.SampleCountFlagBits.SampleCountFlagBits' value+--+-- - #VUID-VkPipelineMultisampleStateCreateInfo-pSampleMask-parameter# If+-- @pSampleMask@ is not @NULL@, @pSampleMask@ /must/ be a valid pointer+-- to an array of+-- \(\lceil{\mathit{rasterizationSamples} \over 32}\rceil\)+-- 'Vulkan.Core10.FundamentalTypes.SampleMask' values+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,+-- 'Vulkan.Core10.FundamentalTypes.Bool32', 'GraphicsPipelineCreateInfo',+-- 'Vulkan.Core10.Enums.PipelineMultisampleStateCreateFlags.PipelineMultisampleStateCreateFlags',+-- 'Vulkan.Core10.Enums.SampleCountFlagBits.SampleCountFlagBits',+-- 'Vulkan.Core10.FundamentalTypes.SampleMask',+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data PipelineMultisampleStateCreateInfo (es :: [Type]) = PipelineMultisampleStateCreateInfo+ { -- | @pNext@ is @NULL@ or a pointer to a structure extending this structure.+ next :: Chain es+ , -- | @flags@ is reserved for future use.+ flags :: PipelineMultisampleStateCreateFlags+ , -- | @rasterizationSamples@ is a+ -- 'Vulkan.Core10.Enums.SampleCountFlagBits.SampleCountFlagBits' value+ -- specifying the number of samples used in rasterization.+ rasterizationSamples :: SampleCountFlagBits+ , -- | @sampleShadingEnable@ /can/ be used to enable+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-sampleshading Sample Shading>.+ sampleShadingEnable :: Bool+ , -- | @minSampleShading@ specifies a minimum fraction of sample shading if+ -- @sampleShadingEnable@ is set to 'Vulkan.Core10.FundamentalTypes.TRUE'.+ minSampleShading :: Float+ , -- | @pSampleMask@ is a pointer to an array of+ -- 'Vulkan.Core10.FundamentalTypes.SampleMask' values used in the+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fragops-samplemask sample mask test>.+ sampleMask :: Vector SampleMask+ , -- | @alphaToCoverageEnable@ controls whether a temporary coverage value is+ -- generated based on the alpha component of the fragment’s first color+ -- output as specified in the+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fragops-covg Multisample Coverage>+ -- section.+ alphaToCoverageEnable :: Bool+ , -- | @alphaToOneEnable@ controls whether the alpha component of the+ -- fragment’s first color output is replaced with one as described in+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fragops-covg Multisample Coverage>.+ alphaToOneEnable :: Bool+ }+ deriving (Typeable)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (PipelineMultisampleStateCreateInfo (es :: [Type]))+#endif+deriving instance Show (Chain es) => Show (PipelineMultisampleStateCreateInfo es)++instance Extensible PipelineMultisampleStateCreateInfo where+ extensibleTypeName = "PipelineMultisampleStateCreateInfo"+ setNext PipelineMultisampleStateCreateInfo{..} next' = PipelineMultisampleStateCreateInfo{next = next', ..}+ getNext PipelineMultisampleStateCreateInfo{..} = next+ extends :: forall e b proxy. Typeable e => proxy e -> (Extends PipelineMultisampleStateCreateInfo e => b) -> Maybe b+ extends _ f+ | Just Refl <- eqT @e @PipelineCoverageReductionStateCreateInfoNV = Just f+ | Just Refl <- eqT @e @PipelineCoverageModulationStateCreateInfoNV = Just f+ | Just Refl <- eqT @e @PipelineSampleLocationsStateCreateInfoEXT = Just f+ | Just Refl <- eqT @e @PipelineCoverageToColorStateCreateInfoNV = Just f+ | otherwise = Nothing++instance (Extendss PipelineMultisampleStateCreateInfo es, PokeChain es) => ToCStruct (PipelineMultisampleStateCreateInfo es) where+ withCStruct x f = allocaBytes 48 $ \p -> pokeCStruct p x (f p)+ pokeCStruct p PipelineMultisampleStateCreateInfo{..} f = evalContT $ do+ lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO)+ pNext'' <- fmap castPtr . ContT $ withChain (next)+ lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext''+ lift $ poke ((p `plusPtr` 16 :: Ptr PipelineMultisampleStateCreateFlags)) (flags)+ lift $ poke ((p `plusPtr` 20 :: Ptr SampleCountFlagBits)) (rasterizationSamples)+ lift $ poke ((p `plusPtr` 24 :: Ptr Bool32)) (boolToBool32 (sampleShadingEnable))+ lift $ poke ((p `plusPtr` 28 :: Ptr CFloat)) (CFloat (minSampleShading))+ pSampleMask'' <- case Data.Vector.length (sampleMask) of+ 0 -> pure nullPtr+ vecLen -> do+ let requiredLen = case (rasterizationSamples) of+ SampleCountFlagBits n -> (n + 31) `quot` 32+ lift $ unless (requiredLen == fromIntegral vecLen) $+ throwIO $ IOError Nothing InvalidArgument "" "sampleMask must be either empty or contain enough bits to cover all the sample specified by 'rasterizationSamples'" Nothing Nothing+ do+ pPSampleMask' <- ContT $ allocaBytes @SampleMask ((Data.Vector.length ((sampleMask))) * 4)+ lift $ Data.Vector.imapM_ (\i e -> poke (pPSampleMask' `plusPtr` (4 * (i)) :: Ptr SampleMask) (e)) ((sampleMask))+ pure $ pPSampleMask'+ lift $ poke ((p `plusPtr` 32 :: Ptr (Ptr SampleMask))) pSampleMask''+ lift $ poke ((p `plusPtr` 40 :: Ptr Bool32)) (boolToBool32 (alphaToCoverageEnable))+ lift $ poke ((p `plusPtr` 44 :: Ptr Bool32)) (boolToBool32 (alphaToOneEnable))+ lift $ f+ cStructSize = 48+ cStructAlignment = 8+ pokeZeroCStruct p f = evalContT $ do+ lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO)+ pNext' <- fmap castPtr . ContT $ withZeroChain @es+ lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext'+ lift $ poke ((p `plusPtr` 20 :: Ptr SampleCountFlagBits)) (zero)+ lift $ poke ((p `plusPtr` 24 :: Ptr Bool32)) (boolToBool32 (zero))+ lift $ poke ((p `plusPtr` 28 :: Ptr CFloat)) (CFloat (zero))+ lift $ poke ((p `plusPtr` 40 :: Ptr Bool32)) (boolToBool32 (zero))+ lift $ poke ((p `plusPtr` 44 :: Ptr Bool32)) (boolToBool32 (zero))+ lift $ f++instance (Extendss PipelineMultisampleStateCreateInfo es, PeekChain es) => FromCStruct (PipelineMultisampleStateCreateInfo es) where+ peekCStruct p = do+ pNext <- peek @(Ptr ()) ((p `plusPtr` 8 :: Ptr (Ptr ())))+ next <- peekChain (castPtr pNext)+ flags <- peek @PipelineMultisampleStateCreateFlags ((p `plusPtr` 16 :: Ptr PipelineMultisampleStateCreateFlags))+ rasterizationSamples <- peek @SampleCountFlagBits ((p `plusPtr` 20 :: Ptr SampleCountFlagBits))+ sampleShadingEnable <- peek @Bool32 ((p `plusPtr` 24 :: Ptr Bool32))+ minSampleShading <- peek @CFloat ((p `plusPtr` 28 :: Ptr CFloat))+ pSampleMask <- peek @(Ptr SampleMask) ((p `plusPtr` 32 :: Ptr (Ptr SampleMask)))+ pSampleMask' <- if pSampleMask == nullPtr+ then pure mempty+ else generateM (case rasterizationSamples of+ SampleCountFlagBits n -> (fromIntegral n + 31) `quot` 32) (\i -> peek @SampleMask (((pSampleMask) `advancePtrBytes` (4 * (i)) :: Ptr SampleMask)))+ alphaToCoverageEnable <- peek @Bool32 ((p `plusPtr` 40 :: Ptr Bool32))+ alphaToOneEnable <- peek @Bool32 ((p `plusPtr` 44 :: Ptr Bool32))+ pure $ PipelineMultisampleStateCreateInfo+ next flags rasterizationSamples (bool32ToBool sampleShadingEnable) (coerce @CFloat @Float minSampleShading) pSampleMask' (bool32ToBool alphaToCoverageEnable) (bool32ToBool alphaToOneEnable)++instance es ~ '[] => Zero (PipelineMultisampleStateCreateInfo es) where+ zero = PipelineMultisampleStateCreateInfo+ ()+ zero+ zero+ zero+ zero+ mempty+ zero+ zero+++-- | VkPipelineColorBlendAttachmentState - Structure specifying a pipeline+-- color blend attachment state+--+-- == Valid Usage+--+-- - #VUID-VkPipelineColorBlendAttachmentState-srcColorBlendFactor-00608#+-- If the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-dualSrcBlend dualSrcBlend>+-- feature is not enabled, @srcColorBlendFactor@ /must/ not be+-- 'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_SRC1_COLOR',+-- 'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_ONE_MINUS_SRC1_COLOR',+-- 'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_SRC1_ALPHA', or+-- 'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA'+--+-- - #VUID-VkPipelineColorBlendAttachmentState-dstColorBlendFactor-00609#+-- If the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-dualSrcBlend dualSrcBlend>+-- feature is not enabled, @dstColorBlendFactor@ /must/ not be+-- 'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_SRC1_COLOR',+-- 'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_ONE_MINUS_SRC1_COLOR',+-- 'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_SRC1_ALPHA', or+-- 'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA'+--+-- - #VUID-VkPipelineColorBlendAttachmentState-srcAlphaBlendFactor-00610#+-- If the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-dualSrcBlend dualSrcBlend>+-- feature is not enabled, @srcAlphaBlendFactor@ /must/ not be+-- 'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_SRC1_COLOR',+-- 'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_ONE_MINUS_SRC1_COLOR',+-- 'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_SRC1_ALPHA', or+-- 'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA'+--+-- - #VUID-VkPipelineColorBlendAttachmentState-dstAlphaBlendFactor-00611#+-- If the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-dualSrcBlend dualSrcBlend>+-- feature is not enabled, @dstAlphaBlendFactor@ /must/ not be+-- 'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_SRC1_COLOR',+-- 'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_ONE_MINUS_SRC1_COLOR',+-- 'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_SRC1_ALPHA', or+-- 'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA'+--+-- - #VUID-VkPipelineColorBlendAttachmentState-colorBlendOp-01406# If+-- either of @colorBlendOp@ or @alphaBlendOp@ is an+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#framebuffer-blend-advanced advanced blend operation>,+-- then @colorBlendOp@ /must/ equal @alphaBlendOp@+--+-- - #VUID-VkPipelineColorBlendAttachmentState-advancedBlendIndependentBlend-01407#+-- If+-- 'Vulkan.Extensions.VK_EXT_blend_operation_advanced.PhysicalDeviceBlendOperationAdvancedPropertiesEXT'::@advancedBlendIndependentBlend@+-- is 'Vulkan.Core10.FundamentalTypes.FALSE' and @colorBlendOp@ is an+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#framebuffer-blend-advanced advanced blend operation>,+-- then @colorBlendOp@ /must/ be the same for all attachments+--+-- - #VUID-VkPipelineColorBlendAttachmentState-advancedBlendIndependentBlend-01408#+-- If+-- 'Vulkan.Extensions.VK_EXT_blend_operation_advanced.PhysicalDeviceBlendOperationAdvancedPropertiesEXT'::@advancedBlendIndependentBlend@+-- is 'Vulkan.Core10.FundamentalTypes.FALSE' and @alphaBlendOp@ is an+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#framebuffer-blend-advanced advanced blend operation>,+-- then @alphaBlendOp@ /must/ be the same for all attachments+--+-- - #VUID-VkPipelineColorBlendAttachmentState-advancedBlendAllOperations-01409#+-- If+-- 'Vulkan.Extensions.VK_EXT_blend_operation_advanced.PhysicalDeviceBlendOperationAdvancedPropertiesEXT'::@advancedBlendAllOperations@+-- is 'Vulkan.Core10.FundamentalTypes.FALSE', then @colorBlendOp@+-- /must/ not be 'Vulkan.Core10.Enums.BlendOp.BLEND_OP_ZERO_EXT',+-- 'Vulkan.Core10.Enums.BlendOp.BLEND_OP_SRC_EXT',+-- 'Vulkan.Core10.Enums.BlendOp.BLEND_OP_DST_EXT',+-- 'Vulkan.Core10.Enums.BlendOp.BLEND_OP_SRC_OVER_EXT',+-- 'Vulkan.Core10.Enums.BlendOp.BLEND_OP_DST_OVER_EXT',+-- 'Vulkan.Core10.Enums.BlendOp.BLEND_OP_SRC_IN_EXT',+-- 'Vulkan.Core10.Enums.BlendOp.BLEND_OP_DST_IN_EXT',+-- 'Vulkan.Core10.Enums.BlendOp.BLEND_OP_SRC_OUT_EXT',+-- 'Vulkan.Core10.Enums.BlendOp.BLEND_OP_DST_OUT_EXT',+-- 'Vulkan.Core10.Enums.BlendOp.BLEND_OP_SRC_ATOP_EXT',+-- 'Vulkan.Core10.Enums.BlendOp.BLEND_OP_DST_ATOP_EXT',+-- 'Vulkan.Core10.Enums.BlendOp.BLEND_OP_XOR_EXT',+-- 'Vulkan.Core10.Enums.BlendOp.BLEND_OP_INVERT_EXT',+-- 'Vulkan.Core10.Enums.BlendOp.BLEND_OP_INVERT_RGB_EXT',+-- 'Vulkan.Core10.Enums.BlendOp.BLEND_OP_LINEARDODGE_EXT',+-- 'Vulkan.Core10.Enums.BlendOp.BLEND_OP_LINEARBURN_EXT',+-- 'Vulkan.Core10.Enums.BlendOp.BLEND_OP_VIVIDLIGHT_EXT',+-- 'Vulkan.Core10.Enums.BlendOp.BLEND_OP_LINEARLIGHT_EXT',+-- 'Vulkan.Core10.Enums.BlendOp.BLEND_OP_PINLIGHT_EXT',+-- 'Vulkan.Core10.Enums.BlendOp.BLEND_OP_HARDMIX_EXT',+-- 'Vulkan.Core10.Enums.BlendOp.BLEND_OP_PLUS_EXT',+-- 'Vulkan.Core10.Enums.BlendOp.BLEND_OP_PLUS_CLAMPED_EXT',+-- 'Vulkan.Core10.Enums.BlendOp.BLEND_OP_PLUS_CLAMPED_ALPHA_EXT',+-- 'Vulkan.Core10.Enums.BlendOp.BLEND_OP_PLUS_DARKER_EXT',+-- 'Vulkan.Core10.Enums.BlendOp.BLEND_OP_MINUS_EXT',+-- 'Vulkan.Core10.Enums.BlendOp.BLEND_OP_MINUS_CLAMPED_EXT',+-- 'Vulkan.Core10.Enums.BlendOp.BLEND_OP_CONTRAST_EXT',+-- 'Vulkan.Core10.Enums.BlendOp.BLEND_OP_INVERT_OVG_EXT',+-- 'Vulkan.Core10.Enums.BlendOp.BLEND_OP_RED_EXT',+-- 'Vulkan.Core10.Enums.BlendOp.BLEND_OP_GREEN_EXT', or+-- 'Vulkan.Core10.Enums.BlendOp.BLEND_OP_BLUE_EXT'+--+-- - #VUID-VkPipelineColorBlendAttachmentState-colorBlendOp-01410# If+-- @colorBlendOp@ or @alphaBlendOp@ is an+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#framebuffer-blend-advanced advanced blend operation>,+-- then @colorAttachmentCount@ of the subpass this pipeline is compiled+-- against /must/ be less than or equal to+-- 'Vulkan.Extensions.VK_EXT_blend_operation_advanced.PhysicalDeviceBlendOperationAdvancedPropertiesEXT'::@advancedBlendMaxColorAttachments@+--+-- - #VUID-VkPipelineColorBlendAttachmentState-constantAlphaColorBlendFactors-04454#+-- If the @VK_KHR_portability_subset@ extension is enabled, and+-- 'Vulkan.Extensions.VK_KHR_portability_subset.PhysicalDevicePortabilitySubsetFeaturesKHR'::@constantAlphaColorBlendFactors@+-- is 'Vulkan.Core10.FundamentalTypes.FALSE', @srcColorBlendFactor@+-- /must/ not be+-- 'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_CONSTANT_ALPHA' or+-- 'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA'+--+-- - #VUID-VkPipelineColorBlendAttachmentState-constantAlphaColorBlendFactors-04455#+-- If the @VK_KHR_portability_subset@ extension is enabled, and+-- 'Vulkan.Extensions.VK_KHR_portability_subset.PhysicalDevicePortabilitySubsetFeaturesKHR'::@constantAlphaColorBlendFactors@+-- is 'Vulkan.Core10.FundamentalTypes.FALSE', @dstColorBlendFactor@+-- /must/ not be+-- 'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_CONSTANT_ALPHA' or+-- 'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA'+--+-- == Valid Usage (Implicit)+--+-- - #VUID-VkPipelineColorBlendAttachmentState-srcColorBlendFactor-parameter#+-- @srcColorBlendFactor@ /must/ be a valid+-- 'Vulkan.Core10.Enums.BlendFactor.BlendFactor' value+--+-- - #VUID-VkPipelineColorBlendAttachmentState-dstColorBlendFactor-parameter#+-- @dstColorBlendFactor@ /must/ be a valid+-- 'Vulkan.Core10.Enums.BlendFactor.BlendFactor' value+--+-- - #VUID-VkPipelineColorBlendAttachmentState-colorBlendOp-parameter#+-- @colorBlendOp@ /must/ be a valid+-- 'Vulkan.Core10.Enums.BlendOp.BlendOp' value+--+-- - #VUID-VkPipelineColorBlendAttachmentState-srcAlphaBlendFactor-parameter#+-- @srcAlphaBlendFactor@ /must/ be a valid+-- 'Vulkan.Core10.Enums.BlendFactor.BlendFactor' value+--+-- - #VUID-VkPipelineColorBlendAttachmentState-dstAlphaBlendFactor-parameter#+-- @dstAlphaBlendFactor@ /must/ be a valid+-- 'Vulkan.Core10.Enums.BlendFactor.BlendFactor' value+--+-- - #VUID-VkPipelineColorBlendAttachmentState-alphaBlendOp-parameter#+-- @alphaBlendOp@ /must/ be a valid+-- 'Vulkan.Core10.Enums.BlendOp.BlendOp' value+--+-- - #VUID-VkPipelineColorBlendAttachmentState-colorWriteMask-parameter#+-- @colorWriteMask@ /must/ be a valid combination of+-- 'Vulkan.Core10.Enums.ColorComponentFlagBits.ColorComponentFlagBits'+-- values+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,+-- 'Vulkan.Core10.Enums.BlendFactor.BlendFactor',+-- 'Vulkan.Core10.Enums.BlendOp.BlendOp',+-- 'Vulkan.Core10.FundamentalTypes.Bool32',+-- 'Vulkan.Core10.Enums.ColorComponentFlagBits.ColorComponentFlags',+-- 'PipelineColorBlendStateCreateInfo'+data PipelineColorBlendAttachmentState = PipelineColorBlendAttachmentState+ { -- | @blendEnable@ controls whether blending is enabled for the corresponding+ -- color attachment. If blending is not enabled, the source fragment’s+ -- color for that attachment is passed through unmodified.+ blendEnable :: Bool+ , -- | @srcColorBlendFactor@ selects which blend factor is used to determine+ -- the source factors (Sr,Sg,Sb).+ srcColorBlendFactor :: BlendFactor+ , -- | @dstColorBlendFactor@ selects which blend factor is used to determine+ -- the destination factors (Dr,Dg,Db).+ dstColorBlendFactor :: BlendFactor+ , -- | @colorBlendOp@ selects which blend operation is used to calculate the+ -- RGB values to write to the color attachment.+ colorBlendOp :: BlendOp+ , -- | @srcAlphaBlendFactor@ selects which blend factor is used to determine+ -- the source factor Sa.+ srcAlphaBlendFactor :: BlendFactor+ , -- | @dstAlphaBlendFactor@ selects which blend factor is used to determine+ -- the destination factor Da.+ dstAlphaBlendFactor :: BlendFactor+ , -- | @alphaBlendOp@ selects which blend operation is use to calculate the+ -- alpha values to write to the color attachment.+ alphaBlendOp :: BlendOp+ , -- | @colorWriteMask@ is a bitmask of+ -- 'Vulkan.Core10.Enums.ColorComponentFlagBits.ColorComponentFlagBits'+ -- specifying which of the R, G, B, and\/or A components are enabled for+ -- writing, as described for the+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#framebuffer-color-write-mask Color Write Mask>.+ colorWriteMask :: ColorComponentFlags+ }+ deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (PipelineColorBlendAttachmentState)+#endif+deriving instance Show PipelineColorBlendAttachmentState++instance ToCStruct PipelineColorBlendAttachmentState where+ withCStruct x f = allocaBytes 32 $ \p -> pokeCStruct p x (f p)+ pokeCStruct p PipelineColorBlendAttachmentState{..} f = do+ poke ((p `plusPtr` 0 :: Ptr Bool32)) (boolToBool32 (blendEnable))+ poke ((p `plusPtr` 4 :: Ptr BlendFactor)) (srcColorBlendFactor)+ poke ((p `plusPtr` 8 :: Ptr BlendFactor)) (dstColorBlendFactor)+ poke ((p `plusPtr` 12 :: Ptr BlendOp)) (colorBlendOp)+ poke ((p `plusPtr` 16 :: Ptr BlendFactor)) (srcAlphaBlendFactor)+ poke ((p `plusPtr` 20 :: Ptr BlendFactor)) (dstAlphaBlendFactor)+ poke ((p `plusPtr` 24 :: Ptr BlendOp)) (alphaBlendOp)+ poke ((p `plusPtr` 28 :: Ptr ColorComponentFlags)) (colorWriteMask)+ f+ cStructSize = 32+ cStructAlignment = 4+ pokeZeroCStruct p f = do+ poke ((p `plusPtr` 0 :: Ptr Bool32)) (boolToBool32 (zero))+ poke ((p `plusPtr` 4 :: Ptr BlendFactor)) (zero)+ poke ((p `plusPtr` 8 :: Ptr BlendFactor)) (zero)+ poke ((p `plusPtr` 12 :: Ptr BlendOp)) (zero)+ poke ((p `plusPtr` 16 :: Ptr BlendFactor)) (zero)+ poke ((p `plusPtr` 20 :: Ptr BlendFactor)) (zero)+ poke ((p `plusPtr` 24 :: Ptr BlendOp)) (zero)+ f++instance FromCStruct PipelineColorBlendAttachmentState where+ peekCStruct p = do+ blendEnable <- peek @Bool32 ((p `plusPtr` 0 :: Ptr Bool32))+ srcColorBlendFactor <- peek @BlendFactor ((p `plusPtr` 4 :: Ptr BlendFactor))+ dstColorBlendFactor <- peek @BlendFactor ((p `plusPtr` 8 :: Ptr BlendFactor))+ colorBlendOp <- peek @BlendOp ((p `plusPtr` 12 :: Ptr BlendOp))+ srcAlphaBlendFactor <- peek @BlendFactor ((p `plusPtr` 16 :: Ptr BlendFactor))+ dstAlphaBlendFactor <- peek @BlendFactor ((p `plusPtr` 20 :: Ptr BlendFactor))+ alphaBlendOp <- peek @BlendOp ((p `plusPtr` 24 :: Ptr BlendOp))+ colorWriteMask <- peek @ColorComponentFlags ((p `plusPtr` 28 :: Ptr ColorComponentFlags))+ pure $ PipelineColorBlendAttachmentState+ (bool32ToBool blendEnable) srcColorBlendFactor dstColorBlendFactor colorBlendOp srcAlphaBlendFactor dstAlphaBlendFactor alphaBlendOp colorWriteMask++instance Storable PipelineColorBlendAttachmentState where+ sizeOf ~_ = 32+ alignment ~_ = 4+ peek = peekCStruct+ poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero PipelineColorBlendAttachmentState where+ zero = PipelineColorBlendAttachmentState+ zero+ zero+ zero+ zero+ zero+ zero+ zero+ zero+++-- | VkPipelineColorBlendStateCreateInfo - Structure specifying parameters of+-- a newly created pipeline color blend state+--+-- == Valid Usage+--+-- - #VUID-VkPipelineColorBlendStateCreateInfo-pAttachments-00605# If the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-independentBlend independentBlend>+-- feature is not enabled, all elements of @pAttachments@ /must/ be+-- identical+--+-- - #VUID-VkPipelineColorBlendStateCreateInfo-logicOpEnable-00606# If+-- the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-logicOp logicOp>+-- feature is not enabled, @logicOpEnable@ /must/ be+-- 'Vulkan.Core10.FundamentalTypes.FALSE'+--+-- - #VUID-VkPipelineColorBlendStateCreateInfo-logicOpEnable-00607# If+-- @logicOpEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE', @logicOp@+-- /must/ be a valid 'Vulkan.Core10.Enums.LogicOp.LogicOp' value+--+-- - #VUID-VkPipelineColorBlendStateCreateInfo-rasterizationOrderColorAttachmentAccess-06465#+-- If the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-rasterizationOrderColorAttachmentAccess rasterizationOrderColorAttachmentAccess>+-- feature is not enabled, @flags@ /must/ not include+-- 'Vulkan.Core10.Enums.PipelineColorBlendStateCreateFlagBits.PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_EXT'+--+-- == Valid Usage (Implicit)+--+-- - #VUID-VkPipelineColorBlendStateCreateInfo-sType-sType# @sType@+-- /must/ be+-- 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO'+--+-- - #VUID-VkPipelineColorBlendStateCreateInfo-pNext-pNext# Each @pNext@+-- member of any structure (including this one) in the @pNext@ chain+-- /must/ be either @NULL@ or a pointer to a valid instance of+-- 'Vulkan.Extensions.VK_EXT_blend_operation_advanced.PipelineColorBlendAdvancedStateCreateInfoEXT'+-- or+-- 'Vulkan.Extensions.VK_EXT_color_write_enable.PipelineColorWriteCreateInfoEXT'+--+-- - #VUID-VkPipelineColorBlendStateCreateInfo-sType-unique# The @sType@+-- value of each struct in the @pNext@ chain /must/ be unique+--+-- - #VUID-VkPipelineColorBlendStateCreateInfo-flags-parameter# @flags@+-- /must/ be a valid combination of+-- 'Vulkan.Core10.Enums.PipelineColorBlendStateCreateFlagBits.PipelineColorBlendStateCreateFlagBits'+-- values+--+-- - #VUID-VkPipelineColorBlendStateCreateInfo-pAttachments-parameter# If+-- @attachmentCount@ is not @0@, @pAttachments@ /must/ be a valid+-- pointer to an array of @attachmentCount@ valid+-- 'PipelineColorBlendAttachmentState' structures+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,+-- 'Vulkan.Core10.FundamentalTypes.Bool32', 'GraphicsPipelineCreateInfo',+-- 'Vulkan.Core10.Enums.LogicOp.LogicOp',+-- 'PipelineColorBlendAttachmentState',+-- 'Vulkan.Core10.Enums.PipelineColorBlendStateCreateFlagBits.PipelineColorBlendStateCreateFlags',+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data PipelineColorBlendStateCreateInfo (es :: [Type]) = PipelineColorBlendStateCreateInfo+ { -- | @pNext@ is @NULL@ or a pointer to a structure extending this structure.+ next :: Chain es+ , -- | @flags@ is a bitmask of+ -- 'Vulkan.Core10.Enums.PipelineColorBlendStateCreateFlagBits.PipelineColorBlendStateCreateFlagBits'+ -- specifying additional color blending information.+ flags :: PipelineColorBlendStateCreateFlags+ , -- | @logicOpEnable@ controls whether to apply+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#framebuffer-logicop Logical Operations>.+ logicOpEnable :: Bool+ , -- | @logicOp@ selects which logical operation to apply.+ logicOp :: LogicOp+ , -- | @pAttachments@ is a pointer to an array of+ -- 'PipelineColorBlendAttachmentState' structures defining blend state for+ -- each color attachment.+ attachments :: Vector PipelineColorBlendAttachmentState+ , -- | @blendConstants@ is a pointer to an array of four values used as the R,+ -- G, B, and A components of the blend constant that are used in blending,+ -- depending on the+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#framebuffer-blendfactors blend factor>.+ blendConstants :: (Float, Float, Float, Float)+ }+ deriving (Typeable)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (PipelineColorBlendStateCreateInfo (es :: [Type]))+#endif+deriving instance Show (Chain es) => Show (PipelineColorBlendStateCreateInfo es)++instance Extensible PipelineColorBlendStateCreateInfo where+ extensibleTypeName = "PipelineColorBlendStateCreateInfo"+ setNext PipelineColorBlendStateCreateInfo{..} next' = PipelineColorBlendStateCreateInfo{next = next', ..}+ getNext PipelineColorBlendStateCreateInfo{..} = next+ extends :: forall e b proxy. Typeable e => proxy e -> (Extends PipelineColorBlendStateCreateInfo e => b) -> Maybe b+ extends _ f+ | Just Refl <- eqT @e @PipelineColorWriteCreateInfoEXT = Just f+ | Just Refl <- eqT @e @PipelineColorBlendAdvancedStateCreateInfoEXT = Just f+ | otherwise = Nothing++instance (Extendss PipelineColorBlendStateCreateInfo es, PokeChain es) => ToCStruct (PipelineColorBlendStateCreateInfo es) where+ withCStruct x f = allocaBytes 56 $ \p -> pokeCStruct p x (f p)+ pokeCStruct p PipelineColorBlendStateCreateInfo{..} f = evalContT $ do+ lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO)+ pNext'' <- fmap castPtr . ContT $ withChain (next)+ lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext''+ lift $ poke ((p `plusPtr` 16 :: Ptr PipelineColorBlendStateCreateFlags)) (flags)+ lift $ poke ((p `plusPtr` 20 :: Ptr Bool32)) (boolToBool32 (logicOpEnable))+ lift $ poke ((p `plusPtr` 24 :: Ptr LogicOp)) (logicOp)+ lift $ poke ((p `plusPtr` 28 :: Ptr Word32)) ((fromIntegral (Data.Vector.length $ (attachments)) :: Word32))+ pPAttachments' <- ContT $ allocaBytes @PipelineColorBlendAttachmentState ((Data.Vector.length (attachments)) * 32)+ lift $ Data.Vector.imapM_ (\i e -> poke (pPAttachments' `plusPtr` (32 * (i)) :: Ptr PipelineColorBlendAttachmentState) (e)) (attachments)+ lift $ poke ((p `plusPtr` 32 :: Ptr (Ptr PipelineColorBlendAttachmentState))) (pPAttachments')+ let pBlendConstants' = lowerArrayPtr ((p `plusPtr` 40 :: Ptr (FixedArray 4 CFloat)))+ lift $ case (blendConstants) of+ (e0, e1, e2, e3) -> do+ poke (pBlendConstants' :: Ptr CFloat) (CFloat (e0))+ poke (pBlendConstants' `plusPtr` 4 :: Ptr CFloat) (CFloat (e1))+ poke (pBlendConstants' `plusPtr` 8 :: Ptr CFloat) (CFloat (e2))+ poke (pBlendConstants' `plusPtr` 12 :: Ptr CFloat) (CFloat (e3))+ lift $ f+ cStructSize = 56+ cStructAlignment = 8+ pokeZeroCStruct p f = evalContT $ do+ lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO)+ pNext' <- fmap castPtr . ContT $ withZeroChain @es+ lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext'+ lift $ poke ((p `plusPtr` 20 :: Ptr Bool32)) (boolToBool32 (zero))+ lift $ poke ((p `plusPtr` 24 :: Ptr LogicOp)) (zero)+ let pBlendConstants' = lowerArrayPtr ((p `plusPtr` 40 :: Ptr (FixedArray 4 CFloat)))+ lift $ case ((zero, zero, zero, zero)) of+ (e0, e1, e2, e3) -> do+ poke (pBlendConstants' :: Ptr CFloat) (CFloat (e0))+ poke (pBlendConstants' `plusPtr` 4 :: Ptr CFloat) (CFloat (e1))+ poke (pBlendConstants' `plusPtr` 8 :: Ptr CFloat) (CFloat (e2))+ poke (pBlendConstants' `plusPtr` 12 :: Ptr CFloat) (CFloat (e3))+ lift $ f++instance (Extendss PipelineColorBlendStateCreateInfo es, PeekChain es) => FromCStruct (PipelineColorBlendStateCreateInfo es) where+ peekCStruct p = do+ pNext <- peek @(Ptr ()) ((p `plusPtr` 8 :: Ptr (Ptr ())))+ next <- peekChain (castPtr pNext)+ flags <- peek @PipelineColorBlendStateCreateFlags ((p `plusPtr` 16 :: Ptr PipelineColorBlendStateCreateFlags))+ logicOpEnable <- peek @Bool32 ((p `plusPtr` 20 :: Ptr Bool32))+ logicOp <- peek @LogicOp ((p `plusPtr` 24 :: Ptr LogicOp))+ attachmentCount <- peek @Word32 ((p `plusPtr` 28 :: Ptr Word32))+ pAttachments <- peek @(Ptr PipelineColorBlendAttachmentState) ((p `plusPtr` 32 :: Ptr (Ptr PipelineColorBlendAttachmentState)))+ pAttachments' <- generateM (fromIntegral attachmentCount) (\i -> peekCStruct @PipelineColorBlendAttachmentState ((pAttachments `advancePtrBytes` (32 * (i)) :: Ptr PipelineColorBlendAttachmentState)))+ let pblendConstants = lowerArrayPtr @CFloat ((p `plusPtr` 40 :: Ptr (FixedArray 4 CFloat)))+ blendConstants0 <- peek @CFloat ((pblendConstants `advancePtrBytes` 0 :: Ptr CFloat))+ blendConstants1 <- peek @CFloat ((pblendConstants `advancePtrBytes` 4 :: Ptr CFloat))+ blendConstants2 <- peek @CFloat ((pblendConstants `advancePtrBytes` 8 :: Ptr CFloat))+ blendConstants3 <- peek @CFloat ((pblendConstants `advancePtrBytes` 12 :: Ptr CFloat))+ pure $ PipelineColorBlendStateCreateInfo+ next flags (bool32ToBool logicOpEnable) logicOp pAttachments' (((coerce @CFloat @Float blendConstants0), (coerce @CFloat @Float blendConstants1), (coerce @CFloat @Float blendConstants2), (coerce @CFloat @Float blendConstants3)))++instance es ~ '[] => Zero (PipelineColorBlendStateCreateInfo es) where+ zero = PipelineColorBlendStateCreateInfo+ ()+ zero+ zero+ zero+ mempty+ (zero, zero, zero, zero)+++-- | VkPipelineDynamicStateCreateInfo - Structure specifying parameters of a+-- newly created pipeline dynamic state+--+-- == Valid Usage+--+-- - #VUID-VkPipelineDynamicStateCreateInfo-pDynamicStates-01442# Each+-- element of @pDynamicStates@ /must/ be unique+--+-- == Valid Usage (Implicit)+--+-- - #VUID-VkPipelineDynamicStateCreateInfo-sType-sType# @sType@ /must/+-- be+-- 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO'+--+-- - #VUID-VkPipelineDynamicStateCreateInfo-pNext-pNext# @pNext@ /must/+-- be @NULL@+--+-- - #VUID-VkPipelineDynamicStateCreateInfo-flags-zerobitmask# @flags@+-- /must/ be @0@+--+-- - #VUID-VkPipelineDynamicStateCreateInfo-pDynamicStates-parameter# If+-- @dynamicStateCount@ is not @0@, @pDynamicStates@ /must/ be a valid+-- pointer to an array of @dynamicStateCount@ valid+-- 'Vulkan.Core10.Enums.DynamicState.DynamicState' values+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,+-- 'Vulkan.Core10.Enums.DynamicState.DynamicState',+-- 'GraphicsPipelineCreateInfo',+-- 'Vulkan.Core10.Enums.PipelineDynamicStateCreateFlags.PipelineDynamicStateCreateFlags',+-- 'Vulkan.Extensions.VK_KHR_ray_tracing_pipeline.RayTracingPipelineCreateInfoKHR',+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data PipelineDynamicStateCreateInfo = PipelineDynamicStateCreateInfo+ { -- | @flags@ is reserved for future use.+ flags :: PipelineDynamicStateCreateFlags+ , -- | @pDynamicStates@ is a pointer to an array of+ -- 'Vulkan.Core10.Enums.DynamicState.DynamicState' values specifying which+ -- pieces of pipeline state will use the values from dynamic state commands+ -- rather than from pipeline state creation information.+ dynamicStates :: Vector DynamicState+ }+ deriving (Typeable)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (PipelineDynamicStateCreateInfo)+#endif+deriving instance Show PipelineDynamicStateCreateInfo++instance ToCStruct PipelineDynamicStateCreateInfo where+ withCStruct x f = allocaBytes 32 $ \p -> pokeCStruct p x (f p)+ pokeCStruct p PipelineDynamicStateCreateInfo{..} f = evalContT $ do+ lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO)+ lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ lift $ poke ((p `plusPtr` 16 :: Ptr PipelineDynamicStateCreateFlags)) (flags)+ lift $ poke ((p `plusPtr` 20 :: Ptr Word32)) ((fromIntegral (Data.Vector.length $ (dynamicStates)) :: Word32))+ pPDynamicStates' <- ContT $ allocaBytes @DynamicState ((Data.Vector.length (dynamicStates)) * 4)+ lift $ Data.Vector.imapM_ (\i e -> poke (pPDynamicStates' `plusPtr` (4 * (i)) :: Ptr DynamicState) (e)) (dynamicStates)+ lift $ poke ((p `plusPtr` 24 :: Ptr (Ptr DynamicState))) (pPDynamicStates')+ lift $ f+ cStructSize = 32+ cStructAlignment = 8+ pokeZeroCStruct p f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ f++instance FromCStruct PipelineDynamicStateCreateInfo where+ peekCStruct p = do+ flags <- peek @PipelineDynamicStateCreateFlags ((p `plusPtr` 16 :: Ptr PipelineDynamicStateCreateFlags))+ dynamicStateCount <- peek @Word32 ((p `plusPtr` 20 :: Ptr Word32))+ pDynamicStates <- peek @(Ptr DynamicState) ((p `plusPtr` 24 :: Ptr (Ptr DynamicState)))+ pDynamicStates' <- generateM (fromIntegral dynamicStateCount) (\i -> peek @DynamicState ((pDynamicStates `advancePtrBytes` (4 * (i)) :: Ptr DynamicState)))+ pure $ PipelineDynamicStateCreateInfo+ flags pDynamicStates'++instance Zero PipelineDynamicStateCreateInfo where+ zero = PipelineDynamicStateCreateInfo+ zero+ mempty+++-- | VkStencilOpState - Structure specifying stencil operation state+--+-- == Valid Usage (Implicit)+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,+-- 'Vulkan.Core10.Enums.CompareOp.CompareOp',+-- 'PipelineDepthStencilStateCreateInfo',+-- 'Vulkan.Core10.Enums.StencilOp.StencilOp'+data StencilOpState = StencilOpState+ { -- | @failOp@ is a 'Vulkan.Core10.Enums.StencilOp.StencilOp' value specifying+ -- the action performed on samples that fail the stencil test.+ --+ -- #VUID-VkStencilOpState-failOp-parameter# @failOp@ /must/ be a valid+ -- 'Vulkan.Core10.Enums.StencilOp.StencilOp' value+ failOp :: StencilOp+ , -- | @passOp@ is a 'Vulkan.Core10.Enums.StencilOp.StencilOp' value specifying+ -- the action performed on samples that pass both the depth and stencil+ -- tests.+ --+ -- #VUID-VkStencilOpState-passOp-parameter# @passOp@ /must/ be a valid+ -- 'Vulkan.Core10.Enums.StencilOp.StencilOp' value+ passOp :: StencilOp+ , -- | @depthFailOp@ is a 'Vulkan.Core10.Enums.StencilOp.StencilOp' value+ -- specifying the action performed on samples that pass the stencil test+ -- and fail the depth test.+ --+ -- #VUID-VkStencilOpState-depthFailOp-parameter# @depthFailOp@ /must/ be a+ -- valid 'Vulkan.Core10.Enums.StencilOp.StencilOp' value+ depthFailOp :: StencilOp+ , -- | @compareOp@ is a 'Vulkan.Core10.Enums.CompareOp.CompareOp' value+ -- specifying the comparison operator used in the stencil test.+ --+ -- #VUID-VkStencilOpState-compareOp-parameter# @compareOp@ /must/ be a+ -- valid 'Vulkan.Core10.Enums.CompareOp.CompareOp' value+ compareOp :: CompareOp+ , -- | @compareMask@ selects the bits of the unsigned integer stencil values+ -- participating in the stencil test.+ compareMask :: Word32+ , -- | @writeMask@ selects the bits of the unsigned integer stencil values+ -- updated by the stencil test in the stencil framebuffer attachment.+ writeMask :: Word32+ , -- | @reference@ is an integer stencil reference value that is used in the+ -- unsigned stencil comparison.+ reference :: Word32+ }+ deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (StencilOpState)+#endif+deriving instance Show StencilOpState++instance ToCStruct StencilOpState where+ withCStruct x f = allocaBytes 28 $ \p -> pokeCStruct p x (f p)+ pokeCStruct p StencilOpState{..} f = do+ poke ((p `plusPtr` 0 :: Ptr StencilOp)) (failOp)+ poke ((p `plusPtr` 4 :: Ptr StencilOp)) (passOp)+ poke ((p `plusPtr` 8 :: Ptr StencilOp)) (depthFailOp)+ poke ((p `plusPtr` 12 :: Ptr CompareOp)) (compareOp)+ poke ((p `plusPtr` 16 :: Ptr Word32)) (compareMask)+ poke ((p `plusPtr` 20 :: Ptr Word32)) (writeMask)+ poke ((p `plusPtr` 24 :: Ptr Word32)) (reference)+ f+ cStructSize = 28+ cStructAlignment = 4+ pokeZeroCStruct p f = do+ poke ((p `plusPtr` 0 :: Ptr StencilOp)) (zero)+ poke ((p `plusPtr` 4 :: Ptr StencilOp)) (zero)+ poke ((p `plusPtr` 8 :: Ptr StencilOp)) (zero)+ poke ((p `plusPtr` 12 :: Ptr CompareOp)) (zero)+ poke ((p `plusPtr` 16 :: Ptr Word32)) (zero)+ poke ((p `plusPtr` 20 :: Ptr Word32)) (zero)+ poke ((p `plusPtr` 24 :: Ptr Word32)) (zero)+ f++instance FromCStruct StencilOpState where+ peekCStruct p = do+ failOp <- peek @StencilOp ((p `plusPtr` 0 :: Ptr StencilOp))+ passOp <- peek @StencilOp ((p `plusPtr` 4 :: Ptr StencilOp))+ depthFailOp <- peek @StencilOp ((p `plusPtr` 8 :: Ptr StencilOp))+ compareOp <- peek @CompareOp ((p `plusPtr` 12 :: Ptr CompareOp))+ compareMask <- peek @Word32 ((p `plusPtr` 16 :: Ptr Word32))+ writeMask <- peek @Word32 ((p `plusPtr` 20 :: Ptr Word32))+ reference <- peek @Word32 ((p `plusPtr` 24 :: Ptr Word32))+ pure $ StencilOpState+ failOp passOp depthFailOp compareOp compareMask writeMask reference++instance Storable StencilOpState where+ sizeOf ~_ = 28+ alignment ~_ = 4+ peek = peekCStruct+ poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero StencilOpState where+ zero = StencilOpState+ zero+ zero+ zero+ zero+ zero+ zero+ zero+++-- | VkPipelineDepthStencilStateCreateInfo - Structure specifying parameters+-- of a newly created pipeline depth stencil state+--+-- == Valid Usage+--+-- - #VUID-VkPipelineDepthStencilStateCreateInfo-depthBoundsTestEnable-00598#+-- If the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-depthBounds depthBounds>+-- feature is not enabled, @depthBoundsTestEnable@ /must/ be+-- 'Vulkan.Core10.FundamentalTypes.FALSE'+--+-- - #VUID-VkPipelineDepthStencilStateCreateInfo-separateStencilMaskRef-04453#+-- If the @VK_KHR_portability_subset@ extension is enabled, and+-- 'Vulkan.Extensions.VK_KHR_portability_subset.PhysicalDevicePortabilitySubsetFeaturesKHR'::@separateStencilMaskRef@+-- is 'Vulkan.Core10.FundamentalTypes.FALSE', and the value of+-- 'PipelineDepthStencilStateCreateInfo'::@stencilTestEnable@ is+-- 'Vulkan.Core10.FundamentalTypes.TRUE', and the value of+-- 'PipelineRasterizationStateCreateInfo'::@cullMode@ is+-- 'Vulkan.Core10.Enums.CullModeFlagBits.CULL_MODE_NONE', the value of+-- @reference@ in each of the 'StencilOpState' structs in @front@ and+-- @back@ /must/ be the same+--+-- - #VUID-VkPipelineDepthStencilStateCreateInfo-rasterizationOrderDepthAttachmentAccess-06463#+-- If the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-rasterizationOrderDepthAttachmentAccess rasterizationOrderDepthAttachmentAccess>+-- feature is not enabled, @flags@ /must/ not include+-- 'Vulkan.Core10.Enums.PipelineDepthStencilStateCreateFlagBits.PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT'+--+-- - #VUID-VkPipelineDepthStencilStateCreateInfo-rasterizationOrderStencilAttachmentAccess-06464#+-- If the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-rasterizationOrderStencilAttachmentAccess rasterizationOrderStencilAttachmentAccess>+-- feature is not enabled, @flags@ /must/ not include+-- 'Vulkan.Core10.Enums.PipelineDepthStencilStateCreateFlagBits.PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT'+--+-- == Valid Usage (Implicit)+--+-- - #VUID-VkPipelineDepthStencilStateCreateInfo-sType-sType# @sType@+-- /must/ be+-- 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO'+--+-- - #VUID-VkPipelineDepthStencilStateCreateInfo-pNext-pNext# @pNext@+-- /must/ be @NULL@+--+-- - #VUID-VkPipelineDepthStencilStateCreateInfo-flags-parameter# @flags@+-- /must/ be a valid combination of+-- 'Vulkan.Core10.Enums.PipelineDepthStencilStateCreateFlagBits.PipelineDepthStencilStateCreateFlagBits'+-- values+--+-- - #VUID-VkPipelineDepthStencilStateCreateInfo-depthCompareOp-parameter#+-- @depthCompareOp@ /must/ be a valid+-- 'Vulkan.Core10.Enums.CompareOp.CompareOp' value+--+-- - #VUID-VkPipelineDepthStencilStateCreateInfo-front-parameter# @front@+-- /must/ be a valid 'StencilOpState' structure+--+-- - #VUID-VkPipelineDepthStencilStateCreateInfo-back-parameter# @back@+-- /must/ be a valid 'StencilOpState' structure+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,+-- 'Vulkan.Core10.FundamentalTypes.Bool32',+-- 'Vulkan.Core10.Enums.CompareOp.CompareOp', 'GraphicsPipelineCreateInfo',+-- 'Vulkan.Core10.Enums.PipelineDepthStencilStateCreateFlagBits.PipelineDepthStencilStateCreateFlags',+-- 'StencilOpState', 'Vulkan.Core10.Enums.StructureType.StructureType'+data PipelineDepthStencilStateCreateInfo = PipelineDepthStencilStateCreateInfo+ { -- | @flags@ is a bitmask of+ -- 'Vulkan.Core10.Enums.PipelineDepthStencilStateCreateFlagBits.PipelineDepthStencilStateCreateFlagBits'+ -- specifying additional depth\/stencil state information.+ flags :: PipelineDepthStencilStateCreateFlags+ , -- | @depthTestEnable@ controls whether+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fragops-depth depth testing>+ -- is enabled.+ depthTestEnable :: Bool+ , -- | @depthWriteEnable@ controls whether+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fragops-depth-write depth writes>+ -- are enabled when @depthTestEnable@ is+ -- 'Vulkan.Core10.FundamentalTypes.TRUE'. Depth writes are always disabled+ -- when @depthTestEnable@ is 'Vulkan.Core10.FundamentalTypes.FALSE'.+ depthWriteEnable :: Bool+ , -- | @depthCompareOp@ is a 'Vulkan.Core10.Enums.CompareOp.CompareOp' value+ -- specifying the comparison operator to use in the+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fragops-depth-comparison Depth Comparison>+ -- step of the+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fragops-depth depth test>.+ depthCompareOp :: CompareOp+ , -- | @depthBoundsTestEnable@ controls whether+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fragops-dbt depth bounds testing>+ -- is enabled.+ depthBoundsTestEnable :: Bool+ , -- | @stencilTestEnable@ controls whether+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fragops-stencil stencil testing>+ -- is enabled.+ stencilTestEnable :: Bool+ , -- | @front@ and @back@ control the parameters of the+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fragops-stencil stencil test>.+ front :: StencilOpState+ , -- No documentation found for Nested "VkPipelineDepthStencilStateCreateInfo" "back"+ back :: StencilOpState+ , -- | @minDepthBounds@ is the minimum depth bound used in the+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fragops-dbt depth bounds test>.+ minDepthBounds :: Float+ , -- | @maxDepthBounds@ is the maximum depth bound used in the+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fragops-dbt depth bounds test>.+ maxDepthBounds :: Float+ }+ deriving (Typeable)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (PipelineDepthStencilStateCreateInfo)+#endif+deriving instance Show PipelineDepthStencilStateCreateInfo++instance ToCStruct PipelineDepthStencilStateCreateInfo where+ withCStruct x f = allocaBytes 104 $ \p -> pokeCStruct p x (f p)+ pokeCStruct p PipelineDepthStencilStateCreateInfo{..} f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr PipelineDepthStencilStateCreateFlags)) (flags)+ poke ((p `plusPtr` 20 :: Ptr Bool32)) (boolToBool32 (depthTestEnable))+ poke ((p `plusPtr` 24 :: Ptr Bool32)) (boolToBool32 (depthWriteEnable))+ poke ((p `plusPtr` 28 :: Ptr CompareOp)) (depthCompareOp)+ poke ((p `plusPtr` 32 :: Ptr Bool32)) (boolToBool32 (depthBoundsTestEnable))+ poke ((p `plusPtr` 36 :: Ptr Bool32)) (boolToBool32 (stencilTestEnable))+ poke ((p `plusPtr` 40 :: Ptr StencilOpState)) (front)+ poke ((p `plusPtr` 68 :: Ptr StencilOpState)) (back)+ poke ((p `plusPtr` 96 :: Ptr CFloat)) (CFloat (minDepthBounds))+ poke ((p `plusPtr` 100 :: Ptr CFloat)) (CFloat (maxDepthBounds))+ f+ cStructSize = 104+ cStructAlignment = 8+ pokeZeroCStruct p f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 20 :: Ptr Bool32)) (boolToBool32 (zero))+ poke ((p `plusPtr` 24 :: Ptr Bool32)) (boolToBool32 (zero))+ poke ((p `plusPtr` 28 :: Ptr CompareOp)) (zero)+ poke ((p `plusPtr` 32 :: Ptr Bool32)) (boolToBool32 (zero))+ poke ((p `plusPtr` 36 :: Ptr Bool32)) (boolToBool32 (zero))+ poke ((p `plusPtr` 40 :: Ptr StencilOpState)) (zero)+ poke ((p `plusPtr` 68 :: Ptr StencilOpState)) (zero)+ poke ((p `plusPtr` 96 :: Ptr CFloat)) (CFloat (zero))+ poke ((p `plusPtr` 100 :: Ptr CFloat)) (CFloat (zero))+ f++instance FromCStruct PipelineDepthStencilStateCreateInfo where+ peekCStruct p = do+ flags <- peek @PipelineDepthStencilStateCreateFlags ((p `plusPtr` 16 :: Ptr PipelineDepthStencilStateCreateFlags))+ depthTestEnable <- peek @Bool32 ((p `plusPtr` 20 :: Ptr Bool32))+ depthWriteEnable <- peek @Bool32 ((p `plusPtr` 24 :: Ptr Bool32))+ depthCompareOp <- peek @CompareOp ((p `plusPtr` 28 :: Ptr CompareOp))+ depthBoundsTestEnable <- peek @Bool32 ((p `plusPtr` 32 :: Ptr Bool32))+ stencilTestEnable <- peek @Bool32 ((p `plusPtr` 36 :: Ptr Bool32))+ front <- peekCStruct @StencilOpState ((p `plusPtr` 40 :: Ptr StencilOpState))+ back <- peekCStruct @StencilOpState ((p `plusPtr` 68 :: Ptr StencilOpState))+ minDepthBounds <- peek @CFloat ((p `plusPtr` 96 :: Ptr CFloat))+ maxDepthBounds <- peek @CFloat ((p `plusPtr` 100 :: Ptr CFloat))+ pure $ PipelineDepthStencilStateCreateInfo+ flags (bool32ToBool depthTestEnable) (bool32ToBool depthWriteEnable) depthCompareOp (bool32ToBool depthBoundsTestEnable) (bool32ToBool stencilTestEnable) front back (coerce @CFloat @Float minDepthBounds) (coerce @CFloat @Float maxDepthBounds)++instance Storable PipelineDepthStencilStateCreateInfo where+ sizeOf ~_ = 104+ alignment ~_ = 8+ peek = peekCStruct+ poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero PipelineDepthStencilStateCreateInfo where+ zero = PipelineDepthStencilStateCreateInfo+ zero+ zero+ zero+ zero+ zero+ zero+ zero+ zero+ zero+ zero+++-- | VkGraphicsPipelineCreateInfo - Structure specifying parameters of a+-- newly created graphics pipeline+--+-- = Description+--+-- The parameters @basePipelineHandle@ and @basePipelineIndex@ are+-- described in more detail in+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-pipeline-derivatives Pipeline Derivatives>.+--+-- If any shader stage fails to compile, the compile log will be reported+-- back to the application, and+-- 'Vulkan.Core10.Enums.Result.ERROR_INVALID_SHADER_NV' will be generated.+--+-- The state required for a graphics pipeline is divided into+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-vertex-input vertex input state>,+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>,+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>,+-- and+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-output fragment output state>.+--+-- Vertex input state is defined by:+--+-- - 'PipelineVertexInputStateCreateInfo'+--+-- - 'PipelineInputAssemblyStateCreateInfo'+--+-- Pre-rasterization shader state is defined by:+--+-- - 'PipelineShaderStageCreateInfo' entries for:+--+-- - Vertex shaders+--+-- - Tessellation control shaders+--+-- - Tessellation evaluation shaders+--+-- - Geometry shaders+--+-- - Task shaders+--+-- - Mesh shaders+--+-- - Within the 'Vulkan.Core10.Handles.PipelineLayout', all descriptor+-- sets with pre-rasterization shader bindings if+-- 'Vulkan.Core10.Enums.PipelineLayoutCreateFlagBits.PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT'+-- was specified.+--+-- - If+-- 'Vulkan.Core10.Enums.PipelineLayoutCreateFlagBits.PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT'+-- was not specified, the full pipeline layout must be specified.+--+-- - 'PipelineViewportStateCreateInfo'+--+-- - 'PipelineRasterizationStateCreateInfo'+--+-- - 'PipelineTessellationStateCreateInfo'+--+-- - 'Vulkan.Core10.Handles.RenderPass' and @subpass@ parameter+--+-- - The @viewMask@ parameter of+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'+-- (formats are ignored)+--+-- - 'Vulkan.Extensions.VK_EXT_discard_rectangles.PipelineDiscardRectangleStateCreateInfoEXT'+--+-- - 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.PipelineFragmentShadingRateStateCreateInfoKHR'+--+-- Fragment shader state is defined by:+--+-- - A 'PipelineShaderStageCreateInfo' entry for the fragment shader+--+-- - Within the 'Vulkan.Core10.Handles.PipelineLayout', all descriptor+-- sets with fragment shader bindings if+-- 'Vulkan.Core10.Enums.PipelineLayoutCreateFlagBits.PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT'+-- was specified.+--+-- - If+-- 'Vulkan.Core10.Enums.PipelineLayoutCreateFlagBits.PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT'+-- was not specified, the full pipeline layout must be specified.+--+-- - 'PipelineMultisampleStateCreateInfo' if+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-sampleshading sample shading>+-- is enabled or @renderpass@ is not+-- 'Vulkan.Core10.APIConstants.NULL_HANDLE'+--+-- - 'PipelineDepthStencilStateCreateInfo'+--+-- - 'Vulkan.Core10.Handles.RenderPass' and @subpass@ parameter+--+-- - The @viewMask@ parameter of+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'+-- (formats are ignored)+--+-- - 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.PipelineFragmentShadingRateStateCreateInfoKHR'+--+-- - 'Vulkan.Extensions.VK_NV_fragment_shading_rate_enums.PipelineFragmentShadingRateEnumStateCreateInfoNV'+--+-- - 'Vulkan.Extensions.VK_NV_representative_fragment_test.PipelineRepresentativeFragmentTestStateCreateInfoNV'+--+-- - Inclusion\/omission of the+-- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR'+-- flag+--+-- - Inclusion\/omission of the+-- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT'+-- flag+--+-- Fragment output state is defined by:+--+-- - 'PipelineColorBlendStateCreateInfo'+--+-- - 'Vulkan.Core10.Handles.RenderPass' and @subpass@ parameter+--+-- - 'PipelineMultisampleStateCreateInfo'+--+-- - 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'+--+-- - 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'+--+-- - 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'+--+-- - Inclusion\/omission of the+-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT'+-- and+-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT'+-- flags+--+-- A complete graphics pipeline always includes+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>,+-- with other subsets included depending on that state. If the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>+-- includes a vertex shader, then+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-vertex-input vertex input state>+-- is included in a complete graphics pipeline. If the value of+-- 'PipelineRasterizationStateCreateInfo'::@rasterizerDiscardEnable@ in the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>+-- is 'Vulkan.Core10.FundamentalTypes.FALSE' or the+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE'+-- dynamic state is enabled+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>+-- and+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-output fragment output interface state>+-- is included in a complete graphics pipeline.+--+-- If different subsets are linked together with pipeline layouts created+-- with+-- 'Vulkan.Core10.Enums.PipelineLayoutCreateFlagBits.PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT',+-- the final effective pipeline layout is effectively the union of the+-- linked pipeline layouts. When binding descriptor sets for this pipeline,+-- the pipeline layout used /must/ be compatible with this union. This+-- pipeline layout /can/ be overridden when linking with+-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_LINK_TIME_OPTIMIZATION_BIT_EXT'+-- by providing a 'Vulkan.Core10.Handles.PipelineLayout' that is+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-compatibility compatible>+-- with this union other than+-- 'Vulkan.Core10.Enums.PipelineLayoutCreateFlagBits.PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT',+-- or when linking without+-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_LINK_TIME_OPTIMIZATION_BIT_EXT'+-- by providing a 'Vulkan.Core10.Handles.PipelineLayout' that is fully+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-compatibility compatible>+-- with this union.+--+-- == Valid Usage+--+-- - #VUID-VkGraphicsPipelineCreateInfo-flags-00722# If @flags@ contains+-- the+-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DERIVATIVE_BIT'+-- flag, and @basePipelineIndex@ is -1, @basePipelineHandle@ /must/ be+-- a valid handle to a graphics 'Vulkan.Core10.Handles.Pipeline'+--+-- - #VUID-VkGraphicsPipelineCreateInfo-flags-00723# If @flags@ contains+-- the+-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DERIVATIVE_BIT'+-- flag, and @basePipelineHandle@ is+-- 'Vulkan.Core10.APIConstants.NULL_HANDLE', @basePipelineIndex@ /must/+-- be a valid index into the calling command’s @pCreateInfos@ parameter+--+-- - #VUID-VkGraphicsPipelineCreateInfo-flags-00724# If @flags@ contains+-- the+-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DERIVATIVE_BIT'+-- flag, and @basePipelineIndex@ is not -1, @basePipelineHandle@ /must/+-- be 'Vulkan.Core10.APIConstants.NULL_HANDLE'+--+-- - #VUID-VkGraphicsPipelineCreateInfo-flags-00725# If @flags@ contains+-- the+-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DERIVATIVE_BIT'+-- flag, and @basePipelineHandle@ is not+-- 'Vulkan.Core10.APIConstants.NULL_HANDLE', @basePipelineIndex@ /must/+-- be -1+--+-- - #VUID-VkGraphicsPipelineCreateInfo-pStages-02095# If the pipeline is+-- being created with+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>+-- the geometric shader stages provided in @pStages@ /must/ be either+-- from the mesh shading pipeline (@stage@ is+-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT'+-- or+-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT')+-- or from the primitive shading pipeline (@stage@ is+-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT',+-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_CONTROL_BIT',+-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT',+-- or+-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT')+--+-- - #VUID-VkGraphicsPipelineCreateInfo-stage-02096# If the pipeline is+-- being created with+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>+-- the @stage@ member of one element of @pStages@ /must/ be either+-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT' or+-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'+--+-- - #VUID-VkGraphicsPipelineCreateInfo-TaskNV-07063# The shader stages+-- for+-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT'+-- or+-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'+-- /must/ use either the @TaskNV@ and @MeshNV@ @Execution@ @Model@ or+-- the @TaskEXT@ and @MeshEXT@ @Execution@ @Model@, but /must/ not use+-- both+--+-- - #VUID-VkGraphicsPipelineCreateInfo-pStages-00729# If the pipeline is+-- being created with+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>+-- and @pStages@ includes a tessellation control shader stage, it+-- /must/ include a tessellation evaluation shader stage+--+-- - #VUID-VkGraphicsPipelineCreateInfo-pStages-00730# If the pipeline is+-- being created with+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>+-- and @pStages@ includes a tessellation evaluation shader stage, it+-- /must/ include a tessellation control shader stage+--+-- - #VUID-VkGraphicsPipelineCreateInfo-pStages-00731# If the pipeline is+-- being created with+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>+-- and @pStages@ includes a tessellation control shader stage and a+-- tessellation evaluation shader stage, @pTessellationState@ /must/ be+-- a valid pointer to a valid 'PipelineTessellationStateCreateInfo'+-- structure+--+-- - #VUID-VkGraphicsPipelineCreateInfo-pStages-00732# If the pipeline is+-- being created with+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>+-- and @pStages@ includes tessellation shader stages, the shader code+-- of at least one stage /must/ contain an @OpExecutionMode@+-- instruction specifying the type of subdivision in the pipeline+--+-- - #VUID-VkGraphicsPipelineCreateInfo-pStages-00733# If the pipeline is+-- being created with+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>+-- and @pStages@ includes tessellation shader stages, and the shader+-- code of both stages contain an @OpExecutionMode@ instruction+-- specifying the type of subdivision in the pipeline, they /must/ both+-- specify the same subdivision mode+--+-- - #VUID-VkGraphicsPipelineCreateInfo-pStages-00734# If the pipeline is+-- being created with+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>+-- and @pStages@ includes tessellation shader stages, the shader code+-- of at least one stage /must/ contain an @OpExecutionMode@+-- instruction specifying the output patch size in the pipeline+--+-- - #VUID-VkGraphicsPipelineCreateInfo-pStages-00735# If the pipeline is+-- being created with+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>+-- and @pStages@ includes tessellation shader stages, and the shader+-- code of both contain an @OpExecutionMode@ instruction specifying the+-- out patch size in the pipeline, they /must/ both specify the same+-- patch size+--+-- - #VUID-VkGraphicsPipelineCreateInfo-pStages-00736# If the pipeline is+-- being created with+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>+-- and @pStages@ includes tessellation shader stages, the @topology@+-- member of @pInputAssembly@ /must/ be+-- 'Vulkan.Core10.Enums.PrimitiveTopology.PRIMITIVE_TOPOLOGY_PATCH_LIST'+--+-- - #VUID-VkGraphicsPipelineCreateInfo-topology-00737# If the pipeline+-- is being created with+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>+-- and the @topology@ member of @pInputAssembly@ is+-- 'Vulkan.Core10.Enums.PrimitiveTopology.PRIMITIVE_TOPOLOGY_PATCH_LIST',+-- @pStages@ /must/ include tessellation shader stages+--+-- - #VUID-VkGraphicsPipelineCreateInfo-pStages-00738# If the pipeline is+-- being created with+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>+-- and @pStages@ includes a geometry shader stage, and does not include+-- any tessellation shader stages, its shader code /must/ contain an+-- @OpExecutionMode@ instruction specifying an input primitive type+-- that is+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-geometry-execution compatible>+-- with the primitive topology specified in @pInputAssembly@+--+-- - #VUID-VkGraphicsPipelineCreateInfo-pStages-00739# If the pipeline is+-- being created with+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>+-- and @pStages@ includes a geometry shader stage, and also includes+-- tessellation shader stages, its shader code /must/ contain an+-- @OpExecutionMode@ instruction specifying an input primitive type+-- that is+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-geometry-execution compatible>+-- with the primitive topology that is output by the tessellation+-- stages+--+-- - #VUID-VkGraphicsPipelineCreateInfo-pStages-00740# If the pipeline is+-- being created with+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>+-- and+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>,+-- it includes both a fragment shader and a geometry shader, and the+-- fragment shader code reads from an input variable that is decorated+-- with @PrimitiveId@, then the geometry shader code /must/ write to a+-- matching output variable, decorated with @PrimitiveId@, in all+-- execution paths+--+-- - #VUID-VkGraphicsPipelineCreateInfo-PrimitiveId-06264# If the+-- pipeline is being created with+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>,+-- it includes a mesh shader and the fragment shader code reads from an+-- input variable that is decorated with @PrimitiveId@, then the mesh+-- shader code /must/ write to a matching output variable, decorated+-- with @PrimitiveId@, in all execution paths+--+-- - #VUID-VkGraphicsPipelineCreateInfo-renderPass-06038# If @renderPass@+-- is not 'Vulkan.Core10.APIConstants.NULL_HANDLE' and the pipeline is+-- being created with+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>+-- the fragment shader /must/ not read from any input attachment that+-- is defined as 'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED' in+-- @subpass@+--+-- - #VUID-VkGraphicsPipelineCreateInfo-pStages-00742# If the pipeline is+-- being created with+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>+-- and multiple pre-rasterization shader stages are included in+-- @pStages@, the shader code for the entry points identified by those+-- @pStages@ and the rest of the state identified by this structure+-- /must/ adhere to the pipeline linking rules described in the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces Shader Interfaces>+-- chapter+--+-- - #VUID-VkGraphicsPipelineCreateInfo-None-04889# If the pipeline is+-- being created with+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>+-- and+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>,+-- the fragment shader and last+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader stage>+-- and any relevant state /must/ adhere to the pipeline linking rules+-- described in the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces Shader Interfaces>+-- chapter+--+-- - #VUID-VkGraphicsPipelineCreateInfo-renderPass-06041# If @renderPass@+-- is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', and the pipeline is+-- being created with+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-output fragment output interface state>,+-- then for each color attachment in the subpass, if the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#potential-format-features potential format features>+-- of the format of the corresponding attachment description do not+-- contain+-- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT',+-- then the @blendEnable@ member of the corresponding element of the+-- @pAttachments@ member of @pColorBlendState@ /must/ be+-- 'Vulkan.Core10.FundamentalTypes.FALSE'+--+-- - #VUID-VkGraphicsPipelineCreateInfo-renderPass-06042# If @renderPass@+-- is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', and the pipeline is+-- being created with+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-output fragment output interface state>,+-- and the subpass uses color attachments, the @attachmentCount@ member+-- of @pColorBlendState@ /must/ be equal to the @colorAttachmentCount@+-- used to create @subpass@+--+-- - #VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04130# If the+-- pipeline is being created with+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>,+-- and no element of the @pDynamicStates@ member of @pDynamicState@ is+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT' or+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT',+-- the @pViewports@ member of @pViewportState@ /must/ be a valid+-- pointer to an array of @pViewportState->viewportCount@ valid+-- 'Viewport' structures+--+-- - #VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04131# If the+-- pipeline is being created with+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>,+-- and no element of the @pDynamicStates@ member of @pDynamicState@ is+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR' or+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT',+-- the @pScissors@ member of @pViewportState@ /must/ be a valid pointer+-- to an array of @pViewportState->scissorCount@+-- 'Vulkan.Core10.FundamentalTypes.Rect2D' structures+--+-- - #VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-00749# If the+-- pipeline is being created with+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>,+-- and the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-wideLines wideLines>+-- feature is not enabled, and no element of the @pDynamicStates@+-- member of @pDynamicState@ is+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_WIDTH', the+-- @lineWidth@ member of @pRasterizationState@ /must/ be @1.0@+--+-- - #VUID-VkGraphicsPipelineCreateInfo-rasterizerDiscardEnable-00750# If+-- the pipeline is being created with+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>,+-- and the @rasterizerDiscardEnable@ member of @pRasterizationState@ is+-- 'Vulkan.Core10.FundamentalTypes.FALSE', @pViewportState@ /must/ be a+-- valid pointer to a valid 'PipelineViewportStateCreateInfo' structure+--+-- - #VUID-VkGraphicsPipelineCreateInfo-pViewportState-04892# If the+-- pipeline is being created with+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>,+-- and the graphics pipeline state was created with the+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE'+-- dynamic state enabled, @pViewportState@ /must/ be a valid pointer to+-- a valid 'PipelineViewportStateCreateInfo' structure+--+-- - #VUID-VkGraphicsPipelineCreateInfo-rasterizerDiscardEnable-00751# If+-- the pipeline is being created with+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-output fragment output interface state>,+-- @pMultisampleState@ /must/ be a valid pointer to a valid+-- 'PipelineMultisampleStateCreateInfo' structure+--+-- - #VUID-VkGraphicsPipelineCreateInfo-renderPass-06043# If @renderPass@+-- is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the pipeline is+-- being created with+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>,+-- and @subpass@ uses a depth\/stencil attachment, @pDepthStencilState@+-- /must/ be a valid pointer to a valid+-- 'PipelineDepthStencilStateCreateInfo' structure+--+-- - #VUID-VkGraphicsPipelineCreateInfo-renderPass-06044# If @renderPass@+-- is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the pipeline is+-- being created with+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-output fragment output interface state>,+-- and @subpass@ uses color attachments, @pColorBlendState@ /must/ be a+-- valid pointer to a valid 'PipelineColorBlendStateCreateInfo'+-- structure+--+-- - #VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-00754# If the+-- pipeline is being created with+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>,+-- the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-depthBiasClamp depthBiasClamp>+-- feature is not enabled, no element of the @pDynamicStates@ member of+-- @pDynamicState@ is+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BIAS', and the+-- @depthBiasEnable@ member of @pRasterizationState@ is+-- 'Vulkan.Core10.FundamentalTypes.TRUE', the @depthBiasClamp@ member+-- of @pRasterizationState@ /must/ be @0.0@+--+-- - #VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-02510# If the+-- pipeline is being created with+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>,+-- and the @VK_EXT_depth_range_unrestricted@ extension is not enabled+-- and no element of the @pDynamicStates@ member of @pDynamicState@ is+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BOUNDS', and+-- the @depthBoundsTestEnable@ member of @pDepthStencilState@ is+-- 'Vulkan.Core10.FundamentalTypes.TRUE', the @minDepthBounds@ and+-- @maxDepthBounds@ members of @pDepthStencilState@ /must/ be between+-- @0.0@ and @1.0@, inclusive+--+-- - #VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-01521# If the+-- pipeline is being created with+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>+-- or+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-output fragment output interface state>,+-- and no element of the @pDynamicStates@ member of @pDynamicState@ is+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT',+-- and the @sampleLocationsEnable@ member of a+-- 'Vulkan.Extensions.VK_EXT_sample_locations.PipelineSampleLocationsStateCreateInfoEXT'+-- structure included in the @pNext@ chain of @pMultisampleState@ is+-- 'Vulkan.Core10.FundamentalTypes.TRUE',+-- @sampleLocationsInfo.sampleLocationGridSize.width@ /must/ evenly+-- divide+-- 'Vulkan.Extensions.VK_EXT_sample_locations.MultisamplePropertiesEXT'::@sampleLocationGridSize.width@+-- as returned by+-- 'Vulkan.Extensions.VK_EXT_sample_locations.getPhysicalDeviceMultisamplePropertiesEXT'+-- with a @samples@ parameter equaling @rasterizationSamples@+--+-- - #VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-01522# If the+-- pipeline is being created with+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>+-- or+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-output fragment output interface state>,+-- and no element of the @pDynamicStates@ member of @pDynamicState@ is+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT',+-- and the @sampleLocationsEnable@ member of a+-- 'Vulkan.Extensions.VK_EXT_sample_locations.PipelineSampleLocationsStateCreateInfoEXT'+-- structure included in the @pNext@ chain of @pMultisampleState@ is+-- 'Vulkan.Core10.FundamentalTypes.TRUE',+-- @sampleLocationsInfo.sampleLocationGridSize.height@ /must/ evenly+-- divide+-- 'Vulkan.Extensions.VK_EXT_sample_locations.MultisamplePropertiesEXT'::@sampleLocationGridSize.height@+-- as returned by+-- 'Vulkan.Extensions.VK_EXT_sample_locations.getPhysicalDeviceMultisamplePropertiesEXT'+-- with a @samples@ parameter equaling @rasterizationSamples@+--+-- - #VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-01523# If the+-- pipeline is being created with+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>+-- or+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-output fragment output interface state>,+-- and no element of the @pDynamicStates@ member of @pDynamicState@ is+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT',+-- and the @sampleLocationsEnable@ member of a+-- 'Vulkan.Extensions.VK_EXT_sample_locations.PipelineSampleLocationsStateCreateInfoEXT'+-- structure included in the @pNext@ chain of @pMultisampleState@ is+-- 'Vulkan.Core10.FundamentalTypes.TRUE',+-- @sampleLocationsInfo.sampleLocationsPerPixel@ /must/ equal+-- @rasterizationSamples@+--+-- - #VUID-VkGraphicsPipelineCreateInfo-sampleLocationsEnable-01524# If+-- the pipeline is being created with+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>,+-- and the @sampleLocationsEnable@ member of a+-- 'Vulkan.Extensions.VK_EXT_sample_locations.PipelineSampleLocationsStateCreateInfoEXT'+-- structure included in the @pNext@ chain of @pMultisampleState@ is+-- 'Vulkan.Core10.FundamentalTypes.TRUE', the fragment shader code+-- /must/ not statically use the extended instruction+-- @InterpolateAtSample@+--+-- - #VUID-VkGraphicsPipelineCreateInfo-layout-00756# @layout@ /must/ be+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-pipelinelayout-consistency consistent>+-- with all shaders specified in @pStages@+--+-- - #VUID-VkGraphicsPipelineCreateInfo-multisampledRenderToSingleSampled-06853#+-- If the pipeline is being created with+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-output fragment output interface state>,+-- and none of the @VK_AMD_mixed_attachment_samples@ extension, the+-- @VK_NV_framebuffer_mixed_samples@ extension, or the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>+-- feature are enabled, and if @subpass@ uses color and\/or+-- depth\/stencil attachments, then the @rasterizationSamples@ member+-- of @pMultisampleState@ /must/ be the same as the sample count for+-- those subpass attachments+--+-- - #VUID-VkGraphicsPipelineCreateInfo-subpass-01505# If the pipeline is+-- being created with+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-output fragment output interface state>,+-- and the @VK_AMD_mixed_attachment_samples@ extension is enabled, and+-- if @subpass@ uses color and\/or depth\/stencil attachments, then the+-- @rasterizationSamples@ member of @pMultisampleState@ /must/ equal+-- the maximum of the sample counts of those subpass attachments+--+-- - #VUID-VkGraphicsPipelineCreateInfo-renderPass-06854# If @renderPass@+-- is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the+-- @VK_EXT_multisampled_render_to_single_sampled@ extension is enabled,+-- and @subpass@ has a+-- 'Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled.MultisampledRenderToSingleSampledInfoEXT'+-- structure included in the+-- 'Vulkan.Core12.Promoted_From_VK_KHR_create_renderpass2.SubpassDescription2'::@pNext@+-- chain with @multisampledRenderToSingleSampledEnable@ equal to+-- 'Vulkan.Core10.FundamentalTypes.TRUE', then the+-- @rasterizationSamples@ member of @pMultisampleState@ /must/ be equal+-- to+-- 'Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled.MultisampledRenderToSingleSampledInfoEXT'::@rasterizationSamples@.+--+-- - #VUID-VkGraphicsPipelineCreateInfo-subpass-01411# If the pipeline is+-- being created with+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-output fragment output interface state>,+-- and the @VK_NV_framebuffer_mixed_samples@ extension is enabled, and+-- if @subpass@ has a depth\/stencil attachment and depth test, stencil+-- test, or depth bounds test are enabled, then the+-- @rasterizationSamples@ member of @pMultisampleState@ /must/ be the+-- same as the sample count of the depth\/stencil attachment+--+-- - #VUID-VkGraphicsPipelineCreateInfo-subpass-01412# If the pipeline is+-- being created with+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-output fragment output interface state>,+-- and the @VK_NV_framebuffer_mixed_samples@ extension is enabled, and+-- if @subpass@ has any color attachments, then the+-- @rasterizationSamples@ member of @pMultisampleState@ /must/ be+-- greater than or equal to the sample count for those subpass+-- attachments+--+-- - #VUID-VkGraphicsPipelineCreateInfo-coverageReductionMode-02722# If+-- the pipeline is being created with+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-output fragment output interface state>,+-- and the @VK_NV_coverage_reduction_mode@ extension is enabled, the+-- coverage reduction mode specified by+-- 'Vulkan.Extensions.VK_NV_coverage_reduction_mode.PipelineCoverageReductionStateCreateInfoNV'::@coverageReductionMode@,+-- the @rasterizationSamples@ member of @pMultisampleState@ and the+-- sample counts for the color and depth\/stencil attachments (if the+-- subpass has them) /must/ be a valid combination returned by+-- 'Vulkan.Extensions.VK_NV_coverage_reduction_mode.getPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV'+--+-- - #VUID-VkGraphicsPipelineCreateInfo-subpass-00758# If the pipeline is+-- being created with+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-output fragment output interface state>,+-- and @subpass@ does not use any color and\/or depth\/stencil+-- attachments, then the @rasterizationSamples@ member of+-- @pMultisampleState@ /must/ follow the rules for a+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-noattachments zero-attachment subpass>+--+-- - #VUID-VkGraphicsPipelineCreateInfo-renderPass-06046# If @renderPass@+-- is a valid renderPass, @subpass@ /must/ be a valid subpass within+-- @renderPass@+--+-- - #VUID-VkGraphicsPipelineCreateInfo-renderPass-06047# If @renderPass@+-- is a valid renderPass, the pipeline is being created with+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>,+-- and the @renderPass@ has multiview enabled and @subpass@ has more+-- than one bit set in the view mask and @multiviewTessellationShader@+-- is not enabled, then @pStages@ /must/ not include tessellation+-- shaders+--+-- - #VUID-VkGraphicsPipelineCreateInfo-renderPass-06048# If @renderPass@+-- is a valid renderPass, the pipeline is being created with+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>,+-- and the @renderPass@ has multiview enabled and @subpass@ has more+-- than one bit set in the view mask and @multiviewGeometryShader@ is+-- not enabled, then @pStages@ /must/ not include a geometry shader+--+-- - #VUID-VkGraphicsPipelineCreateInfo-renderPass-06049# If @renderPass@+-- is a valid renderPass, the pipeline is being created with+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>,+-- and the @renderPass@ has multiview enabled and @subpass@ has more+-- than one bit set in the view mask, shaders in the pipeline /must/+-- not write to the @Layer@ built-in output+--+-- - #VUID-VkGraphicsPipelineCreateInfo-renderPass-06050# If @renderPass@+-- is a valid renderPass and the pipeline is being created with+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>,+-- and the @renderPass@ has multiview enabled, then all shaders /must/+-- not include variables decorated with the @Layer@ built-in decoration+-- in their interfaces+--+-- - #VUID-VkGraphicsPipelineCreateInfo-renderPass-07064# If @renderPass@+-- is a valid renderPass, the pipeline is being created with+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>,+-- and the @renderPass@ has multiview enabled and @subpass@ has more+-- than one bit set in the view mask and @multiviewMeshShader@ is not+-- enabled, then @pStages@ /must/ not include a mesh shader+--+-- - #VUID-VkGraphicsPipelineCreateInfo-flags-00764# @flags@ /must/ not+-- contain the+-- 'Vulkan.Core11.Promoted_From_VK_KHR_device_group.PIPELINE_CREATE_DISPATCH_BASE'+-- flag+--+-- - #VUID-VkGraphicsPipelineCreateInfo-pStages-01565# If the pipeline is+-- being created with+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>+-- and an input attachment was referenced by an @aspectMask@ at+-- @renderPass@ creation time, the fragment shader /must/ only read+-- from the aspects that were specified for that input attachment+--+-- - #VUID-VkGraphicsPipelineCreateInfo-layout-01688# The number of+-- resources in @layout@ accessible to each shader stage that is used+-- by the pipeline /must/ be less than or equal to+-- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxPerStageResources@+--+-- - #VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-01715# If the+-- pipeline is being created with+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>,+-- and no element of the @pDynamicStates@ member of @pDynamicState@ is+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_W_SCALING_NV',+-- and the @viewportWScalingEnable@ member of a+-- 'Vulkan.Extensions.VK_NV_clip_space_w_scaling.PipelineViewportWScalingStateCreateInfoNV'+-- structure, included in the @pNext@ chain of @pViewportState@, is+-- 'Vulkan.Core10.FundamentalTypes.TRUE', the @pViewportWScalings@+-- member of the+-- 'Vulkan.Extensions.VK_NV_clip_space_w_scaling.PipelineViewportWScalingStateCreateInfoNV'+-- /must/ be a pointer to an array of+-- 'Vulkan.Extensions.VK_NV_clip_space_w_scaling.PipelineViewportWScalingStateCreateInfoNV'::@viewportCount@+-- valid+-- 'Vulkan.Extensions.VK_NV_clip_space_w_scaling.ViewportWScalingNV'+-- structures+--+-- - #VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04056# If the+-- pipeline is being created with+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>,+-- and no element of the @pDynamicStates@ member of @pDynamicState@ is+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV',+-- and if @pViewportState->pNext@ chain includes a+-- 'Vulkan.Extensions.VK_NV_scissor_exclusive.PipelineViewportExclusiveScissorStateCreateInfoNV'+-- structure, and if its @exclusiveScissorCount@ member is not @0@,+-- then its @pExclusiveScissors@ member /must/ be a valid pointer to an+-- array of @exclusiveScissorCount@+-- 'Vulkan.Core10.FundamentalTypes.Rect2D' structures+--+-- - #VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04057# If the+-- pipeline is being created with+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>,+-- and no element of the @pDynamicStates@ member of @pDynamicState@ is+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV',+-- and if @pViewportState->pNext@ chain includes a+-- 'Vulkan.Extensions.VK_NV_shading_rate_image.PipelineViewportShadingRateImageStateCreateInfoNV'+-- structure, then its @pShadingRatePalettes@ member /must/ be a valid+-- pointer to an array of @viewportCount@ valid+-- 'Vulkan.Extensions.VK_NV_shading_rate_image.ShadingRatePaletteNV'+-- structures+--+-- - #VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04058# If the+-- pipeline is being created with+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>,+-- and no element of the @pDynamicStates@ member of @pDynamicState@ is+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DISCARD_RECTANGLE_EXT',+-- and if @pNext@ chain includes a+-- 'Vulkan.Extensions.VK_EXT_discard_rectangles.PipelineDiscardRectangleStateCreateInfoEXT'+-- structure, and if its @discardRectangleCount@ member is not @0@,+-- then its @pDiscardRectangles@ member /must/ be a valid pointer to an+-- array of @discardRectangleCount@+-- 'Vulkan.Core10.FundamentalTypes.Rect2D' structures+--+-- - #VUID-VkGraphicsPipelineCreateInfo-pVertexInputState-04910# If the+-- pipeline is being created with+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-vertex-input vertex input state>,+-- and+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT' is+-- not set, @pVertexInputState@ /must/ be a valid pointer to a valid+-- 'PipelineVertexInputStateCreateInfo' structure+--+-- - #VUID-VkGraphicsPipelineCreateInfo-pStages-02098# If the pipeline is+-- being created with+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-vertex-input vertex input state>,+-- @pInputAssemblyState@ /must/ be a valid pointer to a valid+-- 'PipelineInputAssemblyStateCreateInfo' structure+--+-- - #VUID-VkGraphicsPipelineCreateInfo-pStages-02317# If the pipeline is+-- being created with+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>,+-- the @Xfb@ execution mode /can/ be specified by no more than one+-- shader stage in @pStages@+--+-- - #VUID-VkGraphicsPipelineCreateInfo-pStages-02318# If the pipeline is+-- being created with+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>,+-- and any shader stage in @pStages@ specifies @Xfb@ execution mode it+-- /must/ be the last+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader stage>+--+-- - #VUID-VkGraphicsPipelineCreateInfo-rasterizationStream-02319# If the+-- pipeline is being created with+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>,+-- and a+-- 'Vulkan.Extensions.VK_EXT_transform_feedback.PipelineRasterizationStateStreamCreateInfoEXT'::@rasterizationStream@+-- value other than zero is specified, all variables in the output+-- interface of the entry point being compiled decorated with+-- @Position@, @PointSize@, @ClipDistance@, or @CullDistance@ /must/ be+-- decorated with identical @Stream@ values that match the+-- @rasterizationStream@+--+-- - #VUID-VkGraphicsPipelineCreateInfo-rasterizationStream-02320# If the+-- pipeline is being created with+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>,+-- and+-- 'Vulkan.Extensions.VK_EXT_transform_feedback.PipelineRasterizationStateStreamCreateInfoEXT'::@rasterizationStream@+-- is zero, or not specified, all variables in the output interface of+-- the entry point being compiled decorated with @Position@,+-- @PointSize@, @ClipDistance@, or @CullDistance@ /must/ be decorated+-- with a @Stream@ value of zero, or /must/ not specify the @Stream@+-- decoration+--+-- - #VUID-VkGraphicsPipelineCreateInfo-geometryStreams-02321# If the+-- pipeline is being created with+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>,+-- and the last+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader stage>+-- is a geometry shader, and that geometry shader uses the+-- @GeometryStreams@ capability, then+-- 'Vulkan.Extensions.VK_EXT_transform_feedback.PhysicalDeviceTransformFeedbackFeaturesEXT'::@geometryStreams@+-- feature /must/ be enabled+--+-- - #VUID-VkGraphicsPipelineCreateInfo-None-02322# If the pipeline is+-- being created with+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>,+-- and there are any mesh shader stages in the pipeline there /must/+-- not be any shader stage in the pipeline with a @Xfb@ execution mode+--+-- - #VUID-VkGraphicsPipelineCreateInfo-lineRasterizationMode-02766# If+-- the pipeline is being created with+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>+-- and at least one of+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-output fragment output interface state>+-- or+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>,+-- and @pMultisampleState@ is not @NULL@, the @lineRasterizationMode@+-- member of a+-- 'Vulkan.Extensions.VK_EXT_line_rasterization.PipelineRasterizationLineStateCreateInfoEXT'+-- structure included in the @pNext@ chain of @pRasterizationState@ is+-- 'Vulkan.Extensions.VK_EXT_line_rasterization.LINE_RASTERIZATION_MODE_BRESENHAM_EXT'+-- or+-- 'Vulkan.Extensions.VK_EXT_line_rasterization.LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT',+-- then the @alphaToCoverageEnable@, @alphaToOneEnable@, and+-- @sampleShadingEnable@ members of @pMultisampleState@ /must/ all be+-- 'Vulkan.Core10.FundamentalTypes.FALSE'+--+-- - #VUID-VkGraphicsPipelineCreateInfo-stippledLineEnable-02767# If the+-- pipeline is being created with+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>,+-- the @stippledLineEnable@ member of+-- 'Vulkan.Extensions.VK_EXT_line_rasterization.PipelineRasterizationLineStateCreateInfoEXT'+-- is 'Vulkan.Core10.FundamentalTypes.TRUE', and no element of the+-- @pDynamicStates@ member of @pDynamicState@ is+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_STIPPLE_EXT',+-- then the @lineStippleFactor@ member of+-- 'Vulkan.Extensions.VK_EXT_line_rasterization.PipelineRasterizationLineStateCreateInfoEXT'+-- /must/ be in the range [1,256]+--+-- - #VUID-VkGraphicsPipelineCreateInfo-flags-03372# @flags@ /must/ not+-- include+-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR'+--+-- - #VUID-VkGraphicsPipelineCreateInfo-flags-03373# @flags@ /must/ not+-- include+-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR'+--+-- - #VUID-VkGraphicsPipelineCreateInfo-flags-03374# @flags@ /must/ not+-- include+-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR'+--+-- - #VUID-VkGraphicsPipelineCreateInfo-flags-03375# @flags@ /must/ not+-- include+-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR'+--+-- - #VUID-VkGraphicsPipelineCreateInfo-flags-03376# @flags@ /must/ not+-- include+-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR'+--+-- - #VUID-VkGraphicsPipelineCreateInfo-flags-03377# @flags@ /must/ not+-- include+-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHR'+--+-- - #VUID-VkGraphicsPipelineCreateInfo-flags-03577# @flags@ /must/ not+-- include+-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR'+--+-- - #VUID-VkGraphicsPipelineCreateInfo-flags-04947# @flags@ /must/ not+-- include+-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV'+--+-- - #VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-03379# If the+-- pipeline is being created with+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>,+-- and+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'+-- is included in the @pDynamicStates@ array then @viewportCount@+-- /must/ be zero+--+-- - #VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-03380# If the+-- pipeline is being created with+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>,+-- and+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT'+-- is included in the @pDynamicStates@ array then @scissorCount@ /must/+-- be zero+--+-- - #VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04132# If the+-- pipeline is being created with+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>,+-- and+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'+-- is included in the @pDynamicStates@ array then+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT' /must/ not+-- be present+--+-- - #VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04133# If the+-- pipeline is being created with+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>,+-- and+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT'+-- is included in the @pDynamicStates@ array then+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR' /must/ not+-- be present+--+-- - #VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-07065# If the+-- pipeline is being created with+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>,+-- and includes a mesh shader, there /must/ be no element of the+-- @pDynamicStates@ member of @pDynamicState@ set to+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PRIMITIVE_TOPOLOGY',+-- or+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE'+--+-- - #VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04869# If the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState2LogicOp extendedDynamicState2LogicOp>+-- feature is not enabled, there /must/ be no element of the+-- @pDynamicStates@ member of @pDynamicState@ set to+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LOGIC_OP_EXT'+--+-- - #VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04870# If the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState2PatchControlPoints extendedDynamicState2PatchControlPoints>+-- feature is not enabled, there /must/ be no element of the+-- @pDynamicStates@ member of @pDynamicState@ set to+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT'+--+-- - #VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-07066# If the+-- pipeline is being created with+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>,+-- and includes a mesh shader, there /must/ be no element of the+-- @pDynamicStates@ member of @pDynamicState@ set to+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE',+-- or+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT'+--+-- - #VUID-VkGraphicsPipelineCreateInfo-flags-02877# If @flags@ includes+-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV',+-- then the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-deviceGeneratedCommands deviceGeneratedCommands>+-- feature /must/ be enabled+--+-- - #VUID-VkGraphicsPipelineCreateInfo-flags-02966# If the pipeline is+-- being created with+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>+-- and @flags@ includes+-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV',+-- then all stages /must/ not specify @Xfb@ execution mode+--+-- - #VUID-VkGraphicsPipelineCreateInfo-pipelineCreationCacheControl-02878#+-- If the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-pipelineCreationCacheControl pipelineCreationCacheControl>+-- feature is not enabled, @flags@ /must/ not include+-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT'+-- or+-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT'+--+-- - #VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04494# If the+-- pipeline is being created with+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>+-- or+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>+-- and+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR'+-- is not included in @pDynamicState->pDynamicStates@,+-- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.PipelineFragmentShadingRateStateCreateInfoKHR'::@fragmentSize.width@+-- /must/ be greater than or equal to @1@+--+-- - #VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04495# If the+-- pipeline is being created with+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>+-- or+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>+-- and+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR'+-- is not included in @pDynamicState->pDynamicStates@,+-- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.PipelineFragmentShadingRateStateCreateInfoKHR'::@fragmentSize.height@+-- /must/ be greater than or equal to @1@+--+-- - #VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04496# If the+-- pipeline is being created with+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>+-- or+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>+-- and+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR'+-- is not included in @pDynamicState->pDynamicStates@,+-- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.PipelineFragmentShadingRateStateCreateInfoKHR'::@fragmentSize.width@+-- /must/ be a power-of-two value+--+-- - #VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04497# If the+-- pipeline is being created with+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>+-- or+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>+-- and+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR'+-- is not included in @pDynamicState->pDynamicStates@,+-- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.PipelineFragmentShadingRateStateCreateInfoKHR'::@fragmentSize.height@+-- /must/ be a power-of-two value+--+-- - #VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04498# If the+-- pipeline is being created with+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>+-- or+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>+-- and+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR'+-- is not included in @pDynamicState->pDynamicStates@,+-- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.PipelineFragmentShadingRateStateCreateInfoKHR'::@fragmentSize.width@+-- /must/ be less than or equal to @4@+--+-- - #VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04499# If the+-- pipeline is being created with+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>+-- or+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>+-- and+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR'+-- is not included in @pDynamicState->pDynamicStates@,+-- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.PipelineFragmentShadingRateStateCreateInfoKHR'::@fragmentSize.height@+-- /must/ be less than or equal to @4@+--+-- - #VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04500# If the+-- pipeline is being created with+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>+-- or+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>+-- and+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR'+-- is not included in @pDynamicState->pDynamicStates@, and the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-pipelineFragmentShadingRate pipelineFragmentShadingRate>+-- feature is not enabled,+-- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.PipelineFragmentShadingRateStateCreateInfoKHR'::@fragmentSize.width@+-- and+-- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.PipelineFragmentShadingRateStateCreateInfoKHR'::@fragmentSize.height@+-- /must/ both be equal to @1@+--+-- - #VUID-VkGraphicsPipelineCreateInfo-pDynamicState-06567# If the+-- pipeline is being created with+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>+-- or+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>+-- and+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR'+-- is not included in @pDynamicState->pDynamicStates@,+-- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.PipelineFragmentShadingRateStateCreateInfoKHR'::@combinerOps@[0]+-- /must/ be a valid+-- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.FragmentShadingRateCombinerOpKHR'+-- value+--+-- - #VUID-VkGraphicsPipelineCreateInfo-pDynamicState-06568# If the+-- pipeline is being created with+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>+-- or+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>+-- and+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR'+-- is not included in @pDynamicState->pDynamicStates@,+-- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.PipelineFragmentShadingRateStateCreateInfoKHR'::@combinerOps@[1]+-- /must/ be a valid+-- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.FragmentShadingRateCombinerOpKHR'+-- value+--+-- - #VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04501# If the+-- pipeline is being created with+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>+-- or+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>+-- and+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR'+-- is not included in @pDynamicState->pDynamicStates@, and the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-primitiveFragmentShadingRate primitiveFragmentShadingRate>+-- feature is not enabled,+-- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.PipelineFragmentShadingRateStateCreateInfoKHR'::@combinerOps@[0]+-- /must/ be+-- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR'+--+-- - #VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04502# If the+-- pipeline is being created with+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>+-- or+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>+-- and+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR'+-- is not included in @pDynamicState->pDynamicStates@, and the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-attachmentFragmentShadingRate attachmentFragmentShadingRate>+-- feature is not enabled,+-- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.PipelineFragmentShadingRateStateCreateInfoKHR'::@combinerOps@[1]+-- /must/ be+-- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR'+--+-- - #VUID-VkGraphicsPipelineCreateInfo-primitiveFragmentShadingRateWithMultipleViewports-04503#+-- If the pipeline is being created with+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>+-- and the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-primitiveFragmentShadingRateWithMultipleViewports primitiveFragmentShadingRateWithMultipleViewports>+-- limit is not supported,+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'+-- is not included in @pDynamicState->pDynamicStates@, and+-- 'PipelineViewportStateCreateInfo'::@viewportCount@ is greater than+-- @1@, entry points specified in @pStages@ /must/ not write to the+-- @PrimitiveShadingRateKHR@ built-in+--+-- - #VUID-VkGraphicsPipelineCreateInfo-primitiveFragmentShadingRateWithMultipleViewports-04504#+-- If the pipeline is being created with+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>+-- and the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-primitiveFragmentShadingRateWithMultipleViewports primitiveFragmentShadingRateWithMultipleViewports>+-- limit is not supported, and entry points specified in @pStages@+-- write to the @ViewportIndex@ built-in, they /must/ not also write to+-- the @PrimitiveShadingRateKHR@ built-in+--+-- - #VUID-VkGraphicsPipelineCreateInfo-primitiveFragmentShadingRateWithMultipleViewports-04505#+-- If the pipeline is being created with+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>+-- and the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-primitiveFragmentShadingRateWithMultipleViewports primitiveFragmentShadingRateWithMultipleViewports>+-- limit is not supported, and entry points specified in @pStages@+-- write to the @ViewportMaskNV@ built-in, they /must/ not also write+-- to the @PrimitiveShadingRateKHR@ built-in+--+-- - #VUID-VkGraphicsPipelineCreateInfo-fragmentShadingRateNonTrivialCombinerOps-04506#+-- If the pipeline is being created with+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>+-- or+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>,+-- the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-fragmentShadingRateNonTrivialCombinerOps fragmentShadingRateNonTrivialCombinerOps>+-- limit is not supported, and+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR'+-- is not included in @pDynamicState->pDynamicStates@, elements of+-- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.PipelineFragmentShadingRateStateCreateInfoKHR'::@combinerOps@+-- /must/ be+-- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR'+-- or+-- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.FRAGMENT_SHADING_RATE_COMBINER_OP_REPLACE_KHR'+--+-- - #VUID-VkGraphicsPipelineCreateInfo-None-06569# If the pipeline is+-- being created with+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>+-- and+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR'+-- is not included in @pDynamicState->pDynamicStates@,+-- 'Vulkan.Extensions.VK_NV_fragment_shading_rate_enums.PipelineFragmentShadingRateEnumStateCreateInfoNV'::@shadingRateType@+-- /must/ be a valid+-- 'Vulkan.Extensions.VK_NV_fragment_shading_rate_enums.FragmentShadingRateTypeNV'+-- value+--+-- - #VUID-VkGraphicsPipelineCreateInfo-pDynamicState-06570# If the+-- pipeline is being created with+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>+-- and+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR'+-- is not included in @pDynamicState->pDynamicStates@,+-- 'Vulkan.Extensions.VK_NV_fragment_shading_rate_enums.PipelineFragmentShadingRateEnumStateCreateInfoNV'::@shadingRate@+-- /must/ be a valid+-- 'Vulkan.Extensions.VK_NV_fragment_shading_rate_enums.FragmentShadingRateNV'+-- value+--+-- - #VUID-VkGraphicsPipelineCreateInfo-pDynamicState-06571# If the+-- pipeline is being created with+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>+-- and+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR'+-- is not included in @pDynamicState->pDynamicStates@,+-- 'Vulkan.Extensions.VK_NV_fragment_shading_rate_enums.PipelineFragmentShadingRateEnumStateCreateInfoNV'::@combinerOps@[0]+-- /must/ be a valid+-- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.FragmentShadingRateCombinerOpKHR'+-- value+--+-- - #VUID-VkGraphicsPipelineCreateInfo-pDynamicState-06572# If the+-- pipeline is being created with+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>+-- and+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR'+-- is not included in @pDynamicState->pDynamicStates@,+-- 'Vulkan.Extensions.VK_NV_fragment_shading_rate_enums.PipelineFragmentShadingRateEnumStateCreateInfoNV'::@combinerOps@[1]+-- /must/ be a valid+-- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.FragmentShadingRateCombinerOpKHR'+-- value+--+-- - #VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04569# If the+-- pipeline is being created with+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>+-- and+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR'+-- is not included in @pDynamicState->pDynamicStates@, and the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-fragmentShadingRateEnums fragmentShadingRateEnums>+-- feature is not enabled,+-- 'Vulkan.Extensions.VK_NV_fragment_shading_rate_enums.PipelineFragmentShadingRateEnumStateCreateInfoNV'::@shadingRateType@+-- /must/ be equal to+-- 'Vulkan.Extensions.VK_NV_fragment_shading_rate_enums.FRAGMENT_SHADING_RATE_TYPE_FRAGMENT_SIZE_NV'+--+-- - #VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04570# If the+-- pipeline is being created with+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>+-- and+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR'+-- is not included in @pDynamicState->pDynamicStates@, and the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-pipelineFragmentShadingRate pipelineFragmentShadingRate>+-- feature is not enabled,+-- 'Vulkan.Extensions.VK_NV_fragment_shading_rate_enums.PipelineFragmentShadingRateEnumStateCreateInfoNV'::@shadingRate@+-- /must/ be equal to+-- 'Vulkan.Extensions.VK_NV_fragment_shading_rate_enums.FRAGMENT_SHADING_RATE_1_INVOCATION_PER_PIXEL_NV'+--+-- - #VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04571# If the+-- pipeline is being created with+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>+-- and+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR'+-- is not included in @pDynamicState->pDynamicStates@, and the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-primitiveFragmentShadingRate primitiveFragmentShadingRate>+-- feature is not enabled,+-- 'Vulkan.Extensions.VK_NV_fragment_shading_rate_enums.PipelineFragmentShadingRateEnumStateCreateInfoNV'::@combinerOps@[0]+-- /must/ be+-- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR'+--+-- - #VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04572# If the+-- pipeline is being created with+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>+-- and+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR'+-- is not included in @pDynamicState->pDynamicStates@, and the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-attachmentFragmentShadingRate attachmentFragmentShadingRate>+-- feature is not enabled,+-- 'Vulkan.Extensions.VK_NV_fragment_shading_rate_enums.PipelineFragmentShadingRateEnumStateCreateInfoNV'::@combinerOps@[1]+-- /must/ be+-- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR'+--+-- - #VUID-VkGraphicsPipelineCreateInfo-fragmentShadingRateNonTrivialCombinerOps-04573#+-- If the pipeline is being created with+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>,+-- and the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-fragmentShadingRateNonTrivialCombinerOps fragmentShadingRateNonTrivialCombinerOps>+-- limit is not supported and+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR'+-- is not included in @pDynamicState->pDynamicStates@, elements of+-- 'Vulkan.Extensions.VK_NV_fragment_shading_rate_enums.PipelineFragmentShadingRateEnumStateCreateInfoNV'::@combinerOps@+-- /must/ be+-- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR'+-- or+-- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.FRAGMENT_SHADING_RATE_COMBINER_OP_REPLACE_KHR'+--+-- - #VUID-VkGraphicsPipelineCreateInfo-None-04574# If the pipeline is+-- being created with+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>,+-- and the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-supersampleFragmentShadingRates supersampleFragmentShadingRates>+-- feature is not enabled,+-- 'Vulkan.Extensions.VK_NV_fragment_shading_rate_enums.PipelineFragmentShadingRateEnumStateCreateInfoNV'::@shadingRate@+-- /must/ not be equal to+-- 'Vulkan.Extensions.VK_NV_fragment_shading_rate_enums.FRAGMENT_SHADING_RATE_2_INVOCATIONS_PER_PIXEL_NV',+-- 'Vulkan.Extensions.VK_NV_fragment_shading_rate_enums.FRAGMENT_SHADING_RATE_4_INVOCATIONS_PER_PIXEL_NV',+-- 'Vulkan.Extensions.VK_NV_fragment_shading_rate_enums.FRAGMENT_SHADING_RATE_8_INVOCATIONS_PER_PIXEL_NV',+-- or+-- 'Vulkan.Extensions.VK_NV_fragment_shading_rate_enums.FRAGMENT_SHADING_RATE_16_INVOCATIONS_PER_PIXEL_NV'+--+-- - #VUID-VkGraphicsPipelineCreateInfo-None-04575# If the pipeline is+-- being created with+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>,+-- and the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-noInvocationFragmentShadingRates noInvocationFragmentShadingRates>+-- feature is not enabled,+-- 'Vulkan.Extensions.VK_NV_fragment_shading_rate_enums.PipelineFragmentShadingRateEnumStateCreateInfoNV'::@shadingRate@+-- /must/ not be equal to+-- 'Vulkan.Extensions.VK_NV_fragment_shading_rate_enums.FRAGMENT_SHADING_RATE_NO_INVOCATIONS_NV'+--+-- - #VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-03578# All+-- elements of the @pDynamicStates@ member of @pDynamicState@ /must/+-- not be+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RAY_TRACING_PIPELINE_STACK_SIZE_KHR'+--+-- - #VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04807# If the+-- pipeline is being created with+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>+-- and the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-vertexInputDynamicState vertexInputDynamicState>+-- feature is not enabled, there /must/ be no element of the+-- @pDynamicStates@ member of @pDynamicState@ set to+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'+--+-- - #VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-07067# If the+-- pipeline is being created with+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>,+-- and includes a mesh shader, there /must/ be no element of the+-- @pDynamicStates@ member of @pDynamicState@ set to+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'+--+-- - #VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04800# If the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-colorWriteEnable colorWriteEnable>+-- feature is not enabled, there /must/ be no element of the+-- @pDynamicStates@ member of @pDynamicState@ set to+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT'+--+-- - #VUID-VkGraphicsPipelineCreateInfo-rasterizationSamples-04899# If+-- the pipeline is being created with fragment shader state, and the+-- @VK_QCOM_render_pass_shader_resolve@ extension is enabled, and if+-- subpass has any input attachments, and if the subpass description+-- contains+-- 'Vulkan.Core10.Enums.SubpassDescriptionFlagBits.SUBPASS_DESCRIPTION_FRAGMENT_REGION_BIT_QCOM',+-- then the sample count of the input attachments /must/ equal+-- @rasterizationSamples@+--+-- - #VUID-VkGraphicsPipelineCreateInfo-sampleShadingEnable-04900# If the+-- pipeline is being created with fragment shader state, and the+-- @VK_QCOM_render_pass_shader_resolve@ extension is enabled, and if+-- the subpass description contains+-- 'Vulkan.Core10.Enums.SubpassDescriptionFlagBits.SUBPASS_DESCRIPTION_FRAGMENT_REGION_BIT_QCOM',+-- then @sampleShadingEnable@ /must/ be false+--+-- - #VUID-VkGraphicsPipelineCreateInfo-flags-04901# If @flags@ includes+-- 'Vulkan.Core10.Enums.SubpassDescriptionFlagBits.SUBPASS_DESCRIPTION_SHADER_RESOLVE_BIT_QCOM',+-- then the subpass /must/ be the last subpass in a subpass dependency+-- chain+--+-- - #VUID-VkGraphicsPipelineCreateInfo-flags-04902# If @flags@ includes+-- 'Vulkan.Core10.Enums.SubpassDescriptionFlagBits.SUBPASS_DESCRIPTION_SHADER_RESOLVE_BIT_QCOM',+-- and if @pResolveAttachments@ is not @NULL@, then each resolve+-- attachment /must/ be 'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED'+--+-- - #VUID-VkGraphicsPipelineCreateInfo-renderPass-06575# If the pipeline+-- is being created with+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>,+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>,+-- or+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-output fragment output interface state>,+-- @renderPass@ /must/ be 'Vulkan.Core10.APIConstants.NULL_HANDLE' or a+-- valid render pass object+--+-- - #VUID-VkGraphicsPipelineCreateInfo-dynamicRendering-06576# If the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-dynamicRendering dynamicRendering>+-- feature is not enabled and the pipeline is being created with+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>,+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>,+-- or+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-output fragment output interface state>,+-- @renderPass@ /must/ not be 'Vulkan.Core10.APIConstants.NULL_HANDLE'+--+-- - #VUID-VkGraphicsPipelineCreateInfo-multiview-06577# If the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-multiview multiview>+-- feature is not enabled, the pipeline is being created with+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>,+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>,+-- or+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-output fragment output interface state>,+-- and @renderPass@ is 'Vulkan.Core10.APIConstants.NULL_HANDLE',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@viewMask@+-- /must/ be @0@+--+-- - #VUID-VkGraphicsPipelineCreateInfo-renderPass-06578# If the pipeline+-- is being created with+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>,+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>,+-- or+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-output fragment output interface state>,+-- and @renderPass@ is 'Vulkan.Core10.APIConstants.NULL_HANDLE', the+-- index of the most significant bit in+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@viewMask@+-- /must/ be less than+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxMultiviewViewCount maxMultiviewViewCount>+--+-- - #VUID-VkGraphicsPipelineCreateInfo-renderPass-06579# If the pipeline+-- is being created with+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-output fragment output interface state>,+-- and @renderPass@ is 'Vulkan.Core10.APIConstants.NULL_HANDLE', and+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@colorAttachmentCount@+-- is not 0,+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@+-- /must/ be a valid pointer to an array of @colorAttachmentCount@+-- valid 'Vulkan.Core10.Enums.Format.Format' values+--+-- - #VUID-VkGraphicsPipelineCreateInfo-renderPass-06580# If the pipeline+-- is being created with+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-output fragment output interface state>,+-- and @renderPass@ is 'Vulkan.Core10.APIConstants.NULL_HANDLE', each+-- element of+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@+-- /must/ be a valid 'Vulkan.Core10.Enums.Format.Format' value+--+-- - #VUID-VkGraphicsPipelineCreateInfo-renderPass-06582# If the pipeline+-- is being created with+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-output fragment output interface state>,+-- @renderPass@ is 'Vulkan.Core10.APIConstants.NULL_HANDLE', and any+-- element of+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@+-- is not 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED', that format+-- /must/ be a format with+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#potential-format-features potential format features>+-- that include+-- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_COLOR_ATTACHMENT_BIT'+-- or+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV'+--+-- - #VUID-VkGraphicsPipelineCreateInfo-renderPass-06583# If the pipeline+-- is being created with+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-output fragment output interface state>,+-- and @renderPass@ is 'Vulkan.Core10.APIConstants.NULL_HANDLE',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@depthAttachmentFormat@+-- /must/ be a valid 'Vulkan.Core10.Enums.Format.Format' value+--+-- - #VUID-VkGraphicsPipelineCreateInfo-renderPass-06584# If the pipeline+-- is being created with+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-output fragment output interface state>,+-- and @renderPass@ is 'Vulkan.Core10.APIConstants.NULL_HANDLE',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@stencilAttachmentFormat@+-- /must/ be a valid 'Vulkan.Core10.Enums.Format.Format' value+--+-- - #VUID-VkGraphicsPipelineCreateInfo-renderPass-06585# If the pipeline+-- is being created with+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-output fragment output interface state>,+-- @renderPass@ is 'Vulkan.Core10.APIConstants.NULL_HANDLE', and+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@depthAttachmentFormat@+-- is not 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED', it /must/ be a+-- format with+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#potential-format-features potential format features>+-- that include+-- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT'+--+-- - #VUID-VkGraphicsPipelineCreateInfo-renderPass-06586# If the pipeline+-- is being created with+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-output fragment output interface state>,+-- @renderPass@ is 'Vulkan.Core10.APIConstants.NULL_HANDLE', and+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@stencilAttachmentFormat@+-- is not 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED', it /must/ be a+-- format with+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#potential-format-features potential format features>+-- that include+-- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT'+--+-- - #VUID-VkGraphicsPipelineCreateInfo-renderPass-06587# If the pipeline+-- is being created with+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-output fragment output interface state>,+-- @renderPass@ is 'Vulkan.Core10.APIConstants.NULL_HANDLE', and+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@depthAttachmentFormat@+-- is not 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED', it /must/ be a+-- format that includes a depth aspect+--+-- - #VUID-VkGraphicsPipelineCreateInfo-renderPass-06588# If the pipeline+-- is being created with+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-output fragment output interface state>,+-- @renderPass@ is 'Vulkan.Core10.APIConstants.NULL_HANDLE', and+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@stencilAttachmentFormat@+-- is not 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED', it /must/ be a+-- format that includes a stencil aspect+--+-- - #VUID-VkGraphicsPipelineCreateInfo-renderPass-06589# If the pipeline+-- is being created with+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-output fragment output interface state>,+-- @renderPass@ is 'Vulkan.Core10.APIConstants.NULL_HANDLE',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@depthAttachmentFormat@+-- is not 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED', and+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@stencilAttachmentFormat@+-- is not 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED',+-- @depthAttachmentFormat@ /must/ equal @stencilAttachmentFormat@+--+-- - #VUID-VkGraphicsPipelineCreateInfo-renderPass-06053# If @renderPass@+-- is 'Vulkan.Core10.APIConstants.NULL_HANDLE', the pipeline is being+-- created with+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>+-- and+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-output fragment output interface state>,+-- and either of+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::depthAttachmentFormat+-- or+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::stencilAttachmentFormat+-- are not 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED',+-- @pDepthStencilState@ /must/ be a valid pointer to a valid+-- 'PipelineDepthStencilStateCreateInfo' structure+--+-- - #VUID-VkGraphicsPipelineCreateInfo-renderPass-06590# If @renderPass@+-- is 'Vulkan.Core10.APIConstants.NULL_HANDLE' and the pipeline is+-- being created with+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>+-- but not+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-output fragment output interface state>,+-- @pDepthStencilState@ /must/ be a valid pointer to a valid+-- 'PipelineDepthStencilStateCreateInfo' structure+--+-- - #VUID-VkGraphicsPipelineCreateInfo-renderPass-06054# If @renderPass@+-- is 'Vulkan.Core10.APIConstants.NULL_HANDLE', the pipeline is being+-- created with+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-output fragment output interface state>,+-- and+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::colorAttachmentCount+-- is not equal to @0@, @pColorBlendState@ /must/ be a valid pointer to+-- a valid 'PipelineColorBlendStateCreateInfo' structure+--+-- - #VUID-VkGraphicsPipelineCreateInfo-renderPass-06055# If @renderPass@+-- is 'Vulkan.Core10.APIConstants.NULL_HANDLE' and the pipeline is+-- being created with+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-output fragment output interface state>,+-- @pColorBlendState->attachmentCount@ /must/ be equal to+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::colorAttachmentCount+--+-- - #VUID-VkGraphicsPipelineCreateInfo-renderPass-06056# If @renderPass@+-- is 'Vulkan.Core10.APIConstants.NULL_HANDLE' and the pipeline is+-- being created with+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>+-- the fragment shader /must/ not read from any input attachment+--+-- - #VUID-VkGraphicsPipelineCreateInfo-renderPass-06057# If @renderPass@+-- is 'Vulkan.Core10.APIConstants.NULL_HANDLE', the pipeline is being+-- created with+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>,+-- the @viewMask@ member of a+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'+-- structure included in the @pNext@ chain is not @0@, and the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-multiview-tess multiviewTessellationShader>+-- feature is not enabled, then @pStages@ /must/ not include+-- tessellation shaders+--+-- - #VUID-VkGraphicsPipelineCreateInfo-renderPass-06058# If @renderPass@+-- is 'Vulkan.Core10.APIConstants.NULL_HANDLE', the pipeline is being+-- created with+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>,+-- the @viewMask@ member of a+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'+-- structure included in the @pNext@ chain is not @0@, and the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-multiview-gs multiviewGeometryShader>+-- feature is not enabled, then @pStages@ /must/ not include a geometry+-- shader+--+-- - #VUID-VkGraphicsPipelineCreateInfo-renderPass-06059# If @renderPass@+-- is 'Vulkan.Core10.APIConstants.NULL_HANDLE', the pipeline is being+-- created with+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>,+-- and the @viewMask@ member of a+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'+-- structure included in the @pNext@ chain is not @0@, shaders in+-- @pStages@ /must/ not include variables decorated with the @Layer@+-- built-in decoration in their interfaces+--+-- - #VUID-VkGraphicsPipelineCreateInfo-renderPass-06061# If the pipeline+-- is being created with+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>+-- and @renderPass@ is 'Vulkan.Core10.APIConstants.NULL_HANDLE',+-- fragment shaders in @pStages@ /must/ not include the+-- @InputAttachment@ capability+--+-- - #VUID-VkGraphicsPipelineCreateInfo-renderPass-06062# If the pipeline+-- is being created with+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-output fragment output interface state>+-- and @renderPass@ is 'Vulkan.Core10.APIConstants.NULL_HANDLE', for+-- each color attachment format defined by the+-- @pColorAttachmentFormats@ member of+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo',+-- if its+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#potential-format-features potential format features>+-- do not contain+-- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT',+-- then the @blendEnable@ member of the corresponding element of the+-- @pAttachments@ member of @pColorBlendState@ /must/ be+-- 'Vulkan.Core10.FundamentalTypes.FALSE'+--+-- - #VUID-VkGraphicsPipelineCreateInfo-renderPass-06063# If the pipeline+-- is being created with+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-output fragment output interface state>+-- and @renderPass@ is 'Vulkan.Core10.APIConstants.NULL_HANDLE', if the+-- @pNext@ chain includes+-- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'+-- or+-- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV',+-- the @colorAttachmentCount@ member of that structure /must/ be equal+-- to the value of+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@colorAttachmentCount@+--+-- - #VUID-VkGraphicsPipelineCreateInfo-flags-06591# If @pStages@+-- includes a fragment shader stage, and the fragment shader declares+-- the @EarlyFragmentTests@ execution mode, the @flags@ member of+-- 'PipelineDepthStencilStateCreateInfo' /must/ not include+-- 'Vulkan.Core10.Enums.PipelineDepthStencilStateCreateFlagBits.PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT'+-- or+-- 'Vulkan.Core10.Enums.PipelineDepthStencilStateCreateFlagBits.PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT'+--+-- - #VUID-VkGraphicsPipelineCreateInfo-flags-06482# If the pipeline is+-- being created with+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-output fragment output interface state>+-- and the @flags@ member of 'PipelineColorBlendStateCreateInfo'+-- includes+-- 'Vulkan.Core10.Enums.PipelineColorBlendStateCreateFlagBits.PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_EXT',+-- @renderpass@ /must/ not be 'Vulkan.Core10.APIConstants.NULL_HANDLE'+--+-- - #VUID-VkGraphicsPipelineCreateInfo-flags-06483# If the pipeline is+-- being created with+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-output fragment output interface state>+-- and the @flags@ member of 'PipelineDepthStencilStateCreateInfo'+-- includes+-- 'Vulkan.Core10.Enums.PipelineDepthStencilStateCreateFlagBits.PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT'+-- or+-- 'Vulkan.Core10.Enums.PipelineDepthStencilStateCreateFlagBits.PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT',+-- @renderpass@ /must/ not be 'Vulkan.Core10.APIConstants.NULL_HANDLE'+--+-- - #VUID-VkGraphicsPipelineCreateInfo-pColorAttachmentSamples-06592# If+-- the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-output fragment output interface state>,+-- elements of the @pColorAttachmentSamples@ member of+-- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'+-- or+-- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'+-- /must/ be valid+-- 'Vulkan.Core10.Enums.SampleCountFlagBits.SampleCountFlagBits' values+--+-- - #VUID-VkGraphicsPipelineCreateInfo-depthStencilAttachmentSamples-06593#+-- If the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-output fragment output interface state>+-- and the @depthStencilAttachmentSamples@ member of+-- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'+-- or+-- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'+-- is not 0, it /must/ be a valid+-- 'Vulkan.Core10.Enums.SampleCountFlagBits.SampleCountFlagBits' value+--+-- - #VUID-VkGraphicsPipelineCreateInfo-flags-06484# If the pipeline is+-- being created with+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-output fragment output interface state>+-- and the @flags@ member of 'PipelineColorBlendStateCreateInfo'+-- includes+-- 'Vulkan.Core10.Enums.PipelineColorBlendStateCreateFlagBits.PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_EXT'+-- @subpass@ /must/ have been created with+-- 'Vulkan.Core10.Enums.SubpassDescriptionFlagBits.SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_COLOR_ACCESS_BIT_EXT'+--+-- - #VUID-VkGraphicsPipelineCreateInfo-flags-06485# If the pipeline is+-- being created with+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-output fragment output interface state>+-- and the @flags@ member of 'PipelineDepthStencilStateCreateInfo'+-- includes+-- 'Vulkan.Core10.Enums.PipelineDepthStencilStateCreateFlagBits.PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT',+-- @subpass@ /must/ have been created with+-- 'Vulkan.Core10.Enums.SubpassDescriptionFlagBits.SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT'+--+-- - #VUID-VkGraphicsPipelineCreateInfo-flags-06486# If the pipeline is+-- being created with+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-output fragment output interface state>+-- and the @flags@ member of 'PipelineDepthStencilStateCreateInfo'+-- includes+-- 'Vulkan.Core10.Enums.PipelineDepthStencilStateCreateFlagBits.PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT',+-- @subpass@ /must/ have been created with+-- 'Vulkan.Core10.Enums.SubpassDescriptionFlagBits.SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT'+--+-- - #VUID-VkGraphicsPipelineCreateInfo-pipelineStageCreationFeedbackCount-06594#+-- If+-- 'Vulkan.Core13.Promoted_From_VK_EXT_pipeline_creation_feedback.PipelineCreationFeedbackCreateInfo'::@pipelineStageCreationFeedbackCount@+-- is not @0@, it /must/ be equal to @stageCount@+--+-- - #VUID-VkGraphicsPipelineCreateInfo-renderPass-06595# If @renderPass@+-- is 'Vulkan.Core10.APIConstants.NULL_HANDLE', the pipeline is being+-- created with+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>+-- or+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>,+-- and+-- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.MultiviewPerViewAttributesInfoNVX'::@perViewAttributesPositionXOnly@+-- is 'Vulkan.Core10.FundamentalTypes.TRUE' then+-- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.MultiviewPerViewAttributesInfoNVX'::@perViewAttributes@+-- /must/ also be 'Vulkan.Core10.FundamentalTypes.TRUE'+--+-- - #VUID-VkGraphicsPipelineCreateInfo-flags-06596# If+-- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GraphicsPipelineLibraryCreateInfoEXT'::@flags@+-- includes only one of+-- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT'+-- or+-- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT',+-- and an element of+-- 'Vulkan.Extensions.VK_KHR_pipeline_library.PipelineLibraryCreateInfoKHR'::@pLibraries@+-- includes the other flag, the value of+-- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.MultiviewPerViewAttributesInfoNVX'::@perViewAttributes@+-- specified in both this pipeline and the library /must/ be equal+--+-- - #VUID-VkGraphicsPipelineCreateInfo-pLibraries-06597# If one element+-- of+-- 'Vulkan.Extensions.VK_KHR_pipeline_library.PipelineLibraryCreateInfoKHR'::@pLibraries@+-- includes+-- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT'+-- and another element includes+-- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT',+-- the value of+-- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.MultiviewPerViewAttributesInfoNVX'::@perViewAttributes@+-- specified in both libraries /must/ be equal+--+-- - #VUID-VkGraphicsPipelineCreateInfo-flags-06598# If+-- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GraphicsPipelineLibraryCreateInfoEXT'::@flags@+-- includes only one of+-- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT'+-- or+-- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT',+-- and an element of+-- 'Vulkan.Extensions.VK_KHR_pipeline_library.PipelineLibraryCreateInfoKHR'::@pLibraries@+-- includes the other flag, the value of+-- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.MultiviewPerViewAttributesInfoNVX'::@perViewAttributesPositionXOnly@+-- specified in both this pipeline and the library /must/ be equal+--+-- - #VUID-VkGraphicsPipelineCreateInfo-pLibraries-06599# If one element+-- of+-- 'Vulkan.Extensions.VK_KHR_pipeline_library.PipelineLibraryCreateInfoKHR'::@pLibraries@+-- includes+-- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT'+-- and another element includes+-- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT',+-- the value of+-- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.MultiviewPerViewAttributesInfoNVX'::@perViewAttributesPositionXOnly@+-- specified in both libraries /must/ be equal+--+-- - #VUID-VkGraphicsPipelineCreateInfo-graphicsPipelineLibrary-06606# If+-- the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-graphicsPipelineLibrary graphicsPipelineLibrary>+-- feature is not enabled, @flags@ /must/ not include+-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_LIBRARY_BIT_KHR'+--+-- - #VUID-VkGraphicsPipelineCreateInfo-graphicsPipelineLibrary-06607# If+-- the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-graphicsPipelineLibrary graphicsPipelineLibrary>+-- feature is not enabled, the pipeline /must/ be created with a+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-complete complete set of state>+--+-- - #VUID-VkGraphicsPipelineCreateInfo-flags-06608# If the pipeline is+-- being created with+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-complete all possible state subsets>,+-- @flags@ /must/ not include+-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_LIBRARY_BIT_KHR'+--+-- - #VUID-VkGraphicsPipelineCreateInfo-flags-06609# If @flags@ includes+-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_LINK_TIME_OPTIMIZATION_BIT_EXT',+-- pipeline libraries included via+-- 'Vulkan.Extensions.VK_KHR_pipeline_library.PipelineLibraryCreateInfoKHR'+-- /must/ have been created with+-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RETAIN_LINK_TIME_OPTIMIZATION_INFO_BIT_EXT'+--+-- - #VUID-VkGraphicsPipelineCreateInfo-flags-06610# If @flags@ includes+-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RETAIN_LINK_TIME_OPTIMIZATION_INFO_BIT_EXT',+-- pipeline libraries included via+-- 'Vulkan.Extensions.VK_KHR_pipeline_library.PipelineLibraryCreateInfoKHR'+-- /must/ have been created with+-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RETAIN_LINK_TIME_OPTIMIZATION_INFO_BIT_EXT'+--+-- - #VUID-VkGraphicsPipelineCreateInfo-pLibraries-06611# Any pipeline+-- libraries included via+-- 'Vulkan.Extensions.VK_KHR_pipeline_library.PipelineLibraryCreateInfoKHR'::@pLibraries@+-- /must/ not include any+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets state subset>+-- already defined by this structure or defined by any other pipeline+-- library in+-- 'Vulkan.Extensions.VK_KHR_pipeline_library.PipelineLibraryCreateInfoKHR'::@pLibraries@+--+-- - #VUID-VkGraphicsPipelineCreateInfo-flags-06612# If+-- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GraphicsPipelineLibraryCreateInfoEXT'::@flags@+-- includes only one of+-- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT'+-- or+-- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT',+-- and an element of+-- 'Vulkan.Extensions.VK_KHR_pipeline_library.PipelineLibraryCreateInfoKHR'::@pLibraries@+-- includes the other flag, and @layout@ was not created with+-- 'Vulkan.Core10.Enums.PipelineLayoutCreateFlagBits.PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT',+-- then the @layout@ used by this pipeline and the library /must/ be+-- /identically defined/+--+-- - #VUID-VkGraphicsPipelineCreateInfo-pLibraries-06613# If one element+-- of+-- 'Vulkan.Extensions.VK_KHR_pipeline_library.PipelineLibraryCreateInfoKHR'::@pLibraries@+-- includes+-- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT'+-- and another element includes+-- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT',+-- and the @layout@ specified by either library was not created with+-- 'Vulkan.Core10.Enums.PipelineLayoutCreateFlagBits.PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT',+-- then the @layout@ used by each library /must/ be /identically+-- defined/+--+-- - #VUID-VkGraphicsPipelineCreateInfo-flags-06614# If+-- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GraphicsPipelineLibraryCreateInfoEXT'::@flags@+-- includes only one of+-- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT'+-- or+-- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT',+-- an element of+-- 'Vulkan.Extensions.VK_KHR_pipeline_library.PipelineLibraryCreateInfoKHR'::@pLibraries@+-- includes the other subset, and @layout@ was created with+-- 'Vulkan.Core10.Enums.PipelineLayoutCreateFlagBits.PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT',+-- then the @layout@ used by the library /must/ also have been created+-- with+-- 'Vulkan.Core10.Enums.PipelineLayoutCreateFlagBits.PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT'+--+-- - #VUID-VkGraphicsPipelineCreateInfo-pLibraries-06615# If one element+-- of+-- 'Vulkan.Extensions.VK_KHR_pipeline_library.PipelineLibraryCreateInfoKHR'::@pLibraries@+-- includes+-- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT'+-- and another element includes+-- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT',+-- and the @layout@ specified by either library was created with+-- 'Vulkan.Core10.Enums.PipelineLayoutCreateFlagBits.PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT',+-- then the @layout@ used by both libraries /must/ have been created+-- with+-- 'Vulkan.Core10.Enums.PipelineLayoutCreateFlagBits.PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT'+--+-- - #VUID-VkGraphicsPipelineCreateInfo-flags-06616# If+-- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GraphicsPipelineLibraryCreateInfoEXT'::@flags@+-- includes only one of+-- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT'+-- or+-- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT',+-- an element of+-- 'Vulkan.Extensions.VK_KHR_pipeline_library.PipelineLibraryCreateInfoKHR'::@pLibraries@+-- includes the other subset, and @layout@ was created with+-- 'Vulkan.Core10.Enums.PipelineLayoutCreateFlagBits.PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT',+-- elements of the @pSetLayouts@ array which @layout@ was created with+-- that are not 'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ be+-- /identically defined/ to the element at the same index of+-- @pSetLayouts@ used to create the library’s @layout@+--+-- - #VUID-VkGraphicsPipelineCreateInfo-pLibraries-06617# If one element+-- of+-- 'Vulkan.Extensions.VK_KHR_pipeline_library.PipelineLibraryCreateInfoKHR'::@pLibraries@+-- includes+-- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT'+-- and another element includes+-- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT',+-- and the @layout@ specified by either library was created with+-- 'Vulkan.Core10.Enums.PipelineLayoutCreateFlagBits.PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT',+-- elements of the @pSetLayouts@ array which either @layout@ was+-- created with that are not 'Vulkan.Core10.APIConstants.NULL_HANDLE'+-- /must/ be /identically defined/ to the element at the same index of+-- @pSetLayouts@ used to create the other library’s @layout@+--+-- - #VUID-VkGraphicsPipelineCreateInfo-flags-06618# If+-- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GraphicsPipelineLibraryCreateInfoEXT'::@flags@+-- includes only one of+-- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT'+-- or+-- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT',+-- and an element of+-- 'Vulkan.Extensions.VK_KHR_pipeline_library.PipelineLibraryCreateInfoKHR'::@pLibraries@+-- includes the other flag, any descriptor set layout /N/ specified by+-- @layout@ in both this pipeline and the library which include+-- bindings accessed by shader stages in each /must/ be /identically+-- defined/+--+-- - #VUID-VkGraphicsPipelineCreateInfo-pLibraries-06619# If one element+-- of+-- 'Vulkan.Extensions.VK_KHR_pipeline_library.PipelineLibraryCreateInfoKHR'::@pLibraries@+-- includes+-- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT'+-- and another element includes+-- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT',+-- any descriptor set layout /N/ specified by @layout@ in both+-- libraries which include bindings accessed by shader stages in each+-- /must/ be /identically defined/+--+-- - #VUID-VkGraphicsPipelineCreateInfo-flags-06620# If+-- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GraphicsPipelineLibraryCreateInfoEXT'::@flags@+-- includes only one of+-- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT'+-- or+-- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT',+-- and an element of+-- 'Vulkan.Extensions.VK_KHR_pipeline_library.PipelineLibraryCreateInfoKHR'::@pLibraries@+-- includes the other flag, push constants specified in @layout@ in+-- both this pipeline and the library which are available to shader+-- stages in each /must/ be /identically defined/+--+-- - #VUID-VkGraphicsPipelineCreateInfo-pLibraries-06621# If one element+-- of+-- 'Vulkan.Extensions.VK_KHR_pipeline_library.PipelineLibraryCreateInfoKHR'::@pLibraries@+-- includes+-- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT'+-- and another element includes+-- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT',+-- push constants specified in @layout@ in both this pipeline and the+-- library which are available to shader stages in each /must/ be+-- /identically defined/+--+-- - #VUID-VkGraphicsPipelineCreateInfo-flags-06679# If+-- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GraphicsPipelineLibraryCreateInfoEXT'::@flags@+-- includes only one of+-- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT'+-- or+-- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT',+-- an element of+-- 'Vulkan.Extensions.VK_KHR_pipeline_library.PipelineLibraryCreateInfoKHR'::@pLibraries@+-- includes the other subset, and any element of the @pSetLayouts@+-- array which @layout@ was created with was+-- 'Vulkan.Core10.APIConstants.NULL_HANDLE', then the corresponding+-- element of the @pSetLayouts@ array used to create the library’s+-- @layout@ /must/ not be 'Vulkan.Core10.APIConstants.NULL_HANDLE'+--+-- - #VUID-VkGraphicsPipelineCreateInfo-flags-06680# If+-- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GraphicsPipelineLibraryCreateInfoEXT'::@flags@+-- includes only one of+-- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT'+-- or+-- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT',+-- an element of+-- 'Vulkan.Extensions.VK_KHR_pipeline_library.PipelineLibraryCreateInfoKHR'::@pLibraries@+-- includes the other subset, and any element of the @pSetLayouts@+-- array used to create the library’s @layout@ was+-- 'Vulkan.Core10.APIConstants.NULL_HANDLE', then the corresponding+-- element of the @pSetLayouts@ array used to create this pipeline’s+-- @layout@ /must/ not be 'Vulkan.Core10.APIConstants.NULL_HANDLE'+--+-- - #VUID-VkGraphicsPipelineCreateInfo-pLibraries-06681# If one element+-- of+-- 'Vulkan.Extensions.VK_KHR_pipeline_library.PipelineLibraryCreateInfoKHR'::@pLibraries@+-- includes+-- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT'+-- and another element includes+-- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT',+-- and any element of the @pSetLayouts@ array used to create each+-- library’s @layout@ was 'Vulkan.Core10.APIConstants.NULL_HANDLE',+-- then the corresponding element of the @pSetLayouts@ array used to+-- create the other library’s @layout@ /must/ not be+-- 'Vulkan.Core10.APIConstants.NULL_HANDLE'+--+-- - #VUID-VkGraphicsPipelineCreateInfo-flags-06756# If+-- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GraphicsPipelineLibraryCreateInfoEXT'::@flags@+-- includes only one of+-- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT'+-- or+-- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT',+-- an element of+-- 'Vulkan.Extensions.VK_KHR_pipeline_library.PipelineLibraryCreateInfoKHR'::@pLibraries@+-- includes the other subset, and any element of the @pSetLayouts@+-- array which @layout@ was created with was+-- 'Vulkan.Core10.APIConstants.NULL_HANDLE', then the corresponding+-- element of the @pSetLayouts@ array used to create the library’s+-- @layout@ /must/ not have shader bindings for shaders in the other+-- subset+--+-- - #VUID-VkGraphicsPipelineCreateInfo-flags-06757# If+-- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GraphicsPipelineLibraryCreateInfoEXT'::@flags@+-- includes only one of+-- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT'+-- or+-- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT',+-- an element of+-- 'Vulkan.Extensions.VK_KHR_pipeline_library.PipelineLibraryCreateInfoKHR'::@pLibraries@+-- includes the other subset, and any element of the @pSetLayouts@+-- array used to create the library’s @layout@ was+-- 'Vulkan.Core10.APIConstants.NULL_HANDLE', then the corresponding+-- element of the @pSetLayouts@ array used to create this pipeline’s+-- @layout@ /must/ not have shader bindings for shaders in the other+-- subset+--+-- - #VUID-VkGraphicsPipelineCreateInfo-pLibraries-06758# If one element+-- of+-- 'Vulkan.Extensions.VK_KHR_pipeline_library.PipelineLibraryCreateInfoKHR'::@pLibraries@+-- includes+-- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT'+-- and another element includes+-- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT',+-- and any element of the @pSetLayouts@ array used to create each+-- library’s @layout@ was 'Vulkan.Core10.APIConstants.NULL_HANDLE',+-- then the corresponding element of the @pSetLayouts@ array used to+-- create the other library’s @layout@ /must/ not have shader bindings+-- for shaders in the other subset+--+-- - #VUID-VkGraphicsPipelineCreateInfo-flags-06682# If+-- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GraphicsPipelineLibraryCreateInfoEXT'::@flags@+-- includes both+-- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT'+-- and+-- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT',+-- @layout@ /must/ have been created with no elements of the+-- @pSetLayouts@ array set to 'Vulkan.Core10.APIConstants.NULL_HANDLE'+--+-- - #VUID-VkGraphicsPipelineCreateInfo-flags-06683# If+-- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GraphicsPipelineLibraryCreateInfoEXT'::@flags@+-- includes+-- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT'+-- and @pRasterizationState@->@rasterizerDiscardEnable@ is+-- 'Vulkan.Core10.FundamentalTypes.TRUE', @layout@ /must/ have been+-- created with no elements of the @pSetLayouts@ array set to+-- 'Vulkan.Core10.APIConstants.NULL_HANDLE'+--+-- - #VUID-VkGraphicsPipelineCreateInfo-flags-06684# If+-- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GraphicsPipelineLibraryCreateInfoEXT'::@flags@+-- includes at least one of and no more than two of+-- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT',+-- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT',+-- or+-- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT',+-- and an element of+-- 'Vulkan.Extensions.VK_KHR_pipeline_library.PipelineLibraryCreateInfoKHR'::@pLibraries@+-- includes one of the other flags, the value of @subpass@ /must/ be+-- equal to that used to create the library+--+-- - #VUID-VkGraphicsPipelineCreateInfo-pLibraries-06623# If one element+-- of+-- 'Vulkan.Extensions.VK_KHR_pipeline_library.PipelineLibraryCreateInfoKHR'::@pLibraries@+-- includes at least one of and no more than two of+-- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT',+-- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT',+-- or+-- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT',+-- and another element of+-- 'Vulkan.Extensions.VK_KHR_pipeline_library.PipelineLibraryCreateInfoKHR'::@pLibraries@+-- includes one of the other flags, the value of @subpass@ used to+-- create each library /must/ be identical+--+-- - #VUID-VkGraphicsPipelineCreateInfo-renderpass-06624# If @renderpass@+-- is not 'Vulkan.Core10.APIConstants.NULL_HANDLE',+-- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GraphicsPipelineLibraryCreateInfoEXT'::@flags@+-- includes at least one of and no more than two of+-- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT',+-- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT',+-- or+-- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT',+-- and an element of+-- 'Vulkan.Extensions.VK_KHR_pipeline_library.PipelineLibraryCreateInfoKHR'::@pLibraries@+-- includes one of the other flags, @renderPass@ /must/ be compatible+-- with that used to create the library+--+-- - #VUID-VkGraphicsPipelineCreateInfo-renderpass-06625# If @renderpass@+-- is 'Vulkan.Core10.APIConstants.NULL_HANDLE',+-- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GraphicsPipelineLibraryCreateInfoEXT'::@flags@+-- includes at least one of and no more than two of+-- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT',+-- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT',+-- or+-- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT',+-- and an element of+-- 'Vulkan.Extensions.VK_KHR_pipeline_library.PipelineLibraryCreateInfoKHR'::@pLibraries@+-- includes one of the other flags, the value of @renderPass@ used to+-- create that library /must/ also be+-- 'Vulkan.Core10.APIConstants.NULL_HANDLE'+--+-- - #VUID-VkGraphicsPipelineCreateInfo-flags-06626# If+-- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GraphicsPipelineLibraryCreateInfoEXT'::@flags@+-- includes at least one of and no more than two of+-- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT',+-- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT',+-- or+-- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT',+-- an element of+-- 'Vulkan.Extensions.VK_KHR_pipeline_library.PipelineLibraryCreateInfoKHR'::@pLibraries@+-- includes one of the other flags, and @renderPass@ is+-- 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@viewMask@+-- used by this pipeline and that specified by the library /must/ be+-- identical+--+-- - #VUID-VkGraphicsPipelineCreateInfo-pLibraries-06627# If one element+-- of+-- 'Vulkan.Extensions.VK_KHR_pipeline_library.PipelineLibraryCreateInfoKHR'::@pLibraries@+-- includes at least one of and no more than two of+-- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT',+-- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT',+-- or+-- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT',+-- another element of+-- 'Vulkan.Extensions.VK_KHR_pipeline_library.PipelineLibraryCreateInfoKHR'::@pLibraries@+-- includes one of the other flags, and @renderPass@ was+-- 'Vulkan.Core10.APIConstants.NULL_HANDLE' for both libraries, the+-- value of+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@viewMask@+-- set by each library /must/ be identical+--+-- - #VUID-VkGraphicsPipelineCreateInfo-pLibraries-06628# If one element+-- of+-- 'Vulkan.Extensions.VK_KHR_pipeline_library.PipelineLibraryCreateInfoKHR'::@pLibraries@+-- includes at least one of and no more than two of+-- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT',+-- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT',+-- or+-- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT',+-- and another element of+-- 'Vulkan.Extensions.VK_KHR_pipeline_library.PipelineLibraryCreateInfoKHR'::@pLibraries@+-- includes one of the other flags, the @renderPass@ objects used to+-- create each library /must/ be compatible or all equal to+-- 'Vulkan.Core10.APIConstants.NULL_HANDLE'+--+-- - #VUID-VkGraphicsPipelineCreateInfo-pMultisampleState-06629# If the+-- pipeline is being created with+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>+-- @pMultisampleState@ /must/ be @NULL@ or a valid pointer to a valid+-- 'PipelineMultisampleStateCreateInfo' structure+--+-- - #VUID-VkGraphicsPipelineCreateInfo-renderpass-06631# If the pipeline+-- is being created with+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>+-- and @renderpass@ is not 'Vulkan.Core10.APIConstants.NULL_HANDLE',+-- then @pMultisampleState@ /must/ not be @NULL@+--+-- - #VUID-VkGraphicsPipelineCreateInfo-Input-06632# If the pipeline is+-- being created with+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>+-- with a fragment shader that either enables+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-sampleshading sample shading>+-- or decorates any variable in the @Input@ storage class with+-- @Sample@, then @pMultisampleState@ /must/ not be @NULL@+--+-- - #VUID-VkGraphicsPipelineCreateInfo-flags-06633# If+-- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GraphicsPipelineLibraryCreateInfoEXT'::@flags@+-- includes+-- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT'+-- with a @pMultisampleState@ that was not @NULL@, and an element of+-- 'Vulkan.Extensions.VK_KHR_pipeline_library.PipelineLibraryCreateInfoKHR'::@pLibraries@+-- was created with+-- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT',+-- @pMultisampleState@ /must/ be /identically defined/ to that used to+-- create the library+--+-- - #VUID-VkGraphicsPipelineCreateInfo-pLibraries-06634# If an element+-- of+-- 'Vulkan.Extensions.VK_KHR_pipeline_library.PipelineLibraryCreateInfoKHR'::@pLibraries@+-- was created with+-- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT'+-- with a @pMultisampleState@ that was not @NULL@, and if+-- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GraphicsPipelineLibraryCreateInfoEXT'::@flags@+-- includes+-- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT',+-- @pMultisampleState@ /must/ be /identically defined/ to that used to+-- create the library+--+-- - #VUID-VkGraphicsPipelineCreateInfo-pLibraries-06635# If one element+-- of+-- 'Vulkan.Extensions.VK_KHR_pipeline_library.PipelineLibraryCreateInfoKHR'::@pLibraries@+-- was created with+-- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT'+-- with a @pMultisampleState@ that was not @NULL@, and if a different+-- element of+-- 'Vulkan.Extensions.VK_KHR_pipeline_library.PipelineLibraryCreateInfoKHR'::@pLibraries@+-- was created with+-- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT',+-- the @pMultisampleState@ used to create each library /must/ be+-- /identically defined/+--+-- - #VUID-VkGraphicsPipelineCreateInfo-pLibraries-06636# If one element+-- of+-- 'Vulkan.Extensions.VK_KHR_pipeline_library.PipelineLibraryCreateInfoKHR'::@pLibraries@+-- was created with+-- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT'+-- and a value of @pMultisampleState->sampleShading@ equal+-- 'Vulkan.Core10.FundamentalTypes.TRUE', and if a different element of+-- 'Vulkan.Extensions.VK_KHR_pipeline_library.PipelineLibraryCreateInfoKHR'::@pLibraries@+-- was created with+-- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT',+-- the @pMultisampleState@ used to create each library /must/ be+-- /identically defined/+--+-- - #VUID-VkGraphicsPipelineCreateInfo-flags-06637# If+-- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GraphicsPipelineLibraryCreateInfoEXT'::@flags@+-- includes+-- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT',+-- @pMultisampleState->sampleShading@ is+-- 'Vulkan.Core10.FundamentalTypes.TRUE', and an element of+-- 'Vulkan.Extensions.VK_KHR_pipeline_library.PipelineLibraryCreateInfoKHR'::@pLibraries@+-- was created with+-- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT',+-- the @pMultisampleState@ used to create that library /must/ be+-- /identically defined/ @pMultisampleState@+--+-- - #VUID-VkGraphicsPipelineCreateInfo-flags-06638# If+-- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GraphicsPipelineLibraryCreateInfoEXT'::@flags@+-- includes only one of+-- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT'+-- or+-- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT',+-- and an element of+-- 'Vulkan.Extensions.VK_KHR_pipeline_library.PipelineLibraryCreateInfoKHR'::@pLibraries@+-- includes the other flag, values specified in+-- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.PipelineFragmentShadingRateStateCreateInfoKHR'+-- for both this pipeline and that library /must/ be identical+--+-- - #VUID-VkGraphicsPipelineCreateInfo-pLibraries-06639# If one element+-- of+-- 'Vulkan.Extensions.VK_KHR_pipeline_library.PipelineLibraryCreateInfoKHR'::@pLibraries@+-- includes+-- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT'+-- and another element includes+-- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT',+-- values specified in+-- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.PipelineFragmentShadingRateStateCreateInfoKHR'+-- for both this pipeline and that library /must/ be identical+--+-- - #VUID-VkGraphicsPipelineCreateInfo-flags-06640# If+-- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GraphicsPipelineLibraryCreateInfoEXT'::@flags@+-- includes+-- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT'+-- or+-- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT',+-- @pStages@ /must/ be a valid pointer to an array of @stageCount@+-- valid 'PipelineShaderStageCreateInfo' structures+--+-- - #VUID-VkGraphicsPipelineCreateInfo-flags-06641# If+-- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GraphicsPipelineLibraryCreateInfoEXT'::@flags@+-- includes+-- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT',+-- @pRasterizationState@ /must/ be a valid pointer to a valid+-- 'PipelineRasterizationStateCreateInfo' structure+--+-- - #VUID-VkGraphicsPipelineCreateInfo-flags-06642# If+-- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GraphicsPipelineLibraryCreateInfoEXT'::@flags@+-- includes+-- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT'+-- or+-- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT',+-- @layout@ /must/ be a valid 'Vulkan.Core10.Handles.PipelineLayout'+-- handle+--+-- - #VUID-VkGraphicsPipelineCreateInfo-flags-06643# If+-- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GraphicsPipelineLibraryCreateInfoEXT'::@flags@+-- includes+-- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT',+-- or+-- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT',+-- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT',+-- and @renderPass@ is not 'Vulkan.Core10.APIConstants.NULL_HANDLE',+-- @renderPass@ /must/ be a valid 'Vulkan.Core10.Handles.RenderPass'+-- handle+--+-- - #VUID-VkGraphicsPipelineCreateInfo-flags-06644# If+-- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GraphicsPipelineLibraryCreateInfoEXT'::@flags@+-- includes+-- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT'+-- or+-- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT',+-- @stageCount@ /must/ be greater than @0@+--+-- - #VUID-VkGraphicsPipelineCreateInfo-flags-06645# If+-- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GraphicsPipelineLibraryCreateInfoEXT'::@flags@+-- is non-zero, if @flags@ includes+-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR',+-- any libraries /must/ have also been created with+-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR'+--+-- - #VUID-VkGraphicsPipelineCreateInfo-pLibraries-06646# If+-- 'Vulkan.Extensions.VK_KHR_pipeline_library.PipelineLibraryCreateInfoKHR'::@pLibraries@+-- includes more than one library, and any library was created with+-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR',+-- all libraries /must/ have also been created with+-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR'+--+-- - #VUID-VkGraphicsPipelineCreateInfo-pLibraries-06647# If+-- 'Vulkan.Extensions.VK_KHR_pipeline_library.PipelineLibraryCreateInfoKHR'::@pLibraries@+-- includes at least one library,+-- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GraphicsPipelineLibraryCreateInfoEXT'::@flags@+-- is non-zero, and any library was created with+-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR',+-- @flags@ /must/ include+-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR'+--+-- - #VUID-VkGraphicsPipelineCreateInfo-libraryCount-06648# If the+-- pipeline is not created with a+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-complete complete set of state>,+-- or+-- 'Vulkan.Extensions.VK_KHR_pipeline_library.PipelineLibraryCreateInfoKHR'::@libraryCount@+-- is not @0@,+-- 'Vulkan.Extensions.VK_NV_device_generated_commands.GraphicsPipelineShaderGroupsCreateInfoNV'::@groupCount@+-- and+-- 'Vulkan.Extensions.VK_NV_device_generated_commands.GraphicsPipelineShaderGroupsCreateInfoNV'::@pipelineCount@+-- /must/ be @0@+--+-- - #VUID-VkGraphicsPipelineCreateInfo-libraryCount-06649# If the+-- pipeline is created with a+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-complete complete set of state>,+-- 'Vulkan.Extensions.VK_KHR_pipeline_library.PipelineLibraryCreateInfoKHR'::@libraryCount@+-- is @0@, and the @pNext@ chain includes an instance of+-- 'Vulkan.Extensions.VK_NV_device_generated_commands.GraphicsPipelineShaderGroupsCreateInfoNV',+-- 'Vulkan.Extensions.VK_NV_device_generated_commands.GraphicsPipelineShaderGroupsCreateInfoNV'::@groupCount@+-- /must/ be greater than @0@+--+-- - #VUID-VkGraphicsPipelineCreateInfo-flags-06729# If @flags@ includes+-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_LINK_TIME_OPTIMIZATION_BIT_EXT',+-- the pipeline includes a+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-complete complete set of state>+-- specified entirely by libraries, and each library was created with a+-- 'Vulkan.Core10.Handles.PipelineLayout' created with+-- 'Vulkan.Core10.Enums.PipelineLayoutCreateFlagBits.PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT',+-- then @layout@ /must/ be a valid+-- 'Vulkan.Core10.Handles.PipelineLayout' that is+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-compatibility compatible>+-- with the union of the libraries\' pipeline layouts other than the+-- inclusion\/exclusion of+-- 'Vulkan.Core10.Enums.PipelineLayoutCreateFlagBits.PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT'+--+-- - #VUID-VkGraphicsPipelineCreateInfo-flags-06730# If @flags@ does not+-- include+-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_LINK_TIME_OPTIMIZATION_BIT_EXT',+-- the pipeline includes a+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-complete complete set of state>+-- specified entirely by libraries, and each library was created with a+-- 'Vulkan.Core10.Handles.PipelineLayout' created with+-- 'Vulkan.Core10.Enums.PipelineLayoutCreateFlagBits.PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT',+-- then @layout@ /must/ be a valid+-- 'Vulkan.Core10.Handles.PipelineLayout' that is+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-compatibility compatible>+-- with the union of the libraries\' pipeline layouts+--+-- - #VUID-VkGraphicsPipelineCreateInfo-conservativePointAndLineRasterization-06759#+-- If+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-conservativePointAndLineRasterization conservativePointAndLineRasterization>+-- is not supported; the pipeline is being created with+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-vertex-input vertex input state>+-- and+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>;+-- the pipeline does not include a geometry shader; and the value of+-- 'PipelineInputAssemblyStateCreateInfo'::@topology@ is+-- 'Vulkan.Core10.Enums.PrimitiveTopology.PRIMITIVE_TOPOLOGY_POINT_LIST',+-- 'Vulkan.Core10.Enums.PrimitiveTopology.PRIMITIVE_TOPOLOGY_LINE_LIST',+-- or+-- 'Vulkan.Core10.Enums.PrimitiveTopology.PRIMITIVE_TOPOLOGY_LINE_STRIP',+-- then+-- 'Vulkan.Extensions.VK_EXT_conservative_rasterization.PipelineRasterizationConservativeStateCreateInfoEXT'::@conservativeRasterizationMode@+-- /must/ be+-- 'Vulkan.Extensions.VK_EXT_conservative_rasterization.CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT'+--+-- - #VUID-VkGraphicsPipelineCreateInfo-conservativePointAndLineRasterization-06760#+-- If+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-conservativePointAndLineRasterization conservativePointAndLineRasterization>+-- is not supported, the pipeline is being created with+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>,+-- and the pipeline includes a geometry shader with either the+-- @OutputPoints@ or @OutputLineStrip@ execution modes,+-- 'Vulkan.Extensions.VK_EXT_conservative_rasterization.PipelineRasterizationConservativeStateCreateInfoEXT'::@conservativeRasterizationMode@+-- /must/ be+-- 'Vulkan.Extensions.VK_EXT_conservative_rasterization.CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT'+--+-- - #VUID-VkGraphicsPipelineCreateInfo-conservativePointAndLineRasterization-06761#+-- If+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-conservativePointAndLineRasterization conservativePointAndLineRasterization>+-- is not supported, the pipeline is being created with+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>,+-- and the pipeline includes a mesh shader with either the+-- @OutputPoints@ or @OutputLinesNV@ execution modes,+-- 'Vulkan.Extensions.VK_EXT_conservative_rasterization.PipelineRasterizationConservativeStateCreateInfoEXT'::@conservativeRasterizationMode@+-- /must/ be+-- 'Vulkan.Extensions.VK_EXT_conservative_rasterization.CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT'+--+-- - #VUID-VkGraphicsPipelineCreateInfo-pStages-06894# If the pipeline is+-- being created with+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>+-- but not+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>,+-- elements of @pStages@ /must/ not have @stage@ set to+-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'+--+-- - #VUID-VkGraphicsPipelineCreateInfo-pStages-06895# If the pipeline is+-- being created with+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>+-- but not+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>,+-- elements of @pStages@ /must/ not have @stage@ set to a shader stage+-- which participates in pre-rasterization+--+-- - #VUID-VkGraphicsPipelineCreateInfo-pStages-06896# If the pipeline is+-- being created with+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>,+-- all elements of @pStages@ /must/ have a @stage@ set to a shader+-- stage which participates in+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>+-- or+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>+--+-- - #VUID-VkGraphicsPipelineCreateInfo-stage-06897# If the pipeline is+-- being created with+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>+-- and\/or+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>,+-- any value of @stage@ /must/ not be set in more than one element of+-- @pStages@+--+-- == Valid Usage (Implicit)+--+-- - #VUID-VkGraphicsPipelineCreateInfo-sType-sType# @sType@ /must/ be+-- 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO'+--+-- - #VUID-VkGraphicsPipelineCreateInfo-pNext-pNext# Each @pNext@ member+-- of any structure (including this one) in the @pNext@ chain /must/ be+-- either @NULL@ or a pointer to a valid instance of+-- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD',+-- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GraphicsPipelineLibraryCreateInfoEXT',+-- 'Vulkan.Extensions.VK_NV_device_generated_commands.GraphicsPipelineShaderGroupsCreateInfoNV',+-- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.MultiviewPerViewAttributesInfoNVX',+-- 'Vulkan.Extensions.VK_AMD_pipeline_compiler_control.PipelineCompilerControlCreateInfoAMD',+-- 'Vulkan.Core13.Promoted_From_VK_EXT_pipeline_creation_feedback.PipelineCreationFeedbackCreateInfo',+-- 'Vulkan.Extensions.VK_EXT_discard_rectangles.PipelineDiscardRectangleStateCreateInfoEXT',+-- 'Vulkan.Extensions.VK_NV_fragment_shading_rate_enums.PipelineFragmentShadingRateEnumStateCreateInfoNV',+-- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.PipelineFragmentShadingRateStateCreateInfoKHR',+-- 'Vulkan.Extensions.VK_KHR_pipeline_library.PipelineLibraryCreateInfoKHR',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo',+-- 'Vulkan.Extensions.VK_NV_representative_fragment_test.PipelineRepresentativeFragmentTestStateCreateInfoNV',+-- or+-- 'Vulkan.Extensions.VK_EXT_pipeline_robustness.PipelineRobustnessCreateInfoEXT'+--+-- - #VUID-VkGraphicsPipelineCreateInfo-sType-unique# The @sType@ value+-- of each struct in the @pNext@ chain /must/ be unique+--+-- - #VUID-VkGraphicsPipelineCreateInfo-flags-parameter# @flags@ /must/+-- be a valid combination of+-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PipelineCreateFlagBits'+-- values+--+-- - #VUID-VkGraphicsPipelineCreateInfo-pDynamicState-parameter# If+-- @pDynamicState@ is not @NULL@, @pDynamicState@ /must/ be a valid+-- pointer to a valid 'PipelineDynamicStateCreateInfo' structure+--+-- - #VUID-VkGraphicsPipelineCreateInfo-commonparent# Each of+-- @basePipelineHandle@, @layout@, and @renderPass@ that are valid+-- handles of non-ignored parameters /must/ have been created,+-- allocated, or retrieved from the same 'Vulkan.Core10.Handles.Device'+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,+-- 'Vulkan.Core10.Handles.Pipeline', 'PipelineColorBlendStateCreateInfo',+-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PipelineCreateFlags',+-- 'PipelineDepthStencilStateCreateInfo', 'PipelineDynamicStateCreateInfo',+-- 'PipelineInputAssemblyStateCreateInfo',+-- 'Vulkan.Core10.Handles.PipelineLayout',+-- 'PipelineMultisampleStateCreateInfo',+-- 'PipelineRasterizationStateCreateInfo', 'PipelineShaderStageCreateInfo',+-- 'PipelineTessellationStateCreateInfo',+-- 'PipelineVertexInputStateCreateInfo', 'PipelineViewportStateCreateInfo',+-- 'Vulkan.Core10.Handles.RenderPass',+-- 'Vulkan.Core10.Enums.StructureType.StructureType',+-- 'createGraphicsPipelines'+data GraphicsPipelineCreateInfo (es :: [Type]) = GraphicsPipelineCreateInfo+ { -- | @pNext@ is @NULL@ or a pointer to a structure extending this structure.+ next :: Chain es+ , -- | @flags@ is a bitmask of+ -- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PipelineCreateFlagBits'+ -- specifying how the pipeline will be generated.+ flags :: PipelineCreateFlags+ , -- | @stageCount@ is the number of entries in the @pStages@ array.+ stageCount :: Word32+ , -- | @pStages@ is a pointer to an array of @stageCount@+ -- 'PipelineShaderStageCreateInfo' structures describing the set of the+ -- shader stages to be included in the graphics pipeline.+ stages :: Vector (SomeStruct PipelineShaderStageCreateInfo)+ , -- | @pVertexInputState@ is a pointer to a+ -- 'PipelineVertexInputStateCreateInfo' structure. It is ignored if the+ -- pipeline includes a mesh shader stage. It is ignored if the pipeline is+ -- created with the+ -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'+ -- dynamic state set.+ vertexInputState :: Maybe (SomeStruct PipelineVertexInputStateCreateInfo)+ , -- | @pInputAssemblyState@ is a pointer to a+ -- 'PipelineInputAssemblyStateCreateInfo' structure which determines input+ -- assembly behavior, as described in+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#drawing Drawing Commands>.+ -- It is ignored if the pipeline includes a mesh shader stage.+ --+ -- @pInputAssemblyState@ is a pointer to a+ -- 'PipelineInputAssemblyStateCreateInfo' structure which determines input+ -- assembly behavior for vertex shading, as described in+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#drawing Drawing Commands>.+ inputAssemblyState :: Maybe PipelineInputAssemblyStateCreateInfo+ , -- | @pTessellationState@ is a pointer to a+ -- 'PipelineTessellationStateCreateInfo' structure defining tessellation+ -- state used by tessellation shaders.+ tessellationState :: Maybe (SomeStruct PipelineTessellationStateCreateInfo)+ , -- | @pViewportState@ is a pointer to a 'PipelineViewportStateCreateInfo'+ -- structure defining viewport state used when rasterization is enabled.+ viewportState :: Maybe (SomeStruct PipelineViewportStateCreateInfo)+ , -- | @pRasterizationState@ is a pointer to a+ -- 'PipelineRasterizationStateCreateInfo' structure defining rasterization+ -- state.+ rasterizationState :: Maybe (SomeStruct PipelineRasterizationStateCreateInfo)+ , -- | @pMultisampleState@ is a pointer to a+ -- 'PipelineMultisampleStateCreateInfo' structure defining multisample+ -- state used when rasterization is enabled.+ multisampleState :: Maybe (SomeStruct PipelineMultisampleStateCreateInfo)+ , -- | @pDepthStencilState@ is a pointer to a+ -- 'PipelineDepthStencilStateCreateInfo' structure defining depth\/stencil+ -- state used when rasterization is enabled for depth or stencil+ -- attachments accessed during rendering.+ depthStencilState :: Maybe PipelineDepthStencilStateCreateInfo+ , -- | @pColorBlendState@ is a pointer to a 'PipelineColorBlendStateCreateInfo'+ -- structure defining color blend state used when rasterization is enabled+ -- for any color attachments accessed during rendering.+ colorBlendState :: Maybe (SomeStruct PipelineColorBlendStateCreateInfo)+ , -- | @pDynamicState@ is a pointer to a 'PipelineDynamicStateCreateInfo'+ -- structure defining which properties of the pipeline state object are+ -- dynamic and /can/ be changed independently of the pipeline state. This+ -- /can/ be @NULL@, which means no state in the pipeline is considered+ -- dynamic.+ dynamicState :: Maybe PipelineDynamicStateCreateInfo+ , -- | @layout@ is the description of binding locations used by both the+ -- pipeline and descriptor sets used with the pipeline.+ layout :: PipelineLayout+ , -- | @renderPass@ is a handle to a render pass object describing the+ -- environment in which the pipeline will be used. The pipeline /must/ only+ -- be used with a render pass instance compatible with the one provided.+ -- See+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-compatibility Render Pass Compatibility>+ -- for more information.+ renderPass :: RenderPass+ , -- | @subpass@ is the index of the subpass in the render pass where this+ -- pipeline will be used.+ subpass :: Word32+ , -- | @basePipelineHandle@ is a pipeline to derive from.+ basePipelineHandle :: Pipeline+ , -- | @basePipelineIndex@ is an index into the @pCreateInfos@ parameter to use+ -- as a pipeline to derive from.+ basePipelineIndex :: Int32+ }+ deriving (Typeable)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (GraphicsPipelineCreateInfo (es :: [Type]))+#endif+deriving instance Show (Chain es) => Show (GraphicsPipelineCreateInfo es)++instance Extensible GraphicsPipelineCreateInfo where+ extensibleTypeName = "GraphicsPipelineCreateInfo"+ setNext GraphicsPipelineCreateInfo{..} next' = GraphicsPipelineCreateInfo{next = next', ..}+ getNext GraphicsPipelineCreateInfo{..} = next+ extends :: forall e b proxy. Typeable e => proxy e -> (Extends GraphicsPipelineCreateInfo e => b) -> Maybe b+ extends _ f+ | Just Refl <- eqT @e @PipelineRobustnessCreateInfoEXT = Just f | Just Refl <- eqT @e @GraphicsPipelineLibraryCreateInfoEXT = Just f | Just Refl <- eqT @e @MultiviewPerViewAttributesInfoNVX = Just f | Just Refl <- eqT @e @AttachmentSampleCountInfoAMD = Just f
src/Vulkan/Core10/PipelineCache.hs view
@@ -114,7 +114,7 @@ -- If @flags@ of @pCreateInfo@ includes -- 'Vulkan.Core10.Enums.PipelineCacheCreateFlagBits.PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT', -- all commands that modify the returned pipeline cache object /must/ be--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#fundamentals-threadingbehavior externally synchronized>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fundamentals-threadingbehavior externally synchronized>. -- -- Note --@@ -166,7 +166,7 @@ -- containing initial parameters for the pipeline cache object. PipelineCacheCreateInfo -> -- | @pAllocator@ controls host memory allocation as described in the- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation> -- chapter. ("allocator" ::: Maybe AllocationCallbacks) -> io (PipelineCache)@@ -254,7 +254,7 @@ -> -- | @pipelineCache@ is the handle of the pipeline cache to destroy. PipelineCache -> -- | @pAllocator@ controls host memory allocation as described in the- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation> -- chapter. ("allocator" ::: Maybe AllocationCallbacks) -> io ()@@ -302,7 +302,7 @@ -- -- The initial bytes written to @pData@ /must/ be a header as described in -- the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-cache-header Pipeline Cache Header>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-cache-header Pipeline Cache Header> -- section. -- -- If @pDataSize@ is less than what is necessary to store this header,@@ -473,7 +473,7 @@ -- -- - #VUID-VkPipelineCacheCreateInfo-pipelineCreationCacheControl-02892# -- If the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-pipelineCreationCacheControl pipelineCreationCacheControl>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-pipelineCreationCacheControl pipelineCreationCacheControl> -- feature is not enabled, @flags@ /must/ not include -- 'Vulkan.Core10.Enums.PipelineCacheCreateFlagBits.PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT' --
src/Vulkan/Core10/PipelineLayout.hs view
@@ -118,7 +118,7 @@ -- specifying the state of the pipeline layout object. PipelineLayoutCreateInfo -> -- | @pAllocator@ controls host memory allocation as described in the- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation> -- chapter. ("allocator" ::: Maybe AllocationCallbacks) -> io (PipelineLayout)@@ -175,7 +175,7 @@ -- - #VUID-vkDestroyPipelineLayout-pipelineLayout-02004# @pipelineLayout@ -- /must/ not have been passed to any @vkCmd*@ command for any command -- buffers that are still in the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-lifecycle recording state>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-lifecycle recording state> -- when 'destroyPipelineLayout' is called -- -- == Valid Usage (Implicit)@@ -212,7 +212,7 @@ -> -- | @pipelineLayout@ is the pipeline layout to destroy. PipelineLayout -> -- | @pAllocator@ controls host memory allocation as described in the- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation> -- chapter. ("allocator" ::: Maybe AllocationCallbacks) -> io ()@@ -355,14 +355,16 @@ -- @pSetLayouts@ /must/ be less than or equal to -- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxPerStageDescriptorStorageBuffers@ ----- - #VUID-VkPipelineLayoutCreateInfo-descriptorType-03019# The total+-- - #VUID-VkPipelineLayoutCreateInfo-descriptorType-06939# The total -- number of descriptors in descriptor set layouts created without the -- 'Vulkan.Core10.Enums.DescriptorSetLayoutCreateFlagBits.DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT' -- bit set with a @descriptorType@ of -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER', -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_SAMPLED_IMAGE',+-- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER',+-- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_SAMPLE_WEIGHT_IMAGE_QCOM', -- and--- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER'+-- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_BLOCK_MATCH_IMAGE_QCOM' -- accessible to any given shader stage across all elements of -- @pSetLayouts@ /must/ be less than or equal to -- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxPerStageDescriptorSampledImages@@@ -667,17 +669,16 @@ -- 'Vulkan.Core10.Enums.SamplerCreateFlagBits.SAMPLER_CREATE_SUBSAMPLED_COARSE_RECONSTRUCTION_BIT_EXT' -- across all shader stages and across all elements of @pSetLayouts@ -- /must/ be less than or equal to--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxDescriptorSetSubsampledSamplers ::maxDescriptorSetSubsampledSamplers>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxDescriptorSetSubsampledSamplers ::maxDescriptorSetSubsampledSamplers> -- -- - #VUID-VkPipelineLayoutCreateInfo-pSetLayouts-04606# Any element of -- @pSetLayouts@ /must/ not have been created with the -- 'Vulkan.Core10.Enums.DescriptorSetLayoutCreateFlagBits.DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_VALVE' -- bit set ----- - #VUID-VkPipelineLayoutCreateInfo-flags-06562# If @flags@: does not--- include--- 'Vulkan.Core10.Enums.PipelineLayoutCreateFlagBits.PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT',--- elements of @pSetLayouts@ /must/ be valid+-- - #VUID-VkPipelineLayoutCreateInfo-graphicsPipelineLibrary-06753# If+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-graphicsPipelineLibrary graphicsPipelineLibrary>+-- is not enabled, elements of @pSetLayouts@ /must/ be valid -- 'Vulkan.Core10.Handles.DescriptorSetLayout' objects -- -- == Valid Usage (Implicit)@@ -712,7 +713,9 @@ -- 'PushConstantRange', 'Vulkan.Core10.Enums.StructureType.StructureType', -- 'createPipelineLayout' data PipelineLayoutCreateInfo = PipelineLayoutCreateInfo- { -- | @flags@ is reserved for future use.+ { -- | @flags@ is a bitmask of+ -- 'Vulkan.Core10.Enums.PipelineLayoutCreateFlagBits.PipelineLayoutCreateFlagBits'+ -- specifying options for pipeline layout creation. flags :: PipelineLayoutCreateFlags , -- | @pSetLayouts@ is a pointer to an array of -- 'Vulkan.Core10.Handles.DescriptorSetLayout' objects.
src/Vulkan/Core10/Query.hs view
@@ -144,7 +144,7 @@ -- containing the number and type of queries to be managed by the pool. (QueryPoolCreateInfo a) -> -- | @pAllocator@ controls host memory allocation as described in the- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation> -- chapter. ("allocator" ::: Maybe AllocationCallbacks) -> io (QueryPool)@@ -241,7 +241,7 @@ -> -- | @queryPool@ is the query pool to destroy. QueryPool -> -- | @pAllocator@ controls host memory allocation as described in the- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation> -- chapter. ("allocator" ::: Maybe AllocationCallbacks) -> io ()@@ -269,44 +269,72 @@ -- -- = Description ----- The range of queries read is defined by [@firstQuery@, @firstQuery@ +--- @queryCount@ - 1]. For pipeline statistics queries, each query index in--- the pool contains one integer value for each bit that is enabled in--- 'QueryPoolCreateInfo'::@pipelineStatistics@ when the pool is created.+-- Any results written for a query are written according to+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#queries-operation-memorylayout a layout dependent on the query type>. -- -- If no bits are set in @flags@, and all requested queries are in the -- available state, results are written as an array of 32-bit unsigned -- integer values. The behavior when not all queries are available, is -- described--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#queries-wait-bit-not-set below>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#queries-wait-bit-not-set below>. ----- If 'Vulkan.Core10.Enums.QueryResultFlagBits.QUERY_RESULT_64_BIT' is not--- set and the result overflows a 32-bit value, the value /may/ either wrap--- or saturate. Similarly, if--- 'Vulkan.Core10.Enums.QueryResultFlagBits.QUERY_RESULT_64_BIT' is set and--- the result overflows a 64-bit value, the value /may/ either wrap or--- saturate.+-- If+-- 'Vulkan.Core10.Enums.QueryResultFlagBits.QUERY_RESULT_WITH_AVAILABILITY_BIT'+-- is set, results for all queries in @queryPool@ identified by+-- @firstQuery@ and @queryCount@ are copied to @pData@, along with an extra+-- availability value written directly after the results of each query and+-- interpreted as an unsigned integer. A value of zero indicates that the+-- results are not yet available, otherwise the query is complete and+-- results are available. ----- If 'Vulkan.Core10.Enums.QueryResultFlagBits.QUERY_RESULT_WAIT_BIT' is--- set, Vulkan will wait for each query to be in the available state before--- retrieving the numerical results for that query. In this case,--- 'getQueryPoolResults' is guaranteed to succeed and return--- 'Vulkan.Core10.Enums.Result.SUCCESS' if the queries become available in--- a finite time (i.e. if they have been issued and not reset). If queries--- will never finish (e.g. due to being reset but not issued), then--- 'getQueryPoolResults' /may/ not return in finite time.+-- If @VK_QUERY_RESULT_WITH_STATUS_BIT_KHR@ is set, results for all queries+-- in @queryPool@ identified by @firstQuery@ and @queryCount@ are copied to+-- @pData@, along with an extra status value written directly after the+-- results of each query and interpreted as a signed integer. A value of+-- zero indicates that the results are not yet available. Positive values+-- indicate that the operations within the query completed successfully,+-- and the query results are valid. Negative values indicate that the+-- operations within the query completed unsuccessfully. ----- If 'Vulkan.Core10.Enums.QueryResultFlagBits.QUERY_RESULT_WAIT_BIT' and--- 'Vulkan.Core10.Enums.QueryResultFlagBits.QUERY_RESULT_PARTIAL_BIT' are--- both not set then no result values are written to @pData@ for queries--- that are in the unavailable state at the time of the call, and--- 'getQueryPoolResults' returns 'Vulkan.Core10.Enums.Result.NOT_READY'.--- However, availability state is still written to @pData@ for those--- queries if--- 'Vulkan.Core10.Enums.QueryResultFlagBits.QUERY_RESULT_WITH_AVAILABILITY_BIT'--- is set.+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueryResultStatusKHR VkQueryResultStatusKHR>+-- defines specific meaning for values returned here, though+-- implementations are free to return other values. --+-- Results for any available query written by this command are final and+-- represent the final result of the query. If+-- 'Vulkan.Core10.Enums.QueryResultFlagBits.QUERY_RESULT_PARTIAL_BIT' is+-- set, then for any query that is unavailable, an intermediate result+-- between zero and the final result value is written for that query.+-- Otherwise, any result written by this command is undefined.+--+-- If 'Vulkan.Core10.Enums.QueryResultFlagBits.QUERY_RESULT_64_BIT' is set,+-- results and availability or status values for all queries are written as+-- an array of 64-bit values. If the @queryPool@ was created with+-- 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PERFORMANCE_QUERY_KHR',+-- results for each query are written as an array of the type indicated by+-- 'Vulkan.Extensions.VK_KHR_performance_query.PerformanceCounterKHR'::@storage@+-- for the counter being queried. Otherwise, results and availability or+-- status values are written as an array of 32-bit values. If an unsigned+-- integer query’s value overflows the result type, the value /may/ either+-- wrap or saturate. If a signed integer query’s value overflows the result+-- type, the value is undefined. If a floating point query’s value is not+-- representable as the result type, the value is undefined.+-- -- If 'Vulkan.Core10.Enums.QueryResultFlagBits.QUERY_RESULT_WAIT_BIT' is+-- set, this command defines an execution dependency with any earlier+-- commands that writes one of the identified queries. The first+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>+-- includes all instances of+-- 'Vulkan.Core10.CommandBufferBuilding.cmdEndQuery',+-- 'Vulkan.Extensions.VK_EXT_transform_feedback.cmdEndQueryIndexedEXT',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.cmdWriteTimestamp2',+-- and 'Vulkan.Core10.CommandBufferBuilding.cmdWriteTimestamp' that+-- reference any query in @queryPool@ indicated by @firstQuery@ and+-- @queryCount@. The second+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>+-- includes the host operations of this command.+--+-- If 'Vulkan.Core10.Enums.QueryResultFlagBits.QUERY_RESULT_WAIT_BIT' is -- not set, 'getQueryPoolResults' /may/ return -- 'Vulkan.Core10.Enums.Result.NOT_READY' if there are queries in the -- unavailable state.@@ -340,33 +368,14 @@ -- called or the 'Vulkan.Core10.CommandBufferBuilding.cmdResetQueryPool' -- command has been executed since the last use of the query. --+-- A similar situation can arise with the+-- @VK_QUERY_RESULT_WITH_STATUS_BIT_KHR@ flag.+-- -- Note -- -- Applications /can/ double-buffer query pool usage, with a pool per -- frame, and reset queries at the end of the frame in which they are read. ----- If 'Vulkan.Core10.Enums.QueryResultFlagBits.QUERY_RESULT_PARTIAL_BIT' is--- set, 'Vulkan.Core10.Enums.QueryResultFlagBits.QUERY_RESULT_WAIT_BIT' is--- not set, and the query’s status is unavailable, an intermediate result--- value between zero and the final result value is written to @pData@ for--- that query.------ If--- 'Vulkan.Core10.Enums.QueryResultFlagBits.QUERY_RESULT_WITH_AVAILABILITY_BIT'--- is set, the final integer value written for each query is non-zero if--- the query’s status was available or zero if the status was unavailable.--- When--- 'Vulkan.Core10.Enums.QueryResultFlagBits.QUERY_RESULT_WITH_AVAILABILITY_BIT'--- is used, implementations /must/ guarantee that if they return a non-zero--- availability value then the numerical results /must/ be valid, assuming--- the results are not reset by a subsequent command.------ Note------ Satisfying this guarantee /may/ require careful ordering by the--- application, e.g. to read the availability status before reading the--- results.--- -- == Valid Usage -- -- - #VUID-vkGetQueryPoolResults-firstQuery-00813# @firstQuery@ /must/ be@@ -403,7 +412,7 @@ -- -- - #VUID-vkGetQueryPoolResults-dataSize-00817# @dataSize@ /must/ be -- large enough to contain the result of each query, as described--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#queries-operation-memorylayout here>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#queries-operation-memorylayout here> -- -- - #VUID-vkGetQueryPoolResults-queryType-00818# If the @queryType@ used -- to create @queryPool@ was@@ -426,6 +435,19 @@ -- retrieved via a call to -- 'Vulkan.Extensions.VK_KHR_performance_query.getPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR' --+-- - #VUID-vkGetQueryPoolResults-queryType-04810# If the @queryType@ used+-- to create @queryPool@ was @VK_QUERY_TYPE_RESULT_STATUS_ONLY_KHR@,+-- @flags@ /must/ include @VK_QUERY_RESULT_WITH_STATUS_BIT_KHR@+--+-- - #VUID-vkGetQueryPoolResults-flags-04811# If @flags@ includes+-- @VK_QUERY_RESULT_WITH_STATUS_BIT_KHR@, it /must/ not include+-- 'Vulkan.Core10.Enums.QueryResultFlagBits.QUERY_RESULT_WITH_AVAILABILITY_BIT'+--+-- - #VUID-vkGetQueryPoolResults-queryType-06900# If the @queryType@ used+-- to create @queryPool@ was+-- 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PERFORMANCE_QUERY_KHR',+-- @flags@ /must/ not contain @VK_QUERY_RESULT_WITH_STATUS_BIT_KHR@+-- -- == Valid Usage (Implicit) -- -- - #VUID-vkGetQueryPoolResults-device-parameter# @device@ /must/ be a@@ -515,10 +537,24 @@ -- == Valid Usage -- -- - #VUID-VkQueryPoolCreateInfo-queryType-00791# If the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-pipelineStatisticsQuery pipeline statistics queries>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-pipelineStatisticsQuery pipelineStatisticsQuery> -- feature is not enabled, @queryType@ /must/ not be -- 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PIPELINE_STATISTICS' --+-- - #VUID-VkQueryPoolCreateInfo-meshShaderQueries-07068# If the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-meshShaderQueries meshShaderQueries>+-- feature is not enabled, @queryType@ /must/ not be+-- 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_MESH_PRIMITIVES_GENERATED_EXT'+--+-- - #VUID-VkQueryPoolCreateInfo-meshShaderQueries-07069# If the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-meshShaderQueries meshShaderQueries>+-- feature is not enabled, and @queryType@ is+-- 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PIPELINE_STATISTICS',+-- @pipelineStatistics@ /must/ not contain+-- 'Vulkan.Core10.Enums.QueryPipelineStatisticFlagBits.QUERY_PIPELINE_STATISTIC_TASK_SHADER_INVOCATIONS_BIT_EXT'+-- or+-- 'Vulkan.Core10.Enums.QueryPipelineStatisticFlagBits.QUERY_PIPELINE_STATISTIC_MESH_SHADER_INVOCATIONS_BIT_EXT'+-- -- - #VUID-VkQueryPoolCreateInfo-queryType-00792# If @queryType@ is -- 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PIPELINE_STATISTICS', -- @pipelineStatistics@ /must/ be a valid combination of@@ -544,12 +580,12 @@ -- @NULL@ or a pointer to a valid instance of -- 'Vulkan.Extensions.VK_KHR_performance_query.QueryPoolPerformanceCreateInfoKHR', -- 'Vulkan.Extensions.VK_INTEL_performance_query.QueryPoolPerformanceQueryCreateInfoINTEL',--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoDecodeH264ProfileEXT VkVideoDecodeH264ProfileEXT>,--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoDecodeH265ProfileEXT VkVideoDecodeH265ProfileEXT>,--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH264ProfileEXT VkVideoEncodeH264ProfileEXT>,--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH265ProfileEXT VkVideoEncodeH265ProfileEXT>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoDecodeH264ProfileInfoEXT VkVideoDecodeH264ProfileInfoEXT>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoDecodeH265ProfileInfoEXT VkVideoDecodeH265ProfileInfoEXT>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH264ProfileInfoEXT VkVideoEncodeH264ProfileInfoEXT>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH265ProfileInfoEXT VkVideoEncodeH265ProfileInfoEXT>, -- or--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoProfileKHR VkVideoProfileKHR>+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoProfileInfoKHR VkVideoProfileInfoKHR> -- -- - #VUID-VkQueryPoolCreateInfo-sType-unique# The @sType@ value of each -- struct in the @pNext@ chain /must/ be unique@@ -580,7 +616,7 @@ -- 'Vulkan.Core10.Enums.QueryPipelineStatisticFlagBits.QueryPipelineStatisticFlagBits' -- specifying which counters will be returned in queries on the new pool, -- as described below in- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#queries-pipestats>.+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#queries-pipestats>. pipelineStatistics :: QueryPipelineStatisticFlags } deriving (Typeable)
src/Vulkan/Core10/Queue.hs view
@@ -53,6 +53,7 @@ import Vulkan.CStruct.Extends (forgetExtensions) import Vulkan.CStruct.Extends (pokeSomeCStruct) import Vulkan.NamedType ((:::))+import {-# SOURCE #-} Vulkan.Extensions.VK_SEC_amigo_profiling (AmigoProfilingSubmitInfoSEC) import Vulkan.CStruct.Extends (Chain) import Vulkan.Core10.Handles (CommandBuffer_T) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_external_semaphore_win32 (D3D12FenceSubmitInfoKHR)@@ -177,7 +178,7 @@ -- = Description -- -- 'queueSubmit' is a--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#devsandqueues-submission queue submission command>,+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#devsandqueues-submission queue submission command>, -- with each batch defined by an element of @pSubmits@. Batches begin -- execution in the order they appear in @pSubmits@, but /may/ complete out -- of order.@@ -186,39 +187,39 @@ -- additional ordering constraints compared to other submission commands, -- with dependencies involving previous and subsequent queue operations. -- Information about these additional constraints can be found in the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-semaphores semaphore>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-semaphores semaphore> -- and--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-fences fence>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-fences fence> -- sections of--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization the synchronization chapter>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization the synchronization chapter>. -- -- Details on the interaction of @pWaitDstStageMask@ with synchronization -- are described in the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-semaphores-waiting semaphore wait operation>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-semaphores-waiting semaphore wait operation> -- section of--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization the synchronization chapter>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization the synchronization chapter>. -- -- The order that batches appear in @pSubmits@ is used to determine--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-submission-order submission order>,+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-submission-order submission order>, -- and thus all the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-implicit implicit ordering guarantees>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-implicit implicit ordering guarantees> -- that respect it. Other than these implicit ordering guarantees and any--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization explicit synchronization primitives>,+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization explicit synchronization primitives>, -- these batches /may/ overlap or otherwise execute out of order. -- -- If any command buffer submitted to this queue is in the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-lifecycle executable state>,+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-lifecycle executable state>, -- it is moved to the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-lifecycle pending state>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-lifecycle pending state>. -- Once execution of all submissions of a command buffer complete, it moves -- from the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-lifecycle pending state>,+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-lifecycle pending state>, -- back to the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-lifecycle executable state>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-lifecycle executable state>. -- If a command buffer was recorded with the -- 'Vulkan.Core10.Enums.CommandBufferUsageFlagBits.COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT' -- flag, it instead moves to the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-lifecycle invalid state>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-lifecycle invalid state>. -- -- If 'queueSubmit' fails, it /may/ return -- 'Vulkan.Core10.Enums.Result.ERROR_OUT_OF_HOST_MEMORY' or@@ -230,7 +231,7 @@ -- way that the implementation is unable to make that guarantee, the -- implementation /must/ return -- 'Vulkan.Core10.Enums.Result.ERROR_DEVICE_LOST'. See--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#devsandqueues-lost-device Lost Device>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#devsandqueues-lost-device Lost Device>. -- -- == Valid Usage --@@ -257,7 +258,7 @@ -- in any element of the @pWaitDstStageMask@ member of any element of -- @pSubmits@ /must/ be a pipeline stage supported by one of the -- capabilities of @queue@, as specified in the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages-supported table of supported pipeline stages>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages-supported table of supported pipeline stages> -- -- - #VUID-vkQueueSubmit-pSignalSemaphores-00067# Each binary semaphore -- element of the @pSignalSemaphores@ member of any element of@@ -281,28 +282,28 @@ -- - #VUID-vkQueueSubmit-pCommandBuffers-00070# Each element of the -- @pCommandBuffers@ member of each element of @pSubmits@ /must/ be in -- the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-lifecycle pending or executable state>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-lifecycle pending or executable state> -- -- - #VUID-vkQueueSubmit-pCommandBuffers-00071# If any element of the -- @pCommandBuffers@ member of any element of @pSubmits@ was not -- recorded with the -- 'Vulkan.Core10.Enums.CommandBufferUsageFlagBits.COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT', -- it /must/ not be in the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-lifecycle pending state>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-lifecycle pending state> -- -- - #VUID-vkQueueSubmit-pCommandBuffers-00072# Any--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-secondary secondary command buffers recorded>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-secondary secondary command buffers recorded> -- into any element of the @pCommandBuffers@ member of any element of -- @pSubmits@ /must/ be in the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-lifecycle pending or executable state>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-lifecycle pending or executable state> -- -- - #VUID-vkQueueSubmit-pCommandBuffers-00073# If any--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-secondary secondary command buffers recorded>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-secondary secondary command buffers recorded> -- into any element of the @pCommandBuffers@ member of any element of -- @pSubmits@ was not recorded with the -- 'Vulkan.Core10.Enums.CommandBufferUsageFlagBits.COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT', -- it /must/ not be in the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-lifecycle pending state>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-lifecycle pending state> -- -- - #VUID-vkQueueSubmit-pCommandBuffers-00074# Each element of the -- @pCommandBuffers@ member of each element of @pSubmits@ /must/ have@@ -311,13 +312,13 @@ -- -- - #VUID-vkQueueSubmit-pSubmits-02207# If any element of -- @pSubmits->pCommandBuffers@ includes a--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-queue-transfers-acquire Queue Family Transfer Acquire Operation>,+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-queue-transfers-acquire Queue Family Transfer Acquire Operation>, -- there /must/ exist a previously submitted--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-queue-transfers-release Queue Family Transfer Release Operation>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-queue-transfers-release Queue Family Transfer Release Operation> -- on a queue in the queue family identified by the acquire operation, -- with parameters matching the acquire operation as defined in the -- definition of such--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-queue-transfers-acquire acquire operations>,+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-queue-transfers-acquire acquire operations>, -- and which happens-before the acquire operation -- -- - #VUID-vkQueueSubmit-pCommandBuffers-03220# If a command recorded@@ -326,7 +327,7 @@ -- @queryPool@ was created with a @queryType@ of -- 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PERFORMANCE_QUERY_KHR', -- the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#profiling-lock profiling lock>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#profiling-lock profiling lock> -- /must/ have been held continuously on the -- 'Vulkan.Core10.Handles.Device' that @queue@ was retrieved from, -- throughout recording of those command buffers@@ -377,11 +378,11 @@ -- -- \' ----- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | - | - | Any |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================++-- | - | - | - | Any |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+ -- -- == Return Codes --@@ -412,7 +413,7 @@ -> -- | @fence@ is an /optional/ handle to a fence to be signaled once all -- submitted command buffers have completed execution. If @fence@ is not -- 'Vulkan.Core10.APIConstants.NULL_HANDLE', it defines a- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-fences-signaling fence signal operation>.+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-fences-signaling fence signal operation>. Fence -> io () queueSubmit queue submits fence = liftIO . evalContT $ do@@ -458,7 +459,7 @@ -- -- 'queueWaitIdle' is equivalent to having submitted a valid fence to every -- previously executed--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#devsandqueues-submission queue submission command>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#devsandqueues-submission queue submission command> -- that accepts a fence, then waiting for all of those fences to signal -- using 'Vulkan.Core10.Fence.waitForFences' with an infinite timeout and -- @waitAll@ set to 'Vulkan.Core10.FundamentalTypes.TRUE'.@@ -476,11 +477,11 @@ -- -- \' ----- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | - | - | Any |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================++-- | - | - | - | Any |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+ -- -- == Return Codes --@@ -599,54 +600,54 @@ -- -- The order that command buffers appear in @pCommandBuffers@ is used to -- determine--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-submission-order submission order>,+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-submission-order submission order>, -- and thus all the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-implicit implicit ordering guarantees>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-implicit implicit ordering guarantees> -- that respect it. Other than these implicit ordering guarantees and any--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization explicit synchronization primitives>,+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization explicit synchronization primitives>, -- these command buffers /may/ overlap or otherwise execute out of order. -- -- == Valid Usage -- -- - #VUID-VkSubmitInfo-pWaitDstStageMask-04090# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryShader geometry shaders>+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryShader geometryShader> -- feature is not enabled, @pWaitDstStageMask@ /must/ not contain -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_GEOMETRY_SHADER_BIT' -- -- - #VUID-VkSubmitInfo-pWaitDstStageMask-04091# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShader tessellation shaders>+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShader tessellationShader> -- feature is not enabled, @pWaitDstStageMask@ /must/ not contain -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT' -- or -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT' -- -- - #VUID-VkSubmitInfo-pWaitDstStageMask-04092# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-conditionalRendering conditional rendering>+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-conditionalRendering conditionalRendering> -- feature is not enabled, @pWaitDstStageMask@ /must/ not contain -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT' -- -- - #VUID-VkSubmitInfo-pWaitDstStageMask-04093# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-fragmentDensityMap fragment density map>+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-fragmentDensityMap fragmentDensityMap> -- feature is not enabled, @pWaitDstStageMask@ /must/ not contain -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT' -- -- - #VUID-VkSubmitInfo-pWaitDstStageMask-04094# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-transformFeedback transform feedback>+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-transformFeedback transformFeedback> -- feature is not enabled, @pWaitDstStageMask@ /must/ not contain -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT' -- -- - #VUID-VkSubmitInfo-pWaitDstStageMask-04095# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader mesh shaders>+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader> -- feature is not enabled, @pWaitDstStageMask@ /must/ not contain--- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_MESH_SHADER_BIT_NV'+-- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_MESH_SHADER_BIT_EXT' -- -- - #VUID-VkSubmitInfo-pWaitDstStageMask-04096# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader task shaders>+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader> -- feature is not enabled, @pWaitDstStageMask@ /must/ not contain--- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TASK_SHADER_BIT_NV'+-- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TASK_SHADER_BIT_EXT' -- -- - #VUID-VkSubmitInfo-pWaitDstStageMask-04097# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shading rate image>+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage> -- feature is not enabled, @pWaitDstStageMask@ /must/ not contain -- 'Vulkan.Extensions.VK_NV_shading_rate_image.PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV' --@@ -696,7 +697,7 @@ -- 'Vulkan.Core12.Promoted_From_VK_KHR_timeline_semaphore.TimelineSemaphoreSubmitInfo'::@pSignalSemaphoreValues@ -- /must/ have a value greater than the current value of the semaphore -- when the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-semaphores-signaling semaphore signal operation>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-semaphores-signaling semaphore signal operation> -- is executed -- -- - #VUID-VkSubmitInfo-pWaitSemaphores-03243# For each element of@@ -708,7 +709,7 @@ -- /must/ have a value which does not differ from the current value of -- the semaphore or the value of any outstanding semaphore wait or -- signal operation on that semaphore by more than--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxTimelineSemaphoreValueDifference maxTimelineSemaphoreValueDifference>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxTimelineSemaphoreValueDifference maxTimelineSemaphoreValueDifference> -- -- - #VUID-VkSubmitInfo-pSignalSemaphores-03244# For each element of -- @pSignalSemaphores@ created with a@@ -719,7 +720,7 @@ -- /must/ have a value which does not differ from the current value of -- the semaphore or the value of any outstanding semaphore wait or -- signal operation on that semaphore by more than--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxTimelineSemaphoreValueDifference maxTimelineSemaphoreValueDifference>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxTimelineSemaphoreValueDifference maxTimelineSemaphoreValueDifference> -- -- - #VUID-VkSubmitInfo-pNext-04120# If the @pNext@ chain of this -- structure does not include a@@ -737,33 +738,33 @@ -- -- - #VUID-VkSubmitInfo-pCommandBuffers-06193# If @pCommandBuffers@ -- contains any--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-suspension resumed render pass instances>,+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-suspension resumed render pass instances>, -- they /must/ be suspended by a render pass instance earlier in -- submission order within @pCommandBuffers@ -- -- - #VUID-VkSubmitInfo-pCommandBuffers-06014# If @pCommandBuffers@ -- contains any--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-suspension suspended render pass instances>,+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-suspension suspended render pass instances>, -- they /must/ be resumed by a render pass instance later in submission -- order within @pCommandBuffers@ -- -- - #VUID-VkSubmitInfo-pCommandBuffers-06015# If @pCommandBuffers@ -- contains any--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-suspension suspended render pass instances>,+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-suspension suspended render pass instances>, -- there /must/ be no action or synchronization commands between that -- render pass instance and the render pass instance that resumes it -- -- - #VUID-VkSubmitInfo-pCommandBuffers-06016# If @pCommandBuffers@ -- contains any--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-suspension suspended render pass instances>,+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-suspension suspended render pass instances>, -- there /must/ be no render pass instances between that render pass -- instance and the render pass instance that resumes it -- -- - #VUID-VkSubmitInfo-variableSampleLocations-06017# If the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-variableSampleLocations variableSampleLocations>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-variableSampleLocations variableSampleLocations> -- limit is not supported, and any element of @pCommandBuffers@ -- contains any--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-suspension suspended render pass instances>,+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-suspension suspended render pass instances>, -- where a graphics pipeline has been bound, any pipelines bound in the -- render pass instance that resumes it, or any subsequent render pass -- instances that resume from that one and so on, /must/ use the same@@ -777,6 +778,7 @@ -- - #VUID-VkSubmitInfo-pNext-pNext# Each @pNext@ member of any structure -- (including this one) in the @pNext@ chain /must/ be either @NULL@ or -- a pointer to a valid instance of+-- 'Vulkan.Extensions.VK_SEC_amigo_profiling.AmigoProfilingSubmitInfoSEC', -- 'Vulkan.Extensions.VK_KHR_external_semaphore_win32.D3D12FenceSubmitInfoKHR', -- 'Vulkan.Core11.Promoted_From_VK_KHR_device_group.DeviceGroupSubmitInfo', -- 'Vulkan.Extensions.VK_KHR_performance_query.PerformanceQuerySubmitInfoKHR',@@ -833,7 +835,7 @@ -- 'Vulkan.Core10.Handles.Semaphore' handles upon which to wait before the -- command buffers for this batch begin execution. If semaphores to wait on -- are provided, they define a- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-semaphores-waiting semaphore wait operation>.+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-semaphores-waiting semaphore wait operation>. waitSemaphores :: Vector Semaphore , -- | @pWaitDstStageMask@ is a pointer to an array of pipeline stages at which -- each corresponding semaphore wait will occur.@@ -845,7 +847,7 @@ -- 'Vulkan.Core10.Handles.Semaphore' handles which will be signaled when -- the command buffers for this batch have completed execution. If -- semaphores to be signaled are provided, they define a- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-semaphores-signaling semaphore signal operation>.+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-semaphores-signaling semaphore signal operation>. signalSemaphores :: Vector Semaphore } deriving (Typeable)@@ -860,6 +862,7 @@ getNext SubmitInfo{..} = next extends :: forall e b proxy. Typeable e => proxy e -> (Extends SubmitInfo e => b) -> Maybe b extends _ f+ | Just Refl <- eqT @e @AmigoProfilingSubmitInfoSEC = Just f | Just Refl <- eqT @e @PerformanceQuerySubmitInfoKHR = Just f | Just Refl <- eqT @e @TimelineSemaphoreSubmitInfo = Just f | Just Refl <- eqT @e @ProtectedSubmitInfo = Just f
src/Vulkan/Core10/QueueSemaphore.hs view
@@ -51,11 +51,13 @@ import Vulkan.Dynamic (DeviceCmds(pVkCreateSemaphore)) import Vulkan.Dynamic (DeviceCmds(pVkDestroySemaphore)) import Vulkan.Core10.Handles (Device_T)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_metal_objects (ExportMetalObjectCreateInfoEXT) import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_external_semaphore (ExportSemaphoreCreateInfo) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_external_semaphore_win32 (ExportSemaphoreWin32HandleInfoKHR) import Vulkan.CStruct.Extends (Extends) import Vulkan.CStruct.Extends (Extendss) import Vulkan.CStruct.Extends (Extensible(..))+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_metal_objects (ImportMetalSharedEventInfoEXT) import Vulkan.CStruct.Extends (PeekChain) import Vulkan.CStruct.Extends (PeekChain(..)) import Vulkan.CStruct.Extends (PokeChain)@@ -123,7 +125,7 @@ -- containing information about how the semaphore is to be created. (SemaphoreCreateInfo a) -> -- | @pAllocator@ controls host memory allocation as described in the- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation> -- chapter. ("allocator" ::: Maybe AllocationCallbacks) -> io (Semaphore)@@ -212,7 +214,7 @@ -> -- | @semaphore@ is the handle of the semaphore to destroy. Semaphore -> -- | @pAllocator@ controls host memory allocation as described in the- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation> -- chapter. ("allocator" ::: Maybe AllocationCallbacks) -> io ()@@ -231,6 +233,14 @@ -- | VkSemaphoreCreateInfo - Structure specifying parameters of a newly -- created semaphore --+-- == Valid Usage+--+-- - #VUID-VkSemaphoreCreateInfo-pNext-06789# If the @pNext@ chain+-- includes a+-- 'Vulkan.Extensions.VK_EXT_metal_objects.ExportMetalObjectCreateInfoEXT'+-- structure, its @exportObjectType@ member /must/ be+-- 'Vulkan.Extensions.VK_EXT_metal_objects.EXPORT_METAL_OBJECT_TYPE_METAL_SHARED_EVENT_BIT_EXT'.+-- -- == Valid Usage (Implicit) -- -- - #VUID-VkSemaphoreCreateInfo-sType-sType# @sType@ /must/ be@@ -239,13 +249,17 @@ -- - #VUID-VkSemaphoreCreateInfo-pNext-pNext# Each @pNext@ member of any -- structure (including this one) in the @pNext@ chain /must/ be either -- @NULL@ or a pointer to a valid instance of+-- 'Vulkan.Extensions.VK_EXT_metal_objects.ExportMetalObjectCreateInfoEXT', -- 'Vulkan.Core11.Promoted_From_VK_KHR_external_semaphore.ExportSemaphoreCreateInfo', -- 'Vulkan.Extensions.VK_KHR_external_semaphore_win32.ExportSemaphoreWin32HandleInfoKHR',+-- 'Vulkan.Extensions.VK_EXT_metal_objects.ImportMetalSharedEventInfoEXT', -- or -- 'Vulkan.Core12.Promoted_From_VK_KHR_timeline_semaphore.SemaphoreTypeCreateInfo' -- -- - #VUID-VkSemaphoreCreateInfo-sType-unique# The @sType@ value of each--- struct in the @pNext@ chain /must/ be unique+-- struct in the @pNext@ chain /must/ be unique, with the exception of+-- structures of type+-- 'Vulkan.Extensions.VK_EXT_metal_objects.ExportMetalObjectCreateInfoEXT' -- -- - #VUID-VkSemaphoreCreateInfo-flags-zerobitmask# @flags@ /must/ be @0@ --@@ -272,6 +286,8 @@ getNext SemaphoreCreateInfo{..} = next extends :: forall e b proxy. Typeable e => proxy e -> (Extends SemaphoreCreateInfo e => b) -> Maybe b extends _ f+ | Just Refl <- eqT @e @ImportMetalSharedEventInfoEXT = Just f+ | Just Refl <- eqT @e @ExportMetalObjectCreateInfoEXT = Just f | Just Refl <- eqT @e @SemaphoreTypeCreateInfo = Just f | Just Refl <- eqT @e @ExportSemaphoreWin32HandleInfoKHR = Just f | Just Refl <- eqT @e @ExportSemaphoreCreateInfo = Just f
src/Vulkan/Core10/Sampler.hs view
@@ -154,7 +154,7 @@ -- the state of the sampler object. (SamplerCreateInfo a) -> -- | @pAllocator@ controls host memory allocation as described in the- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation> -- chapter. ("allocator" ::: Maybe AllocationCallbacks) -> io (Sampler)@@ -243,7 +243,7 @@ -> -- | @sampler@ is the sampler to destroy. Sampler -> -- | @pAllocator@ controls host memory allocation as described in the- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation> -- chapter. ("allocator" ::: Maybe AllocationCallbacks) -> io ()@@ -285,7 +285,7 @@ -- 'Vulkan.Core10.Enums.Filter.FILTER_NEAREST', respectively. -- -- Note that using a @maxLod@ of zero would cause--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#textures-texel-filtering magnification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#textures-texel-filtering magnification> -- to always be performed, and the @magFilter@ to always be used. This is -- valid, just not an exact match for OpenGL behavior. Clamping the maximum -- LOD to 0.25 allows the λ value to be non-zero and minification to be@@ -295,7 +295,7 @@ -- -- The maximum number of sampler objects which /can/ be simultaneously -- created on a device is implementation-dependent and specified by the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxSamplerAllocationCount maxSamplerAllocationCount>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxSamplerAllocationCount maxSamplerAllocationCount> -- member of the 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits' -- structure. --@@ -329,7 +329,7 @@ -- than or equal to @minLod@ -- -- - #VUID-VkSamplerCreateInfo-anisotropyEnable-01070# If the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-samplerAnisotropy anisotropic sampling>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-samplerAnisotropy samplerAnisotropy> -- feature is not enabled, @anisotropyEnable@ /must/ be -- 'Vulkan.Core10.FundamentalTypes.FALSE' --@@ -340,9 +340,9 @@ -- inclusive -- -- - #VUID-VkSamplerCreateInfo-minFilter-01645# If--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion> -- is enabled and the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#potential-format-features potential format features>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#potential-format-features potential format features> -- of the sampler Y′CBCR conversion do not support -- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT', -- @minFilter@ and @magFilter@ /must/ be equal to the sampler Y′CBCR@@ -383,7 +383,7 @@ -- 'Vulkan.Core10.Enums.BorderColor.BorderColor' value -- -- - #VUID-VkSamplerCreateInfo-addressModeU-01646# If--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion> -- is enabled, @addressModeU@, @addressModeV@, and @addressModeW@ -- /must/ be -- 'Vulkan.Core10.Enums.SamplerAddressMode.SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE',@@ -391,15 +391,22 @@ -- and @unnormalizedCoordinates@ /must/ be -- 'Vulkan.Core10.FundamentalTypes.FALSE' ----- - #VUID-VkSamplerCreateInfo-None-01647# The sampler reduction mode--- /must/ be set to+-- - #VUID-VkSamplerCreateInfo-None-01647# if+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion>+-- is enabled and the @pNext@ chain includes a+-- 'Vulkan.Core12.Promoted_From_VK_EXT_sampler_filter_minmax.SamplerReductionModeCreateInfo'+-- structure, then the sampler reduction mode /must/ be set to -- 'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE'--- if--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion>--- is enabled --+-- - #VUID-VkSamplerCreateInfo-pNext-06726# If+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-samplerFilterMinmax samplerFilterMinmax>+-- is not enabled and the @pNext@ chain includes a+-- 'Vulkan.Core12.Promoted_From_VK_EXT_sampler_filter_minmax.SamplerReductionModeCreateInfo'+-- structure, then the sampler reduction mode /must/ be set to+-- 'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE'+-- -- - #VUID-VkSamplerCreateInfo-addressModeU-01079# If--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-samplerMirrorClampToEdge samplerMirrorClampToEdge>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-samplerMirrorClampToEdge samplerMirrorClampToEdge> -- is not enabled, and if the @VK_KHR_sampler_mirror_clamp_to_edge@ -- extension is not enabled, @addressModeU@, @addressModeV@ and -- @addressModeW@ /must/ not be@@ -410,8 +417,7 @@ -- 'Vulkan.Core10.Enums.CompareOp.CompareOp' value -- -- - #VUID-VkSamplerCreateInfo-magFilter-01081# If either @magFilter@ or--- @minFilter@ is--- 'Vulkan.Extensions.VK_EXT_filter_cubic.FILTER_CUBIC_EXT',+-- @minFilter@ is 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT', -- @anisotropyEnable@ /must/ be 'Vulkan.Core10.FundamentalTypes.FALSE' -- -- - #VUID-VkSamplerCreateInfo-compareEnable-01423# If @compareEnable@ is@@ -455,6 +461,11 @@ -- then @unnormalizedCoordinates@ /must/ be -- 'Vulkan.Core10.FundamentalTypes.FALSE' --+-- - #VUID-VkSamplerCreateInfo-nonSeamlessCubeMap-06788# If the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-nonSeamlessCubeMap nonSeamlessCubeMap>+-- feature is not enabled, @flags@ /must/ not include+-- 'Vulkan.Core10.Enums.SamplerCreateFlagBits.SAMPLER_CREATE_NON_SEAMLESS_CUBE_MAP_BIT_EXT'+-- -- - #VUID-VkSamplerCreateInfo-borderColor-04011# If @borderColor@ is one -- of 'Vulkan.Core10.Enums.BorderColor.BORDER_COLOR_FLOAT_CUSTOM_EXT' -- or 'Vulkan.Core10.Enums.BorderColor.BORDER_COLOR_INT_CUSTOM_EXT',@@ -463,7 +474,7 @@ -- /must/ be included in the @pNext@ chain -- -- - #VUID-VkSamplerCreateInfo-customBorderColors-04085# If the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-customBorderColors customBorderColors>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-customBorderColors customBorderColors> -- feature is not enabled, @borderColor@ /must/ not be -- 'Vulkan.Core10.Enums.BorderColor.BORDER_COLOR_FLOAT_CUSTOM_EXT' or -- 'Vulkan.Core10.Enums.BorderColor.BORDER_COLOR_INT_CUSTOM_EXT'@@ -480,11 +491,49 @@ -- - #VUID-VkSamplerCreateInfo-None-04012# The maximum number of samplers -- with custom border colors which /can/ be simultaneously created on a -- device is implementation-dependent and specified by the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxCustomBorderColorSamplers maxCustomBorderColorSamplers>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxCustomBorderColorSamplers maxCustomBorderColorSamplers> -- member of the -- 'Vulkan.Extensions.VK_EXT_custom_border_color.PhysicalDeviceCustomBorderColorPropertiesEXT' -- structure --+-- - #VUID-VkSamplerCreateInfo-flags-06964# If @flags@ includes+-- 'Vulkan.Core10.Enums.SamplerCreateFlagBits.SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM',+-- then @minFilter@ and @magFilter@ /must/ be+-- 'Vulkan.Core10.Enums.Filter.FILTER_NEAREST'.+--+-- - #VUID-VkSamplerCreateInfo-flags-06965# If @flags@ includes+-- 'Vulkan.Core10.Enums.SamplerCreateFlagBits.SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM',+-- then @mipmapMode@ /must/ be+-- 'Vulkan.Core10.Enums.SamplerMipmapMode.SAMPLER_MIPMAP_MODE_NEAREST'+--+-- - #VUID-VkSamplerCreateInfo-flags-06966# [If @flags@ includes+-- 'Vulkan.Core10.Enums.SamplerCreateFlagBits.SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM',+-- then @minLod@ and @maxLod@ /must/ be zero+--+-- - #VUID-VkSamplerCreateInfo-flags-06967# If @flags@ includes+-- 'Vulkan.Core10.Enums.SamplerCreateFlagBits.SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM',+-- then @addressModeU@ and @addressModeV@ /must/ each be either+-- 'Vulkan.Core10.Enums.SamplerAddressMode.SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE'+-- or+-- 'Vulkan.Core10.Enums.SamplerAddressMode.SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER'+--+-- - #VUID-VkSamplerCreateInfo-flags-06968# If @flags@ includes+-- 'Vulkan.Core10.Enums.SamplerCreateFlagBits.SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM',+-- and if @addressModeU@ or @addressModeV@ is+-- 'Vulkan.Core10.Enums.SamplerAddressMode.SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER',+-- then @borderColor@ /must/ be+-- 'Vulkan.Core10.Enums.BorderColor.BORDER_COLOR_FLOAT_TRANSPARENT_BLACK'.+--+-- - #VUID-VkSamplerCreateInfo-flags-06969# If @flags@ includes+-- 'Vulkan.Core10.Enums.SamplerCreateFlagBits.SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM',+-- then @anisotropyEnable@ /must/ be+-- 'Vulkan.Core10.FundamentalTypes.FALSE'+--+-- - #VUID-VkSamplerCreateInfo-flags-06970# If @flags@ includes+-- 'Vulkan.Core10.Enums.SamplerCreateFlagBits.SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM',+-- then @compareEnable@ /must/ be+-- 'Vulkan.Core10.FundamentalTypes.FALSE'+-- -- == Valid Usage (Implicit) -- -- - #VUID-VkSamplerCreateInfo-sType-sType# @sType@ /must/ be@@ -572,13 +621,13 @@ , -- | #samplers-mipLodBias# @mipLodBias@ is the bias to be added to mipmap LOD -- (level-of-detail) calculation and bias provided by image sampling -- functions in SPIR-V, as described in the- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#textures-level-of-detail-operation Level-of-Detail Operation>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#textures-level-of-detail-operation Level-of-Detail Operation> -- section. mipLodBias :: Float , -- | #samplers-maxAnisotropy# @anisotropyEnable@ is -- 'Vulkan.Core10.FundamentalTypes.TRUE' to enable anisotropic filtering, -- as described in the- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#textures-texel-anisotropic-filtering Texel Anisotropic Filtering>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#textures-texel-anisotropic-filtering Texel Anisotropic Filtering> -- section, or 'Vulkan.Core10.FundamentalTypes.FALSE' otherwise. anisotropyEnable :: Bool , -- | @maxAnisotropy@ is the anisotropy value clamp used by the sampler when@@ -594,16 +643,16 @@ -- member does not match. compareEnable :: Bool , -- | @compareOp@ is a 'Vulkan.Core10.Enums.CompareOp.CompareOp' value- -- specifying the comparison function to apply to fetched data before+ -- specifying the comparison operator to apply to fetched data before -- filtering as described in the- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#textures-depth-compare-operation Depth Compare Operation>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#textures-depth-compare-operation Depth Compare Operation> -- section. compareOp :: CompareOp , -- | @minLod@ is used to clamp the- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#textures-level-of-detail-operation minimum of the computed LOD value>.+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#textures-level-of-detail-operation minimum of the computed LOD value>. minLod :: Float , -- | @maxLod@ is used to clamp the- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#textures-level-of-detail-operation maximum of the computed LOD value>.+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#textures-level-of-detail-operation maximum of the computed LOD value>. -- To avoid clamping the maximum value, set @maxLod@ to the constant -- 'Vulkan.Core10.APIConstants.LOD_CLAMP_NONE'. maxLod :: Float
src/Vulkan/Core10/Shader.hs view
@@ -97,10 +97,17 @@ -- -- Once a shader module has been created, any entry points it contains -- /can/ be used in pipeline shader stages as described in--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-compute Compute Pipelines>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-compute Compute Pipelines> -- and--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics Graphics Pipelines>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics Graphics Pipelines>. --+-- == Valid Usage+--+-- - #VUID-vkCreateShaderModule-pCreateInfo-06904# If @pCreateInfo@ is+-- not @NULL@, @pCreateInfo->pNext@ /must/ be @NULL@ or a pointer to a+-- 'Vulkan.Extensions.VK_EXT_validation_cache.ShaderModuleValidationCacheCreateInfoEXT'+-- structure+-- -- == Valid Usage (Implicit) -- -- - #VUID-vkCreateShaderModule-device-parameter# @device@ /must/ be a@@ -145,7 +152,7 @@ -> -- | @pCreateInfo@ is a pointer to a 'ShaderModuleCreateInfo' structure. (ShaderModuleCreateInfo a) -> -- | @pAllocator@ controls host memory allocation as described in the- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation> -- chapter. ("allocator" ::: Maybe AllocationCallbacks) -> io (ShaderModule)@@ -238,7 +245,7 @@ -> -- | @shaderModule@ is the handle of the shader module to destroy. ShaderModule -> -- | @pAllocator@ controls host memory allocation as described in the- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation> -- chapter. ("allocator" ::: Maybe AllocationCallbacks) -> io ()@@ -267,16 +274,16 @@ -- -- - #VUID-VkShaderModuleCreateInfo-pCode-01377# @pCode@ /must/ point to -- either valid SPIR-V code, formatted and packed as described by the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirv-spec Khronos SPIR-V Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#spirv-spec Khronos SPIR-V Specification> -- or valid GLSL code which /must/ be written to the -- @GL_KHR_vulkan_glsl@ extension specification -- -- - #VUID-VkShaderModuleCreateInfo-pCode-01378# If @pCode@ is a pointer -- to SPIR-V code, that code /must/ adhere to the validation rules -- described by the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-module-validation Validation Rules within a Module>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-module-validation Validation Rules within a Module> -- section of the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities SPIR-V Environment>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities SPIR-V Environment> -- appendix -- -- - #VUID-VkShaderModuleCreateInfo-pCode-01379# If @pCode@ is a pointer@@ -289,27 +296,27 @@ -- - #VUID-VkShaderModuleCreateInfo-pCode-01090# @pCode@ /must/ not -- declare any capability that is not supported by the API, as -- described by the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-module-validation Capabilities>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-module-validation Capabilities> -- section of the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities SPIR-V Environment>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities SPIR-V Environment> -- appendix -- -- - #VUID-VkShaderModuleCreateInfo-pCode-01091# If @pCode@ declares any -- of the capabilities listed in the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table SPIR-V Environment>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table SPIR-V Environment> -- appendix, one of the corresponding requirements /must/ be satisfied -- -- - #VUID-VkShaderModuleCreateInfo-pCode-04146# @pCode@ /must/ not -- declare any SPIR-V extension that is not supported by the API, as -- described by the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-extensions Extension>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-extensions Extension> -- section of the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities SPIR-V Environment>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities SPIR-V Environment> -- appendix -- -- - #VUID-VkShaderModuleCreateInfo-pCode-04147# If @pCode@ declares any -- of the SPIR-V extensions listed in the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-extensions-table SPIR-V Environment>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-extensions-table SPIR-V Environment> -- appendix, one of the corresponding requirements /must/ be satisfied -- -- == Valid Usage (Implicit)@@ -328,7 +335,8 @@ -- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>, -- 'Vulkan.Core10.Enums.ShaderModuleCreateFlags.ShaderModuleCreateFlags',--- 'Vulkan.Core10.Enums.StructureType.StructureType', 'createShaderModule'+-- 'Vulkan.Core10.Enums.StructureType.StructureType', 'createShaderModule',+-- 'Vulkan.Extensions.VK_EXT_shader_module_identifier.getShaderModuleCreateInfoIdentifierEXT' data ShaderModuleCreateInfo (es :: [Type]) = ShaderModuleCreateInfo { -- | @pNext@ is @NULL@ or a pointer to a structure extending this structure. next :: Chain es
src/Vulkan/Core10/SparseResourceMemoryManagement.hs view
@@ -356,7 +356,7 @@ -- = Description -- -- 'queueBindSparse' is a--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#devsandqueues-submission queue submission command>,+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#devsandqueues-submission queue submission command>, -- with each batch defined by an element of @pBindInfo@ as a -- 'BindSparseInfo' structure. Batches begin execution in the order they -- appear in @pBindInfo@, but /may/ complete out of order.@@ -374,7 +374,7 @@ -- -- Additional information about fence and semaphore operation is described -- in--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization the synchronization chapter>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization the synchronization chapter>. -- -- == Valid Usage --@@ -402,7 +402,7 @@ -- @pWaitSemaphores@ member of all elements of the @pBindInfo@ -- parameter referring to a binary semaphore /must/ be semaphores that -- are signaled, or have--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-semaphores-signaling semaphore signal operations>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-semaphores-signaling semaphore signal operations> -- previously submitted for execution -- -- - #VUID-vkQueueBindSparse-pWaitSemaphores-03245# All elements of the@@ -444,11 +444,11 @@ -- -- \' ----- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | - | - | SPARSE_BINDING |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================++-- | - | - | - | SPARSE_BINDING |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+ -- -- == Return Codes --@@ -479,7 +479,7 @@ ("bindInfo" ::: Vector (SomeStruct BindSparseInfo)) -> -- | @fence@ is an /optional/ handle to a fence to be signaled. If @fence@ is -- not 'Vulkan.Core10.APIConstants.NULL_HANDLE', it defines a- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-fences-signaling fence signal operation>.+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-fences-signaling fence signal operation>. Fence -> io () queueBindSparse queue bindInfo fence = liftIO . evalContT $ do@@ -649,6 +649,7 @@ -- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>, -- 'Vulkan.Core10.Enums.ImageAspectFlagBits.ImageAspectFlags',+-- 'Vulkan.Extensions.VK_EXT_image_compression_control.ImageSubresource2EXT', -- 'SparseImageMemoryBind', 'Vulkan.Core10.Image.getImageSubresourceLayout' data ImageSubresource = ImageSubresource { -- | @aspectMask@ is a@@ -743,7 +744,7 @@ -- 'Vulkan.Core10.APIConstants.NULL_HANDLE', @memory@ and -- @memoryOffset@ /must/ match the memory requirements of the resource, -- as described in section--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#resources-association>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#resources-association> -- -- - #VUID-VkSparseMemoryBind-memory-01097# If @memory@ is not -- 'Vulkan.Core10.APIConstants.NULL_HANDLE', @memory@ /must/ not have@@ -873,7 +874,7 @@ -- == Valid Usage -- -- - #VUID-VkSparseImageMemoryBind-memory-01104# If the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-sparseResidencyAliased sparse aliased residency>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-sparseResidencyAliased sparseResidencyAliased> -- feature is not enabled, and if any other resources are bound to -- ranges of @memory@, the range of @memory@ being bound /must/ not -- overlap with those bound ranges@@ -881,11 +882,11 @@ -- - #VUID-VkSparseImageMemoryBind-memory-01105# @memory@ and -- @memoryOffset@ /must/ match the memory requirements of the calling -- command’s @image@, as described in section--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#resources-association>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#resources-association> -- -- - #VUID-VkSparseImageMemoryBind-subresource-01106# @subresource@ -- /must/ be a valid image subresource for @image@ (see--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-views>)+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-views>) -- -- - #VUID-VkSparseImageMemoryBind-offset-01107# @offset.x@ /must/ be a -- multiple of the sparse image block width@@ -1272,7 +1273,7 @@ -- 'Vulkan.Core12.Promoted_From_VK_KHR_timeline_semaphore.TimelineSemaphoreSubmitInfo'::@pSignalSemaphoreValues@ -- /must/ have a value greater than the current value of the semaphore -- when the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-semaphores-signaling semaphore signal operation>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-semaphores-signaling semaphore signal operation> -- is executed -- -- - #VUID-VkBindSparseInfo-pWaitSemaphores-03250# For each element of@@ -1284,7 +1285,7 @@ -- /must/ have a value which does not differ from the current value of -- the semaphore or from the value of any outstanding semaphore wait or -- signal operation on that semaphore by more than--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxTimelineSemaphoreValueDifference maxTimelineSemaphoreValueDifference>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxTimelineSemaphoreValueDifference maxTimelineSemaphoreValueDifference> -- -- - #VUID-VkBindSparseInfo-pSignalSemaphores-03251# For each element of -- @pSignalSemaphores@ created with a@@ -1295,7 +1296,7 @@ -- /must/ have a value which does not differ from the current value of -- the semaphore or from the value of any outstanding semaphore wait or -- signal operation on that semaphore by more than--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxTimelineSemaphoreValueDifference maxTimelineSemaphoreValueDifference>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxTimelineSemaphoreValueDifference maxTimelineSemaphoreValueDifference> -- -- == Valid Usage (Implicit) --@@ -1352,7 +1353,7 @@ , -- | @pWaitSemaphores@ is a pointer to an array of semaphores upon which to -- wait on before the sparse binding operations for this batch begin -- execution. If semaphores to wait on are provided, they define a- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-semaphores-waiting semaphore wait operation>.+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-semaphores-waiting semaphore wait operation>. waitSemaphores :: Vector Semaphore , -- | @pBufferBinds@ is a pointer to an array of 'SparseBufferMemoryBindInfo' -- structures.@@ -1368,7 +1369,7 @@ -- signaled when the sparse binding operations for this batch have -- completed execution. If semaphores to be signaled are provided, they -- define a- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-semaphores-signaling semaphore signal operation>.+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-semaphores-signaling semaphore signal operation>. signalSemaphores :: Vector Semaphore } deriving (Typeable)
src/Vulkan/Core11/Enums/ExternalMemoryHandleTypeFlagBits.hs view
@@ -180,7 +180,7 @@ -- specifies an -- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.AHardwareBuffer' -- object defined by the Android NDK. See--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-external-android-hardware-buffer Android Hardware Buffers>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-external-android-hardware-buffer Android Hardware Buffers> -- for more details of this handle type. pattern EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID = ExternalMemoryHandleTypeFlagBits 0x00000400 -- | 'EXTERNAL_MEMORY_HANDLE_TYPE_DMA_BUF_BIT_EXT' is a file descriptor for a
src/Vulkan/Core11/Enums/FenceImportFlagBits.hs view
@@ -31,7 +31,7 @@ -- | 'FENCE_IMPORT_TEMPORARY_BIT' specifies that the fence payload will be -- imported only temporarily, as described in--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-fences-importing Importing Fence Payloads>,+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-fences-importing Importing Fence Payloads>, -- regardless of the permanence of @handleType@. pattern FENCE_IMPORT_TEMPORARY_BIT = FenceImportFlagBits 0x00000001
src/Vulkan/Core11/Enums/PeerMemoryFeatureFlagBits.hs view
@@ -31,7 +31,7 @@ -- -- The peer memory features of a memory heap also apply to any accesses -- that /may/ be performed during--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-image-layout-transitions image layout transitions>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-image-layout-transitions image layout transitions>. -- -- 'PEER_MEMORY_FEATURE_COPY_DST_BIT' /must/ be supported for all host -- local heaps and for at least one device-local memory heap.
src/Vulkan/Core11/Enums/SamplerYcbcrModelConversion.hs view
@@ -30,17 +30,17 @@ -- - 'SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709' specifies the color model -- conversion from Y′CBCR to R′G′B′ defined in BT.709 and described in -- the “BT.709 Y′CBCR conversion” section of the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#data-format Khronos Data Format Specification>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#data-format Khronos Data Format Specification>. -- -- - 'SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601' specifies the color model -- conversion from Y′CBCR to R′G′B′ defined in BT.601 and described in -- the “BT.601 Y′CBCR conversion” section of the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#data-format Khronos Data Format Specification>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#data-format Khronos Data Format Specification>. -- -- - 'SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020' specifies the color -- model conversion from Y′CBCR to R′G′B′ defined in BT.2020 and -- described in the “BT.2020 Y′CBCR conversion” section of the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#data-format Khronos Data Format Specification>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#data-format Khronos Data Format Specification>. -- -- In the @VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_*@ color models, for the -- input to the sampler Y′CBCR range expansion and model conversion:
src/Vulkan/Core11/Enums/SamplerYcbcrRange.hs view
@@ -19,9 +19,9 @@ -- = Description -- -- The formulae for these conversions is described in the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#textures-sampler-YCbCr-conversion-rangeexpand Sampler Y′CBCR Range Expansion>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#textures-sampler-YCbCr-conversion-rangeexpand Sampler Y′CBCR Range Expansion> -- section of the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#textures Image Operations>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#textures Image Operations> -- chapter. -- -- No range modification takes place if @ycbcrModel@ is
src/Vulkan/Core11/Enums/SemaphoreImportFlagBits.hs view
@@ -35,7 +35,7 @@ -- | 'SEMAPHORE_IMPORT_TEMPORARY_BIT' specifies that the semaphore payload -- will be imported only temporarily, as described in--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-semaphores-importing Importing Semaphore Payloads>,+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-semaphores-importing Importing Semaphore Payloads>, -- regardless of the permanence of @handleType@. pattern SEMAPHORE_IMPORT_TEMPORARY_BIT = SemaphoreImportFlagBits 0x00000001
src/Vulkan/Core11/Enums/TessellationDomainOrigin.hs view
@@ -31,11 +31,11 @@ -- | 'TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT' specifies that the origin of the -- domain space is in the upper left corner, as shown in figure--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#img-tessellation-topology-ul>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#img-tessellation-topology-ul>. pattern TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT = TessellationDomainOrigin 0 -- | 'TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT' specifies that the origin of the -- domain space is in the lower left corner, as shown in figure--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#img-tessellation-topology-ll>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#img-tessellation-topology-ll>. pattern TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT = TessellationDomainOrigin 1 {-# complete TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT, TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT :: TessellationDomainOrigin #-}
src/Vulkan/Core11/Originally_Based_On_VK_KHR_protected_memory.hs view
@@ -209,7 +209,8 @@ -- 'Vulkan.Core10.Enums.StructureType.StructureType' data PhysicalDeviceProtectedMemoryFeatures = PhysicalDeviceProtectedMemoryFeatures { -- | #extension-features-protectedMemory# @protectedMemory@ specifies whether- -- protected memory is supported.+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-protected-memory protected memory>+ -- is supported. protectedMemory :: Bool } deriving (Typeable, Eq) #if defined(GENERIC_INSTANCES)@@ -279,7 +280,7 @@ -- have undefined values written, reads and queries will return undefined -- values. If this limit is 'Vulkan.Core10.FundamentalTypes.FALSE', -- applications /must/ not perform these operations. See- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-protected-access-rules>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-protected-access-rules> -- for more information. protectedNoFault :: Bool } deriving (Typeable, Eq)@@ -327,10 +328,40 @@ -- -- The queue returned by 'getDeviceQueue2' /must/ have the same @flags@ -- value from this structure as that used at device creation time in a--- 'Vulkan.Core10.Device.DeviceQueueCreateInfo' structure. If no matching--- @flags@ were specified at device creation time, then the handle returned--- in @pQueue@ /must/ be @NULL@.+-- 'Vulkan.Core10.Device.DeviceQueueCreateInfo' structure. --+-- Note+--+-- Normally, if you create both protected-capable and non-protected-capable+-- queues with the same family, they are treated as separate lists of+-- queues and @queueIndex@ is relative to the start of the list of queues+-- specified by both @queueFamilyIndex@ and @flags@. However, for+-- historical reasons, some implementations may exhibit different behavior.+-- These divergent implementations instead concatenate the lists of queues+-- and treat @queueIndex@ as relative to the start of the first list of+-- queues with the given @queueFamilyIndex@. This only matters in cases+-- where an application has created both protected-capable and+-- non-protected-capable queues from the same queue family.+--+-- For such divergent implementations, the maximum value of @queueIndex@ is+-- equal to the sum of+-- 'Vulkan.Core10.Device.DeviceQueueCreateInfo'::@queueCount@ minus one,+-- for all 'Vulkan.Core10.Device.DeviceQueueCreateInfo' structures that+-- share a common @queueFamilyIndex@.+--+-- Such implementations will return @NULL@ for either the protected or+-- unprotected queues when calling 'getDeviceQueue2' with @queueIndex@ in+-- the range zero to+-- 'Vulkan.Core10.Device.DeviceQueueCreateInfo'::@queueCount@ minus one. In+-- cases where these implementations returned @NULL@, the corresponding+-- queues are instead located in the extended range described in the+-- preceding two paragraphs.+--+-- This behaviour will not be observed on any driver that has passed Vulkan+-- conformance test suite version 1.3.3.0, or any subsequent version. This+-- information can be found by querying+-- 'Vulkan.Core12.Promoted_From_VK_KHR_driver_properties.PhysicalDeviceDriverProperties'::@conformanceVersion@.+-- -- == Valid Usage (Implicit) -- -- = See Also@@ -360,8 +391,8 @@ -- /must/ be one of the queue family indices specified when @device@ was -- created, via the 'Vulkan.Core10.Device.DeviceQueueCreateInfo' structure queueFamilyIndex :: Word32- , -- | @queueIndex@ is the index within this queue family of the queue to- -- retrieve.+ , -- | @queueIndex@ is the index of the queue to retrieve from within the set+ -- of queues that share both the queue family and flags specified. -- -- #VUID-VkDeviceQueueInfo2-queueIndex-01843# @queueIndex@ /must/ be less -- than 'Vulkan.Core10.Device.DeviceQueueCreateInfo'::@queueCount@ for the
src/Vulkan/Core11/Originally_Based_On_VK_KHR_subgroup.hs view
@@ -49,7 +49,7 @@ -- If @supportedOperations@ includes -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-subgroup-quad ,> -- or--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-shaderSubgroupUniformControlFlow shaderSubgroupUniformControlFlow>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-shaderSubgroupUniformControlFlow shaderSubgroupUniformControlFlow> -- is enabled, @subgroupSize@ /must/ be greater than or equal to 4. -- -- == Valid Usage (Implicit)@@ -72,9 +72,9 @@ , -- | #limits-subgroup-supportedStages# @supportedStages@ is a bitfield of -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.ShaderStageFlagBits' describing -- the shader stages that- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-group-operations group operations>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-group-operations group operations> -- with- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-scope-subgroup subgroup scope>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-scope-subgroup subgroup scope> -- are supported in. @supportedStages@ will have the -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_COMPUTE_BIT' bit -- set if any of the physical device’s queues support@@ -83,9 +83,9 @@ , -- | #limits-subgroupSupportedOperations# @supportedOperations@ is a bitmask -- of 'Vulkan.Core11.Enums.SubgroupFeatureFlagBits.SubgroupFeatureFlagBits' -- specifying the sets of- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-group-operations group operations>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-group-operations group operations> -- with- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-scope-subgroup subgroup scope>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-scope-subgroup subgroup scope> -- supported on this device. @supportedOperations@ will have the -- 'Vulkan.Core11.Enums.SubgroupFeatureFlagBits.SUBGROUP_FEATURE_BASIC_BIT' -- bit set if any of the physical device’s queues support@@ -94,7 +94,7 @@ supportedOperations :: SubgroupFeatureFlags , -- | #limits-subgroup-quadOperationsInAllStages# @quadOperationsInAllStages@ -- is a boolean specifying whether- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-quad-operations quad group operations>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-quad-operations quad group operations> -- are available in all stages, or are restricted to fragment and compute -- stages. quadOperationsInAllStages :: Bool
src/Vulkan/Core11/Promoted_From_VK_KHR_bind_memory2.hs view
@@ -456,7 +456,7 @@ -- equal to @image@ -- -- - #VUID-VkBindImageMemoryInfo-memory-02628# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dedicatedAllocationImageAliasing dedicated allocation image aliasing>+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dedicatedAllocationImageAliasing dedicatedAllocationImageAliasing> -- feature is not enabled, and the -- 'Vulkan.Core10.Memory.MemoryAllocateInfo' provided when @memory@ was -- allocated included a@@ -469,7 +469,7 @@ -- and @memoryOffset@ /must/ be zero -- -- - #VUID-VkBindImageMemoryInfo-memory-02629# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dedicatedAllocationImageAliasing dedicated allocation image aliasing>+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dedicatedAllocationImageAliasing dedicatedAllocationImageAliasing> -- feature is enabled, and the -- 'Vulkan.Core10.Memory.MemoryAllocateInfo' provided when @memory@ was -- allocated included a
src/Vulkan/Core11/Promoted_From_VK_KHR_descriptor_update_template.hs view
@@ -144,7 +144,7 @@ -- or 'updateDescriptorSetWithTemplate'. DescriptorUpdateTemplateCreateInfo -> -- | @pAllocator@ controls host memory allocation as described in the- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation> -- chapter. ("allocator" ::: Maybe AllocationCallbacks) -> io (DescriptorUpdateTemplate)@@ -238,7 +238,7 @@ -> -- | @descriptorUpdateTemplate@ is the descriptor update template to destroy. DescriptorUpdateTemplate -> -- | @pAllocator@ controls host memory allocation as described in the- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation> -- chapter. ("allocator" ::: Maybe AllocationCallbacks) -> io ()@@ -274,6 +274,11 @@ -- @descriptorUpdateTemplate@ when it was created with -- 'createDescriptorUpdateTemplate' --+-- - #VUID-vkUpdateDescriptorSetWithTemplate-descriptorSet-06995# Host+-- access to @descriptorSet@ /must/ be+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fundamentals-threadingbehavior externally synchronized>+-- unless explicitly denoted otherwise for specific flags+-- -- == Valid Usage (Implicit) -- -- - #VUID-vkUpdateDescriptorSetWithTemplate-device-parameter# @device@@@ -291,10 +296,6 @@ -- @descriptorUpdateTemplate@ /must/ have been created, allocated, or -- retrieved from @device@ ----- == Host Synchronization------ - Host access to @descriptorSet@ /must/ be externally synchronized--- -- __API example__ -- -- > struct AppBufferView {@@ -421,7 +422,7 @@ -- implicitly specified when using a descriptor update template to -- update descriptors, and all applicable consecutive bindings, as -- described by--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-updates-consecutive>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-updates-consecutive> -- -- - #VUID-VkDescriptorUpdateTemplateEntry-descriptor-02226# If -- @descriptor@ type is@@ -473,7 +474,7 @@ -- structure. offset :: Word64 , -- | @stride@ is the stride in bytes between two consecutive array elements- -- of the descriptor update informations in the raw data structure. The+ -- of the descriptor update information in the raw data structure. The -- actual pointer ptr for each array element j of update entry i is -- computed using the following formula: --
src/Vulkan/Core11/Promoted_From_VK_KHR_device_group.hs view
@@ -211,13 +211,13 @@ -- -- \' ----- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | Primary | Both | Graphics |--- | Secondary | | Compute |--- | | | Transfer |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================++-- | Primary | Both | Both | Graphics |+-- | Secondary | | | Compute |+-- | | | | Transfer |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+ -- -- = See Also --@@ -297,16 +297,16 @@ -- -- - #VUID-vkCmdDispatchBase-None-02692# If a -- 'Vulkan.Core10.Handles.ImageView' is sampled with--- 'Vulkan.Extensions.VK_EXT_filter_cubic.FILTER_CUBIC_EXT' as a result--- of this command, then the image view’s+-- 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as a result of this+-- command, then the image view’s -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features> -- /must/ contain--- 'Vulkan.Extensions.VK_EXT_filter_cubic.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT'+-- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT' -- -- - #VUID-vkCmdDispatchBase-filterCubic-02694# Any -- 'Vulkan.Core10.Handles.ImageView' being sampled with--- 'Vulkan.Extensions.VK_EXT_filter_cubic.FILTER_CUBIC_EXT' as a result--- of this command /must/ have a+-- 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as a result of this+-- command /must/ have a -- 'Vulkan.Core10.Enums.ImageViewType.ImageViewType' and format that -- supports cubic filtering, as specified by -- 'Vulkan.Extensions.VK_EXT_filter_cubic.FilterCubicImageViewImageFormatPropertiesEXT'::@filterCubic@@@ -315,8 +315,8 @@ -- -- - #VUID-vkCmdDispatchBase-filterCubicMinmax-02695# Any -- 'Vulkan.Core10.Handles.ImageView' being sampled with--- 'Vulkan.Extensions.VK_EXT_filter_cubic.FILTER_CUBIC_EXT' with a--- reduction mode of either+-- 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' with a reduction mode+-- of either -- 'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MIN' -- or -- 'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MAX'@@ -336,22 +336,38 @@ -- 'Vulkan.Core10.Enums.SamplerAddressMode.SamplerAddressMode' of -- 'Vulkan.Core10.Enums.SamplerAddressMode.SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE' ----- - #VUID-vkCmdDispatchBase-OpTypeImage-06423# Any--- 'Vulkan.Core10.Handles.ImageView' or--- 'Vulkan.Core10.Handles.BufferView' being written as a storage image--- or storage texel buffer where the image format field of the--- @OpTypeImage@ is @Unknown@ then the view’s format feature /must/--- contain+-- - #VUID-vkCmdDispatchBase-OpTypeImage-07027# For any+-- 'Vulkan.Core10.Handles.ImageView' being written as a storage image+-- where the image format field of the @OpTypeImage@ is @Unknown@, the+-- view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain -- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT' ----- - #VUID-vkCmdDispatchBase-OpTypeImage-06424# Any--- 'Vulkan.Core10.Handles.ImageView' or--- 'Vulkan.Core10.Handles.BufferView' being read as a storage image or--- storage texel buffer where the image format field of the--- @OpTypeImage@ is @Unknown@ then the view’s format feature /must/--- contain+-- - #VUID-vkCmdDispatchBase-OpTypeImage-07028# For any+-- 'Vulkan.Core10.Handles.ImageView' being read as a storage image+-- where the image format field of the @OpTypeImage@ is @Unknown@, the+-- view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain -- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT' --+-- - #VUID-vkCmdDispatchBase-OpTypeImage-07029# For any+-- 'Vulkan.Core10.Handles.BufferView' being written as a storage texel+-- buffer where the image format field of the @OpTypeImage@ is+-- @Unknown@, the view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkFormatProperties3 buffer features>+-- /must/ contain+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT'+--+-- - #VUID-vkCmdDispatchBase-OpTypeImage-07030# Any+-- 'Vulkan.Core10.Handles.BufferView' being read as a storage texel+-- buffer where the image format field of the @OpTypeImage@ is+-- @Unknown@ then the view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkFormatProperties3 buffer features>+-- /must/ contain+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT'+-- -- - #VUID-vkCmdDispatchBase-None-02697# For each set /n/ that is -- statically used by the 'Vulkan.Core10.Handles.Pipeline' bound to the -- pipeline bind point used by this command, a descriptor set /must/@@ -426,21 +442,31 @@ -- @OpImageSample*@ or @OpImageSparseSample*@ instructions that -- includes a LOD bias or any offset values, in any shader stage ----- - #VUID-vkCmdDispatchBase-None-02705# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robust buffer access>--- feature is not enabled, and if the 'Vulkan.Core10.Handles.Pipeline'--- object bound to the pipeline bind point used by this command--- accesses a uniform buffer, it /must/ not access values outside of--- the range of the buffer as specified in the descriptor set bound to--- the same pipeline bind point+-- - #VUID-vkCmdDispatchBase-uniformBuffers-06935# If any stage of the+-- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind+-- point used by this command accesses a uniform buffer, and that stage+-- was created without enabling either+-- 'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT'+-- or+-- 'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT'+-- for @uniformBuffers@, and the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>+-- feature is not enabled, that stage /must/ not access values outside+-- of the range of the buffer as specified in the descriptor set bound+-- to the same pipeline bind point ----- - #VUID-vkCmdDispatchBase-None-02706# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robust buffer access>--- feature is not enabled, and if the 'Vulkan.Core10.Handles.Pipeline'--- object bound to the pipeline bind point used by this command--- accesses a storage buffer, it /must/ not access values outside of--- the range of the buffer as specified in the descriptor set bound to--- the same pipeline bind point+-- - #VUID-vkCmdDispatchBase-storageBuffers-06936# If any stage of the+-- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind+-- point used by this command accesses a storage buffer, and that stage+-- was created without enabling either+-- 'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT'+-- or+-- 'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT'+-- for @storageBuffers@, and the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>+-- feature is not enabled, that stage /must/ not access values outside+-- of the range of the buffer as specified in the descriptor set bound+-- to the same pipeline bind point -- -- - #VUID-vkCmdDispatchBase-commandBuffer-02707# If @commandBuffer@ is -- an unprotected command buffer and@@ -524,6 +550,67 @@ -- @OpTypeImage@ with a @SampledType@ with a @Width@ of 64 by this -- command --+-- - #VUID-vkCmdDispatchBase-OpImageWeightedSampleQCOM-06971# If+-- @OpImageWeightedSampleQCOM@ is used to sample a+-- 'Vulkan.Core10.Handles.ImageView' as a result of this command, then+-- the image view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM'+--+-- - #VUID-vkCmdDispatchBase-OpImageWeightedSampleQCOM-06972# If+-- @OpImageWeightedSampleQCOM@ uses a 'Vulkan.Core10.Handles.ImageView'+-- as a sample weight image as a result of this command, then the image+-- view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM'+--+-- - #VUID-vkCmdDispatchBase-OpImageBoxFilterQCOM-06973# If+-- @OpImageBoxFilterQCOM@ is used to sample a+-- 'Vulkan.Core10.Handles.ImageView' as a result of this command, then+-- the image view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM'+--+-- - #VUID-vkCmdDispatchBase-OpImageBlockMatchSSDQCOM-06974# If+-- @OpImageBlockMatchSSDQCOM@ is used to read from an+-- 'Vulkan.Core10.Handles.ImageView' as a result of this command, then+-- the image view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM'+--+-- - #VUID-vkCmdDispatchBase-OpImageBlockMatchSADQCOM-06975# If+-- @OpImageBlockMatchSADQCOM@ is used to read from an+-- 'Vulkan.Core10.Handles.ImageView' as a result of this command, then+-- the image view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM'+--+-- - #VUID-vkCmdDispatchBase-OpImageBlockMatchSADQCOM-06976# If+-- @OpImageBlockMatchSADQCOM@ or OpImageBlockMatchSSDQCOM is used to+-- read from a reference image as result of this command, then the+-- specified reference coordinates /must/ not fail+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-integer-coordinate-validation integer texel coordinate validation>.+--+-- - #VUID-vkCmdDispatchBase-OpImageWeightedSampleQCOM-06977# If+-- @OpImageWeightedSampleQCOM@, @OpImageBoxFilterQCOM@,+-- @OpImageBlockMatchSSDQCOM@, or @OpImageBlockMatchSADQCOM@ uses a+-- 'Vulkan.Core10.Handles.Sampler' as a result of this command, then+-- the sampler /must/ have been created with+-- 'Vulkan.Core10.Enums.SamplerCreateFlagBits.SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM'.+--+-- - #VUID-vkCmdDispatchBase-OpImageWeightedSampleQCOM-06978# If any+-- command other than @OpImageWeightedSampleQCOM@,+-- @OpImageBoxFilterQCOM@, @OpImageBlockMatchSSDQCOM@, or+-- @OpImageBlockMatchSADQCOM@ uses a 'Vulkan.Core10.Handles.Sampler' as+-- a result of this command, then the sampler /must/ not have been+-- created with+-- 'Vulkan.Core10.Enums.SamplerCreateFlagBits.SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM'.+-- -- - #VUID-vkCmdDispatchBase-commandBuffer-02712# If @commandBuffer@ is a -- protected command buffer and -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>@@ -594,6 +681,9 @@ -- - #VUID-vkCmdDispatchBase-renderpass# This command /must/ only be -- called outside of a render pass instance --+-- - #VUID-vkCmdDispatchBase-videocoding# This command /must/ only be+-- called outside of a video coding scope+-- -- == Host Synchronization -- -- - Host access to @commandBuffer@ /must/ be externally synchronized@@ -605,12 +695,12 @@ -- -- \' ----- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | Primary | Outside | Compute |--- | Secondary | | |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================++-- | Primary | Outside | Outside | Compute |+-- | Secondary | | | |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+ -- -- = See Also --@@ -817,12 +907,12 @@ -- - #VUID-VkDeviceGroupRenderPassBeginInfo-offset-06168# The sum of the -- @offset.x@ and @extent.width@ members of any element of -- @pDeviceRenderAreas@ /must/ be less than or equal to--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxFramebufferWidth maxFramebufferWidth>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxFramebufferWidth maxFramebufferWidth> -- -- - #VUID-VkDeviceGroupRenderPassBeginInfo-offset-06169# The sum of the -- @offset.y@ and @extent.height@ members of any element of -- @pDeviceRenderAreas@ /must/ be less than or equal to--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxFramebufferHeight maxFramebufferHeight>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxFramebufferHeight maxFramebufferHeight> -- -- == Valid Usage (Implicit) --
src/Vulkan/Core11/Promoted_From_VK_KHR_external_memory.hs view
@@ -53,7 +53,7 @@ -- 'Vulkan.Core11.Enums.ExternalMemoryHandleTypeFlagBits.ExternalMemoryHandleTypeFlags', -- 'Vulkan.Core10.Enums.StructureType.StructureType' data ExternalMemoryImageCreateInfo = ExternalMemoryImageCreateInfo- { -- | @handleTypes@ is zero, or a bitmask of+ { -- | @handleTypes@ is zero or a bitmask of -- 'Vulkan.Core11.Enums.ExternalMemoryHandleTypeFlagBits.ExternalMemoryHandleTypeFlagBits' -- specifying one or more external memory handle types. --@@ -118,7 +118,7 @@ -- 'Vulkan.Core11.Enums.ExternalMemoryHandleTypeFlagBits.ExternalMemoryHandleTypeFlags', -- 'Vulkan.Core10.Enums.StructureType.StructureType' data ExternalMemoryBufferCreateInfo = ExternalMemoryBufferCreateInfo- { -- | @handleTypes@ is zero, or a bitmask of+ { -- | @handleTypes@ is zero or a bitmask of -- 'Vulkan.Core11.Enums.ExternalMemoryHandleTypeFlagBits.ExternalMemoryHandleTypeFlagBits' -- specifying one or more external memory handle types. --@@ -191,7 +191,7 @@ -- 'Vulkan.Core11.Enums.ExternalMemoryHandleTypeFlagBits.ExternalMemoryHandleTypeFlags', -- 'Vulkan.Core10.Enums.StructureType.StructureType' data ExportMemoryAllocateInfo = ExportMemoryAllocateInfo- { -- | @handleTypes@ is a bitmask of+ { -- | @handleTypes@ is zero or a bitmask of -- 'Vulkan.Core11.Enums.ExternalMemoryHandleTypeFlagBits.ExternalMemoryHandleTypeFlagBits' -- specifying one or more memory handle types the application /can/ export -- from the resulting allocation. The application /can/ request multiple
src/Vulkan/Core11/Promoted_From_VK_KHR_external_memory_capabilities.hs view
@@ -525,11 +525,11 @@ -- where such a restriction exists as defined in the compatibility table -- for the particular object type: ----- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#external-memory-handle-types-compatibility External memory handle types compatibility>+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#external-memory-handle-types-compatibility External memory handle types compatibility> ----- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#external-semaphore-handle-types-compatibility External semaphore handle types compatibility>+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#external-semaphore-handle-types-compatibility External semaphore handle types compatibility> ----- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#external-fence-handle-types-compatibility External fence handle types compatibility>+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#external-fence-handle-types-compatibility External fence handle types compatibility> -- -- If @deviceLUIDValid@ is 'Vulkan.Core10.FundamentalTypes.FALSE', the -- values of @deviceLUID@ and @deviceNodeMask@ are undefined. If
src/Vulkan/Core11/Promoted_From_VK_KHR_get_memory_requirements2.hs view
@@ -473,7 +473,6 @@ -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_1 VK_VERSION_1_1>, -- 'Vulkan.Core10.MemoryManagement.MemoryRequirements', -- 'Vulkan.Core10.Enums.StructureType.StructureType',--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoGetMemoryPropertiesKHR VkVideoGetMemoryPropertiesKHR>, -- 'getBufferMemoryRequirements2', -- 'Vulkan.Extensions.VK_KHR_get_memory_requirements2.getBufferMemoryRequirements2KHR', -- 'Vulkan.Core13.Promoted_From_VK_KHR_maintenance4.getDeviceBufferMemoryRequirements',
src/Vulkan/Core11/Promoted_From_VK_KHR_get_physical_device_properties2.hs view
@@ -73,6 +73,8 @@ import Vulkan.Core10.Enums.Format (Format(..)) import Vulkan.Core10.DeviceInitialization (FormatProperties) import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_KHR_format_feature_flags2 (FormatProperties3)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_image_compression_control (ImageCompressionControlEXT)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_image_compression_control (ImageCompressionPropertiesEXT) import Vulkan.Core10.Enums.ImageCreateFlagBits (ImageCreateFlags) import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_image_format_list (ImageFormatListCreateInfo) import Vulkan.Core10.DeviceInitialization (ImageFormatProperties)@@ -98,6 +100,8 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_astc_decode_mode (PhysicalDeviceASTCDecodeFeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_acceleration_structure (PhysicalDeviceAccelerationStructureFeaturesKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_acceleration_structure (PhysicalDeviceAccelerationStructurePropertiesKHR)+import {-# SOURCE #-} Vulkan.Extensions.VK_SEC_amigo_profiling (PhysicalDeviceAmigoProfilingFeaturesSEC)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_attachment_feedback_loop_layout (PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_blend_operation_advanced (PhysicalDeviceBlendOperationAdvancedFeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_blend_operation_advanced (PhysicalDeviceBlendOperationAdvancedPropertiesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_border_color_swizzle (PhysicalDeviceBorderColorSwizzleFeaturesEXT)@@ -115,6 +119,7 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_custom_border_color (PhysicalDeviceCustomBorderColorFeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_custom_border_color (PhysicalDeviceCustomBorderColorPropertiesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_dedicated_allocation_image_aliasing (PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_depth_clamp_zero_one (PhysicalDeviceDepthClampZeroOneFeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_depth_clip_control (PhysicalDeviceDepthClipControlFeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_depth_clip_enable (PhysicalDeviceDepthClipEnableFeaturesEXT) import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_depth_stencil_resolve (PhysicalDeviceDepthStencilResolveProperties)@@ -143,7 +148,8 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_QCOM_fragment_density_map_offset (PhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM) import {-# SOURCE #-} Vulkan.Extensions.VK_QCOM_fragment_density_map_offset (PhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_fragment_density_map (PhysicalDeviceFragmentDensityMapPropertiesEXT)-import {-# SOURCE #-} Vulkan.Extensions.VK_NV_fragment_shader_barycentric (PhysicalDeviceFragmentShaderBarycentricFeaturesNV)+import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_fragment_shader_barycentric (PhysicalDeviceFragmentShaderBarycentricFeaturesKHR)+import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_fragment_shader_barycentric (PhysicalDeviceFragmentShaderBarycentricPropertiesKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_fragment_shader_interlock (PhysicalDeviceFragmentShaderInterlockFeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_fragment_shading_rate_enums (PhysicalDeviceFragmentShadingRateEnumsFeaturesNV) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_fragment_shading_rate_enums (PhysicalDeviceFragmentShadingRateEnumsPropertiesNV)@@ -154,7 +160,12 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_graphics_pipeline_library (PhysicalDeviceGraphicsPipelineLibraryPropertiesEXT) import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_EXT_host_query_reset (PhysicalDeviceHostQueryResetFeatures) import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_external_memory_capabilities (PhysicalDeviceIDProperties)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_image_2d_view_of_3d (PhysicalDeviceImage2DViewOf3DFeaturesEXT)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_image_compression_control (PhysicalDeviceImageCompressionControlFeaturesEXT)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_image_compression_control_swapchain (PhysicalDeviceImageCompressionControlSwapchainFeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_image_drm_format_modifier (PhysicalDeviceImageDrmFormatModifierInfoEXT)+import {-# SOURCE #-} Vulkan.Extensions.VK_QCOM_image_processing (PhysicalDeviceImageProcessingFeaturesQCOM)+import {-# SOURCE #-} Vulkan.Extensions.VK_QCOM_image_processing (PhysicalDeviceImageProcessingPropertiesQCOM) import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_EXT_image_robustness (PhysicalDeviceImageRobustnessFeatures) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_filter_cubic (PhysicalDeviceImageViewImageFormatInfoEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_image_view_min_lod (PhysicalDeviceImageViewMinLodFeaturesEXT)@@ -173,20 +184,27 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_memory_budget (PhysicalDeviceMemoryBudgetPropertiesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_memory_priority (PhysicalDeviceMemoryPriorityFeaturesEXT) import Vulkan.Core10.DeviceInitialization (PhysicalDeviceMemoryProperties)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_mesh_shader (PhysicalDeviceMeshShaderFeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_mesh_shader (PhysicalDeviceMeshShaderFeaturesNV)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_mesh_shader (PhysicalDeviceMeshShaderPropertiesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_mesh_shader (PhysicalDeviceMeshShaderPropertiesNV) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_multi_draw (PhysicalDeviceMultiDrawFeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_multi_draw (PhysicalDeviceMultiDrawPropertiesEXT)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled (PhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT) import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_multiview (PhysicalDeviceMultiviewFeatures) import {-# SOURCE #-} Vulkan.Extensions.VK_NVX_multiview_per_view_attributes (PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX) import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_multiview (PhysicalDeviceMultiviewProperties) import {-# SOURCE #-} Vulkan.Extensions.VK_VALVE_mutable_descriptor_type (PhysicalDeviceMutableDescriptorTypeFeaturesVALVE)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_non_seamless_cube_map (PhysicalDeviceNonSeamlessCubeMapFeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_pci_bus_info (PhysicalDevicePCIBusInfoPropertiesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_pageable_device_local_memory (PhysicalDevicePageableDeviceLocalMemoryFeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_performance_query (PhysicalDevicePerformanceQueryFeaturesKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_performance_query (PhysicalDevicePerformanceQueryPropertiesKHR) import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_EXT_pipeline_creation_cache_control (PhysicalDevicePipelineCreationCacheControlFeatures) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_pipeline_executable_properties (PhysicalDevicePipelineExecutablePropertiesFeaturesKHR)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_pipeline_properties (PhysicalDevicePipelinePropertiesFeaturesEXT)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_pipeline_robustness (PhysicalDevicePipelineRobustnessFeaturesEXT)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_pipeline_robustness (PhysicalDevicePipelineRobustnessPropertiesEXT) import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_maintenance2 (PhysicalDevicePointClippingProperties) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_portability_subset (PhysicalDevicePortabilitySubsetFeaturesKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_portability_subset (PhysicalDevicePortabilitySubsetPropertiesKHR)@@ -202,8 +220,9 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_provoking_vertex (PhysicalDeviceProvokingVertexPropertiesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_push_descriptor (PhysicalDevicePushDescriptorPropertiesKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_rgba10x6_formats (PhysicalDeviceRGBA10X6FormatsFeaturesEXT)-import {-# SOURCE #-} Vulkan.Extensions.VK_ARM_rasterization_order_attachment_access (PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_rasterization_order_attachment_access (PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_ray_query (PhysicalDeviceRayQueryFeaturesKHR)+import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_ray_tracing_maintenance1 (PhysicalDeviceRayTracingMaintenance1FeaturesKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_ray_tracing_motion_blur (PhysicalDeviceRayTracingMotionBlurFeaturesNV) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_ray_tracing_pipeline (PhysicalDeviceRayTracingPipelineFeaturesKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_ray_tracing_pipeline (PhysicalDeviceRayTracingPipelinePropertiesKHR)@@ -224,12 +243,15 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_AMD_shader_core_properties (PhysicalDeviceShaderCorePropertiesAMD) import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_EXT_shader_demote_to_helper_invocation (PhysicalDeviceShaderDemoteToHelperInvocationFeatures) import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_shader_draw_parameters (PhysicalDeviceShaderDrawParametersFeatures)+import {-# SOURCE #-} Vulkan.Extensions.VK_AMD_shader_early_and_late_fragment_tests (PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD) import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_shader_float16_int8 (PhysicalDeviceShaderFloat16Int8Features) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_shader_image_atomic_int64 (PhysicalDeviceShaderImageAtomicInt64FeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_shader_image_footprint (PhysicalDeviceShaderImageFootprintFeaturesNV) import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_KHR_shader_integer_dot_product (PhysicalDeviceShaderIntegerDotProductFeatures) import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_KHR_shader_integer_dot_product (PhysicalDeviceShaderIntegerDotProductProperties) import {-# SOURCE #-} Vulkan.Extensions.VK_INTEL_shader_integer_functions2 (PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_shader_module_identifier (PhysicalDeviceShaderModuleIdentifierFeaturesEXT)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_shader_module_identifier (PhysicalDeviceShaderModuleIdentifierPropertiesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_shader_sm_builtins (PhysicalDeviceShaderSMBuiltinsFeaturesNV) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_shader_sm_builtins (PhysicalDeviceShaderSMBuiltinsPropertiesNV) import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_shader_subgroup_extended_types (PhysicalDeviceShaderSubgroupExtendedTypesFeatures)@@ -240,12 +262,14 @@ import {-# SOURCE #-} Vulkan.Core11.Originally_Based_On_VK_KHR_subgroup (PhysicalDeviceSubgroupProperties) import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_EXT_subgroup_size_control (PhysicalDeviceSubgroupSizeControlFeatures) import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_EXT_subgroup_size_control (PhysicalDeviceSubgroupSizeControlProperties)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_subpass_merge_feedback (PhysicalDeviceSubpassMergeFeedbackFeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_HUAWEI_subpass_shading (PhysicalDeviceSubpassShadingFeaturesHUAWEI) import {-# SOURCE #-} Vulkan.Extensions.VK_HUAWEI_subpass_shading (PhysicalDeviceSubpassShadingPropertiesHUAWEI) import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_KHR_synchronization2 (PhysicalDeviceSynchronization2Features) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_texel_buffer_alignment (PhysicalDeviceTexelBufferAlignmentFeaturesEXT) import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_EXT_texel_buffer_alignment (PhysicalDeviceTexelBufferAlignmentProperties) import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_EXT_texture_compression_astc_hdr (PhysicalDeviceTextureCompressionASTCHDRFeatures)+import {-# SOURCE #-} Vulkan.Extensions.VK_QCOM_tile_properties (PhysicalDeviceTilePropertiesFeaturesQCOM) import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_timeline_semaphore (PhysicalDeviceTimelineSemaphoreFeatures) import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_timeline_semaphore (PhysicalDeviceTimelineSemaphoreProperties) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_transform_feedback (PhysicalDeviceTransformFeedbackFeaturesEXT)@@ -280,6 +304,7 @@ import Vulkan.CStruct.Extends (SomeStruct) import Vulkan.Core10.SparseResourceMemoryManagement (SparseImageFormatProperties) import Vulkan.Core10.Enums.StructureType (StructureType)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled (SubpassResolvePerformanceQueryEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_AMD_texture_gather_bias_lod (TextureLODGatherFormatPropertiesAMD) import Vulkan.Exception (VulkanException(..)) import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_FORMAT_PROPERTIES_2))@@ -446,6 +471,22 @@ -- with the ability to return extended information in a @pNext@ chain of -- output structures. --+-- If the @pNext@ chain of @pImageFormatInfo@ includes a+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoProfileListInfoKHR VkVideoProfileListInfoKHR>+-- structure with a @profileCount@ member greater than @0@, then+-- 'getPhysicalDeviceImageFormatProperties2' returns format capabilities+-- specific to image types used in conjunction with the specified video+-- codec operations and corresponding video profiles. In this case+-- 'getPhysicalDeviceImageFormatProperties2' returns one of the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#video-profile-error-codes video-profile-specific error codes>+-- if any of the profiles specified via+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoProfileListInfoKHR VkVideoProfileListInfoKHR>::@pProfiles@+-- are not supported. Furthermore, if+-- 'PhysicalDeviceImageFormatInfo2'::@usage@ includes any image usage flags+-- not supported by the specified video profiles then+-- 'getPhysicalDeviceImageFormatProperties2' returns+-- @VK_ERROR_IMAGE_USAGE_NOT_SUPPORTED_KHR@.+-- -- == Valid Usage -- -- - #VUID-vkGetPhysicalDeviceImageFormatProperties2-pNext-01868# If the@@ -484,6 +525,16 @@ -- -- - 'Vulkan.Core10.Enums.Result.ERROR_FORMAT_NOT_SUPPORTED' --+-- - @VK_ERROR_IMAGE_USAGE_NOT_SUPPORTED_KHR@+--+-- - @VK_ERROR_VIDEO_PROFILE_OPERATION_NOT_SUPPORTED_KHR@+--+-- - @VK_ERROR_VIDEO_PROFILE_FORMAT_NOT_SUPPORTED_KHR@+--+-- - @VK_ERROR_VIDEO_PICTURE_LAYOUT_NOT_SUPPORTED_KHR@+--+-- - @VK_ERROR_VIDEO_PROFILE_CODEC_NOT_SUPPORTED_KHR@+-- -- = See Also -- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_1 VK_VERSION_1_1>,@@ -725,18 +776,33 @@ getNext PhysicalDeviceFeatures2{..} = next extends :: forall e b proxy. Typeable e => proxy e -> (Extends PhysicalDeviceFeatures2 e => b) -> Maybe b extends _ f+ | Just Refl <- eqT @e @PhysicalDeviceDepthClampZeroOneFeaturesEXT = Just f+ | Just Refl <- eqT @e @PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT = Just f+ | Just Refl <- eqT @e @PhysicalDeviceAmigoProfilingFeaturesSEC = Just f+ | Just Refl <- eqT @e @PhysicalDeviceTilePropertiesFeaturesQCOM = Just f+ | Just Refl <- eqT @e @PhysicalDeviceImageProcessingFeaturesQCOM = Just f+ | Just Refl <- eqT @e @PhysicalDevicePipelineRobustnessFeaturesEXT = Just f+ | Just Refl <- eqT @e @PhysicalDeviceNonSeamlessCubeMapFeaturesEXT = Just f+ | Just Refl <- eqT @e @PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD = Just f+ | Just Refl <- eqT @e @PhysicalDevicePipelinePropertiesFeaturesEXT = Just f+ | Just Refl <- eqT @e @PhysicalDeviceSubpassMergeFeedbackFeaturesEXT = Just f+ | Just Refl <- eqT @e @PhysicalDeviceImageCompressionControlSwapchainFeaturesEXT = Just f+ | Just Refl <- eqT @e @PhysicalDeviceImageCompressionControlFeaturesEXT = Just f+ | Just Refl <- eqT @e @PhysicalDeviceShaderModuleIdentifierFeaturesEXT = Just f | Just Refl <- eqT @e @PhysicalDeviceDescriptorSetHostMappingFeaturesVALVE = Just f | Just Refl <- eqT @e @PhysicalDeviceGraphicsPipelineLibraryFeaturesEXT = Just f | Just Refl <- eqT @e @PhysicalDeviceLinearColorAttachmentFeaturesNV = Just f- | Just Refl <- eqT @e @PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM = Just f+ | Just Refl <- eqT @e @PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT = Just f | Just Refl <- eqT @e @PhysicalDeviceImageViewMinLodFeaturesEXT = Just f | Just Refl <- eqT @e @PhysicalDeviceDynamicRenderingFeatures = Just f | Just Refl <- eqT @e @PhysicalDeviceRGBA10X6FormatsFeaturesEXT = Just f | Just Refl <- eqT @e @PhysicalDeviceRayTracingMotionBlurFeaturesNV = Just f+ | Just Refl <- eqT @e @PhysicalDeviceFragmentShaderBarycentricFeaturesKHR = Just f | Just Refl <- eqT @e @PhysicalDeviceShaderIntegerDotProductFeatures = Just f | Just Refl <- eqT @e @PhysicalDeviceProvokingVertexFeaturesEXT = Just f | Just Refl <- eqT @e @PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT = Just f | Just Refl <- eqT @e @PhysicalDeviceInheritedViewportScissorFeaturesNV = Just f+ | Just Refl <- eqT @e @PhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT = Just f | Just Refl <- eqT @e @PhysicalDevicePrimitivesGeneratedQueryFeaturesEXT = Just f | Just Refl <- eqT @e @PhysicalDeviceSynchronization2Features = Just f | Just Refl <- eqT @e @PhysicalDeviceColorWriteEnableFeaturesEXT = Just f@@ -744,6 +810,7 @@ | Just Refl <- eqT @e @PhysicalDeviceVertexInputDynamicStateFeaturesEXT = Just f | Just Refl <- eqT @e @PhysicalDeviceDepthClipControlFeaturesEXT = Just f | Just Refl <- eqT @e @PhysicalDeviceMutableDescriptorTypeFeaturesVALVE = Just f+ | Just Refl <- eqT @e @PhysicalDeviceImage2DViewOf3DFeaturesEXT = Just f | Just Refl <- eqT @e @PhysicalDeviceFragmentShadingRateEnumsFeaturesNV = Just f | Just Refl <- eqT @e @PhysicalDeviceShaderTerminateInvocationFeatures = Just f | Just Refl <- eqT @e @PhysicalDeviceFragmentShadingRateFeaturesKHR = Just f@@ -794,15 +861,16 @@ | Just Refl <- eqT @e @PhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM = Just f | Just Refl <- eqT @e @PhysicalDeviceFragmentDensityMap2FeaturesEXT = Just f | Just Refl <- eqT @e @PhysicalDeviceFragmentDensityMapFeaturesEXT = Just f+ | Just Refl <- eqT @e @PhysicalDeviceRayTracingMaintenance1FeaturesKHR = Just f | Just Refl <- eqT @e @PhysicalDeviceRayQueryFeaturesKHR = Just f | Just Refl <- eqT @e @PhysicalDeviceRayTracingPipelineFeaturesKHR = Just f | Just Refl <- eqT @e @PhysicalDeviceAccelerationStructureFeaturesKHR = Just f+ | Just Refl <- eqT @e @PhysicalDeviceMeshShaderFeaturesEXT = Just f | Just Refl <- eqT @e @PhysicalDeviceMeshShaderFeaturesNV = Just f | Just Refl <- eqT @e @PhysicalDeviceInvocationMaskFeaturesHUAWEI = Just f | Just Refl <- eqT @e @PhysicalDeviceShadingRateImageFeaturesNV = Just f | Just Refl <- eqT @e @PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV = Just f | Just Refl <- eqT @e @PhysicalDeviceShaderImageFootprintFeaturesNV = Just f- | Just Refl <- eqT @e @PhysicalDeviceFragmentShaderBarycentricFeaturesNV = Just f | Just Refl <- eqT @e @PhysicalDeviceComputeShaderDerivativesFeaturesNV = Just f | Just Refl <- eqT @e @PhysicalDeviceCornerSampledImageFeaturesNV = Just f | Just Refl <- eqT @e @PhysicalDeviceExclusiveScissorFeaturesNV = Just f@@ -902,20 +970,24 @@ -- 'Vulkan.Extensions.VK_EXT_fragment_density_map2.PhysicalDeviceFragmentDensityMap2PropertiesEXT', -- 'Vulkan.Extensions.VK_QCOM_fragment_density_map_offset.PhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM', -- 'Vulkan.Extensions.VK_EXT_fragment_density_map.PhysicalDeviceFragmentDensityMapPropertiesEXT',+-- 'Vulkan.Extensions.VK_KHR_fragment_shader_barycentric.PhysicalDeviceFragmentShaderBarycentricPropertiesKHR', -- 'Vulkan.Extensions.VK_NV_fragment_shading_rate_enums.PhysicalDeviceFragmentShadingRateEnumsPropertiesNV', -- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.PhysicalDeviceFragmentShadingRatePropertiesKHR', -- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.PhysicalDeviceGraphicsPipelineLibraryPropertiesEXT', -- 'Vulkan.Core11.Promoted_From_VK_KHR_external_memory_capabilities.PhysicalDeviceIDProperties',+-- 'Vulkan.Extensions.VK_QCOM_image_processing.PhysicalDeviceImageProcessingPropertiesQCOM', -- 'Vulkan.Core13.Promoted_From_VK_EXT_inline_uniform_block.PhysicalDeviceInlineUniformBlockProperties', -- 'Vulkan.Extensions.VK_EXT_line_rasterization.PhysicalDeviceLineRasterizationPropertiesEXT', -- 'Vulkan.Core11.Promoted_From_VK_KHR_maintenance3.PhysicalDeviceMaintenance3Properties', -- 'Vulkan.Core13.Promoted_From_VK_KHR_maintenance4.PhysicalDeviceMaintenance4Properties',+-- 'Vulkan.Extensions.VK_EXT_mesh_shader.PhysicalDeviceMeshShaderPropertiesEXT', -- 'Vulkan.Extensions.VK_NV_mesh_shader.PhysicalDeviceMeshShaderPropertiesNV', -- 'Vulkan.Extensions.VK_EXT_multi_draw.PhysicalDeviceMultiDrawPropertiesEXT', -- 'Vulkan.Extensions.VK_NVX_multiview_per_view_attributes.PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX', -- 'Vulkan.Core11.Promoted_From_VK_KHR_multiview.PhysicalDeviceMultiviewProperties', -- 'Vulkan.Extensions.VK_EXT_pci_bus_info.PhysicalDevicePCIBusInfoPropertiesEXT', -- 'Vulkan.Extensions.VK_KHR_performance_query.PhysicalDevicePerformanceQueryPropertiesKHR',+-- 'Vulkan.Extensions.VK_EXT_pipeline_robustness.PhysicalDevicePipelineRobustnessPropertiesEXT', -- 'Vulkan.Core11.Promoted_From_VK_KHR_maintenance2.PhysicalDevicePointClippingProperties', -- 'Vulkan.Extensions.VK_KHR_portability_subset.PhysicalDevicePortabilitySubsetPropertiesKHR', -- 'Vulkan.Core11.Originally_Based_On_VK_KHR_protected_memory.PhysicalDeviceProtectedMemoryProperties',@@ -929,6 +1001,7 @@ -- 'Vulkan.Extensions.VK_AMD_shader_core_properties2.PhysicalDeviceShaderCoreProperties2AMD', -- 'Vulkan.Extensions.VK_AMD_shader_core_properties.PhysicalDeviceShaderCorePropertiesAMD', -- 'Vulkan.Core13.Promoted_From_VK_KHR_shader_integer_dot_product.PhysicalDeviceShaderIntegerDotProductProperties',+-- 'Vulkan.Extensions.VK_EXT_shader_module_identifier.PhysicalDeviceShaderModuleIdentifierPropertiesEXT', -- 'Vulkan.Extensions.VK_NV_shader_sm_builtins.PhysicalDeviceShaderSMBuiltinsPropertiesNV', -- 'Vulkan.Extensions.VK_NV_shading_rate_image.PhysicalDeviceShadingRateImagePropertiesNV', -- 'Vulkan.Core11.Originally_Based_On_VK_KHR_subgroup.PhysicalDeviceSubgroupProperties',@@ -974,7 +1047,11 @@ getNext PhysicalDeviceProperties2{..} = next extends :: forall e b proxy. Typeable e => proxy e -> (Extends PhysicalDeviceProperties2 e => b) -> Maybe b extends _ f+ | Just Refl <- eqT @e @PhysicalDeviceImageProcessingPropertiesQCOM = Just f+ | Just Refl <- eqT @e @PhysicalDevicePipelineRobustnessPropertiesEXT = Just f+ | Just Refl <- eqT @e @PhysicalDeviceShaderModuleIdentifierPropertiesEXT = Just f | Just Refl <- eqT @e @PhysicalDeviceGraphicsPipelineLibraryPropertiesEXT = Just f+ | Just Refl <- eqT @e @PhysicalDeviceFragmentShaderBarycentricPropertiesKHR = Just f | Just Refl <- eqT @e @PhysicalDeviceDrmPropertiesEXT = Just f | Just Refl <- eqT @e @PhysicalDeviceShaderIntegerDotProductProperties = Just f | Just Refl <- eqT @e @PhysicalDeviceProvokingVertexPropertiesEXT = Just f@@ -999,6 +1076,7 @@ | Just Refl <- eqT @e @PhysicalDeviceRayTracingPropertiesNV = Just f | Just Refl <- eqT @e @PhysicalDeviceRayTracingPipelinePropertiesKHR = Just f | Just Refl <- eqT @e @PhysicalDeviceAccelerationStructurePropertiesKHR = Just f+ | Just Refl <- eqT @e @PhysicalDeviceMeshShaderPropertiesEXT = Just f | Just Refl <- eqT @e @PhysicalDeviceMeshShaderPropertiesNV = Just f | Just Refl <- eqT @e @PhysicalDeviceShadingRateImagePropertiesNV = Just f | Just Refl <- eqT @e @PhysicalDeviceTransformFeedbackPropertiesEXT = Just f@@ -1075,13 +1153,8 @@ -- 'Vulkan.Extensions.VK_EXT_image_drm_format_modifier.DrmFormatModifierPropertiesList2EXT', -- 'Vulkan.Extensions.VK_EXT_image_drm_format_modifier.DrmFormatModifierPropertiesListEXT', -- 'Vulkan.Core13.Promoted_From_VK_KHR_format_feature_flags2.FormatProperties3',--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoDecodeH264ProfileEXT VkVideoDecodeH264ProfileEXT>,--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoDecodeH265ProfileEXT VkVideoDecodeH265ProfileEXT>,--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH264ProfileEXT VkVideoEncodeH264ProfileEXT>,--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH265ProfileEXT VkVideoEncodeH265ProfileEXT>,--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoProfileKHR VkVideoProfileKHR>, -- or--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoProfilesKHR VkVideoProfilesKHR>+-- 'Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled.SubpassResolvePerformanceQueryEXT' -- -- - #VUID-VkFormatProperties2-sType-unique# The @sType@ value of each -- struct in the @pNext@ chain /must/ be unique@@ -1115,6 +1188,7 @@ extends _ f | Just Refl <- eqT @e @DrmFormatModifierPropertiesList2EXT = Just f | Just Refl <- eqT @e @FormatProperties3 = Just f+ | Just Refl <- eqT @e @SubpassResolvePerformanceQueryEXT = Just f | Just Refl <- eqT @e @DrmFormatModifierPropertiesListEXT = Just f | otherwise = Nothing @@ -1164,7 +1238,7 @@ -- Filling @imageFormatProperties@ with zero for unsupported formats is an -- exception to the usual rule that output structures have undefined -- contents on error. This exception was unintentional, but is preserved--- for backwards compatibility. This exeption only applies to+-- for backwards compatibility. This exception only applies to -- @imageFormatProperties@, not @sType@, @pNext@, or any structures chained -- from @pNext@. --@@ -1179,6 +1253,7 @@ -- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.AndroidHardwareBufferUsageANDROID', -- 'Vulkan.Core11.Promoted_From_VK_KHR_external_memory_capabilities.ExternalImageFormatProperties', -- 'Vulkan.Extensions.VK_EXT_filter_cubic.FilterCubicImageViewImageFormatPropertiesEXT',+-- 'Vulkan.Extensions.VK_EXT_image_compression_control.ImageCompressionPropertiesEXT', -- 'Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion.SamplerYcbcrConversionImageFormatProperties', -- or -- 'Vulkan.Extensions.VK_AMD_texture_gather_bias_lod.TextureLODGatherFormatPropertiesAMD'@@ -1216,6 +1291,7 @@ getNext ImageFormatProperties2{..} = next extends :: forall e b proxy. Typeable e => proxy e -> (Extends ImageFormatProperties2 e => b) -> Maybe b extends _ f+ | Just Refl <- eqT @e @ImageCompressionPropertiesEXT = Just f | Just Refl <- eqT @e @FilterCubicImageViewImageFormatPropertiesEXT = Just f | Just Refl <- eqT @e @AndroidHardwareBufferUsageANDROID = Just f | Just Refl <- eqT @e @TextureLODGatherFormatPropertiesAMD = Just f@@ -1289,12 +1365,14 @@ -- - #VUID-VkPhysicalDeviceImageFormatInfo2-pNext-pNext# Each @pNext@ -- member of any structure (including this one) in the @pNext@ chain -- /must/ be either @NULL@ or a pointer to a valid instance of+-- 'Vulkan.Extensions.VK_EXT_image_compression_control.ImageCompressionControlEXT', -- 'Vulkan.Core12.Promoted_From_VK_KHR_image_format_list.ImageFormatListCreateInfo', -- 'Vulkan.Core12.Promoted_From_VK_EXT_separate_stencil_usage.ImageStencilUsageCreateInfo', -- 'Vulkan.Core11.Promoted_From_VK_KHR_external_memory_capabilities.PhysicalDeviceExternalImageFormatInfo', -- 'Vulkan.Extensions.VK_EXT_image_drm_format_modifier.PhysicalDeviceImageDrmFormatModifierInfoEXT',+-- 'Vulkan.Extensions.VK_EXT_filter_cubic.PhysicalDeviceImageViewImageFormatInfoEXT', -- or--- 'Vulkan.Extensions.VK_EXT_filter_cubic.PhysicalDeviceImageViewImageFormatInfoEXT'+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoProfileListInfoKHR VkVideoProfileListInfoKHR> -- -- - #VUID-VkPhysicalDeviceImageFormatInfo2-sType-unique# The @sType@ -- value of each struct in the @pNext@ chain /must/ be unique@@ -1372,6 +1450,7 @@ getNext PhysicalDeviceImageFormatInfo2{..} = next extends :: forall e b proxy. Typeable e => proxy e -> (Extends PhysicalDeviceImageFormatInfo2 e => b) -> Maybe b extends _ f+ | Just Refl <- eqT @e @ImageCompressionControlEXT = Just f | Just Refl <- eqT @e @PhysicalDeviceImageViewImageFormatInfoEXT = Just f | Just Refl <- eqT @e @ImageStencilUsageCreateInfo = Just f | Just Refl <- eqT @e @PhysicalDeviceImageDrmFormatModifierInfoEXT = Just f@@ -1439,9 +1518,9 @@ -- 'Vulkan.Extensions.VK_KHR_synchronization2.QueueFamilyCheckpointProperties2NV', -- 'Vulkan.Extensions.VK_NV_device_diagnostic_checkpoints.QueueFamilyCheckpointPropertiesNV', -- 'Vulkan.Extensions.VK_KHR_global_priority.QueueFamilyGlobalPriorityPropertiesKHR',--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFamilyQueryResultStatusProperties2KHR VkQueueFamilyQueryResultStatusProperties2KHR>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFamilyQueryResultStatusPropertiesKHR VkQueueFamilyQueryResultStatusPropertiesKHR>, -- or--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoQueueFamilyProperties2KHR VkVideoQueueFamilyProperties2KHR>+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFamilyVideoPropertiesKHR VkQueueFamilyVideoPropertiesKHR> -- -- - #VUID-VkQueueFamilyProperties2-sType-unique# The @sType@ value of -- each struct in the @pNext@ chain /must/ be unique
src/Vulkan/Core11/Promoted_From_VK_KHR_multiview.hs view
@@ -66,7 +66,7 @@ -- - #extension-features-multiview-gs# @multiviewGeometryShader@ -- specifies whether the implementation supports multiview rendering -- within a render pass, with--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#geometry geometry shaders>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#geometry geometry shaders>. -- If this feature is not enabled, then a pipeline compiled against a -- subpass with a non-zero view mask /must/ not include a geometry -- shader.@@ -74,7 +74,7 @@ -- - #extension-features-multiview-tess# @multiviewTessellationShader@ -- specifies whether the implementation supports multiview rendering -- within a render pass, with--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#tessellation tessellation shaders>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#tessellation tessellation shaders>. -- If this feature is not enabled, then a pipeline compiled against a -- subpass with a non-zero view mask /must/ not include any -- tessellation shaders.@@ -257,9 +257,10 @@ -- additional broadcasting. -- -- Some implementations /may/ not support multiview in conjunction with--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-multiview-gs geometry shaders>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-multiview-mesh mesh shaders>,+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-multiview-gs geometry shaders> -- or--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-multiview-tess tessellation shaders>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-multiview-tess tessellation shaders>. -- -- When multiview is enabled, the -- 'Vulkan.Core10.Enums.DependencyFlagBits.DEPENDENCY_VIEW_LOCAL_BIT' bit@@ -331,13 +332,13 @@ -- @pCorrelationMasks@ -- -- - #VUID-VkRenderPassMultiviewCreateInfo-multiview-06555# If the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-multiview multiview>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-multiview multiview> -- feature is not enabled, each element of @pViewMasks@ /must/ be @0@ -- -- - #VUID-VkRenderPassMultiviewCreateInfo-pViewMasks-06697# The index of -- the most significant bit in each element of @pViewMasks@ /must/ be -- less than--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxMultiviewViewCount maxMultiviewViewCount>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxMultiviewViewCount maxMultiviewViewCount> -- -- == Valid Usage (Implicit) --
src/Vulkan/Core11/Promoted_From_VK_KHR_sampler_ycbcr_conversion.hs view
@@ -128,16 +128,16 @@ -- -- The interpretation of the configured sampler Y′CBCR conversion is -- described in more detail in--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#textures-sampler-YCbCr-conversion the description of sampler Y′CBCR conversion>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#textures-sampler-YCbCr-conversion the description of sampler Y′CBCR conversion> -- in the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#textures Image Operations>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#textures Image Operations> -- chapter. -- -- == Valid Usage -- -- - #VUID-vkCreateSamplerYcbcrConversion-None-01648# The--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-samplerYcbcrConversion sampler Y′CBCR conversion feature>--- /must/ be enabled+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-samplerYcbcrConversion samplerYcbcrConversion>+-- feature /must/ be enabled -- -- == Valid Usage (Implicit) --@@ -185,7 +185,7 @@ -- structure specifying the requested sampler Y′CBCR conversion. (SamplerYcbcrConversionCreateInfo a) -> -- | @pAllocator@ controls host memory allocation as described in the- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation> -- chapter. ("allocator" ::: Maybe AllocationCallbacks) -> io (SamplerYcbcrConversion)@@ -263,7 +263,7 @@ -> -- | @ycbcrConversion@ is the conversion to destroy. SamplerYcbcrConversion -> -- | @pAllocator@ controls host memory allocation as described in the- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation> -- chapter. ("allocator" ::: Maybe AllocationCallbacks) -> io ()@@ -357,7 +357,7 @@ -- conversion object represents an /external format conversion/, and -- @format@ /must/ be 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'. Such -- conversions /must/ only be used to sample image views with a matching--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-external-android-hardware-buffer-external-formats external format>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-external-android-hardware-buffer-external-formats external format>. -- When creating an external format conversion, the value of @components@ -- is ignored. --@@ -373,58 +373,58 @@ -- @UNORM@ format) -- -- - #VUID-VkSamplerYcbcrConversionCreateInfo-format-01650# The--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#potential-format-features potential format features>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#potential-format-features potential format features> -- of the sampler Y′CBCR conversion /must/ support -- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT' -- or -- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT' -- -- - #VUID-VkSamplerYcbcrConversionCreateInfo-xChromaOffset-01651# If the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#potential-format-features potential format features>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#potential-format-features potential format features> -- of the sampler Y′CBCR conversion do not support -- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT', -- @xChromaOffset@ and @yChromaOffset@ /must/ not be -- 'Vulkan.Core11.Enums.ChromaLocation.CHROMA_LOCATION_COSITED_EVEN' if -- the corresponding components are--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#textures-chroma-reconstruction downsampled>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#textures-chroma-reconstruction downsampled> -- -- - #VUID-VkSamplerYcbcrConversionCreateInfo-xChromaOffset-01652# If the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#potential-format-features potential format features>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#potential-format-features potential format features> -- of the sampler Y′CBCR conversion do not support -- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT', -- @xChromaOffset@ and @yChromaOffset@ /must/ not be -- 'Vulkan.Core11.Enums.ChromaLocation.CHROMA_LOCATION_MIDPOINT' if the -- corresponding components are--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#textures-chroma-reconstruction downsampled>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#textures-chroma-reconstruction downsampled> -- -- - #VUID-VkSamplerYcbcrConversionCreateInfo-components-02581# If the -- format has a @_422@ or @_420@ suffix, then @components.g@ /must/ be -- the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-views-identity-mappings identity swizzle>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-views-identity-mappings identity swizzle> -- -- - #VUID-VkSamplerYcbcrConversionCreateInfo-components-02582# If the -- format has a @_422@ or @_420@ suffix, then @components.a@ /must/ be -- the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-views-identity-mappings identity swizzle>,+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-views-identity-mappings identity swizzle>, -- 'Vulkan.Core10.Enums.ComponentSwizzle.COMPONENT_SWIZZLE_ONE', or -- 'Vulkan.Core10.Enums.ComponentSwizzle.COMPONENT_SWIZZLE_ZERO' -- -- - #VUID-VkSamplerYcbcrConversionCreateInfo-components-02583# If the -- format has a @_422@ or @_420@ suffix, then @components.r@ /must/ be -- the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-views-identity-mappings identity swizzle>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-views-identity-mappings identity swizzle> -- or 'Vulkan.Core10.Enums.ComponentSwizzle.COMPONENT_SWIZZLE_B' -- -- - #VUID-VkSamplerYcbcrConversionCreateInfo-components-02584# If the -- format has a @_422@ or @_420@ suffix, then @components.b@ /must/ be -- the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-views-identity-mappings identity swizzle>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-views-identity-mappings identity swizzle> -- or 'Vulkan.Core10.Enums.ComponentSwizzle.COMPONENT_SWIZZLE_R' -- -- - #VUID-VkSamplerYcbcrConversionCreateInfo-components-02585# If the -- format has a @_422@ or @_420@ suffix, and if either @components.r@ -- or @components.b@ is the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-views-identity-mappings identity swizzle>,+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-views-identity-mappings identity swizzle>, -- both values /must/ be the identity swizzle -- -- - #VUID-VkSamplerYcbcrConversionCreateInfo-ycbcrModel-01655# If@@ -437,7 +437,7 @@ -- 'Vulkan.Core10.Enums.ComponentSwizzle.COMPONENT_SWIZZLE_ONE', and -- /must/ not correspond to a component containing zero or one as a -- consequence of--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#textures-conversion-to-rgba conversion to RGBA>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#textures-conversion-to-rgba conversion to RGBA> -- -- - #VUID-VkSamplerYcbcrConversionCreateInfo-ycbcrRange-02748# If -- @ycbcrRange@ is@@ -448,14 +448,14 @@ -- -- - #VUID-VkSamplerYcbcrConversionCreateInfo-forceExplicitReconstruction-01656# -- If the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#potential-format-features potential format features>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#potential-format-features potential format features> -- of the sampler Y′CBCR conversion do not support -- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT' -- @forceExplicitReconstruction@ /must/ be -- 'Vulkan.Core10.FundamentalTypes.FALSE' -- -- - #VUID-VkSamplerYcbcrConversionCreateInfo-chromaFilter-01657# If the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#potential-format-features potential format features>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#potential-format-features potential format features> -- of the sampler Y′CBCR conversion do not support -- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT', -- @chromaFilter@ /must/ not be@@ -506,9 +506,9 @@ -- samples are reconstructed to luma component resolution using -- nearest-neighbour sampling. Otherwise, chroma samples are reconstructed -- using interpolation. More details can be found in--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#textures-sampler-YCbCr-conversion the description of sampler Y′CBCR conversion>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#textures-sampler-YCbCr-conversion the description of sampler Y′CBCR conversion> -- in the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#textures Image Operations>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#textures Image Operations> -- chapter. -- -- = See Also@@ -541,13 +541,13 @@ -- range expansion and color model conversion. components :: ComponentMapping , -- | @xChromaOffset@ describes the- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#textures-chroma-reconstruction sample location>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#textures-chroma-reconstruction sample location> -- associated with downsampled chroma components in the x dimension. -- @xChromaOffset@ has no effect for formats in which chroma components are -- not downsampled horizontally. xChromaOffset :: ChromaLocation , -- | @yChromaOffset@ describes the- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#textures-chroma-reconstruction sample location>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#textures-chroma-reconstruction sample location> -- associated with downsampled chroma components in the y dimension. -- @yChromaOffset@ has no effect for formats in which the chroma components -- are not downsampled vertically.@@ -836,7 +836,7 @@ data PhysicalDeviceSamplerYcbcrConversionFeatures = PhysicalDeviceSamplerYcbcrConversionFeatures { -- | #extension-features-samplerYcbcrConversion# @samplerYcbcrConversion@ -- specifies whether the implementation supports- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion>.+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion>. -- If @samplerYcbcrConversion@ is 'Vulkan.Core10.FundamentalTypes.FALSE', -- sampler Y′CBCR conversion is not supported, and samplers using sampler -- Y′CBCR conversion /must/ not be used.
src/Vulkan/Core12.hs view
@@ -192,8 +192,9 @@ -- this feature is not enabled, shader modules /must/ not declare the -- @VariablePointers@ capability. variablePointers :: Bool- , -- | #features-protectedMemory# @protectedMemory@ specifies whether protected- -- memory is supported.+ , -- | #features-protectedMemory# @protectedMemory@ specifies whether+ -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#memory-protected-memory protected memory>+ -- is supported. protectedMemory :: Bool , -- | #features-samplerYcbcrConversion# @samplerYcbcrConversion@ specifies -- whether the implementation supports@@ -358,9 +359,9 @@ , -- | #limits-subgroupSupportedStages# @subgroupSupportedStages@ is a bitfield -- of 'Vulkan.Core10.Enums.ShaderStageFlagBits.ShaderStageFlagBits' -- describing the shader stages that- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-group-operations group operations>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-group-operations group operations> -- with- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-scope-subgroup subgroup scope>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-scope-subgroup subgroup scope> -- are supported in. @subgroupSupportedStages@ will have the -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_COMPUTE_BIT' bit -- set if any of the physical device’s queues support@@ -369,9 +370,9 @@ , -- | @subgroupSupportedOperations@ is a bitmask of -- 'Vulkan.Core11.Enums.SubgroupFeatureFlagBits.SubgroupFeatureFlagBits' -- specifying the sets of- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-group-operations group operations>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-group-operations group operations> -- with- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-scope-subgroup subgroup scope>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-scope-subgroup subgroup scope> -- supported on this device. @subgroupSupportedOperations@ will have the -- 'Vulkan.Core11.Enums.SubgroupFeatureFlagBits.SUBGROUP_FEATURE_BASIC_BIT' -- bit set if any of the physical device’s queues support@@ -380,7 +381,7 @@ subgroupSupportedOperations :: SubgroupFeatureFlags , -- | #limits-subgroupQuadOperationsInAllStages# -- @subgroupQuadOperationsInAllStages@ is a boolean specifying whether- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-quad-operations quad group operations>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-quad-operations quad group operations> -- are available in all stages, or are restricted to fragment and compute -- stages. subgroupQuadOperationsInAllStages :: Bool@@ -573,7 +574,7 @@ -- -- - #features-shaderSharedInt64Atomics# @shaderSharedInt64Atomics@ -- indicates whether shaders /can/ perform 64-bit unsigned and signed--- integer atomic operations on shared memory.+-- integer atomic operations on shared and payload memory. -- -- - #features-shaderFloat16# @shaderFloat16@ indicates whether 16-bit -- floats (halfs) are supported in shader code. This also indicates@@ -600,7 +601,7 @@ -- - #features-descriptorIndexing# @descriptorIndexing@ indicates whether -- the implementation supports the minimum set of descriptor indexing -- features as described in the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-requirements Feature Requirements>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-requirements Feature Requirements> -- section. Enabling the @descriptorIndexing@ member when -- 'Vulkan.Core10.Device.createDevice' is called does not imply the -- other minimum descriptor indexing features are also enabled. Those@@ -805,12 +806,11 @@ -- - #features-samplerFilterMinmax# @samplerFilterMinmax@ indicates -- whether the implementation supports a minimum set of required -- formats supporting min\/max filtering as defined by the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-filterMinmaxSingleComponentFormats-minimum-requirements filterMinmaxSingleComponentFormats>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-filterMinmaxSingleComponentFormats-minimum-requirements filterMinmaxSingleComponentFormats> -- property minimum requirements. If this feature is not enabled, then--- no 'Vulkan.Core10.Sampler.SamplerCreateInfo' @pNext@ chain can--- include a -- 'Vulkan.Core12.Promoted_From_VK_EXT_sampler_filter_minmax.SamplerReductionModeCreateInfo'--- structure.+-- /must/ only use+-- 'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE'. -- -- - #features-scalarBlockLayout# @scalarBlockLayout@ indicates that the -- implementation supports the layout of resource blocks in shaders@@ -899,17 +899,18 @@ -- - #features-shaderOutputViewportIndex# @shaderOutputViewportIndex@ -- indicates whether the implementation supports the -- @ShaderViewportIndex@ SPIR-V capability enabling variables decorated--- with the @ViewportIndex@ built-in to be exported from vertex or--- tessellation evaluation shaders. If this feature is not enabled, the--- @ViewportIndex@ built-in decoration /must/ not be used on outputs in--- vertex or tessellation evaluation shaders.+-- with the @ViewportIndex@ built-in to be exported from mesh, vertex+-- or tessellation evaluation shaders. If this feature is not enabled,+-- the @ViewportIndex@ built-in decoration /must/ not be used on+-- outputs in mesh, vertex or tessellation evaluation shaders. -- -- - #features-shaderOutputLayer# @shaderOutputLayer@ indicates whether -- the implementation supports the @ShaderLayer@ SPIR-V capability -- enabling variables decorated with the @Layer@ built-in to be--- exported from vertex or tessellation evaluation shaders. If this--- feature is not enabled, the @Layer@ built-in decoration /must/ not--- be used on outputs in vertex or tessellation evaluation shaders.+-- exported from mesh, vertex or tessellation evaluation shaders. If+-- this feature is not enabled, the @Layer@ built-in decoration /must/+-- not be used on outputs in mesh, vertex or tessellation evaluation+-- shaders. -- -- - #features-subgroupBroadcastDynamicId# If -- @subgroupBroadcastDynamicId@ is
src/Vulkan/Core12/Enums/DescriptorBindingFlagBits.hs view
@@ -64,7 +64,12 @@ -- descriptors in this binding /can/ be updated after a command buffer has -- bound this descriptor set, or while a command buffer that uses this -- descriptor set is pending execution, as long as the descriptors that are--- updated are not used by those command buffers. If+-- updated are not used by those command buffers. Descriptor bindings+-- created with this flag are also partially exempt from the external+-- synchronization requirement in+-- 'Vulkan.Extensions.VK_KHR_descriptor_update_template.updateDescriptorSetWithTemplateKHR'+-- and 'Vulkan.Core10.DescriptorSet.updateDescriptorSets' in the same way+-- as for 'DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT'. If -- 'DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT' is also set, then descriptors -- /can/ be updated as long as they are not dynamically used by any shader -- invocations. If 'DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT' is not set,@@ -91,9 +96,9 @@ -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK'. -- In this case, @descriptorCount@ specifies the upper bound on the byte -- size of the binding; thus it counts against the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxInlineUniformBlockSize maxInlineUniformBlockSize>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxInlineUniformBlockSize maxInlineUniformBlockSize> -- and--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxInlineUniformTotalSize maxInlineUniformTotalSize>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxInlineUniformTotalSize maxInlineUniformTotalSize> -- limits instead. pattern DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT = DescriptorBindingFlagBits 0x00000008
src/Vulkan/Core12/Enums/DriverId.hs view
@@ -22,6 +22,7 @@ , DRIVER_ID_MESA_PANVK , DRIVER_ID_SAMSUNG_PROPRIETARY , DRIVER_ID_MESA_VENUS+ , DRIVER_ID_MESA_DOZEN , .. )) where @@ -105,6 +106,8 @@ pattern DRIVER_ID_SAMSUNG_PROPRIETARY = DriverId 21 -- No documentation found for Nested "VkDriverId" "VK_DRIVER_ID_MESA_VENUS" pattern DRIVER_ID_MESA_VENUS = DriverId 22+-- No documentation found for Nested "VkDriverId" "VK_DRIVER_ID_MESA_DOZEN"+pattern DRIVER_ID_MESA_DOZEN = DriverId 23 {-# complete DRIVER_ID_AMD_PROPRIETARY, DRIVER_ID_AMD_OPEN_SOURCE, DRIVER_ID_MESA_RADV,@@ -126,7 +129,8 @@ DRIVER_ID_MESA_V3DV, DRIVER_ID_MESA_PANVK, DRIVER_ID_SAMSUNG_PROPRIETARY,- DRIVER_ID_MESA_VENUS :: DriverId #-}+ DRIVER_ID_MESA_VENUS,+ DRIVER_ID_MESA_DOZEN :: DriverId #-} conNameDriverId :: String conNameDriverId = "DriverId"@@ -158,6 +162,7 @@ , (DRIVER_ID_MESA_PANVK , "MESA_PANVK") , (DRIVER_ID_SAMSUNG_PROPRIETARY , "SAMSUNG_PROPRIETARY") , (DRIVER_ID_MESA_VENUS , "MESA_VENUS")+ , (DRIVER_ID_MESA_DOZEN , "MESA_DOZEN") ] instance Show DriverId where
src/Vulkan/Core12/Enums/SamplerReductionMode.hs view
@@ -28,7 +28,7 @@ -- | 'SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE' specifies that texel values -- are combined by computing a weighted average of values in the footprint, -- using weights as specified in--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#textures-unnormalized-to-integer the image operations chapter>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#textures-unnormalized-to-integer the image operations chapter>. pattern SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE = SamplerReductionMode 0 -- | 'SAMPLER_REDUCTION_MODE_MIN' specifies that texel values are combined by -- taking the component-wise minimum of values in the footprint with
src/Vulkan/Core12/Enums/SemaphoreType.hs view
@@ -14,7 +14,7 @@ import GHC.Read (Read(readPrec)) import GHC.Show (Show(showsPrec)) --- | VkSemaphoreType - Sepcifies the type of a semaphore object+-- | VkSemaphoreType - Specifies the type of a semaphore object -- -- = See Also --
src/Vulkan/Core12/Promoted_From_VK_EXT_descriptor_indexing.hs view
@@ -458,7 +458,7 @@ , -- | #extension-limits-robustBufferAccessUpdateAfterBind# -- @robustBufferAccessUpdateAfterBind@ is a boolean value indicating -- whether- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess> -- /can/ be enabled in a device simultaneously with -- @descriptorBindingUniformBufferUpdateAfterBind@, -- @descriptorBindingStorageBufferUpdateAfterBind@,@@ -473,7 +473,7 @@ -- calculations for image operations have well-defined results when the -- image and\/or sampler objects used for the instruction are not uniform -- within a quad. See- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#textures-derivative-image-operations Derivative Image Operations>.+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#textures-derivative-image-operations Derivative Image Operations>. quadDivergentImplicitLod :: Bool , -- | #extension-limits-maxPerStageDescriptorUpdateAfterBindSamplers# -- @maxPerStageDescriptorUpdateAfterBindSamplers@ is similar to
src/Vulkan/Core12/Promoted_From_VK_EXT_host_query_reset.hs view
@@ -67,7 +67,7 @@ -- == Valid Usage -- -- - #VUID-vkResetQueryPool-None-02665# The--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-hostQueryReset hostQueryReset>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-hostQueryReset hostQueryReset> -- feature /must/ be enabled -- -- - #VUID-vkResetQueryPool-firstQuery-02666# @firstQuery@ /must/ be less
src/Vulkan/Core12/Promoted_From_VK_EXT_sampler_filter_minmax.hs view
@@ -65,7 +65,7 @@ -- 'Vulkan.Core10.FundamentalTypes.FALSE' the component mapping of the -- image view used with min\/max filtering /must/ have been created with -- the @r@ component set to the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-views-identity-mappings identity swizzle>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-views-identity-mappings identity swizzle>. -- Only the @r@ component of the sampled image value is defined and the -- other component values are undefined. If -- @filterMinmaxImageComponentMapping@ is
src/Vulkan/Core12/Promoted_From_VK_EXT_scalar_block_layout.hs view
@@ -57,7 +57,7 @@ { -- | #extension-features-scalarBlockLayout# @scalarBlockLayout@ indicates -- that the implementation supports the layout of resource blocks in -- shaders using- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-alignment-requirements scalar alignment>.+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-alignment-requirements scalar alignment>. scalarBlockLayout :: Bool } deriving (Typeable, Eq) #if defined(GENERIC_INSTANCES)
src/Vulkan/Core12/Promoted_From_VK_KHR_buffer_device_address.hs view
@@ -96,12 +96,12 @@ -- == Valid Usage -- -- - #VUID-vkGetBufferOpaqueCaptureAddress-None-03326# The--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-bufferDeviceAddress bufferDeviceAddress>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-bufferDeviceAddress bufferDeviceAddress> -- feature /must/ be enabled -- -- - #VUID-vkGetBufferOpaqueCaptureAddress-device-03327# If @device@ was -- created with multiple physical devices, then the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-bufferDeviceAddressMultiDevice bufferDeviceAddressMultiDevice>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-bufferDeviceAddressMultiDevice bufferDeviceAddressMultiDevice> -- feature /must/ be enabled -- -- == Valid Usage (Implicit)@@ -166,19 +166,23 @@ -- the return value will be the same address that was returned at capture -- time. --+-- The returned address /must/ satisfy the alignment requirement specified+-- by 'Vulkan.Core10.MemoryManagement.MemoryRequirements'::@alignment@ for+-- the buffer in 'BufferDeviceAddressInfo'::@buffer@.+-- -- == Valid Usage -- -- - #VUID-vkGetBufferDeviceAddress-bufferDeviceAddress-03324# The--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-bufferDeviceAddress bufferDeviceAddress>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-bufferDeviceAddress bufferDeviceAddress> -- or--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-bufferDeviceAddressEXT ::bufferDeviceAddress>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-bufferDeviceAddressEXT ::bufferDeviceAddress> -- feature /must/ be enabled -- -- - #VUID-vkGetBufferDeviceAddress-device-03325# If @device@ was created -- with multiple physical devices, then the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-bufferDeviceAddressMultiDevice bufferDeviceAddressMultiDevice>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-bufferDeviceAddressMultiDevice bufferDeviceAddressMultiDevice> -- or--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-bufferDeviceAddressMultiDeviceEXT ::bufferDeviceAddressMultiDevice>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-bufferDeviceAddressMultiDeviceEXT ::bufferDeviceAddressMultiDevice> -- feature /must/ be enabled -- -- == Valid Usage (Implicit)@@ -240,12 +244,12 @@ -- == Valid Usage -- -- - #VUID-vkGetDeviceMemoryOpaqueCaptureAddress-None-03334# The--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-bufferDeviceAddress bufferDeviceAddress>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-bufferDeviceAddress bufferDeviceAddress> -- feature /must/ be enabled -- -- - #VUID-vkGetDeviceMemoryOpaqueCaptureAddress-device-03335# If -- @device@ was created with multiple physical devices, then the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-bufferDeviceAddressMultiDevice bufferDeviceAddressMultiDevice>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-bufferDeviceAddressMultiDevice bufferDeviceAddressMultiDevice> -- feature /must/ be enabled -- -- == Valid Usage (Implicit)
src/Vulkan/Core12/Promoted_From_VK_KHR_create_renderpass2.hs view
@@ -93,6 +93,7 @@ import Vulkan.Core10.Enums.ImageAspectFlagBits (ImageAspectFlags) import Vulkan.Core10.Enums.ImageLayout (ImageLayout) import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_KHR_synchronization2 (MemoryBarrier2)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled (MultisampledRenderToSingleSampledInfoEXT) import Vulkan.CStruct.Extends (PeekChain) import Vulkan.CStruct.Extends (PeekChain(..)) import Vulkan.Core10.Enums.PipelineBindPoint (PipelineBindPoint)@@ -103,7 +104,10 @@ import Vulkan.Core10.Handles (RenderPass(..)) import Vulkan.Core10.CommandBufferBuilding (RenderPassBeginInfo) import Vulkan.Core10.Enums.RenderPassCreateFlagBits (RenderPassCreateFlags)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_subpass_merge_feedback (RenderPassCreationControlEXT)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_subpass_merge_feedback (RenderPassCreationFeedbackCreateInfoEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_fragment_density_map (RenderPassFragmentDensityMapCreateInfoEXT)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_subpass_merge_feedback (RenderPassSubpassFeedbackCreateInfoEXT) import Vulkan.Core10.Enums.Result (Result) import Vulkan.Core10.Enums.Result (Result(..)) import Vulkan.Core10.Enums.SampleCountFlagBits (SampleCountFlagBits)@@ -183,7 +187,7 @@ -- describing the parameters of the render pass. (RenderPassCreateInfo2 a) -> -- | @pAllocator@ controls host memory allocation as described in the- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation> -- chapter. ("allocator" ::: Maybe AllocationCallbacks) -> io (RenderPass)@@ -355,6 +359,37 @@ -- 'Vulkan.Core10.Enums.AttachmentDescriptionFlagBits.ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT' -- set --+-- - #VUID-vkCmdBeginRenderPass2-initialLayout-07002# If any of the+-- @initialLayout@ or @finalLayout@ member of the+-- 'Vulkan.Core10.Pass.AttachmentDescription' structures or the+-- @layout@ member of the 'Vulkan.Core10.Pass.AttachmentReference'+-- structures specified when creating the render pass specified in the+-- @renderPass@ member of @pRenderPassBegin@ is+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT'+-- then the corresponding attachment image view of the framebuffer+-- specified in the @framebuffer@ member of @pRenderPassBegin@ /must/+-- have been created with a @usage@ value including either the+-- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_COLOR_ATTACHMENT_BIT'+-- or+-- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT'+-- and either the+-- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_INPUT_ATTACHMENT_BIT'+-- or 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_SAMPLED_BIT'+-- usage bits.+--+-- - #VUID-vkCmdBeginRenderPass2-initialLayout-07003# If any of the+-- @initialLayout@ or @finalLayout@ member of the+-- 'Vulkan.Core10.Pass.AttachmentDescription' structures or the+-- @layout@ member of the 'Vulkan.Core10.Pass.AttachmentReference'+-- structures specified when creating the render pass specified in the+-- @renderPass@ member of @pRenderPassBegin@ is+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT'+-- then the corresponding attachment image view of the framebuffer+-- specified in the @framebuffer@ member of @pRenderPassBegin@ /must/+-- have been created with a @usage@ value the+-- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT'+-- usage bit.+-- -- == Valid Usage (Implicit) -- -- - #VUID-vkCmdBeginRenderPass2-commandBuffer-parameter# @commandBuffer@@@ -379,6 +414,9 @@ -- - #VUID-vkCmdBeginRenderPass2-renderpass# This command /must/ only be -- called outside of a render pass instance --+-- - #VUID-vkCmdBeginRenderPass2-videocoding# This command /must/ only be+-- called outside of a video coding scope+-- -- - #VUID-vkCmdBeginRenderPass2-bufferlevel# @commandBuffer@ /must/ be a -- primary 'Vulkan.Core10.Handles.CommandBuffer' --@@ -393,11 +431,11 @@ -- -- \' ----- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | Primary | Outside | Graphics |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================++-- | Primary | Outside | Outside | Graphics |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+ -- -- = See Also --@@ -487,6 +525,9 @@ -- - #VUID-vkCmdNextSubpass2-renderpass# This command /must/ only be -- called inside of a render pass instance --+-- - #VUID-vkCmdNextSubpass2-videocoding# This command /must/ only be+-- called outside of a video coding scope+-- -- - #VUID-vkCmdNextSubpass2-bufferlevel# @commandBuffer@ /must/ be a -- primary 'Vulkan.Core10.Handles.CommandBuffer' --@@ -501,11 +542,11 @@ -- -- \' ----- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | Primary | Inside | Graphics |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================++-- | Primary | Inside | Outside | Graphics |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+ -- -- = See Also --@@ -564,6 +605,12 @@ -- instance /must/ not have been begun with -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' --+-- - #VUID-vkCmdEndRenderPass2-None-07005# If+-- 'Vulkan.Core10.CommandBufferBuilding.cmdBeginQuery'* was called+-- within a subpass of the render pass, the corresponding+-- 'Vulkan.Core10.CommandBufferBuilding.cmdEndQuery'* /must/ have been+-- called subsequently within the same subpass.+-- -- == Valid Usage (Implicit) -- -- - #VUID-vkCmdEndRenderPass2-commandBuffer-parameter# @commandBuffer@@@ -584,6 +631,9 @@ -- - #VUID-vkCmdEndRenderPass2-renderpass# This command /must/ only be -- called inside of a render pass instance --+-- - #VUID-vkCmdEndRenderPass2-videocoding# This command /must/ only be+-- called outside of a video coding scope+-- -- - #VUID-vkCmdEndRenderPass2-bufferlevel# @commandBuffer@ /must/ be a -- primary 'Vulkan.Core10.Handles.CommandBuffer' --@@ -598,11 +648,11 @@ -- -- \' ----- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | Primary | Inside | Graphics |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================++-- | Primary | Inside | Outside | Graphics |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+ -- -- = See Also --@@ -638,7 +688,7 @@ -- those parameters. -- -- If the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-separateDepthStencilLayouts separateDepthStencilLayouts>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-separateDepthStencilLayouts separateDepthStencilLayouts> -- feature is enabled, and @format@ is a depth\/stencil format, -- @initialLayout@ and @finalLayout@ /can/ be set to a layout that only -- specifies the layout of the depth aspect.@@ -665,167 +715,185 @@ -- -- == Valid Usage ----- - #VUID-VkAttachmentDescription2-format-06701# @format@ /must/ not be+-- - #VUID-VkAttachmentDescription2-format-06698# @format@ /must/ not be -- VK_FORMAT_UNDEFINED ----- - #VUID-VkAttachmentDescription2-finalLayout-03061# @finalLayout@--- /must/ not be--- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_UNDEFINED' or--- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_PREINITIALIZED'------ - #VUID-VkAttachmentDescription2-format-06702# If @format@ includes a+-- - #VUID-VkAttachmentDescription2-format-06699# If @format@ includes a -- color or depth aspect and @loadOp@ is -- 'Vulkan.Core10.Enums.AttachmentLoadOp.ATTACHMENT_LOAD_OP_LOAD', then -- @initialLayout@ /must/ not be -- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_UNDEFINED' ----- - #VUID-VkAttachmentDescription2-pNext-06704# If the @pNext@ chain--- does not include a--- 'Vulkan.Core12.Promoted_From_VK_KHR_separate_depth_stencil_layouts.AttachmentDescriptionStencilLayout'--- structure, @format@ includes a stencil aspect, and @stencilLoadOp@--- is 'Vulkan.Core10.Enums.AttachmentLoadOp.ATTACHMENT_LOAD_OP_LOAD',--- then @initialLayout@ /must/ not be--- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_UNDEFINED'------ - #VUID-VkAttachmentDescription2-pNext-06705# If the @pNext@ chain--- does includes a--- 'Vulkan.Core12.Promoted_From_VK_KHR_separate_depth_stencil_layouts.AttachmentDescriptionStencilLayout'--- structure, @format@ includes a stencil aspect, and @stencilLoadOp@--- is 'Vulkan.Core10.Enums.AttachmentLoadOp.ATTACHMENT_LOAD_OP_LOAD',--- then--- 'Vulkan.Core12.Promoted_From_VK_KHR_separate_depth_stencil_layouts.AttachmentDescriptionStencilLayout'::stencilInitialLayout+-- - #VUID-VkAttachmentDescription2-finalLayout-00843# @finalLayout@ -- /must/ not be--- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_UNDEFINED'+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_UNDEFINED' or+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_PREINITIALIZED' ----- - #VUID-VkAttachmentDescription2-format-03294# If @format@ is a color+-- - #VUID-VkAttachmentDescription2-format-03280# If @format@ is a color -- format, @initialLayout@ /must/ not be--- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL',--- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL',--- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL',+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL' -- or--- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL'+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL' ----- - #VUID-VkAttachmentDescription2-format-03295# If @format@ is a+-- - #VUID-VkAttachmentDescription2-format-03281# If @format@ is a -- depth\/stencil format, @initialLayout@ /must/ not be -- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL' ----- - #VUID-VkAttachmentDescription2-format-03296# If @format@ is a color+-- - #VUID-VkAttachmentDescription2-format-03282# If @format@ is a color -- format, @finalLayout@ /must/ not be--- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL',--- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL',--- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL',+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL' -- or--- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL'+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL' ----- - #VUID-VkAttachmentDescription2-format-03297# If @format@ is a+-- - #VUID-VkAttachmentDescription2-format-03283# If @format@ is a -- depth\/stencil format, @finalLayout@ /must/ not be -- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL' ----- - #VUID-VkAttachmentDescription2-separateDepthStencilLayouts-03298# If+-- - #VUID-VkAttachmentDescription2-format-06487# If @format@ is a color+-- format, @initialLayout@ /must/ not be+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL'+-- or+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL'+--+-- - #VUID-VkAttachmentDescription2-format-06488# If @format@ is a color+-- format, @finalLayout@ /must/ not be+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL'+-- or+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL'+--+-- - #VUID-VkAttachmentDescription2-separateDepthStencilLayouts-03284# If -- the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-separateDepthStencilLayouts separateDepthStencilLayouts>+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-separateDepthStencilLayouts separateDepthStencilLayouts> -- feature is not enabled, @initialLayout@ /must/ not be -- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL', -- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL',--- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL'+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL', -- or--- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL'+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL', ----- - #VUID-VkAttachmentDescription2-separateDepthStencilLayouts-03299# If+-- - #VUID-VkAttachmentDescription2-separateDepthStencilLayouts-03285# If -- the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-separateDepthStencilLayouts separateDepthStencilLayouts>+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-separateDepthStencilLayouts separateDepthStencilLayouts> -- feature is not enabled, @finalLayout@ /must/ not be -- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL', -- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL',--- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL'+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL', -- or--- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL'+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL', ----- - #VUID-VkAttachmentDescription2-format-03300# If @format@ is a color+-- - #VUID-VkAttachmentDescription2-format-03286# If @format@ is a color -- format, @initialLayout@ /must/ not be -- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL', -- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL',--- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL'+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL', -- or -- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL' ----- - #VUID-VkAttachmentDescription2-format-03301# If @format@ is a color+-- - #VUID-VkAttachmentDescription2-format-03287# If @format@ is a color -- format, @finalLayout@ /must/ not be -- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL', -- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL',--- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL'+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL', -- or -- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL' ----- - #VUID-VkAttachmentDescription2-format-03302# If @format@ is a+-- - #VUID-VkAttachmentDescription2-format-06906# If @format@ is a -- depth\/stencil format which includes both depth and stencil aspects,--- and @initialLayout@ is--- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL'+-- @initialLayout@ /must/ not be+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL' -- or--- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL',--- the @pNext@ chain /must/ include a--- 'Vulkan.Core12.Promoted_From_VK_KHR_separate_depth_stencil_layouts.AttachmentDescriptionStencilLayout'--- structure+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL' ----- - #VUID-VkAttachmentDescription2-format-03303# If @format@ is a+-- - #VUID-VkAttachmentDescription2-format-06907# If @format@ is a -- depth\/stencil format which includes both depth and stencil aspects,--- and @finalLayout@ is--- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL'+-- @finalLayout@ /must/ not be+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL' -- or--- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL',--- the @pNext@ chain /must/ include a--- 'Vulkan.Core12.Promoted_From_VK_KHR_separate_depth_stencil_layouts.AttachmentDescriptionStencilLayout'--- structure+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL' ----- - #VUID-VkAttachmentDescription2-format-03304# If @format@ is a+-- - #VUID-VkAttachmentDescription2-format-03290# If @format@ is a -- depth\/stencil format which includes only the depth aspect, -- @initialLayout@ /must/ not be -- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL' -- or -- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL' ----- - #VUID-VkAttachmentDescription2-format-03305# If @format@ is a+-- - #VUID-VkAttachmentDescription2-format-03291# If @format@ is a -- depth\/stencil format which includes only the depth aspect, -- @finalLayout@ /must/ not be -- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL' -- or -- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL' ----- - #VUID-VkAttachmentDescription2-format-03306# If @format@ is a--- depth\/stencil format which includes only the stencil aspect,--- @initialLayout@ /must/ not be+-- - #VUID-VkAttachmentDescription2-synchronization2-06908# If the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-synchronization2 synchronization2>+-- feature is not enabled, @initialLayout@ /must/ not be+-- 'Vulkan.Extensions.VK_KHR_synchronization2.IMAGE_LAYOUT_ATTACHMENT_OPTIMAL_KHR'+-- or+-- 'Vulkan.Extensions.VK_KHR_synchronization2.IMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR'+--+-- - #VUID-VkAttachmentDescription2-synchronization2-06909# If the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-synchronization2 synchronization2>+-- feature is not enabled, @finalLayout@ /must/ not be+-- 'Vulkan.Extensions.VK_KHR_synchronization2.IMAGE_LAYOUT_ATTACHMENT_OPTIMAL_KHR'+-- or+-- 'Vulkan.Extensions.VK_KHR_synchronization2.IMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR'+--+-- - #VUID-VkAttachmentDescription2-pNext-06704# If the @pNext@ chain+-- does not include a+-- 'Vulkan.Core12.Promoted_From_VK_KHR_separate_depth_stencil_layouts.AttachmentDescriptionStencilLayout'+-- structure, @format@ includes a stencil aspect, and @stencilLoadOp@+-- is 'Vulkan.Core10.Enums.AttachmentLoadOp.ATTACHMENT_LOAD_OP_LOAD',+-- then @initialLayout@ /must/ not be+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_UNDEFINED'+--+-- - #VUID-VkAttachmentDescription2-pNext-06705# If the @pNext@ chain+-- does includes a+-- 'Vulkan.Core12.Promoted_From_VK_KHR_separate_depth_stencil_layouts.AttachmentDescriptionStencilLayout'+-- structure, @format@ includes a stencil aspect, and @stencilLoadOp@+-- is 'Vulkan.Core10.Enums.AttachmentLoadOp.ATTACHMENT_LOAD_OP_LOAD',+-- then+-- 'Vulkan.Core12.Promoted_From_VK_KHR_separate_depth_stencil_layouts.AttachmentDescriptionStencilLayout'::stencilInitialLayout+-- /must/ not be+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_UNDEFINED'+--+-- - #VUID-VkAttachmentDescription2-format-06249# If @format@ is a+-- depth\/stencil format which includes both depth and stencil aspects,+-- and @initialLayout@ is -- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL' -- or--- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL'+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL',+-- the @pNext@ chain /must/ include a+-- 'Vulkan.Core12.Promoted_From_VK_KHR_separate_depth_stencil_layouts.AttachmentDescriptionStencilLayout'+-- structure ----- - #VUID-VkAttachmentDescription2-format-03307# If @format@ is a--- depth\/stencil format which includes only the stencil aspect,--- @finalLayout@ /must/ not be+-- - #VUID-VkAttachmentDescription2-format-06250# If @format@ is a+-- depth\/stencil format which includes both depth and stencil aspects,+-- and @finalLayout@ is -- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL' -- or--- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL'+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL',+-- the @pNext@ chain /must/ include a+-- 'Vulkan.Core12.Promoted_From_VK_KHR_separate_depth_stencil_layouts.AttachmentDescriptionStencilLayout'+-- structure ----- - #VUID-VkAttachmentDescription2-separateDepthStencilLayouts-06556# If--- the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-separateDepthStencilLayouts separateDepthStencilLayouts>--- feature is enabled and @format@ is a depth\/stencil format that--- includes a depth aspect and the @pNext@ chain includes a+-- - #VUID-VkAttachmentDescription2-format-06247# If the @pNext@ chain+-- does not include a -- 'Vulkan.Core12.Promoted_From_VK_KHR_separate_depth_stencil_layouts.AttachmentDescriptionStencilLayout'--- structure, @initialLayout@ /must/ not be--- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL'+-- structure and @format@ only includes a stencil aspect,+-- @initialLayout@ /must/ not be+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL' -- or--- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL'+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL' ----- - #VUID-VkAttachmentDescription2-separateDepthStencilLayouts-06557# If--- the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-separateDepthStencilLayouts separateDepthStencilLayouts>--- feature is enabled and @format@ is a depth\/stencil format that--- includes a depth aspect and the @pNext@ chain includes a+-- - #VUID-VkAttachmentDescription2-format-06248# If the @pNext@ chain+-- does not include a -- 'Vulkan.Core12.Promoted_From_VK_KHR_separate_depth_stencil_layouts.AttachmentDescriptionStencilLayout'--- structure, @finalLayout@ /must/ not be--- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL'+-- structure and @format@ only includes a stencil aspect, @finalLayout@+-- /must/ not be+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL' -- or--- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL'+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL' -- -- == Valid Usage (Implicit) --@@ -1015,7 +1083,7 @@ -- other than an input attachment reference. -- -- If the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-separateDepthStencilLayouts separateDepthStencilLayouts>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-separateDepthStencilLayouts separateDepthStencilLayouts> -- feature is enabled, and @attachment@ has a depth\/stencil format, -- @layout@ /can/ be set to a layout that only specifies the layout of the -- depth aspect.@@ -1037,7 +1105,7 @@ -- -- - #VUID-VkAttachmentReference2-separateDepthStencilLayouts-03313# If -- the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-separateDepthStencilLayouts separateDepthStencilLayouts>+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-separateDepthStencilLayouts separateDepthStencilLayouts> -- feature is not enabled, and @attachment@ is not -- 'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED', @layout@ /must/ not -- be@@ -1047,42 +1115,12 @@ -- or -- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL', ----- - #VUID-VkAttachmentReference2-attachment-04754# If @attachment@ is--- not 'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED', and the format--- of the referenced attachment is a color format, @layout@ /must/ not--- be--- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL',--- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL',--- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL'--- or--- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL'------ - #VUID-VkAttachmentReference2-attachment-04755# If @attachment@ is--- not 'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED', and the format--- of the referenced attachment is a depth\/stencil format which--- includes both depth and stencil aspects, and @layout@ is--- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL'--- or--- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL',--- the @pNext@ chain /must/ include a--- 'Vulkan.Core12.Promoted_From_VK_KHR_separate_depth_stencil_layouts.AttachmentReferenceStencilLayout'--- structure------ - #VUID-VkAttachmentReference2-attachment-04756# If @attachment@ is--- not 'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED', and the format--- of the referenced attachment is a depth\/stencil format which--- includes only the depth aspect, @layout@ /must/ not be--- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL'--- or--- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL'------ - #VUID-VkAttachmentReference2-attachment-04757# If @attachment@ is--- not 'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED', and the format--- of the referenced attachment is a depth\/stencil format which--- includes only the stencil aspect, @layout@ /must/ not be--- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL'+-- - #VUID-VkAttachmentReference2-synchronization2-06910# If the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-synchronization2 synchronization2>+-- feature is not enabled, @layout@ /must/ not be+-- 'Vulkan.Extensions.VK_KHR_synchronization2.IMAGE_LAYOUT_ATTACHMENT_OPTIMAL_KHR' -- or--- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL'+-- 'Vulkan.Extensions.VK_KHR_synchronization2.IMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR' -- -- == Valid Usage (Implicit) --@@ -1200,6 +1238,111 @@ -- -- == Valid Usage --+-- - #VUID-VkSubpassDescription2-attachment-06912# If the @attachment@+-- member of an element of @pInputAttachments@ is not+-- 'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED', its @layout@ member+-- /must/ not be+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL'+-- or+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL'+--+-- - #VUID-VkSubpassDescription2-attachment-06913# If the @attachment@+-- member of an element of @pColorAttachments@ is not+-- 'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED', its @layout@ member+-- /must/ not be+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL'+-- or+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL'+--+-- - #VUID-VkSubpassDescription2-attachment-06914# If the @attachment@+-- member of an element of @pResolveAttachments@ is not+-- 'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED', its @layout@ member+-- /must/ not be+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL'+-- or+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL'+--+-- - #VUID-VkSubpassDescription2-attachment-06915# If the @attachment@+-- member of @pDepthStencilAttachment@ is not+-- 'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED', ts @layout@ member+-- /must/ not be+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL'+-- or+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL'+--+-- - #VUID-VkSubpassDescription2-attachment-06916# If the @attachment@+-- member of an element of @pColorAttachments@ is not+-- 'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED', its @layout@ member+-- /must/ not be+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL'+-- or+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL'+--+-- - #VUID-VkSubpassDescription2-attachment-06917# If the @attachment@+-- member of an element of @pResolveAttachments@ is not+-- 'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED', its @layout@ member+-- /must/ not be+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL'+-- or+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL'+--+-- - #VUID-VkSubpassDescription2-attachment-06918# If the @attachment@+-- member of an element of @pInputAttachments@ is not+-- 'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED', its @layout@ member+-- /must/ not be+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL'+-- or+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL'+--+-- - #VUID-VkSubpassDescription2-attachment-06919# If the @attachment@+-- member of an element of @pColorAttachments@ is not+-- 'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED', its @layout@ member+-- /must/ not be+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL',+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL',+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL',+-- or+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL'+--+-- - #VUID-VkSubpassDescription2-attachment-06920# If the @attachment@+-- member of an element of @pResolveAttachments@ is not+-- 'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED', its @layout@ member+-- /must/ not be+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL',+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL',+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL',+-- or+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL'+--+-- - #VUID-VkSubpassDescription2-attachment-06921# If the @attachment@+-- member of an element of @pInputAttachments@ is not+-- 'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED', its @layout@ member+-- /must/ not be+-- 'Vulkan.Extensions.VK_KHR_synchronization2.IMAGE_LAYOUT_ATTACHMENT_OPTIMAL_KHR'+--+-- - #VUID-VkSubpassDescription2-attachment-06922# If the @attachment@+-- member of an element of @pColorAttachments@ is not+-- 'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED', its @layout@ member+-- /must/ not be+-- 'Vulkan.Extensions.VK_KHR_synchronization2.IMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR'+--+-- - #VUID-VkSubpassDescription2-attachment-06923# If the @attachment@+-- member of an element of @pResolveAttachments@ is not+-- 'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED', its @layout@ member+-- /must/ not be+-- 'Vulkan.Extensions.VK_KHR_synchronization2.IMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR'+--+-- - #VUID-VkSubpassDescription2-attachment-06251# If the @attachment@+-- member of @pDepthStencilAttachment@ is not+-- 'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED' and its @pNext@ chain+-- includes a+-- 'Vulkan.Core12.Promoted_From_VK_KHR_separate_depth_stencil_layouts.AttachmentDescriptionStencilLayout'+-- structure, the @layout@ member of @pDepthStencilAttachment@ /must/+-- not be+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL'+-- or+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL'+-- -- - #VUID-VkSubpassDescription2-pipelineBindPoint-04953# -- @pipelineBindPoint@ /must/ be -- 'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_GRAPHICS'@@ -1240,16 +1383,19 @@ -- 'Vulkan.Core10.Enums.Format.Format' as its corresponding color -- attachment ----- - #VUID-VkSubpassDescription2-pColorAttachments-03069# All attachments--- in @pColorAttachments@ that are not--- 'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED' /must/ have the same--- sample count+-- - #VUID-VkSubpassDescription2-multisampledRenderToSingleSampled-06869#+-- If none of the @VK_AMD_mixed_attachment_samples@ extension, the+-- @VK_NV_framebuffer_mixed_samples@ extension, or the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>+-- feature are enabled, all attachments in @pColorAttachments@ that are+-- not 'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED' /must/ have the+-- same sample count -- -- - #VUID-VkSubpassDescription2-pInputAttachments-02897# All attachments -- in @pInputAttachments@ that are not -- 'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED' /must/ have image -- formats whose--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#potential-format-features potential format features>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#potential-format-features potential format features> -- contain at least -- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_COLOR_ATTACHMENT_BIT' -- or@@ -1259,7 +1405,7 @@ -- in @pColorAttachments@ that are not -- 'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED' /must/ have image -- formats whose--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#potential-format-features potential format features>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#potential-format-features potential format features> -- contain -- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_COLOR_ATTACHMENT_BIT' --@@ -1267,7 +1413,7 @@ -- attachments in @pResolveAttachments@ that are not -- 'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED' /must/ have image -- formats whose--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#potential-format-features potential format features>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#potential-format-features potential format features> -- contain -- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_COLOR_ATTACHMENT_BIT' --@@ -1275,40 +1421,40 @@ -- @pDepthStencilAttachment@ is not @NULL@ and the attachment is not -- 'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED' then it /must/ have -- an image format whose--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#potential-format-features potential format features>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#potential-format-features potential format features> -- contain -- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT' -- -- - #VUID-VkSubpassDescription2-linearColorAttachment-06499# If the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-linearColorAttachment linearColorAttachment>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-linearColorAttachment linearColorAttachment> -- feature is enabled and the image is created with -- 'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_LINEAR', all -- attachments in @pInputAttachments@ that are not -- 'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED' /must/ have image -- formats whose--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#potential-format-features potential format features>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#potential-format-features potential format features> -- /must/ contain -- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV' -- -- - #VUID-VkSubpassDescription2-linearColorAttachment-06500# If the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-linearColorAttachment linearColorAttachment>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-linearColorAttachment linearColorAttachment> -- feature is enabled and the image is created with -- 'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_LINEAR', all -- attachments in @pColorAttachments@ that are not -- 'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED' /must/ have image -- formats whose--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#potential-format-features potential format features>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#potential-format-features potential format features> -- /must/ contain -- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV' -- -- - #VUID-VkSubpassDescription2-linearColorAttachment-06501# If the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-linearColorAttachment linearColorAttachment>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-linearColorAttachment linearColorAttachment> -- feature is enabled and the image is created with -- 'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_LINEAR', all -- attachments in @pResolveAttachments@ that are not -- 'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED' /must/ have image -- formats whose--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#potential-format-features potential format features>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#potential-format-features potential format features> -- /must/ contain -- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV' --@@ -1320,15 +1466,42 @@ -- @pDepthStencilAttachment@ if it is not -- 'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED' ----- - #VUID-VkSubpassDescription2-pDepthStencilAttachment-03071# If--- neither the @VK_AMD_mixed_attachment_samples@ nor the--- @VK_NV_framebuffer_mixed_samples@ extensions are enabled, and if--- @pDepthStencilAttachment@ is not--- 'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED' and any attachments--- in @pColorAttachments@ are not--- 'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED', they /must/ have the--- same sample count+-- - #VUID-VkSubpassDescription2-pNext-06870# If the @pNext@ chain+-- includes a+-- 'Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled.MultisampledRenderToSingleSampledInfoEXT'+-- structure with @multisampledRenderToSingleSampledEnable@ equal to+-- 'Vulkan.Core10.FundamentalTypes.TRUE', then all attachments in+-- @pColorAttachments@ and @pDepthStencilAttachment@ that are not+-- 'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED' /must/ have a sample+-- count that is either+-- 'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT' or+-- equal to+-- 'Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled.MultisampledRenderToSingleSampledInfoEXT'::@rasterizationSamples@ --+-- - #VUID-VkSubpassDescription2-pNext-06871# If the @pNext@ chain+-- includes a+-- 'Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled.MultisampledRenderToSingleSampledInfoEXT'+-- structure with @multisampledRenderToSingleSampledEnable@ equal to+-- 'Vulkan.Core10.FundamentalTypes.TRUE', and @pDepthStencilAttachment@+-- is not @NULL@, does not have the value+-- 'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED', and has a sample+-- count of+-- 'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT', the+-- @pNext@ chain /must/ also include a+-- 'Vulkan.Core12.Promoted_From_VK_KHR_depth_stencil_resolve.SubpassDescriptionDepthStencilResolve'+-- structure with @pDepthStencilResolveAttachment@ that is either+-- @NULL@ or has the value+-- 'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED'+--+-- - #VUID-VkSubpassDescription2-multisampledRenderToSingleSampled-06872#+-- If none of the @VK_AMD_mixed_attachment_samples@ extension, the+-- @VK_NV_framebuffer_mixed_samples@ extension, or the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>+-- feature are enabled, all attachments in @pDepthStencilAttachment@ or+-- @pColorAttachments@ that are not+-- 'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED' /must/ have the same+-- sample count+-- -- - #VUID-VkSubpassDescription2-attachment-03073# Each element of -- @pPreserveAttachments@ /must/ not be -- 'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED'@@ -1341,11 +1514,6 @@ -- by more than one 'AttachmentReference2' member, then each use /must/ -- use the same @layout@ ----- - #VUID-VkSubpassDescription2-None-04439# Attachments /must/ follow--- the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#attachment-type-imagelayout image layout requirements>--- based on the type of attachment it is being used as--- -- - #VUID-VkSubpassDescription2-flags-03076# If @flags@ includes -- 'Vulkan.Core10.Enums.SubpassDescriptionFlagBits.SUBPASS_DESCRIPTION_PER_VIEW_POSITION_X_ONLY_BIT_NVX', -- it /must/ also include@@ -1379,12 +1547,12 @@ -- @pColorAttachments@ -- -- - #VUID-VkSubpassDescription2-multiview-06558# If the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-multiview multiview>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-multiview multiview> -- feature is not enabled, @viewMask@ /must/ be @0@ -- -- - #VUID-VkSubpassDescription2-viewMask-06706# The index of the most -- significant bit in @viewMask@ /must/ be less than--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxMultiviewViewCount maxMultiviewViewCount>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxMultiviewViewCount maxMultiviewViewCount> -- -- == Valid Usage (Implicit) --@@ -1394,7 +1562,10 @@ -- - #VUID-VkSubpassDescription2-pNext-pNext# Each @pNext@ member of any -- structure (including this one) in the @pNext@ chain /must/ be either -- @NULL@ or a pointer to a valid instance of--- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.FragmentShadingRateAttachmentInfoKHR'+-- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.FragmentShadingRateAttachmentInfoKHR',+-- 'Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled.MultisampledRenderToSingleSampledInfoEXT',+-- 'Vulkan.Extensions.VK_EXT_subpass_merge_feedback.RenderPassCreationControlEXT',+-- 'Vulkan.Extensions.VK_EXT_subpass_merge_feedback.RenderPassSubpassFeedbackCreateInfoEXT', -- or -- 'Vulkan.Core12.Promoted_From_VK_KHR_depth_stencil_resolve.SubpassDescriptionDepthStencilResolve' --@@ -1492,6 +1663,9 @@ getNext SubpassDescription2{..} = next extends :: forall e b proxy. Typeable e => proxy e -> (Extends SubpassDescription2 e => b) -> Maybe b extends _ f+ | Just Refl <- eqT @e @RenderPassSubpassFeedbackCreateInfoEXT = Just f+ | Just Refl <- eqT @e @RenderPassCreationControlEXT = Just f+ | Just Refl <- eqT @e @MultisampledRenderToSingleSampledInfoEXT = Just f | Just Refl <- eqT @e @FragmentShadingRateAttachmentInfoKHR = Just f | Just Refl <- eqT @e @SubpassDescriptionDepthStencilResolve = Just f | otherwise = Nothing@@ -1602,44 +1776,44 @@ -- == Valid Usage -- -- - #VUID-VkSubpassDependency2-srcStageMask-04090# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryShader geometry shaders>+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryShader geometryShader> -- feature is not enabled, @srcStageMask@ /must/ not contain -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_GEOMETRY_SHADER_BIT' -- -- - #VUID-VkSubpassDependency2-srcStageMask-04091# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShader tessellation shaders>+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShader tessellationShader> -- feature is not enabled, @srcStageMask@ /must/ not contain -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT' -- or -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT' -- -- - #VUID-VkSubpassDependency2-srcStageMask-04092# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-conditionalRendering conditional rendering>+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-conditionalRendering conditionalRendering> -- feature is not enabled, @srcStageMask@ /must/ not contain -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT' -- -- - #VUID-VkSubpassDependency2-srcStageMask-04093# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-fragmentDensityMap fragment density map>+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-fragmentDensityMap fragmentDensityMap> -- feature is not enabled, @srcStageMask@ /must/ not contain -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT' -- -- - #VUID-VkSubpassDependency2-srcStageMask-04094# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-transformFeedback transform feedback>+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-transformFeedback transformFeedback> -- feature is not enabled, @srcStageMask@ /must/ not contain -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT' -- -- - #VUID-VkSubpassDependency2-srcStageMask-04095# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader mesh shaders>+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader> -- feature is not enabled, @srcStageMask@ /must/ not contain--- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_MESH_SHADER_BIT_NV'+-- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_MESH_SHADER_BIT_EXT' -- -- - #VUID-VkSubpassDependency2-srcStageMask-04096# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader task shaders>+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader> -- feature is not enabled, @srcStageMask@ /must/ not contain--- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TASK_SHADER_BIT_NV'+-- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TASK_SHADER_BIT_EXT' -- -- - #VUID-VkSubpassDependency2-srcStageMask-04097# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shading rate image>+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage> -- feature is not enabled, @srcStageMask@ /must/ not contain -- 'Vulkan.Extensions.VK_NV_shading_rate_image.PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV' --@@ -1648,44 +1822,44 @@ -- feature is not enabled, @srcStageMask@ /must/ not be @0@ -- -- - #VUID-VkSubpassDependency2-dstStageMask-04090# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryShader geometry shaders>+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryShader geometryShader> -- feature is not enabled, @dstStageMask@ /must/ not contain -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_GEOMETRY_SHADER_BIT' -- -- - #VUID-VkSubpassDependency2-dstStageMask-04091# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShader tessellation shaders>+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShader tessellationShader> -- feature is not enabled, @dstStageMask@ /must/ not contain -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT' -- or -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT' -- -- - #VUID-VkSubpassDependency2-dstStageMask-04092# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-conditionalRendering conditional rendering>+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-conditionalRendering conditionalRendering> -- feature is not enabled, @dstStageMask@ /must/ not contain -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT' -- -- - #VUID-VkSubpassDependency2-dstStageMask-04093# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-fragmentDensityMap fragment density map>+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-fragmentDensityMap fragmentDensityMap> -- feature is not enabled, @dstStageMask@ /must/ not contain -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT' -- -- - #VUID-VkSubpassDependency2-dstStageMask-04094# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-transformFeedback transform feedback>+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-transformFeedback transformFeedback> -- feature is not enabled, @dstStageMask@ /must/ not contain -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT' -- -- - #VUID-VkSubpassDependency2-dstStageMask-04095# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader mesh shaders>+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader> -- feature is not enabled, @dstStageMask@ /must/ not contain--- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_MESH_SHADER_BIT_NV'+-- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_MESH_SHADER_BIT_EXT' -- -- - #VUID-VkSubpassDependency2-dstStageMask-04096# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader task shaders>+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader> -- feature is not enabled, @dstStageMask@ /must/ not contain--- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TASK_SHADER_BIT_NV'+-- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TASK_SHADER_BIT_EXT' -- -- - #VUID-VkSubpassDependency2-dstStageMask-04097# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shading rate image>+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage> -- feature is not enabled, @dstStageMask@ /must/ not contain -- 'Vulkan.Extensions.VK_NV_shading_rate_image.PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV' --@@ -1702,27 +1876,21 @@ -- @dstSubpass@ /must/ not both be equal to -- 'Vulkan.Core10.APIConstants.SUBPASS_EXTERNAL' ----- - #VUID-VkSubpassDependency2-srcSubpass-03087# If @srcSubpass@ is--- equal to @dstSubpass@ and not all of the stages in @srcStageMask@--- and @dstStageMask@ are--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-framebuffer-regions framebuffer-space stages>,--- the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages-order logically latest>--- pipeline stage in @srcStageMask@ /must/ be--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages-order logically earlier>--- than or equal to the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages-order logically earliest>--- pipeline stage in @dstStageMask@+-- - #VUID-VkSubpassDependency2-srcSubpass-06810# If @srcSubpass@ is+-- equal to @dstSubpass@ and @srcStageMask@ includes a+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-framebuffer-regions framebuffer-space stage>,+-- @dstStageMask@ /must/ only contain+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-framebuffer-regions framebuffer-space stages> -- -- - #VUID-VkSubpassDependency2-srcAccessMask-03088# Any access flag -- included in @srcAccessMask@ /must/ be supported by one of the -- pipeline stages in @srcStageMask@, as specified in the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-access-types-supported table of supported access types>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-access-types-supported table of supported access types> -- -- - #VUID-VkSubpassDependency2-dstAccessMask-03089# Any access flag -- included in @dstAccessMask@ /must/ be supported by one of the -- pipeline stages in @dstStageMask@, as specified in the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-access-types-supported table of supported access types>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-access-types-supported table of supported access types> -- -- - #VUID-VkSubpassDependency2-dependencyFlags-03090# If -- @dependencyFlags@ includes@@ -1738,7 +1906,7 @@ -- -- - #VUID-VkSubpassDependency2-srcSubpass-02245# If @srcSubpass@ equals -- @dstSubpass@, and @srcStageMask@ and @dstStageMask@ both include a--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-framebuffer-regions framebuffer-space stage>,+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-framebuffer-regions framebuffer-space stage>, -- then @dependencyFlags@ /must/ include -- 'Vulkan.Core10.Enums.DependencyFlagBits.DEPENDENCY_BY_REGION_BIT' --@@ -1805,20 +1973,20 @@ , -- | @srcStageMask@ is a bitmask of -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlagBits' -- specifying the- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages-masks source stage mask>.+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages-masks source stage mask>. srcStageMask :: PipelineStageFlags , -- | @dstStageMask@ is a bitmask of -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlagBits' -- specifying the- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages-masks destination stage mask>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages-masks destination stage mask> dstStageMask :: PipelineStageFlags , -- | @srcAccessMask@ is a bitmask of -- 'Vulkan.Core10.Enums.AccessFlagBits.AccessFlagBits' specifying a- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-access-masks source access mask>.+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-access-masks source access mask>. srcAccessMask :: AccessFlags , -- | @dstAccessMask@ is a bitmask of -- 'Vulkan.Core10.Enums.AccessFlagBits.AccessFlagBits' specifying a- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-access-masks destination access mask>.+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-access-masks destination access mask>. dstAccessMask :: AccessFlags , -- | @dependencyFlags@ is a bitmask of -- 'Vulkan.Core10.Enums.DependencyFlagBits.DependencyFlagBits'.@@ -1983,7 +2151,7 @@ -- 'Vulkan.Core10.APIConstants.SUBPASS_EXTERNAL', all stage flags -- included in the @srcStageMask@ member of that dependency /must/ be a -- pipeline stage supported by the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages-types pipeline>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages-types pipeline> -- identified by the @pipelineBindPoint@ member of the source subpass -- -- - #VUID-VkRenderPassCreateInfo2-pDependencies-03055# For any element@@ -1991,7 +2159,7 @@ -- 'Vulkan.Core10.APIConstants.SUBPASS_EXTERNAL', all stage flags -- included in the @dstStageMask@ member of that dependency /must/ be a -- pipeline stage supported by the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages-types pipeline>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages-types pipeline> -- identified by the @pipelineBindPoint@ member of the destination -- subpass --@@ -2054,23 +2222,23 @@ -- - #VUID-VkRenderPassCreateInfo2-pAttachments-04586# If any element of -- @pAttachments@ is used as a fragment shading rate attachment in any -- subpass, it /must/ have an image format whose--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#potential-format-features potential format features>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#potential-format-features potential format features> -- contain -- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR' -- -- - #VUID-VkRenderPassCreateInfo2-rasterizationSamples-04905# If the -- pipeline is being created with fragment shader state, and the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_QCOM_render_pass_shader_resolve VK_QCOM_render_pass_shader_resolve>--- extension is enabled, and if subpass has any input attachments, and--- if the subpass description contains+-- @VK_QCOM_render_pass_shader_resolve extension@ is enabled, and if+-- subpass has any input attachments, and if the subpass description+-- contains -- 'Vulkan.Core10.Enums.SubpassDescriptionFlagBits.SUBPASS_DESCRIPTION_FRAGMENT_REGION_BIT_QCOM', -- then the sample count of the input attachments /must/ equal -- @rasterizationSamples@ -- -- - #VUID-VkRenderPassCreateInfo2-sampleShadingEnable-04906# If the -- pipeline is being created with fragment shader state, and the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_QCOM_render_pass_shader_resolve VK_QCOM_render_pass_shader_resolve>--- extension is enabled, and if the subpass description contains+-- @VK_QCOM_render_pass_shader_resolve@ extension is enabled, and if+-- the subpass description contains -- 'Vulkan.Core10.Enums.SubpassDescriptionFlagBits.SUBPASS_DESCRIPTION_FRAGMENT_REGION_BIT_QCOM', -- then @sampleShadingEnable@ /must/ be false --@@ -2090,13 +2258,52 @@ -- then the subpass /must/ be the last subpass in a subpass dependency -- chain --+-- - #VUID-VkRenderPassCreateInfo2-attachment-06244# If the @attachment@+-- member of the @pDepthStencilAttachment@ member of an element of+-- @pSubpasses@ is not 'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED',+-- the @layout@ member of that same structure is either+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL'+-- or+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL',+-- and the @pNext@ chain of that structure does not include a+-- 'Vulkan.Core12.Promoted_From_VK_KHR_separate_depth_stencil_layouts.AttachmentReferenceStencilLayout'+-- structure, then the element of @pAttachments@ with an index equal to+-- @attachment@ /must/ not have a @format@ that includes both depth and+-- stencil aspects+--+-- - #VUID-VkRenderPassCreateInfo2-attachment-06245# If the @attachment@+-- member of the @pDepthStencilAttachment@ member of an element of+-- @pSubpasses@ is not 'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED'+-- and the @layout@ member of that same structure is either+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL'+-- or+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL',+-- then the element of @pAttachments@ with an index equal to+-- @attachment@ /must/ have a @format@ that includes only a stencil+-- aspect+--+-- - #VUID-VkRenderPassCreateInfo2-attachment-06246# If the @attachment@+-- member of the @pDepthStencilAttachment@ member of an element of+-- @pSubpasses@ is not 'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED'+-- and the @layout@ member of that same structure is either+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL'+-- or+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL',+-- then the element of @pAttachments@ with an index equal to+-- @attachment@ /must/ not have a @format@ that includes only a stencil+-- aspect+-- -- == Valid Usage (Implicit) -- -- - #VUID-VkRenderPassCreateInfo2-sType-sType# @sType@ /must/ be -- 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2' ----- - #VUID-VkRenderPassCreateInfo2-pNext-pNext# @pNext@ /must/ be @NULL@--- or a pointer to a valid instance of+-- - #VUID-VkRenderPassCreateInfo2-pNext-pNext# Each @pNext@ member of+-- any structure (including this one) in the @pNext@ chain /must/ be+-- either @NULL@ or a pointer to a valid instance of+-- 'Vulkan.Extensions.VK_EXT_subpass_merge_feedback.RenderPassCreationControlEXT',+-- 'Vulkan.Extensions.VK_EXT_subpass_merge_feedback.RenderPassCreationFeedbackCreateInfoEXT',+-- or -- 'Vulkan.Extensions.VK_EXT_fragment_density_map.RenderPassFragmentDensityMapCreateInfoEXT' -- -- - #VUID-VkRenderPassCreateInfo2-sType-unique# The @sType@ value of@@ -2170,6 +2377,8 @@ getNext RenderPassCreateInfo2{..} = next extends :: forall e b proxy. Typeable e => proxy e -> (Extends RenderPassCreateInfo2 e => b) -> Maybe b extends _ f+ | Just Refl <- eqT @e @RenderPassCreationFeedbackCreateInfoEXT = Just f+ | Just Refl <- eqT @e @RenderPassCreationControlEXT = Just f | Just Refl <- eqT @e @RenderPassFragmentDensityMapCreateInfoEXT = Just f | otherwise = Nothing @@ -2327,7 +2536,7 @@ instance Extensible SubpassEndInfo where extensibleTypeName = "SubpassEndInfo"- setNext SubpassEndInfo{..} next' = SubpassEndInfo{next = next', ..}+ setNext _ next' = SubpassEndInfo{next = next'} getNext SubpassEndInfo{..} = next extends :: forall e b proxy. Typeable e => proxy e -> (Extends SubpassEndInfo e => b) -> Maybe b extends _ f
src/Vulkan/Core12/Promoted_From_VK_KHR_depth_stencil_resolve.hs view
@@ -168,12 +168,6 @@ -- @pDepthStencilAttachment@ /must/ not be @NULL@ or have the value -- 'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED' ----- - #VUID-VkSubpassDescriptionDepthStencilResolve-pDepthStencilResolveAttachment-03178#--- If @pDepthStencilResolveAttachment@ is not @NULL@ and does not have--- the value 'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED',--- @depthResolveMode@ and @stencilResolveMode@ /must/ not both be--- 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_NONE'--- -- - #VUID-VkSubpassDescriptionDepthStencilResolve-pDepthStencilResolveAttachment-03179# -- If @pDepthStencilResolveAttachment@ is not @NULL@ and does not have -- the value 'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED',@@ -190,7 +184,7 @@ -- If @pDepthStencilResolveAttachment@ is not @NULL@ and does not have -- the value 'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED' then it -- /must/ have an image format whose--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#potential-format-features potential format features>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#potential-format-features potential format features> -- contain -- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT' --@@ -212,6 +206,12 @@ -- /must/ have a stencil component with the same number of bits and -- numerical type --+-- - #VUID-VkSubpassDescriptionDepthStencilResolve-pDepthStencilResolveAttachment-03178#+-- If @pDepthStencilResolveAttachment@ is not @NULL@ and does not have+-- the value 'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED',+-- @depthResolveMode@ and @stencilResolveMode@ /must/ not both be+-- 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_NONE'+-- -- - #VUID-VkSubpassDescriptionDepthStencilResolve-depthResolveMode-03183# -- If @pDepthStencilResolveAttachment@ is not @NULL@ and does not have -- the value 'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED' and the@@ -250,6 +250,82 @@ -- components, -- 'PhysicalDeviceDepthStencilResolveProperties'::@independentResolve@ -- is 'Vulkan.Core10.FundamentalTypes.FALSE' and+-- 'PhysicalDeviceDepthStencilResolveProperties'::@independentResolveNone@+-- is 'Vulkan.Core10.FundamentalTypes.TRUE', then the values of+-- @depthResolveMode@ and @stencilResolveMode@ /must/ be identical or+-- one of them /must/ be+-- 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_NONE'+--+-- - #VUID-VkSubpassDescriptionDepthStencilResolve-pNext-06873# If the+-- @pNext@ chain of+-- 'Vulkan.Core12.Promoted_From_VK_KHR_create_renderpass2.SubpassDescription2'+-- includes a+-- 'Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled.MultisampledRenderToSingleSampledInfoEXT'+-- structure, the @multisampledRenderToSingleSampledEnable@ field is+-- 'Vulkan.Core10.FundamentalTypes.TRUE', and @pDepthStencilAttachment@+-- is not @NULL@ and does not have the value+-- 'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED', @depthResolveMode@+-- and @stencilResolveMode@ /must/ not both be+-- 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_NONE'+--+-- - #VUID-VkSubpassDescriptionDepthStencilResolve-pNext-06874# If the+-- @pNext@ chain of+-- 'Vulkan.Core12.Promoted_From_VK_KHR_create_renderpass2.SubpassDescription2'+-- includes a+-- 'Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled.MultisampledRenderToSingleSampledInfoEXT'+-- structure whose @multisampledRenderToSingleSampledEnable@ field is+-- 'Vulkan.Core10.FundamentalTypes.TRUE', and @pDepthStencilAttachment@+-- is not @NULL@, does not have the value+-- 'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED', and has a+-- 'Vulkan.Core10.Enums.Format.Format' that has a depth component, then+-- the value of @depthResolveMode@ /must/ be one of the bits set in+-- 'PhysicalDeviceDepthStencilResolveProperties'::@supportedDepthResolveModes@+-- or 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_NONE'+--+-- - #VUID-VkSubpassDescriptionDepthStencilResolve-pNext-06875# If the+-- @pNext@ chain of+-- 'Vulkan.Core12.Promoted_From_VK_KHR_create_renderpass2.SubpassDescription2'+-- includes a+-- 'Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled.MultisampledRenderToSingleSampledInfoEXT'+-- structure whose @multisampledRenderToSingleSampledEnable@ field is+-- 'Vulkan.Core10.FundamentalTypes.TRUE', and @pDepthStencilAttachment@+-- is not @NULL@, does not have the value+-- 'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED', and has a+-- 'Vulkan.Core10.Enums.Format.Format' with a stencil component, then+-- the value of @stencilResolveMode@ /must/ be one of the bits set in+-- 'PhysicalDeviceDepthStencilResolveProperties'::@supportedStencilResolveModes@+-- or 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_NONE'+--+-- - #VUID-VkSubpassDescriptionDepthStencilResolve-pNext-06876# If the+-- @pNext@ chain of+-- 'Vulkan.Core12.Promoted_From_VK_KHR_create_renderpass2.SubpassDescription2'+-- includes a+-- 'Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled.MultisampledRenderToSingleSampledInfoEXT'+-- structure whose @multisampledRenderToSingleSampledEnable@ field is+-- 'Vulkan.Core10.FundamentalTypes.TRUE', @pDepthStencilAttachment@ is+-- not @NULL@, does not have the value+-- 'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED', and has a+-- 'Vulkan.Core10.Enums.Format.Format' with both depth and stencil+-- components, and both+-- 'PhysicalDeviceDepthStencilResolveProperties'::@independentResolve@+-- and+-- 'PhysicalDeviceDepthStencilResolveProperties'::@independentResolveNone@+-- are 'Vulkan.Core10.FundamentalTypes.FALSE', then the values of+-- @depthResolveMode@ and @stencilResolveMode@ /must/ be identical+--+-- - #VUID-VkSubpassDescriptionDepthStencilResolve-pNext-06877# If the+-- @pNext@ chain of+-- 'Vulkan.Core12.Promoted_From_VK_KHR_create_renderpass2.SubpassDescription2'+-- includes a+-- 'Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled.MultisampledRenderToSingleSampledInfoEXT'+-- structure whose @multisampledRenderToSingleSampledEnable@ field is+-- 'Vulkan.Core10.FundamentalTypes.TRUE', @pDepthStencilAttachment@ is+-- not @NULL@, does not have the value+-- 'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED', and has a+-- 'Vulkan.Core10.Enums.Format.Format' with both depth and stencil+-- components,+-- 'PhysicalDeviceDepthStencilResolveProperties'::@independentResolve@+-- is 'Vulkan.Core10.FundamentalTypes.FALSE', and -- 'PhysicalDeviceDepthStencilResolveProperties'::@independentResolveNone@ -- is 'Vulkan.Core10.FundamentalTypes.TRUE', then the values of -- @depthResolveMode@ and @stencilResolveMode@ /must/ be identical or
src/Vulkan/Core12/Promoted_From_VK_KHR_draw_indirect_count.hs view
@@ -82,16 +82,16 @@ -- -- - #VUID-vkCmdDrawIndirectCount-None-02692# If a -- 'Vulkan.Core10.Handles.ImageView' is sampled with--- 'Vulkan.Extensions.VK_EXT_filter_cubic.FILTER_CUBIC_EXT' as a result--- of this command, then the image view’s+-- 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as a result of this+-- command, then the image view’s -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features> -- /must/ contain--- 'Vulkan.Extensions.VK_EXT_filter_cubic.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT'+-- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT' -- -- - #VUID-vkCmdDrawIndirectCount-filterCubic-02694# Any -- 'Vulkan.Core10.Handles.ImageView' being sampled with--- 'Vulkan.Extensions.VK_EXT_filter_cubic.FILTER_CUBIC_EXT' as a result--- of this command /must/ have a+-- 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as a result of this+-- command /must/ have a -- 'Vulkan.Core10.Enums.ImageViewType.ImageViewType' and format that -- supports cubic filtering, as specified by -- 'Vulkan.Extensions.VK_EXT_filter_cubic.FilterCubicImageViewImageFormatPropertiesEXT'::@filterCubic@@@ -100,8 +100,8 @@ -- -- - #VUID-vkCmdDrawIndirectCount-filterCubicMinmax-02695# Any -- 'Vulkan.Core10.Handles.ImageView' being sampled with--- 'Vulkan.Extensions.VK_EXT_filter_cubic.FILTER_CUBIC_EXT' with a--- reduction mode of either+-- 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' with a reduction mode+-- of either -- 'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MIN' -- or -- 'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MAX'@@ -121,22 +121,38 @@ -- 'Vulkan.Core10.Enums.SamplerAddressMode.SamplerAddressMode' of -- 'Vulkan.Core10.Enums.SamplerAddressMode.SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE' ----- - #VUID-vkCmdDrawIndirectCount-OpTypeImage-06423# Any--- 'Vulkan.Core10.Handles.ImageView' or--- 'Vulkan.Core10.Handles.BufferView' being written as a storage image--- or storage texel buffer where the image format field of the--- @OpTypeImage@ is @Unknown@ then the view’s format feature /must/--- contain+-- - #VUID-vkCmdDrawIndirectCount-OpTypeImage-07027# For any+-- 'Vulkan.Core10.Handles.ImageView' being written as a storage image+-- where the image format field of the @OpTypeImage@ is @Unknown@, the+-- view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain -- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT' ----- - #VUID-vkCmdDrawIndirectCount-OpTypeImage-06424# Any--- 'Vulkan.Core10.Handles.ImageView' or--- 'Vulkan.Core10.Handles.BufferView' being read as a storage image or--- storage texel buffer where the image format field of the--- @OpTypeImage@ is @Unknown@ then the view’s format feature /must/--- contain+-- - #VUID-vkCmdDrawIndirectCount-OpTypeImage-07028# For any+-- 'Vulkan.Core10.Handles.ImageView' being read as a storage image+-- where the image format field of the @OpTypeImage@ is @Unknown@, the+-- view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain -- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT' --+-- - #VUID-vkCmdDrawIndirectCount-OpTypeImage-07029# For any+-- 'Vulkan.Core10.Handles.BufferView' being written as a storage texel+-- buffer where the image format field of the @OpTypeImage@ is+-- @Unknown@, the view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkFormatProperties3 buffer features>+-- /must/ contain+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT'+--+-- - #VUID-vkCmdDrawIndirectCount-OpTypeImage-07030# Any+-- 'Vulkan.Core10.Handles.BufferView' being read as a storage texel+-- buffer where the image format field of the @OpTypeImage@ is+-- @Unknown@ then the view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkFormatProperties3 buffer features>+-- /must/ contain+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT'+-- -- - #VUID-vkCmdDrawIndirectCount-None-02697# For each set /n/ that is -- statically used by the 'Vulkan.Core10.Handles.Pipeline' bound to the -- pipeline bind point used by this command, a descriptor set /must/@@ -211,21 +227,31 @@ -- @OpImageSample*@ or @OpImageSparseSample*@ instructions that -- includes a LOD bias or any offset values, in any shader stage ----- - #VUID-vkCmdDrawIndirectCount-None-02705# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robust buffer access>--- feature is not enabled, and if the 'Vulkan.Core10.Handles.Pipeline'--- object bound to the pipeline bind point used by this command--- accesses a uniform buffer, it /must/ not access values outside of--- the range of the buffer as specified in the descriptor set bound to--- the same pipeline bind point+-- - #VUID-vkCmdDrawIndirectCount-uniformBuffers-06935# If any stage of+-- the 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline+-- bind point used by this command accesses a uniform buffer, and that+-- stage was created without enabling either+-- 'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT'+-- or+-- 'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT'+-- for @uniformBuffers@, and the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>+-- feature is not enabled, that stage /must/ not access values outside+-- of the range of the buffer as specified in the descriptor set bound+-- to the same pipeline bind point ----- - #VUID-vkCmdDrawIndirectCount-None-02706# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robust buffer access>--- feature is not enabled, and if the 'Vulkan.Core10.Handles.Pipeline'--- object bound to the pipeline bind point used by this command--- accesses a storage buffer, it /must/ not access values outside of--- the range of the buffer as specified in the descriptor set bound to--- the same pipeline bind point+-- - #VUID-vkCmdDrawIndirectCount-storageBuffers-06936# If any stage of+-- the 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline+-- bind point used by this command accesses a storage buffer, and that+-- stage was created without enabling either+-- 'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT'+-- or+-- 'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT'+-- for @storageBuffers@, and the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>+-- feature is not enabled, that stage /must/ not access values outside+-- of the range of the buffer as specified in the descriptor set bound+-- to the same pipeline bind point -- -- - #VUID-vkCmdDrawIndirectCount-commandBuffer-02707# If @commandBuffer@ -- is an unprotected command buffer and@@ -309,6 +335,67 @@ -- @OpTypeImage@ with a @SampledType@ with a @Width@ of 64 by this -- command --+-- - #VUID-vkCmdDrawIndirectCount-OpImageWeightedSampleQCOM-06971# If+-- @OpImageWeightedSampleQCOM@ is used to sample a+-- 'Vulkan.Core10.Handles.ImageView' as a result of this command, then+-- the image view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM'+--+-- - #VUID-vkCmdDrawIndirectCount-OpImageWeightedSampleQCOM-06972# If+-- @OpImageWeightedSampleQCOM@ uses a 'Vulkan.Core10.Handles.ImageView'+-- as a sample weight image as a result of this command, then the image+-- view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM'+--+-- - #VUID-vkCmdDrawIndirectCount-OpImageBoxFilterQCOM-06973# If+-- @OpImageBoxFilterQCOM@ is used to sample a+-- 'Vulkan.Core10.Handles.ImageView' as a result of this command, then+-- the image view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM'+--+-- - #VUID-vkCmdDrawIndirectCount-OpImageBlockMatchSSDQCOM-06974# If+-- @OpImageBlockMatchSSDQCOM@ is used to read from an+-- 'Vulkan.Core10.Handles.ImageView' as a result of this command, then+-- the image view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM'+--+-- - #VUID-vkCmdDrawIndirectCount-OpImageBlockMatchSADQCOM-06975# If+-- @OpImageBlockMatchSADQCOM@ is used to read from an+-- 'Vulkan.Core10.Handles.ImageView' as a result of this command, then+-- the image view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM'+--+-- - #VUID-vkCmdDrawIndirectCount-OpImageBlockMatchSADQCOM-06976# If+-- @OpImageBlockMatchSADQCOM@ or OpImageBlockMatchSSDQCOM is used to+-- read from a reference image as result of this command, then the+-- specified reference coordinates /must/ not fail+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-integer-coordinate-validation integer texel coordinate validation>.+--+-- - #VUID-vkCmdDrawIndirectCount-OpImageWeightedSampleQCOM-06977# If+-- @OpImageWeightedSampleQCOM@, @OpImageBoxFilterQCOM@,+-- @OpImageBlockMatchSSDQCOM@, or @OpImageBlockMatchSADQCOM@ uses a+-- 'Vulkan.Core10.Handles.Sampler' as a result of this command, then+-- the sampler /must/ have been created with+-- 'Vulkan.Core10.Enums.SamplerCreateFlagBits.SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM'.+--+-- - #VUID-vkCmdDrawIndirectCount-OpImageWeightedSampleQCOM-06978# If any+-- command other than @OpImageWeightedSampleQCOM@,+-- @OpImageBoxFilterQCOM@, @OpImageBlockMatchSSDQCOM@, or+-- @OpImageBlockMatchSADQCOM@ uses a 'Vulkan.Core10.Handles.Sampler' as+-- a result of this command, then the sampler /must/ not have been+-- created with+-- 'Vulkan.Core10.Enums.SamplerCreateFlagBits.SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM'.+-- -- - #VUID-vkCmdDrawIndirectCount-renderPass-02684# The current render -- pass /must/ be -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-compatibility compatible>@@ -344,6 +431,18 @@ -- attachment in any way other than as an attachment, this command -- /must/ not write to that image subresource as an attachment --+-- - #VUID-vkCmdDrawIndirectCount-None-06886# If the current render pass+-- instance uses a depth\/stencil attachment with a read-only layout+-- for the depth aspect,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragops-depth-write depth writes>+-- /must/ be disabled+--+-- - #VUID-vkCmdDrawIndirectCount-None-06887# If the current render pass+-- instance uses a depth\/stencil attachment with a read-only layout+-- for the stencil aspect and stencil test is enabled,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragops-stencil all stencil ops>+-- /must/ be 'Vulkan.Core10.Enums.StencilOp.STENCIL_OP_KEEP'+-- -- - #VUID-vkCmdDrawIndirectCount-maxMultiviewInstanceIndex-02688# If the -- draw is recorded in a render pass instance with multiview enabled, -- the maximum instance index /must/ be less than or equal to@@ -462,8 +561,9 @@ -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT' -- dynamic state enabled and a -- 'Vulkan.Extensions.VK_NV_viewport_swizzle.PipelineViewportSwizzleStateCreateInfoNV'--- structure chained from @VkPipelineVieportCreateInfo@, then the bound--- graphics pipeline /must/ have been created with+-- structure chained from+-- 'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo', then the+-- bound graphics pipeline /must/ have been created with -- 'Vulkan.Extensions.VK_NV_viewport_swizzle.PipelineViewportSwizzleStateCreateInfoNV'::@viewportCount@ -- greater or equal to the @viewportCount@ parameter in the last call -- to@@ -474,8 +574,9 @@ -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT' -- dynamic state enabled and a -- 'Vulkan.Extensions.VK_NV_scissor_exclusive.PipelineViewportExclusiveScissorStateCreateInfoNV'--- structure chained from @VkPipelineVieportCreateInfo@, then the bound--- graphics pipeline /must/ have been created with+-- structure chained from+-- 'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo', then the+-- bound graphics pipeline /must/ have been created with -- 'Vulkan.Extensions.VK_NV_scissor_exclusive.PipelineViewportExclusiveScissorStateCreateInfoNV'::@exclusiveScissorCount@ -- greater or equal to the @viewportCount@ parameter in the last call -- to@@ -633,31 +734,42 @@ -- /must/ have been called in the current command buffer prior to this -- drawing command, and the @attachmentCount@ parameter of -- 'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'--- /must/ be equal to the+-- /must/ be greater than or equal to the -- 'Vulkan.Core10.Pipeline.PipelineColorBlendStateCreateInfo'::@attachmentCount@ -- of the currently bound graphics pipeline --+-- - #VUID-vkCmdDrawIndirectCount-attachmentCount-06815# If the bound+-- graphics pipeline state was created with the+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT'+-- dynamic state enabled then+-- 'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'+-- /must/ have been called in the current command buffer prior to this+-- drawing command, and the @attachmentCount@ parameter of+-- 'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'+-- /must/ be less than or equal to the @maxColorAttachments@ member of+-- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'+-- -- - #VUID-vkCmdDrawIndirectCount-pDepthAttachment-06181# If the current -- render pass instance was begun with -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' -- and--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->pname@:imageView+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@ -- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@depthAttachmentFormat@ -- used to create the currently bound graphics pipeline /must/ be equal -- to the 'Vulkan.Core10.Enums.Format.Format' used to create--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->pname@:imageView+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@ -- -- - #VUID-vkCmdDrawIndirectCount-pStencilAttachment-06182# If the -- current render pass instance was begun with -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' -- and--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->pname@:imageView+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@ -- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@stencilAttachmentFormat@ -- used to create the currently bound graphics pipeline /must/ be equal -- to the 'Vulkan.Core10.Enums.Format.Format' used to create--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->pname@:imageView+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@ -- -- - #VUID-vkCmdDrawIndirectCount-imageView-06183# If the current render -- pass instance was begun with@@ -705,7 +817,7 @@ -- or -- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV' -- structure, and--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->pname@:imageView+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@ -- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of the -- @depthStencilAttachmentSamples@ member of -- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'@@ -713,7 +825,7 @@ -- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV' -- used to create the currently bound graphics pipeline /must/ be equal -- to the sample count used to create--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->pname@:imageView+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@ -- -- - #VUID-vkCmdDrawIndirectCount-pStencilAttachment-06187# If the -- current render pass instance was begun with@@ -723,7 +835,7 @@ -- or -- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV' -- structure, and--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->pname@:imageView+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@ -- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of the -- @depthStencilAttachmentSamples@ member of -- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'@@ -731,7 +843,7 @@ -- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV' -- used to create the currently bound graphics pipeline /must/ be equal -- to the sample count used to create--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->pname@:imageView+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@ -- -- - #VUID-vkCmdDrawIndirectCount-colorAttachmentCount-06188# If the -- currently bound pipeline was created without a@@ -758,12 +870,12 @@ -- or -- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV' -- structure, and--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->pname@:imageView+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@ -- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of -- 'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'::@rasterizationSamples@ -- used to create the currently bound graphics pipeline /must/ be equal -- to the sample count used to create--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->pname@:imageView+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@ -- -- - #VUID-vkCmdDrawIndirectCount-pStencilAttachment-06190# If the -- current render pass instance was begun with@@ -773,12 +885,12 @@ -- or -- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV' -- structure, and--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->pname@:imageView+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@ -- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of -- 'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'::@rasterizationSamples@ -- used to create the currently bound graphics pipeline /must/ be equal -- to the sample count used to create--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->pname@:imageView+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@ -- -- - #VUID-vkCmdDrawIndirectCount-renderPass-06198# If the current render -- pass instance was begun with@@ -805,6 +917,21 @@ -- created with a non-zero value in -- 'Vulkan.Extensions.VK_EXT_transform_feedback.PipelineRasterizationStateStreamCreateInfoEXT'::@rasterizationStream@. --+-- - #VUID-vkCmdDrawIndirectCount-stage-07073# If the currently bound+-- pipeline was created with the+-- 'Vulkan.Core10.Pipeline.PipelineShaderStageCreateInfo'::@stage@+-- member of an element of+-- 'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo'::@pStages@ set+-- to+-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT',+-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_CONTROL_BIT',+-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT'+-- or+-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT',+-- then+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#queries-mesh-shader Mesh Shader Queries>+-- must not be active+-- -- - #VUID-vkCmdDrawIndirectCount-None-04007# All vertex input bindings -- accessed via vertex input variables declared in the vertex shader -- entry point’s interface /must/ have either valid or@@ -887,9 +1014,9 @@ -- member of an element of -- 'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo'::@pStages@ set -- to--- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_NV'+-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT' -- or--- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_NV'+-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT' -- -- - #VUID-vkCmdDrawIndirectCount-buffer-02708# If @buffer@ is non-sparse -- then it /must/ be bound completely and contiguously to a single@@ -972,6 +1099,9 @@ -- - #VUID-vkCmdDrawIndirectCount-renderpass# This command /must/ only be -- called inside of a render pass instance --+-- - #VUID-vkCmdDrawIndirectCount-videocoding# This command /must/ only+-- be called outside of a video coding scope+-- -- - #VUID-vkCmdDrawIndirectCount-commonparent# Each of @buffer@, -- @commandBuffer@, and @countBuffer@ /must/ have been created, -- allocated, or retrieved from the same 'Vulkan.Core10.Handles.Device'@@ -987,12 +1117,12 @@ -- -- \' ----- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | Primary | Inside | Graphics |--- | Secondary | | |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================++-- | Primary | Inside | Outside | Graphics |+-- | Secondary | | | |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+ -- -- = See Also --@@ -1088,16 +1218,16 @@ -- -- - #VUID-vkCmdDrawIndexedIndirectCount-None-02692# If a -- 'Vulkan.Core10.Handles.ImageView' is sampled with--- 'Vulkan.Extensions.VK_EXT_filter_cubic.FILTER_CUBIC_EXT' as a result--- of this command, then the image view’s+-- 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as a result of this+-- command, then the image view’s -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features> -- /must/ contain--- 'Vulkan.Extensions.VK_EXT_filter_cubic.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT'+-- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT' -- -- - #VUID-vkCmdDrawIndexedIndirectCount-filterCubic-02694# Any -- 'Vulkan.Core10.Handles.ImageView' being sampled with--- 'Vulkan.Extensions.VK_EXT_filter_cubic.FILTER_CUBIC_EXT' as a result--- of this command /must/ have a+-- 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as a result of this+-- command /must/ have a -- 'Vulkan.Core10.Enums.ImageViewType.ImageViewType' and format that -- supports cubic filtering, as specified by -- 'Vulkan.Extensions.VK_EXT_filter_cubic.FilterCubicImageViewImageFormatPropertiesEXT'::@filterCubic@@@ -1106,8 +1236,8 @@ -- -- - #VUID-vkCmdDrawIndexedIndirectCount-filterCubicMinmax-02695# Any -- 'Vulkan.Core10.Handles.ImageView' being sampled with--- 'Vulkan.Extensions.VK_EXT_filter_cubic.FILTER_CUBIC_EXT' with a--- reduction mode of either+-- 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' with a reduction mode+-- of either -- 'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MIN' -- or -- 'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MAX'@@ -1127,22 +1257,38 @@ -- 'Vulkan.Core10.Enums.SamplerAddressMode.SamplerAddressMode' of -- 'Vulkan.Core10.Enums.SamplerAddressMode.SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE' ----- - #VUID-vkCmdDrawIndexedIndirectCount-OpTypeImage-06423# Any--- 'Vulkan.Core10.Handles.ImageView' or--- 'Vulkan.Core10.Handles.BufferView' being written as a storage image--- or storage texel buffer where the image format field of the--- @OpTypeImage@ is @Unknown@ then the view’s format feature /must/--- contain+-- - #VUID-vkCmdDrawIndexedIndirectCount-OpTypeImage-07027# For any+-- 'Vulkan.Core10.Handles.ImageView' being written as a storage image+-- where the image format field of the @OpTypeImage@ is @Unknown@, the+-- view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain -- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT' ----- - #VUID-vkCmdDrawIndexedIndirectCount-OpTypeImage-06424# Any--- 'Vulkan.Core10.Handles.ImageView' or--- 'Vulkan.Core10.Handles.BufferView' being read as a storage image or--- storage texel buffer where the image format field of the--- @OpTypeImage@ is @Unknown@ then the view’s format feature /must/--- contain+-- - #VUID-vkCmdDrawIndexedIndirectCount-OpTypeImage-07028# For any+-- 'Vulkan.Core10.Handles.ImageView' being read as a storage image+-- where the image format field of the @OpTypeImage@ is @Unknown@, the+-- view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain -- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT' --+-- - #VUID-vkCmdDrawIndexedIndirectCount-OpTypeImage-07029# For any+-- 'Vulkan.Core10.Handles.BufferView' being written as a storage texel+-- buffer where the image format field of the @OpTypeImage@ is+-- @Unknown@, the view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkFormatProperties3 buffer features>+-- /must/ contain+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT'+--+-- - #VUID-vkCmdDrawIndexedIndirectCount-OpTypeImage-07030# Any+-- 'Vulkan.Core10.Handles.BufferView' being read as a storage texel+-- buffer where the image format field of the @OpTypeImage@ is+-- @Unknown@ then the view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkFormatProperties3 buffer features>+-- /must/ contain+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT'+-- -- - #VUID-vkCmdDrawIndexedIndirectCount-None-02697# For each set /n/ -- that is statically used by the 'Vulkan.Core10.Handles.Pipeline' -- bound to the pipeline bind point used by this command, a descriptor@@ -1217,21 +1363,31 @@ -- @OpImageSample*@ or @OpImageSparseSample*@ instructions that -- includes a LOD bias or any offset values, in any shader stage ----- - #VUID-vkCmdDrawIndexedIndirectCount-None-02705# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robust buffer access>--- feature is not enabled, and if the 'Vulkan.Core10.Handles.Pipeline'--- object bound to the pipeline bind point used by this command--- accesses a uniform buffer, it /must/ not access values outside of--- the range of the buffer as specified in the descriptor set bound to--- the same pipeline bind point+-- - #VUID-vkCmdDrawIndexedIndirectCount-uniformBuffers-06935# If any+-- stage of the 'Vulkan.Core10.Handles.Pipeline' object bound to the+-- pipeline bind point used by this command accesses a uniform buffer,+-- and that stage was created without enabling either+-- 'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT'+-- or+-- 'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT'+-- for @uniformBuffers@, and the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>+-- feature is not enabled, that stage /must/ not access values outside+-- of the range of the buffer as specified in the descriptor set bound+-- to the same pipeline bind point ----- - #VUID-vkCmdDrawIndexedIndirectCount-None-02706# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robust buffer access>--- feature is not enabled, and if the 'Vulkan.Core10.Handles.Pipeline'--- object bound to the pipeline bind point used by this command--- accesses a storage buffer, it /must/ not access values outside of--- the range of the buffer as specified in the descriptor set bound to--- the same pipeline bind point+-- - #VUID-vkCmdDrawIndexedIndirectCount-storageBuffers-06936# If any+-- stage of the 'Vulkan.Core10.Handles.Pipeline' object bound to the+-- pipeline bind point used by this command accesses a storage buffer,+-- and that stage was created without enabling either+-- 'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT'+-- or+-- 'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT'+-- for @storageBuffers@, and the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>+-- feature is not enabled, that stage /must/ not access values outside+-- of the range of the buffer as specified in the descriptor set bound+-- to the same pipeline bind point -- -- - #VUID-vkCmdDrawIndexedIndirectCount-commandBuffer-02707# If -- @commandBuffer@ is an unprotected command buffer and@@ -1317,6 +1473,67 @@ -- @OpTypeImage@ with a @SampledType@ with a @Width@ of 64 by this -- command --+-- - #VUID-vkCmdDrawIndexedIndirectCount-OpImageWeightedSampleQCOM-06971#+-- If @OpImageWeightedSampleQCOM@ is used to sample a+-- 'Vulkan.Core10.Handles.ImageView' as a result of this command, then+-- the image view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM'+--+-- - #VUID-vkCmdDrawIndexedIndirectCount-OpImageWeightedSampleQCOM-06972#+-- If @OpImageWeightedSampleQCOM@ uses a+-- 'Vulkan.Core10.Handles.ImageView' as a sample weight image as a+-- result of this command, then the image view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM'+--+-- - #VUID-vkCmdDrawIndexedIndirectCount-OpImageBoxFilterQCOM-06973# If+-- @OpImageBoxFilterQCOM@ is used to sample a+-- 'Vulkan.Core10.Handles.ImageView' as a result of this command, then+-- the image view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM'+--+-- - #VUID-vkCmdDrawIndexedIndirectCount-OpImageBlockMatchSSDQCOM-06974#+-- If @OpImageBlockMatchSSDQCOM@ is used to read from an+-- 'Vulkan.Core10.Handles.ImageView' as a result of this command, then+-- the image view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM'+--+-- - #VUID-vkCmdDrawIndexedIndirectCount-OpImageBlockMatchSADQCOM-06975#+-- If @OpImageBlockMatchSADQCOM@ is used to read from an+-- 'Vulkan.Core10.Handles.ImageView' as a result of this command, then+-- the image view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM'+--+-- - #VUID-vkCmdDrawIndexedIndirectCount-OpImageBlockMatchSADQCOM-06976#+-- If @OpImageBlockMatchSADQCOM@ or OpImageBlockMatchSSDQCOM is used to+-- read from a reference image as result of this command, then the+-- specified reference coordinates /must/ not fail+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-integer-coordinate-validation integer texel coordinate validation>.+--+-- - #VUID-vkCmdDrawIndexedIndirectCount-OpImageWeightedSampleQCOM-06977#+-- If @OpImageWeightedSampleQCOM@, @OpImageBoxFilterQCOM@,+-- @OpImageBlockMatchSSDQCOM@, or @OpImageBlockMatchSADQCOM@ uses a+-- 'Vulkan.Core10.Handles.Sampler' as a result of this command, then+-- the sampler /must/ have been created with+-- 'Vulkan.Core10.Enums.SamplerCreateFlagBits.SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM'.+--+-- - #VUID-vkCmdDrawIndexedIndirectCount-OpImageWeightedSampleQCOM-06978#+-- If any command other than @OpImageWeightedSampleQCOM@,+-- @OpImageBoxFilterQCOM@, @OpImageBlockMatchSSDQCOM@, or+-- @OpImageBlockMatchSADQCOM@ uses a 'Vulkan.Core10.Handles.Sampler' as+-- a result of this command, then the sampler /must/ not have been+-- created with+-- 'Vulkan.Core10.Enums.SamplerCreateFlagBits.SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM'.+-- -- - #VUID-vkCmdDrawIndexedIndirectCount-renderPass-02684# The current -- render pass /must/ be -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-compatibility compatible>@@ -1352,6 +1569,18 @@ -- used as an attachment in any way other than as an attachment, this -- command /must/ not write to that image subresource as an attachment --+-- - #VUID-vkCmdDrawIndexedIndirectCount-None-06886# If the current+-- render pass instance uses a depth\/stencil attachment with a+-- read-only layout for the depth aspect,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragops-depth-write depth writes>+-- /must/ be disabled+--+-- - #VUID-vkCmdDrawIndexedIndirectCount-None-06887# If the current+-- render pass instance uses a depth\/stencil attachment with a+-- read-only layout for the stencil aspect and stencil test is enabled,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragops-stencil all stencil ops>+-- /must/ be 'Vulkan.Core10.Enums.StencilOp.STENCIL_OP_KEEP'+-- -- - #VUID-vkCmdDrawIndexedIndirectCount-maxMultiviewInstanceIndex-02688# -- If the draw is recorded in a render pass instance with multiview -- enabled, the maximum instance index /must/ be less than or equal to@@ -1470,8 +1699,9 @@ -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT' -- dynamic state enabled and a -- 'Vulkan.Extensions.VK_NV_viewport_swizzle.PipelineViewportSwizzleStateCreateInfoNV'--- structure chained from @VkPipelineVieportCreateInfo@, then the bound--- graphics pipeline /must/ have been created with+-- structure chained from+-- 'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo', then the+-- bound graphics pipeline /must/ have been created with -- 'Vulkan.Extensions.VK_NV_viewport_swizzle.PipelineViewportSwizzleStateCreateInfoNV'::@viewportCount@ -- greater or equal to the @viewportCount@ parameter in the last call -- to@@ -1482,8 +1712,9 @@ -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT' -- dynamic state enabled and a -- 'Vulkan.Extensions.VK_NV_scissor_exclusive.PipelineViewportExclusiveScissorStateCreateInfoNV'--- structure chained from @VkPipelineVieportCreateInfo@, then the bound--- graphics pipeline /must/ have been created with+-- structure chained from+-- 'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo', then the+-- bound graphics pipeline /must/ have been created with -- 'Vulkan.Extensions.VK_NV_scissor_exclusive.PipelineViewportExclusiveScissorStateCreateInfoNV'::@exclusiveScissorCount@ -- greater or equal to the @viewportCount@ parameter in the last call -- to@@ -1642,31 +1873,42 @@ -- /must/ have been called in the current command buffer prior to this -- drawing command, and the @attachmentCount@ parameter of -- 'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'--- /must/ be equal to the+-- /must/ be greater than or equal to the -- 'Vulkan.Core10.Pipeline.PipelineColorBlendStateCreateInfo'::@attachmentCount@ -- of the currently bound graphics pipeline --+-- - #VUID-vkCmdDrawIndexedIndirectCount-attachmentCount-06815# If the+-- bound graphics pipeline state was created with the+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT'+-- dynamic state enabled then+-- 'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'+-- /must/ have been called in the current command buffer prior to this+-- drawing command, and the @attachmentCount@ parameter of+-- 'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'+-- /must/ be less than or equal to the @maxColorAttachments@ member of+-- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'+-- -- - #VUID-vkCmdDrawIndexedIndirectCount-pDepthAttachment-06181# If the -- current render pass instance was begun with -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' -- and--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->pname@:imageView+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@ -- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@depthAttachmentFormat@ -- used to create the currently bound graphics pipeline /must/ be equal -- to the 'Vulkan.Core10.Enums.Format.Format' used to create--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->pname@:imageView+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@ -- -- - #VUID-vkCmdDrawIndexedIndirectCount-pStencilAttachment-06182# If the -- current render pass instance was begun with -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' -- and--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->pname@:imageView+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@ -- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@stencilAttachmentFormat@ -- used to create the currently bound graphics pipeline /must/ be equal -- to the 'Vulkan.Core10.Enums.Format.Format' used to create--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->pname@:imageView+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@ -- -- - #VUID-vkCmdDrawIndexedIndirectCount-imageView-06183# If the current -- render pass instance was begun with@@ -1714,7 +1956,7 @@ -- or -- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV' -- structure, and--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->pname@:imageView+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@ -- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of the -- @depthStencilAttachmentSamples@ member of -- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'@@ -1722,7 +1964,7 @@ -- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV' -- used to create the currently bound graphics pipeline /must/ be equal -- to the sample count used to create--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->pname@:imageView+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@ -- -- - #VUID-vkCmdDrawIndexedIndirectCount-pStencilAttachment-06187# If the -- current render pass instance was begun with@@ -1732,7 +1974,7 @@ -- or -- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV' -- structure, and--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->pname@:imageView+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@ -- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of the -- @depthStencilAttachmentSamples@ member of -- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'@@ -1740,7 +1982,7 @@ -- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV' -- used to create the currently bound graphics pipeline /must/ be equal -- to the sample count used to create--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->pname@:imageView+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@ -- -- - #VUID-vkCmdDrawIndexedIndirectCount-colorAttachmentCount-06188# If -- the currently bound pipeline was created without a@@ -1767,12 +2009,12 @@ -- or -- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV' -- structure, and--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->pname@:imageView+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@ -- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of -- 'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'::@rasterizationSamples@ -- used to create the currently bound graphics pipeline /must/ be equal -- to the sample count used to create--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->pname@:imageView+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@ -- -- - #VUID-vkCmdDrawIndexedIndirectCount-pStencilAttachment-06190# If the -- current render pass instance was begun with@@ -1782,12 +2024,12 @@ -- or -- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV' -- structure, and--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->pname@:imageView+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@ -- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of -- 'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'::@rasterizationSamples@ -- used to create the currently bound graphics pipeline /must/ be equal -- to the sample count used to create--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->pname@:imageView+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@ -- -- - #VUID-vkCmdDrawIndexedIndirectCount-renderPass-06198# If the current -- render pass instance was begun with@@ -1814,6 +2056,21 @@ -- created with a non-zero value in -- 'Vulkan.Extensions.VK_EXT_transform_feedback.PipelineRasterizationStateStreamCreateInfoEXT'::@rasterizationStream@. --+-- - #VUID-vkCmdDrawIndexedIndirectCount-stage-07073# If the currently+-- bound pipeline was created with the+-- 'Vulkan.Core10.Pipeline.PipelineShaderStageCreateInfo'::@stage@+-- member of an element of+-- 'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo'::@pStages@ set+-- to+-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT',+-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_CONTROL_BIT',+-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT'+-- or+-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT',+-- then+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#queries-mesh-shader Mesh Shader Queries>+-- must not be active+-- -- - #VUID-vkCmdDrawIndexedIndirectCount-None-04007# All vertex input -- bindings accessed via vertex input variables declared in the vertex -- shader entry point’s interface /must/ have either valid or@@ -1897,9 +2154,9 @@ -- member of an element of -- 'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo'::@pStages@ set -- to--- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_NV'+-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT' -- or--- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_NV'+-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT' -- -- - #VUID-vkCmdDrawIndexedIndirectCount-buffer-02708# If @buffer@ is -- non-sparse then it /must/ be bound completely and contiguously to a@@ -1985,6 +2242,9 @@ -- - #VUID-vkCmdDrawIndexedIndirectCount-renderpass# This command /must/ -- only be called inside of a render pass instance --+-- - #VUID-vkCmdDrawIndexedIndirectCount-videocoding# This command /must/+-- only be called outside of a video coding scope+-- -- - #VUID-vkCmdDrawIndexedIndirectCount-commonparent# Each of @buffer@, -- @commandBuffer@, and @countBuffer@ /must/ have been created, -- allocated, or retrieved from the same 'Vulkan.Core10.Handles.Device'@@ -2000,12 +2260,12 @@ -- -- \' ----- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | Primary | Inside | Graphics |--- | Secondary | | |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================++-- | Primary | Inside | Outside | Graphics |+-- | Secondary | | | |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+ -- -- = See Also --
src/Vulkan/Core12/Promoted_From_VK_KHR_imageless_framebuffer.hs view
@@ -321,6 +321,14 @@ -- 'Vulkan.Core10.ImageView.ImageViewCreateInfo'::@viewType@ not equal -- to 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_3D' --+-- - #VUID-VkRenderPassAttachmentBeginInfo-pAttachments-07010# If+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#subpass-multisampledrendertosinglesampled multisampled-render-to-single-sampled>+-- is enabled for any subpass, all element of @pAttachments@ which have+-- a sample count equal to+-- 'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT' /must/+-- have a format that supports the sample count specified in+-- 'Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled.MultisampledRenderToSingleSampledInfoEXT'::@rasterizationSamples@+-- -- == Valid Usage (Implicit) -- -- - #VUID-VkRenderPassAttachmentBeginInfo-sType-sType# @sType@ /must/ be
src/Vulkan/Core12/Promoted_From_VK_KHR_shader_atomic_int64.hs view
@@ -60,7 +60,7 @@ shaderBufferInt64Atomics :: Bool , -- | #extension-features-shaderSharedInt64Atomics# @shaderSharedInt64Atomics@ -- indicates whether shaders /can/ perform 64-bit unsigned and signed- -- integer atomic operations on shared memory.+ -- integer atomic operations on shared and payload memory. shaderSharedInt64Atomics :: Bool } deriving (Typeable, Eq)
src/Vulkan/Core12/Promoted_From_VK_KHR_shader_subgroup_extended_types.hs view
@@ -60,9 +60,9 @@ -- @shaderSubgroupExtendedTypes@ is a boolean specifying whether subgroup -- operations can use 8-bit integer, 16-bit integer, 64-bit integer, 16-bit -- floating-point, and vectors of these types in- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-group-operations group operations>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-group-operations group operations> -- with- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-scope-subgroup subgroup scope>,+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-scope-subgroup subgroup scope>, -- if the implementation supports the types. shaderSubgroupExtendedTypes :: Bool } deriving (Typeable, Eq)
src/Vulkan/Core12/Promoted_From_VK_KHR_timeline_semaphore.hs view
@@ -101,7 +101,7 @@ -- Note -- -- If a--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#devsandqueues-submission queue submission>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#devsandqueues-submission queue submission> -- command is pending execution, then the value returned by this command -- /may/ immediately be out of date. --@@ -221,7 +221,7 @@ -- after the @timeout@ has expired. -- -- If device loss occurs (see--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#devsandqueues-lost-device Lost Device>)+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#devsandqueues-lost-device Lost Device>) -- before the timeout has expired, 'waitSemaphores' /must/ return in finite -- time with either 'Vulkan.Core10.Enums.Result.SUCCESS' or -- 'Vulkan.Core10.Enums.Result.ERROR_DEVICE_LOST'.@@ -304,7 +304,7 @@ -- -- When 'signalSemaphore' is executed on the host, it defines and -- immediately executes a--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-semaphores-signaling semaphore signal operation>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-semaphores-signaling semaphore signal operation> -- which sets the timeline semaphore to the given value. -- -- The first synchronization scope is defined by the host execution model,@@ -508,7 +508,7 @@ -- == Valid Usage -- -- - #VUID-VkSemaphoreTypeCreateInfo-timelineSemaphore-03252# If the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-timelineSemaphore timelineSemaphore>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-timelineSemaphore timelineSemaphore> -- feature is not enabled, @semaphoreType@ /must/ not equal -- 'Vulkan.Core12.Enums.SemaphoreType.SEMAPHORE_TYPE_TIMELINE' --@@ -838,7 +838,7 @@ -- which does not differ from the current value of the semaphore or the -- value of any outstanding semaphore wait or signal operation on -- @semaphore@ by more than- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxTimelineSemaphoreValueDifference maxTimelineSemaphoreValueDifference>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxTimelineSemaphoreValueDifference maxTimelineSemaphoreValueDifference> value :: Word64 } deriving (Typeable, Eq)
src/Vulkan/Core12/Promoted_From_VK_KHR_uniform_buffer_standard_layout.hs view
@@ -59,7 +59,7 @@ -- @uniformBufferStandardLayout@ indicates that the implementation supports -- the same layouts for uniform buffers as for storage and other kinds of -- buffers. See- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-resources-standard-layout Standard Buffer Layout>.+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-resources-standard-layout Standard Buffer Layout>. uniformBufferStandardLayout :: Bool } deriving (Typeable, Eq) #if defined(GENERIC_INSTANCES)
src/Vulkan/Core12/Promoted_From_VK_KHR_vulkan_memory_model.hs view
@@ -58,7 +58,7 @@ data PhysicalDeviceVulkanMemoryModelFeatures = PhysicalDeviceVulkanMemoryModelFeatures { -- | #extension-features-vulkanMemoryModel# @vulkanMemoryModel@ indicates -- whether the Vulkan Memory Model is supported, as defined in- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-model Vulkan Memory Model>.+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-model Vulkan Memory Model>. -- This also indicates whether shader modules /can/ declare the -- @VulkanMemoryModel@ capability. vulkanMemoryModel :: Bool@@ -71,7 +71,7 @@ , -- | #extension-features-vulkanMemoryModelAvailabilityVisibilityChains# -- @vulkanMemoryModelAvailabilityVisibilityChains@ indicates whether the -- Vulkan Memory Model can use- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-model-availability-visibility availability and visibility chains>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-model-availability-visibility availability and visibility chains> -- with more than one element. vulkanMemoryModelAvailabilityVisibilityChains :: Bool }
src/Vulkan/Core13.hs view
@@ -4,6 +4,7 @@ , PhysicalDeviceVulkan13Features(..) , PhysicalDeviceVulkan13Properties(..) , StructureType(..)+ , Flags64 , module Vulkan.Core13.Enums , module Vulkan.Core13.Handles , module Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state@@ -75,6 +76,7 @@ import Vulkan.Version (pattern MAKE_API_VERSION) import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_FEATURES)) import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_PROPERTIES))+import Vulkan.Core10.FundamentalTypes (Flags64) import Vulkan.Core10.Enums.StructureType (StructureType(..)) pattern API_VERSION_1_3 :: Word32 pattern API_VERSION_1_3 = MAKE_API_VERSION 1 3 0@@ -165,8 +167,8 @@ -- structure. subgroupSizeControl :: Bool , -- | #features-computeFullSubgroups# @computeFullSubgroups@ indicates whether- -- the implementation supports requiring full subgroups in compute shaders- -- via the+ -- the implementation supports requiring full subgroups in compute , mesh,+ -- or task shaders via the -- 'Vulkan.Core10.Enums.PipelineShaderStageCreateFlagBits.PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT' -- flag. computeFullSubgroups :: Bool@@ -644,7 +646,6 @@ , -- | #limits-storageTexelBufferOffsetSingleTexelAlignment# -- @storageTexelBufferOffsetSingleTexelAlignment@ indicates whether single -- texel alignment is sufficient for a storage texel buffer of any format.- -- The value /must/ be a power of two. storageTexelBufferOffsetSingleTexelAlignment :: Bool , -- | #limits-uniformTexelBufferOffsetAlignmentBytes# -- @uniformTexelBufferOffsetAlignmentBytes@ is a byte alignment that is@@ -654,7 +655,6 @@ , -- | #limits-uniformTexelBufferOffsetSingleTexelAlignment# -- @uniformTexelBufferOffsetSingleTexelAlignment@ indicates whether single -- texel alignment is sufficient for a uniform texel buffer of any format.- -- The value /must/ be a power of two. uniformTexelBufferOffsetSingleTexelAlignment :: Bool , -- | #limits-maxBufferSize# @maxBufferSize@ is the maximum size -- 'Vulkan.Core10.Handles.Buffer' that /can/ be created.
src/Vulkan/Core13/Enums/AccessFlags2.hs view
@@ -43,6 +43,7 @@ , ACCESS_2_SHADER_SAMPLED_READ_BIT , ACCESS_2_SHADER_STORAGE_READ_BIT , ACCESS_2_SHADER_STORAGE_WRITE_BIT+ , ACCESS_2_SHADER_BINDING_TABLE_READ_BIT_KHR , ACCESS_2_INVOCATION_MASK_READ_BIT_HUAWEI , ACCESS_2_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT , ACCESS_2_FRAGMENT_DENSITY_MAP_READ_BIT_EXT@@ -204,11 +205,11 @@ -- pipeline stage. pattern ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT = AccessFlagBits2 0x0000000000000004 -- | 'ACCESS_2_UNIFORM_READ_BIT' specifies read access to a--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-uniformbuffer uniform buffer>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-uniformbuffer uniform buffer> -- in any shader pipeline stage. pattern ACCESS_2_UNIFORM_READ_BIT = AccessFlagBits2 0x0000000000000008 -- | 'ACCESS_2_INPUT_ATTACHMENT_READ_BIT' specifies read access to an--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass input attachment>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass input attachment> -- within a render pass during subpass shading or fragment shading. Such -- access occurs in the -- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI'@@ -216,29 +217,28 @@ -- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT' -- pipeline stage. pattern ACCESS_2_INPUT_ATTACHMENT_READ_BIT = AccessFlagBits2 0x0000000000000010--- | 'ACCESS_2_SHADER_READ_BIT' specifies read access to a--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#shader-binding-table shader binding table>--- in any shader pipeline. In addition, it is equivalent to the logical OR--- of:+-- | 'ACCESS_2_SHADER_READ_BIT' is equivalent to the logical OR of: -- -- - 'ACCESS_2_UNIFORM_READ_BIT' -- -- - 'ACCESS_2_SHADER_SAMPLED_READ_BIT' -- -- - 'ACCESS_2_SHADER_STORAGE_READ_BIT'+--+-- - 'ACCESS_2_SHADER_BINDING_TABLE_READ_BIT_KHR' pattern ACCESS_2_SHADER_READ_BIT = AccessFlagBits2 0x0000000000000020 -- | 'ACCESS_2_SHADER_WRITE_BIT' is equivalent to -- 'ACCESS_2_SHADER_STORAGE_WRITE_BIT'. pattern ACCESS_2_SHADER_WRITE_BIT = AccessFlagBits2 0x0000000000000040 -- | 'ACCESS_2_COLOR_ATTACHMENT_READ_BIT' specifies read access to a--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass color attachment>,+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass color attachment>, -- such as via--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#framebuffer-blending blending>,--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#framebuffer-logicop logic operations>,+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#framebuffer-blending blending>,+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#framebuffer-logicop logic operations>, -- or via certain--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-load-store-ops subpass load operations>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-load-store-ops subpass load operations>. -- It does not include--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#framebuffer-blend-advanced advanced blend operations>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#framebuffer-blend-advanced advanced blend operations>. -- Such access occurs in the -- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT' -- pipeline stage.@@ -246,19 +246,19 @@ -- | 'ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT' specifies write access to a -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass color, resolve, or depth\/stencil resolve attachment> -- during a--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass render pass>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass render pass> -- or via certain--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-load-store-ops subpass load and store operations>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-load-store-ops subpass load and store operations>. -- Such access occurs in the -- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT' -- pipeline stage. pattern ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT = AccessFlagBits2 0x0000000000000100 -- | 'ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT' specifies read access to a--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass depth\/stencil attachment>,+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass depth\/stencil attachment>, -- via--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#fragops-ds-state depth or stencil operations>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fragops-ds-state depth or stencil operations> -- or via certain--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-load-store-ops subpass load operations>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-load-store-ops subpass load operations>. -- Such access occurs in the -- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT' -- or@@ -267,11 +267,11 @@ pattern ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT = AccessFlagBits2 0x0000000000000200 -- | 'ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT' specifies write access to -- a--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass depth\/stencil attachment>,+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass depth\/stencil attachment>, -- via--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#fragops-ds-state depth or stencil operations>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fragops-ds-state depth or stencil operations> -- or via certain--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-load-store-ops subpass load and store operations>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-load-store-ops subpass load and store operations>. -- Such access occurs in the -- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT' -- or@@ -280,7 +280,7 @@ pattern ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT = AccessFlagBits2 0x0000000000000400 -- | 'ACCESS_2_TRANSFER_READ_BIT' specifies read access to an image or buffer -- in a--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#copies copy>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#copies copy> -- operation. Such access occurs in the -- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_COPY_BIT', -- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_BLIT_BIT', or@@ -289,9 +289,9 @@ pattern ACCESS_2_TRANSFER_READ_BIT = AccessFlagBits2 0x0000000000000800 -- | 'ACCESS_2_TRANSFER_WRITE_BIT' specifies write access to an image or -- buffer in a--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#clears clear>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#clears clear> -- or--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#copies copy>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#copies copy> -- operation. Such access occurs in the -- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_COPY_BIT', -- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_BLIT_BIT',@@ -320,27 +320,31 @@ -- @WRITE@ access flags that are valid where it is used. pattern ACCESS_2_MEMORY_WRITE_BIT = AccessFlagBits2 0x0000000000010000 -- | 'ACCESS_2_SHADER_SAMPLED_READ_BIT' specifies read access to a--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-uniformtexelbuffer uniform texel buffer>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-uniformtexelbuffer uniform texel buffer> -- or--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-sampledimage sampled image>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-sampledimage sampled image> -- in any shader pipeline stage. pattern ACCESS_2_SHADER_SAMPLED_READ_BIT = AccessFlagBits2 0x0000000100000000 -- | 'ACCESS_2_SHADER_STORAGE_READ_BIT' specifies read access to a--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-storagebuffer storage buffer>,--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-physical-storage-buffer physical storage buffer>,--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-storagetexelbuffer storage texel buffer>,+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-storagebuffer storage buffer>,+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-physical-storage-buffer physical storage buffer>,+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-storagetexelbuffer storage texel buffer>, -- or--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-storageimage storage image>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-storageimage storage image> -- in any shader pipeline stage. pattern ACCESS_2_SHADER_STORAGE_READ_BIT = AccessFlagBits2 0x0000000200000000 -- | 'ACCESS_2_SHADER_STORAGE_WRITE_BIT' specifies write access to a--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-storagebuffer storage buffer>,--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-physical-storage-buffer physical storage buffer>,--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-storagetexelbuffer storage texel buffer>,+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-storagebuffer storage buffer>,+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-physical-storage-buffer physical storage buffer>,+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-storagetexelbuffer storage texel buffer>, -- or--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-storageimage storage image>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-storageimage storage image> -- in any shader pipeline stage. pattern ACCESS_2_SHADER_STORAGE_WRITE_BIT = AccessFlagBits2 0x0000000400000000+-- | 'ACCESS_2_SHADER_BINDING_TABLE_READ_BIT_KHR' specifies read access to a+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#shader-binding-table shader binding table>+-- in any shader pipeline stage.+pattern ACCESS_2_SHADER_BINDING_TABLE_READ_BIT_KHR = AccessFlagBits2 0x0000010000000000 -- | 'ACCESS_2_INVOCATION_MASK_READ_BIT_HUAWEI' specifies read access to a -- invocation mask image in the -- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI'@@ -348,24 +352,24 @@ pattern ACCESS_2_INVOCATION_MASK_READ_BIT_HUAWEI = AccessFlagBits2 0x0000008000000000 -- | 'ACCESS_2_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT' specifies read -- access to--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass color attachments>,+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass color attachments>, -- including--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#framebuffer-blend-advanced advanced blend operations>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#framebuffer-blend-advanced advanced blend operations>. -- Such access occurs in the -- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT' -- pipeline stage. pattern ACCESS_2_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT = AccessFlagBits2 0x0000000000080000 -- | 'ACCESS_2_FRAGMENT_DENSITY_MAP_READ_BIT_EXT' specifies read access to a--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-fragmentdensitymapattachment fragment density map attachment>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-fragmentdensitymapattachment fragment density map attachment> -- during dynamic--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#fragmentdensitymapops fragment density map operations>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fragmentdensitymapops fragment density map operations>. -- Such access occurs in the -- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT' -- pipeline stage. pattern ACCESS_2_FRAGMENT_DENSITY_MAP_READ_BIT_EXT = AccessFlagBits2 0x0000000001000000 -- | 'ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_KHR' specifies write access -- to an acceleration structure or--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#acceleration-structure-scratch acceleration structure scratch buffer>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#acceleration-structure-scratch acceleration structure scratch buffer> -- as part of a build or copy command. Such access occurs in the -- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR' -- pipeline stage.@@ -373,7 +377,7 @@ -- | 'ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR' specifies read access to -- an acceleration structure as part of a trace, build, or copy command, or -- to an--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#acceleration-structure-scratch acceleration structure scratch buffer>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#acceleration-structure-scratch acceleration structure scratch buffer> -- as part of a build command. Such access occurs in the -- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR' -- pipeline stage or@@ -453,6 +457,7 @@ , (ACCESS_2_SHADER_SAMPLED_READ_BIT , "SHADER_SAMPLED_READ_BIT") , (ACCESS_2_SHADER_STORAGE_READ_BIT , "SHADER_STORAGE_READ_BIT") , (ACCESS_2_SHADER_STORAGE_WRITE_BIT , "SHADER_STORAGE_WRITE_BIT")+ , (ACCESS_2_SHADER_BINDING_TABLE_READ_BIT_KHR , "SHADER_BINDING_TABLE_READ_BIT_KHR") , (ACCESS_2_INVOCATION_MASK_READ_BIT_HUAWEI , "INVOCATION_MASK_READ_BIT_HUAWEI") , (ACCESS_2_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT, "COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT") , (ACCESS_2_FRAGMENT_DENSITY_MAP_READ_BIT_EXT , "FRAGMENT_DENSITY_MAP_READ_BIT_EXT")
src/Vulkan/Core13/Enums/FormatFeatureFlags2.hs view
@@ -55,6 +55,10 @@ , FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT , FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT , FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT+ , FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM+ , FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM+ , FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM+ , FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM , FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV , FORMAT_FEATURE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR , FORMAT_FEATURE_2_FRAGMENT_DENSITY_MAP_BIT_EXT@@ -198,11 +202,11 @@ -- -- - 'FORMAT_FEATURE_2_SAMPLED_IMAGE_BIT' specifies that an image view -- /can/ be--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-sampledimage sampled from>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-sampledimage sampled from>. -- -- - 'FORMAT_FEATURE_2_STORAGE_IMAGE_BIT' specifies that an image view -- /can/ be used as a--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-storageimage storage image>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-storageimage storage image>. -- -- - 'FORMAT_FEATURE_2_STORAGE_IMAGE_ATOMIC_BIT' specifies that an image -- view /can/ be used as storage image that supports atomic operations.@@ -257,13 +261,13 @@ -- -- - 'FORMAT_FEATURE_2_TRANSFER_SRC_BIT' specifies that an image /can/ be -- used as a source image for--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#copies copy commands>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#copies copy commands>. -- -- - 'FORMAT_FEATURE_2_TRANSFER_DST_BIT' specifies that an image /can/ be -- used as a destination image for--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#copies copy commands>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#copies copy commands> -- and--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#clears clear commands>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#clears clear commands>. -- -- - 'FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_MINMAX_BIT' specifies -- 'Vulkan.Core10.Handles.Image' /can/ be used as a sampled image with@@ -275,17 +279,17 @@ -- - 'FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_CUBIC_BIT' specifies that -- 'Vulkan.Core10.Handles.Image' /can/ be used with a sampler that has -- either of @magFilter@ or @minFilter@ set to--- 'Vulkan.Extensions.VK_EXT_filter_cubic.FILTER_CUBIC_EXT', or be the--- source image for a blit with @filter@ set to--- 'Vulkan.Extensions.VK_EXT_filter_cubic.FILTER_CUBIC_EXT'. This bit--- /must/ only be exposed for formats that also support the+-- 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT', or be the source+-- image for a blit with @filter@ set to+-- 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT'. This bit /must/ only+-- be exposed for formats that also support the -- 'FORMAT_FEATURE_2_SAMPLED_IMAGE_BIT'. If the format being queried is -- a depth\/stencil format, this only specifies that the depth aspect -- is cubic filterable. -- -- - 'FORMAT_FEATURE_2_MIDPOINT_CHROMA_SAMPLES_BIT' specifies that an -- application /can/ define a--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion> -- using this format as a source, and that an image of this format -- /can/ be used with a -- 'Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion.SamplerYcbcrConversionCreateInfo'@@ -300,7 +304,7 @@ -- -- - 'FORMAT_FEATURE_2_COSITED_CHROMA_SAMPLES_BIT' specifies that an -- application /can/ define a--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion> -- using this format as a source, and that an image of this format -- /can/ be used with a -- 'Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion.SamplerYcbcrConversionCreateInfo'@@ -311,12 +315,12 @@ -- neither 'FORMAT_FEATURE_2_COSITED_CHROMA_SAMPLES_BIT' nor -- 'FORMAT_FEATURE_2_MIDPOINT_CHROMA_SAMPLES_BIT' is set, the -- application /must/ not define a--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion> -- using this format as a source. -- -- - 'FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT' -- specifies that an application /can/ define a--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion> -- using this format as a source with @chromaFilter@ set to -- 'Vulkan.Core10.Enums.Filter.FILTER_LINEAR'. --@@ -326,7 +330,7 @@ -- -- - 'FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT' -- specifies that reconstruction is explicit, as described in--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#textures-chroma-reconstruction>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#textures-chroma-reconstruction>. -- If this bit is not present, reconstruction is implicit by default. -- -- - 'FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT'@@ -347,22 +351,50 @@ -- -- - 'FORMAT_FEATURE_2_FRAGMENT_DENSITY_MAP_BIT_EXT' specifies that an -- image view /can/ be used as a--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-fragmentdensitymapattachment fragment density map attachment>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-fragmentdensitymapattachment fragment density map attachment>. -- -- - 'FORMAT_FEATURE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR' -- specifies that an image view /can/ be used as a--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-fragment-shading-rate-attachment fragment shading rate attachment>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-fragment-shading-rate-attachment fragment shading rate attachment>. -- An implementation /must/ not set this feature for formats with -- numeric type other than @*UINT@, or set it as a buffer feature. --+-- - @VK_FORMAT_FEATURE_2_VIDEO_DECODE_OUTPUT_BIT_KHR@ specifies that an+-- image view with this format /can/ be used as an output for+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#video-decode-operations video decode operations>+--+-- - @VK_FORMAT_FEATURE_2_VIDEO_DECODE_DPB_BIT_KHR@ specifies that an+-- image view with this format /can/ be used as a DPB for+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#video-decode-operations video decode operations>+--+-- - @VK_FORMAT_FEATURE_2_VIDEO_ENCODE_INPUT_BIT_KHR@ specifies that an+-- image view with this format /can/ be used as an input to+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#video-encode-operations video encode operations>+--+-- - @VK_FORMAT_FEATURE_2_VIDEO_ENCODE_DPB_BIT_KHR@ specifies that an+-- image view with this format /can/ be used as a DPB for+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#video-encode-operations video encode operations>+--+-- Note+--+-- Specific video profiles /may/ have additional restrictions on the+-- format and other image creation parameters corresponding to image+-- views used by video coding operations that /can/ be enumerated using+-- the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkGetPhysicalDeviceVideoFormatPropertiesKHR vkGetPhysicalDeviceVideoFormatPropertiesKHR>+-- command, as described in+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#supported-video-input-output-dpb-formats-enumeration Enumeration of Supported Video Output, Input and DPB Formats>.+-- -- - 'FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT' specifies that--- image views created with this format /can/ be used as--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-storageimage storage images>+-- image views or buffer views created with this format /can/ be used+-- as+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-storageimage storage images> -- for read operations without specifying a format. -- -- - 'FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT' specifies that--- image views created with this format /can/ be used as--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-storageimage storage images>+-- image views or buffer views created with this format /can/ be used+-- as+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-storageimage storage images> -- for write operations without specifying a format. -- -- - 'FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT' specifies that@@ -371,11 +403,33 @@ -- -- - 'FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV' specifies that the -- format is supported as a renderable--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#glossary Linear Color Attachment>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#glossary Linear Color Attachment>. -- This bit will be set for renderable color formats in the -- @linearTilingFeatures@. This /must/ not be set in the -- @optimalTilingFeatures@ or @bufferFeatures@ members. --+-- - 'FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM' specifies that image views+-- created with this format /can/ be used as the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-weightimage weight image>+-- input to+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#textures-weightimage weight image sampling>+-- operations.+--+-- - 'FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM' specifies that+-- image views created with this format /can/ be sampled in+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#textures-weightimage weight image sampling>+-- operations.+--+-- - 'FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM' specifies that image+-- views created with this format /can/ be used in+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#textures-blockmatch block matching>+-- operations.+--+-- - 'FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM' specifies that image+-- views created with this format /can/ be sampled in+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#textures-boxfilter box filter sampling>+-- operations.+-- -- The following bits /may/ be set in @bufferFeatures@, specifying that the -- features are supported by <VkBuffer.html buffers> or -- <VkBufferView.html buffer views> created with the queried@@ -405,13 +459,23 @@ -- - 'FORMAT_FEATURE_2_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR' -- specifies that the format /can/ be used as the vertex format when -- creating an--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#acceleration-structure acceleration structure>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#acceleration-structure acceleration structure> -- ('Vulkan.Extensions.VK_KHR_acceleration_structure.AccelerationStructureGeometryTrianglesDataKHR'::@vertexFormat@). -- This format /can/ also be used as the vertex format in host memory -- when doing--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#host-acceleration-structure host acceleration structure>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#host-acceleration-structure host acceleration structure> -- builds. --+-- - 'FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT' specifies that+-- buffer views created with this format /can/ be used as+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-storagetexelbuffer storage texel buffers>+-- for read operations without specifying a format.+--+-- - 'FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT' specifies that+-- buffer views created with this format /can/ be used as+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-storagetexelbuffer storage texel buffers>+-- for write operations without specifying a format.+-- -- = See Also -- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_format_feature_flags2 VK_KHR_format_feature_flags2>,@@ -421,11 +485,11 @@ -- | 'FORMAT_FEATURE_2_SAMPLED_IMAGE_BIT' specifies that an image view /can/ -- be--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-sampledimage sampled from>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-sampledimage sampled from>. pattern FORMAT_FEATURE_2_SAMPLED_IMAGE_BIT = FormatFeatureFlagBits2 0x0000000000000001 -- | 'FORMAT_FEATURE_2_STORAGE_IMAGE_BIT' specifies that an image view /can/ -- be used as a--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-storageimage storage image>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-storageimage storage image>. pattern FORMAT_FEATURE_2_STORAGE_IMAGE_BIT = FormatFeatureFlagBits2 0x0000000000000002 -- | 'FORMAT_FEATURE_2_STORAGE_IMAGE_ATOMIC_BIT' specifies that an image view -- /can/ be used as storage image that supports atomic operations.@@ -497,23 +561,23 @@ -- | 'FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_CUBIC_BIT' specifies that -- 'Vulkan.Core10.Handles.Image' /can/ be used with a sampler that has -- either of @magFilter@ or @minFilter@ set to--- 'Vulkan.Extensions.VK_EXT_filter_cubic.FILTER_CUBIC_EXT', or be the--- source image for a blit with @filter@ set to--- 'Vulkan.Extensions.VK_EXT_filter_cubic.FILTER_CUBIC_EXT'. This bit--- /must/ only be exposed for formats that also support the+-- 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT', or be the source image+-- for a blit with @filter@ set to+-- 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT'. This bit /must/ only be+-- exposed for formats that also support the -- 'FORMAT_FEATURE_2_SAMPLED_IMAGE_BIT'. If the format being queried is a -- depth\/stencil format, this only specifies that the depth aspect is -- cubic filterable. pattern FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_CUBIC_BIT = FormatFeatureFlagBits2 0x0000000000002000 -- | 'FORMAT_FEATURE_2_TRANSFER_SRC_BIT' specifies that an image /can/ be -- used as a source image for--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#copies copy commands>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#copies copy commands>. pattern FORMAT_FEATURE_2_TRANSFER_SRC_BIT = FormatFeatureFlagBits2 0x0000000000004000 -- | 'FORMAT_FEATURE_2_TRANSFER_DST_BIT' specifies that an image /can/ be -- used as a destination image for--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#copies copy commands>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#copies copy commands> -- and--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#clears clear commands>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#clears clear commands>. pattern FORMAT_FEATURE_2_TRANSFER_DST_BIT = FormatFeatureFlagBits2 0x0000000000008000 -- | 'FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_MINMAX_BIT' specifies -- 'Vulkan.Core10.Handles.Image' /can/ be used as a sampled image with a@@ -524,7 +588,7 @@ pattern FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_MINMAX_BIT = FormatFeatureFlagBits2 0x0000000000010000 -- | 'FORMAT_FEATURE_2_MIDPOINT_CHROMA_SAMPLES_BIT' specifies that an -- application /can/ define a--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion> -- using this format as a source, and that an image of this format /can/ be -- used with a -- 'Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion.SamplerYcbcrConversionCreateInfo'@@ -539,7 +603,7 @@ pattern FORMAT_FEATURE_2_MIDPOINT_CHROMA_SAMPLES_BIT = FormatFeatureFlagBits2 0x0000000000020000 -- | 'FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT' -- specifies that an application /can/ define a--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion> -- using this format as a source with @chromaFilter@ set to -- 'Vulkan.Core10.Enums.Filter.FILTER_LINEAR'. pattern FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT = FormatFeatureFlagBits2 0x0000000000040000@@ -550,7 +614,7 @@ FormatFeatureFlagBits2 0x0000000000080000 -- | 'FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT' -- specifies that reconstruction is explicit, as described in--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#textures-chroma-reconstruction>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#textures-chroma-reconstruction>. -- If this bit is not present, reconstruction is implicit by default. pattern FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT = FormatFeatureFlagBits2 0x0000000000100000@@ -572,7 +636,7 @@ pattern FORMAT_FEATURE_2_DISJOINT_BIT = FormatFeatureFlagBits2 0x0000000000400000 -- | 'FORMAT_FEATURE_2_COSITED_CHROMA_SAMPLES_BIT' specifies that an -- application /can/ define a--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion> -- using this format as a source, and that an image of this format /can/ be -- used with a -- 'Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion.SamplerYcbcrConversionCreateInfo'@@ -583,48 +647,80 @@ -- neither 'FORMAT_FEATURE_2_COSITED_CHROMA_SAMPLES_BIT' nor -- 'FORMAT_FEATURE_2_MIDPOINT_CHROMA_SAMPLES_BIT' is set, the application -- /must/ not define a--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion> -- using this format as a source. pattern FORMAT_FEATURE_2_COSITED_CHROMA_SAMPLES_BIT = FormatFeatureFlagBits2 0x0000000000800000 -- | 'FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT' specifies that image+-- views or buffer views created with this format /can/ be used as+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-storageimage storage images>+-- for read operations without specifying a format.+--+-- 'FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT' specifies that buffer -- views created with this format /can/ be used as--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-storageimage storage images>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-storagetexelbuffer storage texel buffers> -- for read operations without specifying a format. pattern FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT = FormatFeatureFlagBits2 0x0000000080000000 -- | 'FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT' specifies that image--- views created with this format /can/ be used as--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-storageimage storage images>+-- views or buffer views created with this format /can/ be used as+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-storageimage storage images> -- for write operations without specifying a format.+--+-- 'FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT' specifies that+-- buffer views created with this format /can/ be used as+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-storagetexelbuffer storage texel buffers>+-- for write operations without specifying a format. pattern FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT = FormatFeatureFlagBits2 0x0000000100000000 -- | 'FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT' specifies that -- image views created with this format /can/ be used for depth comparison -- performed by @OpImage*Dref*@ instructions. pattern FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT = FormatFeatureFlagBits2 0x0000000200000000+-- | 'FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM' specifies that image+-- views created with this format /can/ be sampled in+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#textures-boxfilter box filter sampling>+-- operations.+pattern FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM = FormatFeatureFlagBits2 0x0000002000000000+-- | 'FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM' specifies that image views+-- created with this format /can/ be used in+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#textures-blockmatch block matching>+-- operations.+pattern FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM = FormatFeatureFlagBits2 0x0000001000000000+-- | 'FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM' specifies that image+-- views created with this format /can/ be sampled in+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#textures-weightimage weight image sampling>+-- operations.+pattern FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM = FormatFeatureFlagBits2 0x0000000800000000+-- | 'FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM' specifies that image views+-- created with this format /can/ be used as the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-weightimage weight image>+-- input to+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#textures-weightimage weight image sampling>+-- operations.+pattern FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM = FormatFeatureFlagBits2 0x0000000400000000 -- | 'FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV' specifies that the -- format is supported as a renderable--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#glossary Linear Color Attachment>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#glossary Linear Color Attachment>. -- This bit will be set for renderable color formats in the -- @linearTilingFeatures@. This /must/ not be set in the -- @optimalTilingFeatures@ or @bufferFeatures@ members. pattern FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV = FormatFeatureFlagBits2 0x0000004000000000 -- | 'FORMAT_FEATURE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR' specifies -- that an image view /can/ be used as a--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-fragment-shading-rate-attachment fragment shading rate attachment>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-fragment-shading-rate-attachment fragment shading rate attachment>. -- An implementation /must/ not set this feature for formats with numeric -- type other than @*UINT@, or set it as a buffer feature. pattern FORMAT_FEATURE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = FormatFeatureFlagBits2 0x0000000040000000 -- | 'FORMAT_FEATURE_2_FRAGMENT_DENSITY_MAP_BIT_EXT' specifies that an image -- view /can/ be used as a--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-fragmentdensitymapattachment fragment density map attachment>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-fragmentdensitymapattachment fragment density map attachment>. pattern FORMAT_FEATURE_2_FRAGMENT_DENSITY_MAP_BIT_EXT = FormatFeatureFlagBits2 0x0000000001000000 -- | 'FORMAT_FEATURE_2_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR' -- specifies that the format /can/ be used as the vertex format when -- creating an--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#acceleration-structure acceleration structure>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#acceleration-structure acceleration structure> -- ('Vulkan.Extensions.VK_KHR_acceleration_structure.AccelerationStructureGeometryTrianglesDataKHR'::@vertexFormat@). -- This format /can/ also be used as the vertex format in host memory when -- doing--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#host-acceleration-structure host acceleration structure>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#host-acceleration-structure host acceleration structure> -- builds. pattern FORMAT_FEATURE_2_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR = FormatFeatureFlagBits2 0x0000000020000000 @@ -671,6 +767,10 @@ , (FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT , "STORAGE_READ_WITHOUT_FORMAT_BIT") , (FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT , "STORAGE_WRITE_WITHOUT_FORMAT_BIT") , (FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT , "SAMPLED_IMAGE_DEPTH_COMPARISON_BIT")+ , (FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM , "BOX_FILTER_SAMPLED_BIT_QCOM")+ , (FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM , "BLOCK_MATCHING_BIT_QCOM")+ , (FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM , "WEIGHT_SAMPLED_IMAGE_BIT_QCOM")+ , (FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM , "WEIGHT_IMAGE_BIT_QCOM") , (FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV , "LINEAR_COLOR_ATTACHMENT_BIT_NV") , (FORMAT_FEATURE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR, "FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR") , (FORMAT_FEATURE_2_FRAGMENT_DENSITY_MAP_BIT_EXT , "FRAGMENT_DENSITY_MAP_BIT_EXT")
src/Vulkan/Core13/Enums/PipelineCreationFeedbackFlagBits.hs view
@@ -72,8 +72,8 @@ -- -- Implementations are encouraged to provide a meaningful signal to -- applications using this bit. The intention is to communicate to the--- application that the pipeline or pipeline stage was created \"as fast as--- it gets\" using the pipeline cache provided by the application. If an+-- application that the pipeline or pipeline stage was created “as fast as+-- it gets” using the pipeline cache provided by the application. If an -- implementation uses an internal cache, it is discouraged from setting -- this bit as the feedback would be unactionable. pattern PIPELINE_CREATION_FEEDBACK_APPLICATION_PIPELINE_CACHE_HIT_BIT = PipelineCreationFeedbackFlagBits 0x00000002@@ -89,7 +89,7 @@ -- -- Note ----- While \"significant amount of work\" is subjective, implementations are+-- While “significant amount of work” is subjective, implementations are -- encouraged to provide a meaningful signal to applications using this -- bit. For example, a 1% reduction in duration may not warrant setting -- this bit, while a 50% reduction would.
src/Vulkan/Core13/Enums/PipelineStageFlags2.hs view
@@ -53,10 +53,11 @@ , PIPELINE_STAGE_2_INDEX_INPUT_BIT , PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT , PIPELINE_STAGE_2_PRE_RASTERIZATION_SHADERS_BIT+ , PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR , PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI , PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI- , PIPELINE_STAGE_2_MESH_SHADER_BIT_NV- , PIPELINE_STAGE_2_TASK_SHADER_BIT_NV+ , PIPELINE_STAGE_2_MESH_SHADER_BIT_EXT+ , PIPELINE_STAGE_2_TASK_SHADER_BIT_EXT , PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT , PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR , PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR@@ -140,7 +141,7 @@ -- No documentation found for TopLevel "VK_PIPELINE_STAGE_2_TRANSFER_BIT_KHR"-pattern PIPELINE_STAGE_2_TRANSFER_BIT_KHR = PIPELINE_STAGE_2_TRANSFER_BIT+pattern PIPELINE_STAGE_2_TRANSFER_BIT_KHR = PIPELINE_STAGE_2_ALL_TRANSFER_BIT -- No documentation found for TopLevel "VK_PIPELINE_STAGE_2_BOTTOM_OF_PIPE_BIT_KHR"@@ -251,21 +252,22 @@ -- | 'PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT' specifies the stage of the -- pipeline where early fragment tests (depth and stencil tests before -- fragment shading) are performed. This stage also includes--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-load-store-ops subpass load operations>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-load-store-ops subpass load operations> -- for framebuffer attachments with a depth\/stencil format. pattern PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT = PipelineStageFlagBits2 0x0000000000000100 -- | 'PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT' specifies the stage of the -- pipeline where late fragment tests (depth and stencil tests after -- fragment shading) are performed. This stage also includes--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-load-store-ops subpass store operations>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-load-store-ops subpass store operations> -- for framebuffer attachments with a depth\/stencil format. pattern PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT = PipelineStageFlagBits2 0x0000000000000200 -- | 'PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT' specifies the stage of -- the pipeline after blending where the final color values are output from -- the pipeline. This stage also includes--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-load-store-ops subpass load and store operations>--- and multisample resolve operations for framebuffer attachments with a--- color or depth\/stencil format.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-load-store-ops subpass load and store operations>,+-- multisample resolve operations for framebuffer attachments with a color+-- or depth\/stencil format, and+-- 'Vulkan.Core10.CommandBufferBuilding.cmdClearAttachments'. pattern PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT = PipelineStageFlagBits2 0x0000000000000400 -- | 'PIPELINE_STAGE_2_COMPUTE_SHADER_BIT' specifies the compute shader -- stage.@@ -279,6 +281,8 @@ -- - 'PIPELINE_STAGE_2_RESOLVE_BIT' -- -- - 'PIPELINE_STAGE_2_CLEAR_BIT'+--+-- - 'PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR' pattern PIPELINE_STAGE_2_ALL_TRANSFER_BIT = PipelineStageFlagBits2 0x0000000000001000 -- | 'PIPELINE_STAGE_2_BOTTOM_OF_PIPE_BIT' is equivalent to -- 'PIPELINE_STAGE_2_ALL_COMMANDS_BIT' with@@ -295,9 +299,9 @@ -- -- - 'PIPELINE_STAGE_2_DRAW_INDIRECT_BIT' ----- - 'PIPELINE_STAGE_2_TASK_SHADER_BIT_NV'+-- - 'PIPELINE_STAGE_2_TASK_SHADER_BIT_EXT' ----- - 'PIPELINE_STAGE_2_MESH_SHADER_BIT_NV'+-- - 'PIPELINE_STAGE_2_MESH_SHADER_BIT_EXT' -- -- - 'PIPELINE_STAGE_2_VERTEX_INPUT_BIT' --@@ -331,7 +335,7 @@ -- by all commands supported on the queue it is used with. pattern PIPELINE_STAGE_2_ALL_COMMANDS_BIT = PipelineStageFlagBits2 0x0000000000010000 -- | 'PIPELINE_STAGE_2_COPY_BIT' specifies the execution of all--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#copies copy commands>,+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#copies copy commands>, -- including 'Vulkan.Core10.CommandBufferBuilding.cmdCopyQueryPoolResults'. pattern PIPELINE_STAGE_2_COPY_BIT = PipelineStageFlagBits2 0x0000000100000000 -- | 'PIPELINE_STAGE_2_RESOLVE_BIT' specifies the execution of@@ -341,7 +345,7 @@ -- 'Vulkan.Core10.CommandBufferBuilding.cmdBlitImage'. pattern PIPELINE_STAGE_2_BLIT_BIT = PipelineStageFlagBits2 0x0000000400000000 -- | 'PIPELINE_STAGE_2_CLEAR_BIT' specifies the execution of--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#clears clear commands>,+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#clears clear commands>, -- with the exception of -- 'Vulkan.Core10.CommandBufferBuilding.cmdClearAttachments'. pattern PIPELINE_STAGE_2_CLEAR_BIT = PipelineStageFlagBits2 0x0000000800000000@@ -353,7 +357,7 @@ pattern PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT = PipelineStageFlagBits2 0x0000002000000000 -- | 'PIPELINE_STAGE_2_PRE_RASTERIZATION_SHADERS_BIT' is equivalent to -- specifying all supported--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader stages>:+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader stages>: -- -- - 'PIPELINE_STAGE_2_VERTEX_SHADER_BIT' --@@ -363,10 +367,14 @@ -- -- - 'PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT' ----- - 'PIPELINE_STAGE_2_TASK_SHADER_BIT_NV'+-- - 'PIPELINE_STAGE_2_TASK_SHADER_BIT_EXT' ----- - 'PIPELINE_STAGE_2_MESH_SHADER_BIT_NV'+-- - 'PIPELINE_STAGE_2_MESH_SHADER_BIT_EXT' pattern PIPELINE_STAGE_2_PRE_RASTERIZATION_SHADERS_BIT = PipelineStageFlagBits2 0x0000004000000000+-- | 'PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR' specifies the+-- execution of+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#acceleration-structure-copying acceleration structure copy commands>.+pattern PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR = PipelineStageFlagBits2 0x0000000010000000 -- | 'PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI' specifies the stage of the -- pipeline where the invocation mask image is read by the implementation -- to optimize the ray dispatch.@@ -374,26 +382,26 @@ -- | 'PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI' specifies the subpass -- shading shader stage. pattern PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI = PipelineStageFlagBits2 0x0000008000000000--- | 'PIPELINE_STAGE_2_MESH_SHADER_BIT_NV' specifies the mesh shader stage.-pattern PIPELINE_STAGE_2_MESH_SHADER_BIT_NV = PipelineStageFlagBits2 0x0000000000100000--- | 'PIPELINE_STAGE_2_TASK_SHADER_BIT_NV' specifies the task shader stage.-pattern PIPELINE_STAGE_2_TASK_SHADER_BIT_NV = PipelineStageFlagBits2 0x0000000000080000+-- | 'PIPELINE_STAGE_2_MESH_SHADER_BIT_EXT' specifies the mesh shader stage.+pattern PIPELINE_STAGE_2_MESH_SHADER_BIT_EXT = PipelineStageFlagBits2 0x0000000000100000+-- | 'PIPELINE_STAGE_2_TASK_SHADER_BIT_EXT' specifies the task shader stage.+pattern PIPELINE_STAGE_2_TASK_SHADER_BIT_EXT = PipelineStageFlagBits2 0x0000000000080000 -- | 'PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT' specifies the stage -- of the pipeline where the fragment density map is read to--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#fragmentdensitymapops generate the fragment areas>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fragmentdensitymapops generate the fragment areas>. pattern PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT = PipelineStageFlagBits2 0x0000000000800000 -- | 'PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR' specifies the execution of -- the ray tracing shader stages. pattern PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR = PipelineStageFlagBits2 0x0000000000200000 -- | 'PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR' specifies the -- execution of--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#acceleration-structure acceleration structure commands>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#acceleration-structure acceleration structure commands>. pattern PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR = PipelineStageFlagBits2 0x0000000002000000 -- | 'PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR' specifies -- the stage of the pipeline where the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-fragment-shading-rate-attachment fragment shading rate attachment>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-fragment-shading-rate-attachment fragment shading rate attachment> -- or--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-shading-rate-image shading rate image>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-shading-rate-image shading rate image> -- is read to determine the fragment shading rate for portions of a -- rasterized primitive. pattern PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = PipelineStageFlagBits2 0x0000000000400000@@ -443,10 +451,11 @@ , (PIPELINE_STAGE_2_INDEX_INPUT_BIT , "INDEX_INPUT_BIT") , (PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT , "VERTEX_ATTRIBUTE_INPUT_BIT") , (PIPELINE_STAGE_2_PRE_RASTERIZATION_SHADERS_BIT , "PRE_RASTERIZATION_SHADERS_BIT")+ , (PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR, "ACCELERATION_STRUCTURE_COPY_BIT_KHR") , (PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI , "INVOCATION_MASK_BIT_HUAWEI") , (PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI , "SUBPASS_SHADING_BIT_HUAWEI")- , (PIPELINE_STAGE_2_MESH_SHADER_BIT_NV , "MESH_SHADER_BIT_NV")- , (PIPELINE_STAGE_2_TASK_SHADER_BIT_NV , "TASK_SHADER_BIT_NV")+ , (PIPELINE_STAGE_2_MESH_SHADER_BIT_EXT , "MESH_SHADER_BIT_EXT")+ , (PIPELINE_STAGE_2_TASK_SHADER_BIT_EXT , "TASK_SHADER_BIT_EXT") , (PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT , "FRAGMENT_DENSITY_PROCESS_BIT_EXT") , (PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR , "RAY_TRACING_SHADER_BIT_KHR") , (PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, "ACCELERATION_STRUCTURE_BUILD_BIT_KHR")
src/Vulkan/Core13/Enums/ToolPurposeFlagBits.hs view
@@ -79,12 +79,12 @@ -- the API features\/limits\/extensions presented to the application. pattern TOOL_PURPOSE_MODIFYING_FEATURES_BIT = ToolPurposeFlagBits 0x00000010 -- | 'TOOL_PURPOSE_DEBUG_MARKERS_BIT_EXT' specifies that the tool consumes--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#debugging-debug-markers debug markers>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#debugging-debug-markers debug markers> -- or--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#debugging-object-debug-annotation object debug annotation>,--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#debugging-queue-labels queue labels>,+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#debugging-object-debug-annotation object debug annotation>,+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#debugging-queue-labels queue labels>, -- or--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#debugging-command-buffer-labels command buffer labels>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#debugging-command-buffer-labels command buffer labels> pattern TOOL_PURPOSE_DEBUG_MARKERS_BIT_EXT = ToolPurposeFlagBits 0x00000040 -- | 'TOOL_PURPOSE_DEBUG_REPORTING_BIT_EXT' specifies that the tool reports -- additional information to the application via callbacks specified by
src/Vulkan/Core13/Promoted_From_VK_EXT_extended_dynamic_state.hs view
@@ -111,6 +111,9 @@ -- 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was -- allocated from /must/ support graphics operations --+-- - #VUID-vkCmdSetCullMode-videocoding# This command /must/ only be+-- called outside of a video coding scope+-- -- == Host Synchronization -- -- - Host access to @commandBuffer@ /must/ be externally synchronized@@ -122,12 +125,12 @@ -- -- \' ----- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | Primary | Both | Graphics |--- | Secondary | | |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================++-- | Primary | Both | Outside | Graphics |+-- | Secondary | | | |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+ -- -- = See Also --@@ -188,6 +191,9 @@ -- 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was -- allocated from /must/ support graphics operations --+-- - #VUID-vkCmdSetFrontFace-videocoding# This command /must/ only be+-- called outside of a video coding scope+-- -- == Host Synchronization -- -- - Host access to @commandBuffer@ /must/ be externally synchronized@@ -199,12 +205,12 @@ -- -- \' ----- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | Primary | Both | Graphics |--- | Secondary | | |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================++-- | Primary | Both | Outside | Graphics |+-- | Secondary | | | |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+ -- -- = See Also --@@ -269,6 +275,9 @@ -- 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was -- allocated from /must/ support graphics operations --+-- - #VUID-vkCmdSetPrimitiveTopology-videocoding# This command /must/+-- only be called outside of a video coding scope+-- -- == Host Synchronization -- -- - Host access to @commandBuffer@ /must/ be externally synchronized@@ -280,12 +289,12 @@ -- -- \' ----- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | Primary | Both | Graphics |--- | Secondary | | |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================++-- | Primary | Both | Outside | Graphics |+-- | Secondary | | | |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+ -- -- = See Also --@@ -339,7 +348,7 @@ -- inclusive -- -- - #VUID-vkCmdSetViewportWithCount-viewportCount-03395# If the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-multiViewport multiple viewports>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-multiViewport multiViewport> -- feature is not enabled, @viewportCount@ /must/ be @1@ -- -- - #VUID-vkCmdSetViewportWithCount-commandBuffer-04819# @commandBuffer@@@ -365,6 +374,9 @@ -- 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was -- allocated from /must/ support graphics operations --+-- - #VUID-vkCmdSetViewportWithCount-videocoding# This command /must/+-- only be called outside of a video coding scope+-- -- - #VUID-vkCmdSetViewportWithCount-viewportCount-arraylength# -- @viewportCount@ /must/ be greater than @0@ --@@ -379,12 +391,12 @@ -- -- \' ----- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | Primary | Both | Graphics |--- | Secondary | | |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================++-- | Primary | Both | Outside | Graphics |+-- | Secondary | | | |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+ -- -- = See Also --@@ -439,7 +451,7 @@ -- inclusive -- -- - #VUID-vkCmdSetScissorWithCount-scissorCount-03398# If the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-multiViewport multiple viewports>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-multiViewport multiViewport> -- feature is not enabled, @scissorCount@ /must/ be @1@ -- -- - #VUID-vkCmdSetScissorWithCount-x-03399# The @x@ and @y@ members of@@ -477,6 +489,9 @@ -- 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was -- allocated from /must/ support graphics operations --+-- - #VUID-vkCmdSetScissorWithCount-videocoding# This command /must/ only+-- be called outside of a video coding scope+-- -- - #VUID-vkCmdSetScissorWithCount-scissorCount-arraylength# -- @scissorCount@ /must/ be greater than @0@ --@@ -491,12 +506,12 @@ -- -- \' ----- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | Primary | Both | Graphics |--- | Secondary | | |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================++-- | Primary | Both | Outside | Graphics |+-- | Secondary | | | |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+ -- -- = See Also --@@ -544,7 +559,7 @@ -- of @pBuffers@[i] plus @pOffsets@[i]. All vertex input attributes that -- use each of these bindings will use these updated addresses in their -- address calculations for subsequent drawing commands. If the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-nullDescriptor nullDescriptor>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-nullDescriptor nullDescriptor> -- feature is enabled, elements of @pBuffers@ /can/ be -- 'Vulkan.Core10.APIConstants.NULL_HANDLE', and /can/ be used by the -- vertex shader. If a vertex input attribute is bound to a vertex input@@ -554,7 +569,7 @@ -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fxvertex-input-extraction filled with (0,0,1)>. -- -- This command also--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-dynamic-state dynamically sets>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-dynamic-state dynamically sets> -- the byte strides between consecutive elements within buffer -- @pBuffers@[i] to the corresponding @pStrides@[i] value when the graphics -- pipeline is created with@@ -599,7 +614,7 @@ -- contiguously to a single 'Vulkan.Core10.Handles.DeviceMemory' object -- -- - #VUID-vkCmdBindVertexBuffers2-pBuffers-04111# If the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-nullDescriptor nullDescriptor>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-nullDescriptor nullDescriptor> -- feature is not enabled, all elements of @pBuffers@ /must/ not be -- 'Vulkan.Core10.APIConstants.NULL_HANDLE' --@@ -652,6 +667,9 @@ -- 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was -- allocated from /must/ support graphics operations --+-- - #VUID-vkCmdBindVertexBuffers2-videocoding# This command /must/ only+-- be called outside of a video coding scope+-- -- - #VUID-vkCmdBindVertexBuffers2-bindingCount-arraylength# If any of -- @pSizes@, or @pStrides@ are not @NULL@, @bindingCount@ /must/ be -- greater than @0@@@ -672,12 +690,12 @@ -- -- \' ----- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | Primary | Both | Graphics |--- | Secondary | | |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================++-- | Primary | Both | Outside | Graphics |+-- | Secondary | | | |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+ -- -- = See Also --@@ -772,6 +790,9 @@ -- 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was -- allocated from /must/ support graphics operations --+-- - #VUID-vkCmdSetDepthTestEnable-videocoding# This command /must/ only+-- be called outside of a video coding scope+-- -- == Host Synchronization -- -- - Host access to @commandBuffer@ /must/ be externally synchronized@@ -783,12 +804,12 @@ -- -- \' ----- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | Primary | Both | Graphics |--- | Secondary | | |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================++-- | Primary | Both | Outside | Graphics |+-- | Secondary | | | |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+ -- -- = See Also --@@ -848,6 +869,9 @@ -- 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was -- allocated from /must/ support graphics operations --+-- - #VUID-vkCmdSetDepthWriteEnable-videocoding# This command /must/ only+-- be called outside of a video coding scope+-- -- == Host Synchronization -- -- - Host access to @commandBuffer@ /must/ be externally synchronized@@ -859,12 +883,12 @@ -- -- \' ----- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | Primary | Both | Graphics |--- | Secondary | | |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================++-- | Primary | Both | Outside | Graphics |+-- | Secondary | | | |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+ -- -- = See Also --@@ -927,6 +951,9 @@ -- 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was -- allocated from /must/ support graphics operations --+-- - #VUID-vkCmdSetDepthCompareOp-videocoding# This command /must/ only+-- be called outside of a video coding scope+-- -- == Host Synchronization -- -- - Host access to @commandBuffer@ /must/ be externally synchronized@@ -938,12 +965,12 @@ -- -- \' ----- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | Primary | Both | Graphics |--- | Secondary | | |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================++-- | Primary | Both | Outside | Graphics |+-- | Secondary | | | |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+ -- -- = See Also --@@ -956,7 +983,11 @@ => -- | @commandBuffer@ is the command buffer into which the command will be -- recorded. CommandBuffer- -> -- | @depthCompareOp@ specifies the depth comparison operator.+ -> -- | @depthCompareOp@ is a 'Vulkan.Core10.Enums.CompareOp.CompareOp' value+ -- specifying the comparison operator used for the+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fragops-depth-comparison Depth Comparison>+ -- step of the+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fragops-depth depth test>. ("depthCompareOp" ::: CompareOp) -> io () cmdSetDepthCompareOp commandBuffer depthCompareOp = liftIO $ do@@ -1003,6 +1034,9 @@ -- 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was -- allocated from /must/ support graphics operations --+-- - #VUID-vkCmdSetDepthBoundsTestEnable-videocoding# This command /must/+-- only be called outside of a video coding scope+-- -- == Host Synchronization -- -- - Host access to @commandBuffer@ /must/ be externally synchronized@@ -1014,12 +1048,12 @@ -- -- \' ----- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | Primary | Both | Graphics |--- | Secondary | | |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================++-- | Primary | Both | Outside | Graphics |+-- | Secondary | | | |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+ -- -- = See Also --@@ -1079,6 +1113,9 @@ -- 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was -- allocated from /must/ support graphics operations --+-- - #VUID-vkCmdSetStencilTestEnable-videocoding# This command /must/+-- only be called outside of a video coding scope+-- -- == Host Synchronization -- -- - Host access to @commandBuffer@ /must/ be externally synchronized@@ -1090,12 +1127,12 @@ -- -- \' ----- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | Primary | Both | Graphics |--- | Secondary | | |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================++-- | Primary | Both | Outside | Graphics |+-- | Secondary | | | |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+ -- -- = See Also --@@ -1173,6 +1210,9 @@ -- 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was -- allocated from /must/ support graphics operations --+-- - #VUID-vkCmdSetStencilOp-videocoding# This command /must/ only be+-- called outside of a video coding scope+-- -- == Host Synchronization -- -- - Host access to @commandBuffer@ /must/ be externally synchronized@@ -1184,12 +1224,12 @@ -- -- \' ----- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | Primary | Both | Graphics |--- | Secondary | | |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================++-- | Primary | Both | Outside | Graphics |+-- | Secondary | | | |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+ -- -- = See Also --
src/Vulkan/Core13/Promoted_From_VK_EXT_extended_dynamic_state2.hs view
@@ -64,6 +64,9 @@ -- 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was -- allocated from /must/ support graphics operations --+-- - #VUID-vkCmdSetRasterizerDiscardEnable-videocoding# This command+-- /must/ only be called outside of a video coding scope+-- -- == Host Synchronization -- -- - Host access to @commandBuffer@ /must/ be externally synchronized@@ -75,12 +78,12 @@ -- -- \' ----- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | Primary | Both | Graphics |--- | Secondary | | |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================++-- | Primary | Both | Outside | Graphics |+-- | Secondary | | | |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+ -- -- = See Also --@@ -141,6 +144,9 @@ -- 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was -- allocated from /must/ support graphics operations --+-- - #VUID-vkCmdSetDepthBiasEnable-videocoding# This command /must/ only+-- be called outside of a video coding scope+-- -- == Host Synchronization -- -- - Host access to @commandBuffer@ /must/ be externally synchronized@@ -152,12 +158,12 @@ -- -- \' ----- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | Primary | Both | Graphics |--- | Secondary | | |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================++-- | Primary | Both | Outside | Graphics |+-- | Secondary | | | |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+ -- -- = See Also --@@ -217,6 +223,9 @@ -- 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was -- allocated from /must/ support graphics operations --+-- - #VUID-vkCmdSetPrimitiveRestartEnable-videocoding# This command+-- /must/ only be called outside of a video coding scope+-- -- == Host Synchronization -- -- - Host access to @commandBuffer@ /must/ be externally synchronized@@ -228,12 +237,12 @@ -- -- \' ----- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | Primary | Both | Graphics |--- | Secondary | | |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================++-- | Primary | Both | Outside | Graphics |+-- | Secondary | | | |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+ -- -- = See Also --
src/Vulkan/Core13/Promoted_From_VK_EXT_image_robustness.hs view
@@ -57,10 +57,10 @@ { -- | #extension-features-robustImageAccess# @robustImageAccess@ indicates -- whether image accesses are tightly bounds-checked against the dimensions -- of the image view.- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#textures-input-validation Invalid texels>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#textures-input-validation Invalid texels> -- resulting from out of bounds image loads will be replaced as described -- in- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#textures-texel-replacement Texel Replacement>,+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#textures-texel-replacement Texel Replacement>, -- with either (0,0,1) or (0,0,0) values inserted for missing G, B, or A -- components based on the format. robustImageAccess :: Bool }
src/Vulkan/Core13/Promoted_From_VK_EXT_inline_uniform_block.hs view
@@ -144,7 +144,7 @@ data PhysicalDeviceInlineUniformBlockProperties = PhysicalDeviceInlineUniformBlockProperties { -- | #extension-limits-maxInlineUniformBlockSize# @maxInlineUniformBlockSize@ -- is the maximum size in bytes of an- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-inlineuniformblock inline uniform block>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-inlineuniformblock inline uniform block> -- binding. maxInlineUniformBlockSize :: Word32 , -- No documentation found for Nested "VkPhysicalDeviceInlineUniformBlockProperties" "maxPerStageDescriptorInlineUniformBlocks"
src/Vulkan/Core13/Promoted_From_VK_EXT_private_data.hs view
@@ -90,7 +90,7 @@ -- == Valid Usage -- -- - #VUID-vkCreatePrivateDataSlot-privateData-04564# The--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-privateData privateData>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-privateData privateData> -- feature /must/ be enabled -- -- == Valid Usage (Implicit)@@ -135,7 +135,7 @@ -> -- | @pCreateInfo@ is a pointer to a 'PrivateDataSlotCreateInfo' PrivateDataSlotCreateInfo -> -- | @pAllocator@ controls host memory allocation as described in the- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation> -- chapter. ("allocator" ::: Maybe AllocationCallbacks) -> io (PrivateDataSlot)@@ -225,7 +225,7 @@ -> -- | @privateDataSlot@ is the private data slot to destroy. PrivateDataSlot -> -- | @pAllocator@ controls host memory allocation as described in the- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation> -- chapter. ("allocator" ::: Maybe AllocationCallbacks) -> io ()@@ -518,7 +518,7 @@ data PhysicalDevicePrivateDataFeatures = PhysicalDevicePrivateDataFeatures { -- | #extension-features-privateData# @privateData@ indicates whether the -- implementation supports private data. See- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#private-data Private Data>.+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#private-data Private Data>. privateData :: Bool } deriving (Typeable, Eq) #if defined(GENERIC_INSTANCES)
src/Vulkan/Core13/Promoted_From_VK_EXT_subgroup_size_control.hs view
@@ -65,7 +65,7 @@ -- the features structure but applications may assume that both -- @subgroupSizeControl@ and @computeFullSubgroups@ are supported if the -- extension is supported. (See also the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-requirements Feature Requirements>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-requirements Feature Requirements> -- section.) Applications are advised to add a -- 'Vulkan.Extensions.VK_EXT_subgroup_size_control.PhysicalDeviceSubgroupSizeControlFeaturesEXT' -- structure to the @pNext@ chain of@@ -96,7 +96,7 @@ subgroupSizeControl :: Bool , -- | #extension-features-computeFullSubgroups# @computeFullSubgroups@ -- indicates whether the implementation supports requiring full subgroups- -- in compute shaders via the+ -- in compute , mesh, or task shaders via the -- 'Vulkan.Core10.Enums.PipelineShaderStageCreateFlagBits.PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT' -- flag. computeFullSubgroups :: Bool@@ -159,7 +159,7 @@ -- If -- 'Vulkan.Core11.Originally_Based_On_VK_KHR_subgroup.PhysicalDeviceSubgroupProperties'::@supportedOperations@ -- includes--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-subgroup-quad >,+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-subgroup-quad >, -- @minSubgroupSize@ /must/ be greater than or equal to 4. -- -- == Valid Usage (Implicit)@@ -178,7 +178,7 @@ -- 'Vulkan.Core10.Enums.QueueFlagBits.QUEUE_COMPUTE_BIT'. @minSubgroupSize@ -- is a power-of-two. @minSubgroupSize@ is less than or equal to -- @maxSubgroupSize@. @minSubgroupSize@ is less than or equal to- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-subgroup-size subgroupSize>.+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-subgroup-size subgroupSize>. minSubgroupSize :: Word32 , -- | #extension-limits-maxSubgroupSize# @maxSubgroupSize@ is the maximum -- subgroup size supported by this device. @maxSubgroupSize@ is at least@@ -187,7 +187,7 @@ -- 'Vulkan.Core10.Enums.QueueFlagBits.QUEUE_COMPUTE_BIT'. @maxSubgroupSize@ -- is a power-of-two. @maxSubgroupSize@ is greater than or equal to -- @minSubgroupSize@. @maxSubgroupSize@ is greater than or equal to- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-subgroup-size subgroupSize>.+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-subgroup-size subgroupSize>. maxSubgroupSize :: Word32 , -- | #extension-limits-maxComputeWorkgroupSubgroups# -- @maxComputeWorkgroupSubgroups@ is the maximum number of subgroups@@ -277,11 +277,11 @@ -- -- #VUID-VkPipelineShaderStageRequiredSubgroupSizeCreateInfo-requiredSubgroupSize-02761# -- @requiredSubgroupSize@ /must/ be greater or equal to- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-minSubgroupSize minSubgroupSize>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-minSubgroupSize minSubgroupSize> -- -- #VUID-VkPipelineShaderStageRequiredSubgroupSizeCreateInfo-requiredSubgroupSize-02762# -- @requiredSubgroupSize@ /must/ be less than or equal to- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxSubgroupSize maxSubgroupSize>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxSubgroupSize maxSubgroupSize> requiredSubgroupSize :: Word32 } deriving (Typeable, Eq) #if defined(GENERIC_INSTANCES)
src/Vulkan/Core13/Promoted_From_VK_EXT_texel_buffer_alignment.hs view
@@ -52,7 +52,7 @@ -- single component of the format is used instead. -- -- These limits /must/ not advertise a larger alignment than the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-required required>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-required required> -- maximum minimum value of -- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@minTexelBufferOffsetAlignment@, -- for any format that supports use as a texel buffer.@@ -75,7 +75,6 @@ , -- | #extension-limits-storageTexelBufferOffsetSingleTexelAlignment# -- @storageTexelBufferOffsetSingleTexelAlignment@ indicates whether single -- texel alignment is sufficient for a storage texel buffer of any format.- -- The value /must/ be a power of two. storageTexelBufferOffsetSingleTexelAlignment :: Bool , -- | #extension-limits-uniformTexelBufferOffsetAlignmentBytes# -- @uniformTexelBufferOffsetAlignmentBytes@ is a byte alignment that is@@ -85,7 +84,6 @@ , -- | #extension-limits-uniformTexelBufferOffsetSingleTexelAlignment# -- @uniformTexelBufferOffsetSingleTexelAlignment@ indicates whether single -- texel alignment is sufficient for a uniform texel buffer of any format.- -- The value /must/ be a power of two. uniformTexelBufferOffsetSingleTexelAlignment :: Bool } deriving (Typeable, Eq)
src/Vulkan/Core13/Promoted_From_VK_KHR_copy_commands2.hs view
@@ -156,6 +156,9 @@ -- - #VUID-vkCmdCopyBuffer2-renderpass# This command /must/ only be -- called outside of a render pass instance --+-- - #VUID-vkCmdCopyBuffer2-videocoding# This command /must/ only be+-- called outside of a video coding scope+-- -- == Host Synchronization -- -- - Host access to @commandBuffer@ /must/ be externally synchronized@@ -167,13 +170,13 @@ -- -- \' ----- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | Primary | Outside | Transfer |--- | Secondary | | Graphics |--- | | | Compute |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================++-- | Primary | Outside | Outside | Transfer |+-- | Secondary | | | Graphics |+-- | | | | Compute |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+ -- -- = See Also --@@ -252,6 +255,9 @@ -- - #VUID-vkCmdCopyImage2-renderpass# This command /must/ only be called -- outside of a render pass instance --+-- - #VUID-vkCmdCopyImage2-videocoding# This command /must/ only be+-- called outside of a video coding scope+-- -- == Host Synchronization -- -- - Host access to @commandBuffer@ /must/ be externally synchronized@@ -263,13 +269,13 @@ -- -- \' ----- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | Primary | Outside | Transfer |--- | Secondary | | Graphics |--- | | | Compute |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================++-- | Primary | Outside | Outside | Transfer |+-- | Secondary | | | Graphics |+-- | | | | Compute |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+ -- -- = See Also --@@ -348,6 +354,9 @@ -- - #VUID-vkCmdBlitImage2-renderpass# This command /must/ only be called -- outside of a render pass instance --+-- - #VUID-vkCmdBlitImage2-videocoding# This command /must/ only be+-- called outside of a video coding scope+-- -- == Host Synchronization -- -- - Host access to @commandBuffer@ /must/ be externally synchronized@@ -359,12 +368,12 @@ -- -- \' ----- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | Primary | Outside | Graphics |--- | Secondary | | |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================++-- | Primary | Outside | Outside | Graphics |+-- | Secondary | | | |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+ -- -- = See Also --@@ -445,6 +454,9 @@ -- - #VUID-vkCmdCopyBufferToImage2-renderpass# This command /must/ only -- be called outside of a render pass instance --+-- - #VUID-vkCmdCopyBufferToImage2-videocoding# This command /must/ only+-- be called outside of a video coding scope+-- -- == Host Synchronization -- -- - Host access to @commandBuffer@ /must/ be externally synchronized@@ -456,13 +468,13 @@ -- -- \' ----- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | Primary | Outside | Transfer |--- | Secondary | | Graphics |--- | | | Compute |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================++-- | Primary | Outside | Outside | Transfer |+-- | Secondary | | | Graphics |+-- | | | | Compute |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+ -- -- = See Also --@@ -543,6 +555,9 @@ -- - #VUID-vkCmdCopyImageToBuffer2-renderpass# This command /must/ only -- be called outside of a render pass instance --+-- - #VUID-vkCmdCopyImageToBuffer2-videocoding# This command /must/ only+-- be called outside of a video coding scope+-- -- == Host Synchronization -- -- - Host access to @commandBuffer@ /must/ be externally synchronized@@ -554,13 +569,13 @@ -- -- \' ----- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | Primary | Outside | Transfer |--- | Secondary | | Graphics |--- | | | Compute |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================++-- | Primary | Outside | Outside | Transfer |+-- | Secondary | | | Graphics |+-- | | | | Compute |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+ -- -- = See Also --@@ -639,6 +654,9 @@ -- - #VUID-vkCmdResolveImage2-renderpass# This command /must/ only be -- called outside of a render pass instance --+-- - #VUID-vkCmdResolveImage2-videocoding# This command /must/ only be+-- called outside of a video coding scope+-- -- == Host Synchronization -- -- - Host access to @commandBuffer@ /must/ be externally synchronized@@ -650,12 +668,12 @@ -- -- \' ----- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | Primary | Outside | Graphics |--- | Secondary | | |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================++-- | Primary | Outside | Outside | Graphics |+-- | Secondary | | | |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+ -- -- = See Also --@@ -1595,8 +1613,9 @@ -- of @pRegions@, @srcOffset.y@ /must/ be @0@ and @extent.height@ -- /must/ be @1@ ----- - #VUID-VkCopyImageInfo2-srcOffset-00147# For each element of--- @pRegions@, @srcOffset.z@ and (@extent.depth@ + @srcOffset.z@)+-- - #VUID-VkCopyImageInfo2-srcOffset-00147# If @srcImage@ is of type+-- 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_3D', then for each element+-- of @pRegions@, @srcOffset.z@ and (@extent.depth@ + @srcOffset.z@) -- /must/ both be greater than or equal to @0@ and less than or equal -- to the depth of the specified @srcSubresource@ of @srcImage@ --@@ -1649,8 +1668,9 @@ -- of @pRegions@, @dstOffset.y@ /must/ be @0@ and @extent.height@ -- /must/ be @1@ ----- - #VUID-VkCopyImageInfo2-dstOffset-00153# For each element of--- @pRegions@, @dstOffset.z@ and (@extent.depth@ + @dstOffset.z@)+-- - #VUID-VkCopyImageInfo2-dstOffset-00153# If @dstImage@ is of type+-- 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_3D', then for each element+-- of @pRegions@, @dstOffset.z@ and (@extent.depth@ + @dstOffset.z@) -- /must/ both be greater than or equal to @0@ and less than or equal -- to the depth of the specified @dstSubresource@ of @dstImage@ --@@ -1960,14 +1980,14 @@ -- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT' -- -- - #VUID-VkBlitImageInfo2-filter-02002# If @filter@ is--- 'Vulkan.Extensions.VK_EXT_filter_cubic.FILTER_CUBIC_EXT', then the+-- 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT', then the -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-format-features format features> -- of @srcImage@ /must/ contain--- 'Vulkan.Extensions.VK_EXT_filter_cubic.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT'+-- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT' -- -- - #VUID-VkBlitImageInfo2-filter-00237# If @filter@ is--- 'Vulkan.Extensions.VK_EXT_filter_cubic.FILTER_CUBIC_EXT', @srcImage@--- /must/ be of type 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D'+-- 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT', @srcImage@ /must/ be+-- of type 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D' -- -- - #VUID-VkBlitImageInfo2-srcSubresource-01705# The -- @srcSubresource.mipLevel@ member of each element of @pRegions@@@ -2078,7 +2098,7 @@ -- @pRegions@ contains -- 'Vulkan.Extensions.VK_QCOM_rotated_copy_commands.CopyCommandTransformInfoQCOM' -- in its @pNext@ chain, then @srcImage@ /must/ not have a--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar format>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar format> -- -- == Valid Usage (Implicit) --@@ -2212,14 +2232,14 @@ -- region specified by each element of @pRegions@ contains -- 'Vulkan.Extensions.VK_QCOM_rotated_copy_commands.CopyCommandTransformInfoQCOM' -- in its @pNext@ chain, the rotated destination region as described in--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#copies-buffers-images-rotation-addressing>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#copies-buffers-images-rotation-addressing> -- /must/ be contained within @dstImage@ -- -- - #VUID-VkCopyBufferToImageInfo2KHR-pRegions-04555# If any element of -- @pRegions@ contains -- 'Vulkan.Extensions.VK_QCOM_rotated_copy_commands.CopyCommandTransformInfoQCOM' -- in its @pNext@ chain, then @dstImage@ /must/ not be a--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#blocked-image blocked image>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#blocked-image blocked image> -- -- - #VUID-VkCopyBufferToImageInfo2KHR-pRegions-06203# If any element of -- @pRegions@ contains@@ -2231,7 +2251,7 @@ -- @pRegions@ contains -- 'Vulkan.Extensions.VK_QCOM_rotated_copy_commands.CopyCommandTransformInfoQCOM' -- in its @pNext@ chain, then @dstImage@ /must/ not have a--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar format>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar format> -- -- - #VUID-VkCopyBufferToImageInfo2-pRegions-00171# @srcBuffer@ /must/ be -- large enough to contain all buffer locations that are accessed@@ -2561,14 +2581,14 @@ -- region specified by each element of @pRegions@ contains -- 'Vulkan.Extensions.VK_QCOM_rotated_copy_commands.CopyCommandTransformInfoQCOM' -- in its @pNext@ chain, the rotated source region as described in--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#copies-buffers-images-rotation-addressing>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#copies-buffers-images-rotation-addressing> -- /must/ be contained within @srcImage@ -- -- - #VUID-VkCopyImageToBufferInfo2KHR-pRegions-04558# If any element of -- @pRegions@ contains -- 'Vulkan.Extensions.VK_QCOM_rotated_copy_commands.CopyCommandTransformInfoQCOM' -- in its @pNext@ chain, then @srcImage@ /must/ not be a--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#blocked-image blocked image>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#blocked-image blocked image> -- -- - #VUID-VkCopyImageToBufferInfo2KHR-pRegions-06205# If any element of -- @pRegions@ contains@@ -2580,7 +2600,7 @@ -- @pRegions@ contains -- 'Vulkan.Extensions.VK_QCOM_rotated_copy_commands.CopyCommandTransformInfoQCOM' -- in its @pNext@ chain, then @srcImage@ /must/ not have a--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar format>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar format> -- -- - #VUID-VkCopyImageToBufferInfo2-pRegions-00183# @dstBuffer@ /must/ be -- large enough to contain all buffer locations that are accessed@@ -2667,21 +2687,21 @@ -- less than or equal to the height of the specified @imageSubresource@ -- of @srcImage@ ----- - #VUID-VkCopyImageToBufferInfo2-bufferOffset-01558# If {imageparam}+-- - #VUID-VkCopyImageToBufferInfo2-bufferOffset-01558# If @srcImage@ -- does not have either a depth\/stencil or a -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar format>, -- then for each element of @pRegions@, @bufferOffset@ /must/ be a -- multiple of the format’s texel block size ----- - #VUID-VkCopyImageToBufferInfo2-bufferOffset-01559# If {imageparam}--- has a+-- - #VUID-VkCopyImageToBufferInfo2-bufferOffset-01559# If @srcImage@ has+-- a -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar format>, -- then for each element of @pRegions@, @bufferOffset@ /must/ be a -- multiple of the element size of the compatible format for the format -- and the @aspectMask@ of the @imageSubresource@ as defined in -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatible-planes ???> ----- - #VUID-VkCopyImageToBufferInfo2-srcImage-00199# If {imageparam} is of+-- - #VUID-VkCopyImageToBufferInfo2-srcImage-00199# If @srcImage@ is of -- type 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_1D', then for each -- element of @pRegions@, @imageOffset.y@ /must/ be @0@ and -- @imageExtent.height@ /must/ be @1@@@ -2690,69 +2710,64 @@ -- of @pRegions@, @imageOffset.z@ and (@imageExtent.depth@ + -- @imageOffset.z@) /must/ both be greater than or equal to @0@ and -- less than or equal to the depth of the specified @imageSubresource@--- of {imageparam}+-- of @srcImage@ ----- - #VUID-VkCopyImageToBufferInfo2-srcImage-00201# If {imageparam} is of+-- - #VUID-VkCopyImageToBufferInfo2-srcImage-00201# If @srcImage@ is of -- type 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_1D' or -- 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D', then for each element -- of @pRegions@, @imageOffset.z@ /must/ be @0@ and @imageExtent.depth@ -- /must/ be @1@ ----- - #VUID-VkCopyImageToBufferInfo2-bufferRowLength-00203# If--- {imageparam} is a+-- - #VUID-VkCopyImageToBufferInfo2-bufferRowLength-00203# If @srcImage@+-- is a -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#blocked-image blocked image>, -- for each element of @pRegions@, @bufferRowLength@ /must/ be a -- multiple of the compressed texel block width -- -- - #VUID-VkCopyImageToBufferInfo2-bufferImageHeight-00204# If--- {imageparam} is a+-- @srcImage@ is a -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#blocked-image blocked image>, -- for each element of @pRegions@, @bufferImageHeight@ /must/ be a -- multiple of the compressed texel block height ----- - #VUID-VkCopyImageToBufferInfo2-imageOffset-00205# If {imageparam} is--- a+-- - #VUID-VkCopyImageToBufferInfo2-imageOffset-00205# If @srcImage@ is a -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#blocked-image blocked image>, -- for each element of @pRegions@, all members of @imageOffset@ /must/ -- be a multiple of the corresponding dimensions of the compressed -- texel block ----- - #VUID-VkCopyImageToBufferInfo2-bufferOffset-00206# If {imageparam}--- is a+-- - #VUID-VkCopyImageToBufferInfo2-bufferOffset-00206# If @srcImage@ is+-- a -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#blocked-image blocked image>, -- for each element of @pRegions@, @bufferOffset@ /must/ be a multiple -- of the compressed texel block size in bytes ----- - #VUID-VkCopyImageToBufferInfo2-imageExtent-00207# If {imageparam} is--- a+-- - #VUID-VkCopyImageToBufferInfo2-imageExtent-00207# If @srcImage@ is a -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#blocked-image blocked image>, -- for each element of @pRegions@, @imageExtent.width@ /must/ be a -- multiple of the compressed texel block width or (@imageExtent.width@ -- + @imageOffset.x@) /must/ equal the width of the specified--- @imageSubresource@ of {imageparam}+-- @imageSubresource@ of @srcImage@ ----- - #VUID-VkCopyImageToBufferInfo2-imageExtent-00208# If {imageparam} is--- a+-- - #VUID-VkCopyImageToBufferInfo2-imageExtent-00208# If @srcImage@ is a -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#blocked-image blocked image>, -- for each element of @pRegions@, @imageExtent.height@ /must/ be a -- multiple of the compressed texel block height or -- (@imageExtent.height@ + @imageOffset.y@) /must/ equal the height of--- the specified @imageSubresource@ of {imageparam}+-- the specified @imageSubresource@ of @srcImage@ ----- - #VUID-VkCopyImageToBufferInfo2-imageExtent-00209# If {imageparam} is--- a+-- - #VUID-VkCopyImageToBufferInfo2-imageExtent-00209# If @srcImage@ is a -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#blocked-image blocked image>, -- for each element of @pRegions@, @imageExtent.depth@ /must/ be a -- multiple of the compressed texel block depth or (@imageExtent.depth@ -- + @imageOffset.z@) /must/ equal the depth of the specified--- @imageSubresource@ of {imageparam}+-- @imageSubresource@ of @srcImage@ -- -- - #VUID-VkCopyImageToBufferInfo2-aspectMask-00211# For each element of -- @pRegions@, @imageSubresource.aspectMask@ /must/ specify aspects--- present in {imageparam}+-- present in @srcImage@ ----- - #VUID-VkCopyImageToBufferInfo2-aspectMask-01560# If {imageparam} has--- a+-- - #VUID-VkCopyImageToBufferInfo2-aspectMask-01560# If @srcImage@ has a -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar format>, -- then for each element of @pRegions@, @imageSubresource.aspectMask@ -- /must/ be@@ -2764,23 +2779,22 @@ -- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_2_BIT' -- valid only for image formats with three planes) ----- - #VUID-VkCopyImageToBufferInfo2-baseArrayLayer-00213# If {imageparam}+-- - #VUID-VkCopyImageToBufferInfo2-baseArrayLayer-00213# If @srcImage@ -- is of type 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_3D', for each -- element of @pRegions@, @imageSubresource.baseArrayLayer@ /must/ be -- @0@ and @imageSubresource.layerCount@ /must/ be @1@ ----- - #VUID-VkCopyImageToBufferInfo2-pRegions-04725# If {imageparam} is--- not a+-- - #VUID-VkCopyImageToBufferInfo2-pRegions-04725# If @srcImage@ is not+-- a -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#blocked-image blocked image>, -- for each element of @pRegions@, @bufferRowLength@ multiplied by the--- texel block size of {imageparam} /must/ be less than or equal to--- 231-1+-- texel block size of @srcImage@ /must/ be less than or equal to 231-1 ----- - #VUID-VkCopyImageToBufferInfo2-pRegions-04726# If {imageparam} is a+-- - #VUID-VkCopyImageToBufferInfo2-pRegions-04726# If @srcImage@ is a -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#blocked-image blocked image>, -- for each element of @pRegions@, @bufferRowLength@ divided by the -- compressed texel block width and then multiplied by the texel block--- size of {imageparam} /must/ be less than or equal to 231-1+-- size of @srcImage@ /must/ be less than or equal to 231-1 -- -- - #VUID-VkCopyImageToBufferInfo2-commandBuffer-04052# If the queue -- family used to create the 'Vulkan.Core10.Handles.CommandPool' which@@ -2790,7 +2804,7 @@ -- @bufferOffset@ member of any element of @pRegions@ /must/ be a -- multiple of @4@ ----- - #VUID-VkCopyImageToBufferInfo2-srcImage-04053# If {imageparam} has a+-- - #VUID-VkCopyImageToBufferInfo2-srcImage-04053# If @srcImage@ has a -- depth\/stencil format, the @bufferOffset@ member of any element of -- @pRegions@ /must/ be a multiple of @4@ --@@ -3044,6 +3058,26 @@ -- 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D', then for each element -- of @pRegions@, @dstOffset.z@ /must/ be @0@ and @extent.depth@ /must/ -- be @1@+--+-- - #VUID-VkResolveImageInfo2-srcImage-06762# @srcImage@ /must/ have+-- been created with+-- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_TRANSFER_SRC_BIT'+-- usage flag+--+-- - #VUID-VkResolveImageInfo2-srcImage-06763# The+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-format-features format features>+-- of @srcImage@ /must/ contain+-- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_TRANSFER_SRC_BIT'+--+-- - #VUID-VkResolveImageInfo2-dstImage-06764# @dstImage@ /must/ have+-- been created with+-- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_TRANSFER_DST_BIT'+-- usage flag+--+-- - #VUID-VkResolveImageInfo2-dstImage-06765# The+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-format-features format features>+-- of @dstImage@ /must/ contain+-- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_TRANSFER_DST_BIT' -- -- == Valid Usage (Implicit) --
src/Vulkan/Core13/Promoted_From_VK_KHR_dynamic_rendering.hs view
@@ -72,6 +72,7 @@ import Vulkan.Core10.Enums.Format (Format) import Vulkan.Core10.Enums.ImageLayout (ImageLayout) import Vulkan.Core10.Handles (ImageView)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled (MultisampledRenderToSingleSampledInfoEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_dynamic_rendering (MultiviewPerViewAttributesInfoNVX) import Vulkan.CStruct.Extends (PokeChain) import Vulkan.CStruct.Extends (PokeChain(..))@@ -105,18 +106,18 @@ -- -- After beginning a render pass instance, the command buffer is ready to -- record--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#drawing draw commands>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#drawing draw commands>. -- -- If @pRenderingInfo->flags@ includes -- 'Vulkan.Core13.Enums.RenderingFlagBits.RENDERING_RESUMING_BIT' then this -- render pass is resumed from a render pass instance that has been -- suspended earlier in--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-submission-order submission order>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-submission-order submission order>. -- -- == Valid Usage -- -- - #VUID-vkCmdBeginRendering-dynamicRendering-06446# The--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-dynamicRendering dynamicRendering>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-dynamicRendering dynamicRendering> -- feature /must/ be enabled -- -- - #VUID-vkCmdBeginRendering-commandBuffer-06068# If @commandBuffer@ is@@ -143,6 +144,9 @@ -- - #VUID-vkCmdBeginRendering-renderpass# This command /must/ only be -- called outside of a render pass instance --+-- - #VUID-vkCmdBeginRendering-videocoding# This command /must/ only be+-- called outside of a video coding scope+-- -- == Host Synchronization -- -- - Host access to @commandBuffer@ /must/ be externally synchronized@@ -154,12 +158,12 @@ -- -- \' ----- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | Primary | Outside | Graphics |--- | Secondary | | |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================++-- | Primary | Outside | Outside | Graphics |+-- | Secondary | | | |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+ -- -- = See Also --@@ -208,7 +212,7 @@ -- instance included -- 'Vulkan.Core13.Enums.RenderingFlagBits.RENDERING_SUSPENDING_BIT', then -- this render pass is suspended and will be resumed later in--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-submission-order submission order>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-submission-order submission order>. -- -- == Valid Usage --@@ -218,6 +222,15 @@ -- - #VUID-vkCmdEndRendering-commandBuffer-06162# The current render pass -- instance /must/ have been begun in @commandBuffer@ --+-- - #VUID-vkCmdEndRendering-None-06781# This command /must/ not be+-- recorded when transform feedback is active+--+-- - #VUID-vkCmdEndRendering-None-06999# If+-- 'Vulkan.Core10.CommandBufferBuilding.cmdBeginQuery'* was called+-- within the render pass, the corresponding+-- 'Vulkan.Core10.CommandBufferBuilding.cmdEndQuery'* /must/ have been+-- called subsequently within the same subpass.+-- -- == Valid Usage (Implicit) -- -- - #VUID-vkCmdEndRendering-commandBuffer-parameter# @commandBuffer@@@ -234,6 +247,9 @@ -- - #VUID-vkCmdEndRendering-renderpass# This command /must/ only be -- called inside of a render pass instance --+-- - #VUID-vkCmdEndRendering-videocoding# This command /must/ only be+-- called outside of a video coding scope+-- -- == Host Synchronization -- -- - Host access to @commandBuffer@ /must/ be externally synchronized@@ -245,12 +261,12 @@ -- -- \' ----- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | Primary | Inside | Graphics |--- | Secondary | | |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================++-- | Primary | Inside | Outside | Graphics |+-- | Secondary | | | |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+ -- -- = See Also --@@ -389,15 +405,37 @@ -- - #VUID-VkRenderingInfo-viewMask-06069# If @viewMask@ is @0@, -- @layerCount@ /must/ not be @0@ ----- - #VUID-VkRenderingInfo-imageView-06070# If neither the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_AMD_mixed_attachment_samples VK_AMD_mixed_attachment_samples>--- nor the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_framebuffer_mixed_samples VK_NV_framebuffer_mixed_samples>--- extensions are enabled, @imageView@ members of @pDepthAttachment@,+-- - #VUID-VkRenderingInfo-multisampledRenderToSingleSampled-06857# If+-- none of the @VK_AMD_mixed_attachment_samples@ extension, the+-- @VK_NV_framebuffer_mixed_samples@ extension, or the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>+-- feature are enabled, @imageView@ members of @pDepthAttachment@, -- @pStencilAttachment@, and elements of @pColorAttachments@ that are -- not 'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been -- created with the same @sampleCount@ --+-- - #VUID-VkRenderingInfo-imageView-06858# If+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#subpass-multisampledrendertosinglesampled multisampled-render-to-single-sampled>+-- is enabled, then all attachments referenced by @imageView@ members+-- of @pDepthAttachment@, @pStencilAttachment@, and elements of+-- @pColorAttachments@ that are not+-- 'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have a sample count+-- that is either+-- 'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT' or+-- equal to+-- 'Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled.MultisampledRenderToSingleSampledInfoEXT'::@rasterizationSamples@.+--+-- - #VUID-VkRenderingInfo-imageView-06859# If+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#subpass-multisampledrendertosinglesampled multisampled-render-to-single-sampled>+-- is enabled, then all attachments referenced by @imageView@ members+-- of @pDepthAttachment@, @pStencilAttachment@, and elements of+-- @pColorAttachments@ that are not+-- 'Vulkan.Core10.APIConstants.NULL_HANDLE' and have a sample count of+-- 'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT' /must/+-- have been created with+-- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_BIT_EXT'+-- in their 'Vulkan.Core10.Image.ImageCreateInfo'::@flags@.+-- -- - #VUID-VkRenderingInfo-pNext-06077# If the @pNext@ chain does not -- contain -- 'Vulkan.Core11.Promoted_From_VK_KHR_device_group.DeviceGroupRenderPassBeginInfo'@@ -638,12 +676,12 @@ -- a -- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingFragmentDensityMapAttachmentInfoEXT' -- structure included in the @pNext@ chain is not--- 'Vulkan.Core10.APIConstants.NULL_HANDLE', and--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-fragmentDensityMapNonSubsampledImages non-subsample image feature>--- is not enabled, valid @imageView@ and @resolveImageView@ members of--- @pDepthAttachment@, @pStencilAttachment@, and each element of--- @pColorAttachments@ /must/ be a 'Vulkan.Core10.Handles.ImageView'--- created with+-- 'Vulkan.Core10.APIConstants.NULL_HANDLE', and the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-fragmentDensityMapNonSubsampledImages fragmentDensityMapNonSubsampledImages>+-- feature is not enabled, valid @imageView@ and @resolveImageView@+-- members of @pDepthAttachment@, @pStencilAttachment@, and each+-- element of @pColorAttachments@ /must/ be a+-- 'Vulkan.Core10.Handles.ImageView' created with -- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SUBSAMPLED_BIT_EXT' -- -- - #VUID-VkRenderingInfo-imageView-06108# If the @imageView@ member of@@ -792,12 +830,12 @@ -- structure included in the @pNext@ chain -- -- - #VUID-VkRenderingInfo-multiview-06127# If the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-multiview multiview>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-multiview multiview> -- feature is not enabled, @viewMask@ /must/ be @0@ -- -- - #VUID-VkRenderingInfo-viewMask-06128# The index of the most -- significant bit in @viewMask@ /must/ be less than--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxMultiviewViewCount maxMultiviewViewCount>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxMultiviewViewCount maxMultiviewViewCount> -- -- == Valid Usage (Implicit) --@@ -808,6 +846,7 @@ -- structure (including this one) in the @pNext@ chain /must/ be either -- @NULL@ or a pointer to a valid instance of -- 'Vulkan.Core11.Promoted_From_VK_KHR_device_group.DeviceGroupRenderPassBeginInfo',+-- 'Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled.MultisampledRenderToSingleSampledInfoEXT', -- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.MultiviewPerViewAttributesInfoNVX', -- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingFragmentDensityMapAttachmentInfoEXT', -- or@@ -836,11 +875,13 @@ -- = See Also -- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_dynamic_rendering VK_KHR_dynamic_rendering>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_QCOM_tile_properties VK_QCOM_tile_properties>, -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3 VK_VERSION_1_3>, -- 'Vulkan.Core10.FundamentalTypes.Rect2D', 'RenderingAttachmentInfo', -- 'Vulkan.Core13.Enums.RenderingFlagBits.RenderingFlags', -- 'Vulkan.Core10.Enums.StructureType.StructureType', 'cmdBeginRendering',--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR'+-- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',+-- 'Vulkan.Extensions.VK_QCOM_tile_properties.getDynamicRenderingTilePropertiesQCOM' data RenderingInfo (es :: [Type]) = RenderingInfo { -- | @pNext@ is @NULL@ or a pointer to a structure extending this structure. next :: Chain es@@ -882,6 +923,7 @@ | Just Refl <- eqT @e @MultiviewPerViewAttributesInfoNVX = Just f | Just Refl <- eqT @e @RenderingFragmentDensityMapAttachmentInfoEXT = Just f | Just Refl <- eqT @e @RenderingFragmentShadingRateAttachmentInfoKHR = Just f+ | Just Refl <- eqT @e @MultisampledRenderToSingleSampledInfoEXT = Just f | Just Refl <- eqT @e @DeviceGroupRenderPassBeginInfo = Just f | otherwise = Nothing @@ -945,10 +987,11 @@ -- If @resolveMode@ is -- 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_NONE', then -- @resolveImageView@ is ignored. If @resolveMode@ is not--- 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_NONE', values in--- @resolveImageView@ within the render area become undefined once--- rendering begins. At the end of rendering, the color values written to--- each pixel location in @imageView@ will be resolved according to+-- 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_NONE', and+-- @resolveImageView@ is not 'Vulkan.Core10.APIConstants.NULL_HANDLE',+-- values in @resolveImageView@ within the render area become undefined+-- once rendering begins. At the end of rendering, the color values written+-- to each pixel location in @imageView@ will be resolved according to -- @resolveMode@ and stored into the the same location in -- @resolveImageView@. --@@ -984,27 +1027,54 @@ -- 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_NONE' or -- 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_SAMPLE_ZERO_BIT' ----- - #VUID-VkRenderingAttachmentInfo-imageView-06132# If @imageView@ is--- not 'Vulkan.Core10.APIConstants.NULL_HANDLE' and @resolveMode@ is--- not 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_NONE',--- @imageView@ /must/ not have a sample count of+-- - #VUID-VkRenderingAttachmentInfo-imageView-06861# If @imageView@ is+-- not 'Vulkan.Core10.APIConstants.NULL_HANDLE', @resolveMode@ is not+-- 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_NONE', and the+-- @pNext@ chain of 'RenderingInfo' does not includes a+-- 'Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled.MultisampledRenderToSingleSampledInfoEXT'+-- structure with the @multisampledRenderToSingleSampledEnable@ field+-- equal to 'Vulkan.Core10.FundamentalTypes.TRUE', @imageView@ /must/+-- not have a sample count of -- 'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT' ----- - #VUID-VkRenderingAttachmentInfo-imageView-06133# If @imageView@ is--- not 'Vulkan.Core10.APIConstants.NULL_HANDLE' and @resolveMode@ is+-- - #VUID-VkRenderingAttachmentInfo-imageView-06862# If @imageView@ is+-- not 'Vulkan.Core10.APIConstants.NULL_HANDLE', @resolveMode@ is not+-- 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_NONE', and the+-- @pNext@ chain of 'RenderingInfo' does not includes a+-- 'Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled.MultisampledRenderToSingleSampledInfoEXT'+-- structure with the @multisampledRenderToSingleSampledEnable@ field+-- equal to 'Vulkan.Core10.FundamentalTypes.TRUE', @resolveImageView@+-- /must/ not be 'Vulkan.Core10.APIConstants.NULL_HANDLE'+--+-- - #VUID-VkRenderingAttachmentInfo-imageView-06863# If @imageView@ is+-- not 'Vulkan.Core10.APIConstants.NULL_HANDLE', @resolveMode@ is not+-- 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_NONE', the+-- @pNext@ chain of 'RenderingInfo' includes a+-- 'Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled.MultisampledRenderToSingleSampledInfoEXT'+-- structure with the @multisampledRenderToSingleSampledEnable@ field+-- equal to 'Vulkan.Core10.FundamentalTypes.TRUE', and @imageView@ has+-- a sample count of+-- 'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT',+-- @resolveImageView@ /must/ be+-- 'Vulkan.Core10.APIConstants.NULL_HANDLE'+--+-- - #VUID-VkRenderingAttachmentInfo-imageView-06864# If @imageView@ is+-- not 'Vulkan.Core10.APIConstants.NULL_HANDLE', @resolveImageView@ is+-- not 'Vulkan.Core10.APIConstants.NULL_HANDLE', and @resolveMode@ is -- not 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_NONE', -- @resolveImageView@ /must/ have a sample count of -- 'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT' ----- - #VUID-VkRenderingAttachmentInfo-imageView-06134# If @imageView@ is--- not 'Vulkan.Core10.APIConstants.NULL_HANDLE' and @resolveMode@ is+-- - #VUID-VkRenderingAttachmentInfo-imageView-06865# If @imageView@ is+-- not 'Vulkan.Core10.APIConstants.NULL_HANDLE', @resolveImageView@ is+-- not 'Vulkan.Core10.APIConstants.NULL_HANDLE', and @resolveMode@ is -- not 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_NONE', -- @imageView@ and @resolveImageView@ /must/ have the same -- 'Vulkan.Core10.Enums.Format.Format' -- -- - #VUID-VkRenderingAttachmentInfo-imageView-06135# If @imageView@ is--- not 'Vulkan.Core10.APIConstants.NULL_HANDLE', @layout@ /must/ not be--- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_UNDEFINED',+-- not 'Vulkan.Core10.APIConstants.NULL_HANDLE', @imageLayout@ /must/+-- not be 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_UNDEFINED', -- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL', -- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL', -- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL',@@ -1030,7 +1100,8 @@ -- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL' -- -- - #VUID-VkRenderingAttachmentInfo-imageView-06138# If @imageView@ is--- not 'Vulkan.Core10.APIConstants.NULL_HANDLE', @layout@ /must/ not be+-- not 'Vulkan.Core10.APIConstants.NULL_HANDLE', @imageLayout@ /must/+-- not be -- 'Vulkan.Extensions.VK_NV_shading_rate_image.IMAGE_LAYOUT_SHADING_RATE_OPTIMAL_NV' -- -- - #VUID-VkRenderingAttachmentInfo-imageView-06139# If @imageView@ is@@ -1040,7 +1111,8 @@ -- 'Vulkan.Extensions.VK_NV_shading_rate_image.IMAGE_LAYOUT_SHADING_RATE_OPTIMAL_NV' -- -- - #VUID-VkRenderingAttachmentInfo-imageView-06140# If @imageView@ is--- not 'Vulkan.Core10.APIConstants.NULL_HANDLE', @layout@ /must/ not be+-- not 'Vulkan.Core10.APIConstants.NULL_HANDLE', @imageLayout@ /must/+-- not be -- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT' -- -- - #VUID-VkRenderingAttachmentInfo-imageView-06141# If @imageView@ is@@ -1056,7 +1128,8 @@ -- 'Vulkan.Extensions.VK_KHR_synchronization2.IMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR' -- -- - #VUID-VkRenderingAttachmentInfo-imageView-06143# If @imageView@ is--- not 'Vulkan.Core10.APIConstants.NULL_HANDLE', @layout@ /must/ not be+-- not 'Vulkan.Core10.APIConstants.NULL_HANDLE', @imageLayout@ /must/+-- not be -- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR' -- -- - #VUID-VkRenderingAttachmentInfo-imageView-06144# If @imageView@ is@@ -1066,7 +1139,8 @@ -- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR' -- -- - #VUID-VkRenderingAttachmentInfo-imageView-06145# If @imageView@ is--- not 'Vulkan.Core10.APIConstants.NULL_HANDLE', @layout@ /must/ not be+-- not 'Vulkan.Core10.APIConstants.NULL_HANDLE', @imageLayout@ /must/+-- not be -- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_PRESENT_SRC_KHR' -- -- - #VUID-VkRenderingAttachmentInfo-imageView-06146# If @imageView@ is@@ -1210,8 +1284,7 @@ -- -- = Members ----- The members of the 'PhysicalDeviceDynamicRenderingFeatures' structure--- describe the following features:+-- This structure describes the following feature: -- -- = Description --@@ -1294,7 +1367,7 @@ -- parameters of this structure are ignored. -- -- If @colorAttachmentCount@ is @0@ and the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-variableMultisampleRate variableMultisampleRate>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-variableMultisampleRate variableMultisampleRate> -- feature is enabled, @rasterizationSamples@ is ignored. -- -- If @depthAttachmentFormat@, @stencilAttachmentFormat@, or any element of@@ -1311,7 +1384,7 @@ -- -- - #VUID-VkCommandBufferInheritanceRenderingInfo-variableMultisampleRate-06005# -- If the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-variableMultisampleRate variableMultisampleRate>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-variableMultisampleRate variableMultisampleRate> -- feature is not enabled, @rasterizationSamples@ /must/ be a valid -- 'Vulkan.Core10.Enums.SampleCountFlagBits.SampleCountFlagBits' value --@@ -1319,7 +1392,7 @@ -- If any element of @pColorAttachmentFormats@ is not -- 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED', it /must/ be a format -- with--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#potential-format-features potential format features>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#potential-format-features potential format features> -- that include -- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_COLOR_ATTACHMENT_BIT' --@@ -1332,17 +1405,17 @@ -- If @depthAttachmentFormat@ is not -- 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED', it /must/ be a format -- with--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#potential-format-features potential format features>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#potential-format-features potential format features> -- that include -- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT' -- -- - #VUID-VkCommandBufferInheritanceRenderingInfoKHR-pColorAttachmentFormats-06492# -- When rendering to a--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#glossary Linear Color attachment>,+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#glossary Linear Color attachment>, -- if any element of @pColorAttachmentFormats@ is not -- 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED', it /must/ be a format -- with--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#potential-format-features potential format features>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#potential-format-features potential format features> -- that include -- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV' --@@ -1355,7 +1428,7 @@ -- If @stencilAttachmentFormat@ is not -- 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED', it /must/ be a format -- with--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#potential-format-features potential format features>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#potential-format-features potential format features> -- that include -- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT' --@@ -1368,12 +1441,12 @@ -- -- - #VUID-VkCommandBufferInheritanceRenderingInfo-multiview-06008# If -- the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-multiview multiview>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-multiview multiview> -- feature is not enabled, @viewMask@ /must/ be @0@ -- -- - #VUID-VkCommandBufferInheritanceRenderingInfo-viewMask-06009# The -- index of the most significant bit in @viewMask@ /must/ be less than--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxMultiviewViewCount maxMultiviewViewCount>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxMultiviewViewCount maxMultiviewViewCount> -- -- == Valid Usage (Implicit) --
src/Vulkan/Core13/Promoted_From_VK_KHR_maintenance4.hs view
@@ -297,6 +297,17 @@ -- 'Vulkan.Extensions.VK_KHR_swapchain.ImageSwapchainCreateInfoKHR' -- structure --+-- - #VUID-VkDeviceImageMemoryRequirements-pCreateInfo-06776# The+-- @pCreateInfo@::@pNext@ chain /must/ not contain a+-- 'Vulkan.Extensions.VK_EXT_image_drm_format_modifier.ImageDrmFormatModifierExplicitCreateInfoEXT'+-- structure+--+-- - #VUID-VkDeviceImageMemoryRequirements-pNext-06996# Applications also+-- /must/ not call 'getDeviceImageMemoryRequirements' with a+-- 'Vulkan.Core10.Image.ImageCreateInfo' whose @pNext@ chain includes a+-- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'+-- structure with non-zero @externalFormat@.+-- -- - #VUID-VkDeviceImageMemoryRequirementsKHR-pCreateInfo-06417# If -- @pCreateInfo@::@format@ specifies a /multi-planar/ format and -- @pCreateInfo@::@flags@ has@@ -414,7 +425,7 @@ -- -- = Members ----- This structure describes the following features:+-- This structure describes the following feature: -- -- = Description --
src/Vulkan/Core13/Promoted_From_VK_KHR_shader_integer_dot_product.hs view
@@ -33,8 +33,7 @@ -- -- = Members ----- The members of the 'PhysicalDeviceShaderIntegerDotProductFeatures'--- structure describe the following features:+-- This structure describes the following feature: -- -- = Description --@@ -139,188 +138,188 @@ -- 'Vulkan.Core10.FundamentalTypes.TRUE' if the support for 8-bit unsigned -- dot product operations using the @OpUDotKHR@ SPIR-V instruction is -- accelerated- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#devsandqueues-integer-dot-product-accelerated as defined below>.+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#devsandqueues-integer-dot-product-accelerated as defined below>. integerDotProduct8BitUnsignedAccelerated :: Bool , -- | @integerDotProduct8BitSignedAccelerated@ is a boolean that will be -- 'Vulkan.Core10.FundamentalTypes.TRUE' if the support for 8-bit signed -- dot product operations using the @OpSDotKHR@ SPIR-V instruction is -- accelerated- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#devsandqueues-integer-dot-product-accelerated as defined below>.+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#devsandqueues-integer-dot-product-accelerated as defined below>. integerDotProduct8BitSignedAccelerated :: Bool , -- | @integerDotProduct8BitMixedSignednessAccelerated@ is a boolean that will -- be 'Vulkan.Core10.FundamentalTypes.TRUE' if the support for 8-bit mixed -- signedness dot product operations using the @OpSUDotKHR@ SPIR-V -- instruction is accelerated- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#devsandqueues-integer-dot-product-accelerated as defined below>.+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#devsandqueues-integer-dot-product-accelerated as defined below>. integerDotProduct8BitMixedSignednessAccelerated :: Bool , -- | @integerDotProduct4x8BitPackedUnsignedAccelerated@ is a boolean that -- will be 'Vulkan.Core10.FundamentalTypes.TRUE' if the support for 8-bit -- unsigned dot product operations from operands packed into 32-bit -- integers using the @OpUDotKHR@ SPIR-V instruction is accelerated- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#devsandqueues-integer-dot-product-accelerated as defined below>.+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#devsandqueues-integer-dot-product-accelerated as defined below>. integerDotProduct4x8BitPackedUnsignedAccelerated :: Bool , -- | @integerDotProduct4x8BitPackedSignedAccelerated@ is a boolean that will -- be 'Vulkan.Core10.FundamentalTypes.TRUE' if the support for 8-bit signed -- dot product operations from operands packed into 32-bit integers using -- the @OpSDotKHR@ SPIR-V instruction is accelerated- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#devsandqueues-integer-dot-product-accelerated as defined below>.+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#devsandqueues-integer-dot-product-accelerated as defined below>. integerDotProduct4x8BitPackedSignedAccelerated :: Bool , -- | @integerDotProduct4x8BitPackedMixedSignednessAccelerated@ is a boolean -- that will be 'Vulkan.Core10.FundamentalTypes.TRUE' if the support for -- 8-bit mixed signedness dot product operations from operands packed into -- 32-bit integers using the @OpSUDotKHR@ SPIR-V instruction is accelerated- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#devsandqueues-integer-dot-product-accelerated as defined below>.+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#devsandqueues-integer-dot-product-accelerated as defined below>. integerDotProduct4x8BitPackedMixedSignednessAccelerated :: Bool , -- | @integerDotProduct16BitUnsignedAccelerated@ is a boolean that will be -- 'Vulkan.Core10.FundamentalTypes.TRUE' if the support for 16-bit unsigned -- dot product operations using the @OpUDotKHR@ SPIR-V instruction is -- accelerated- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#devsandqueues-integer-dot-product-accelerated as defined below>.+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#devsandqueues-integer-dot-product-accelerated as defined below>. integerDotProduct16BitUnsignedAccelerated :: Bool , -- | @integerDotProduct16BitSignedAccelerated@ is a boolean that will be -- 'Vulkan.Core10.FundamentalTypes.TRUE' if the support for 16-bit signed -- dot product operations using the @OpSDotKHR@ SPIR-V instruction is -- accelerated- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#devsandqueues-integer-dot-product-accelerated as defined below>.+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#devsandqueues-integer-dot-product-accelerated as defined below>. integerDotProduct16BitSignedAccelerated :: Bool , -- | @integerDotProduct16BitMixedSignednessAccelerated@ is a boolean that -- will be 'Vulkan.Core10.FundamentalTypes.TRUE' if the support for 16-bit -- mixed signedness dot product operations using the @OpSUDotKHR@ SPIR-V -- instruction is accelerated- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#devsandqueues-integer-dot-product-accelerated as defined below>.+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#devsandqueues-integer-dot-product-accelerated as defined below>. integerDotProduct16BitMixedSignednessAccelerated :: Bool , -- | @integerDotProduct32BitUnsignedAccelerated@ is a boolean that will be -- 'Vulkan.Core10.FundamentalTypes.TRUE' if the support for 32-bit unsigned -- dot product operations using the @OpUDotKHR@ SPIR-V instruction is -- accelerated- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#devsandqueues-integer-dot-product-accelerated as defined below>.+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#devsandqueues-integer-dot-product-accelerated as defined below>. integerDotProduct32BitUnsignedAccelerated :: Bool , -- | @integerDotProduct32BitSignedAccelerated@ is a boolean that will be -- 'Vulkan.Core10.FundamentalTypes.TRUE' if the support for 32-bit signed -- dot product operations using the @OpSDotKHR@ SPIR-V instruction is -- accelerated- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#devsandqueues-integer-dot-product-accelerated as defined below>.+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#devsandqueues-integer-dot-product-accelerated as defined below>. integerDotProduct32BitSignedAccelerated :: Bool , -- | @integerDotProduct32BitMixedSignednessAccelerated@ is a boolean that -- will be 'Vulkan.Core10.FundamentalTypes.TRUE' if the support for 32-bit -- mixed signedness dot product operations using the @OpSUDotKHR@ SPIR-V -- instruction is accelerated- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#devsandqueues-integer-dot-product-accelerated as defined below>.+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#devsandqueues-integer-dot-product-accelerated as defined below>. integerDotProduct32BitMixedSignednessAccelerated :: Bool , -- | @integerDotProduct64BitUnsignedAccelerated@ is a boolean that will be -- 'Vulkan.Core10.FundamentalTypes.TRUE' if the support for 64-bit unsigned -- dot product operations using the @OpUDotKHR@ SPIR-V instruction is -- accelerated- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#devsandqueues-integer-dot-product-accelerated as defined below>.+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#devsandqueues-integer-dot-product-accelerated as defined below>. integerDotProduct64BitUnsignedAccelerated :: Bool , -- | @integerDotProduct64BitSignedAccelerated@ is a boolean that will be -- 'Vulkan.Core10.FundamentalTypes.TRUE' if the support for 64-bit signed -- dot product operations using the @OpSDotKHR@ SPIR-V instruction is -- accelerated- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#devsandqueues-integer-dot-product-accelerated as defined below>.+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#devsandqueues-integer-dot-product-accelerated as defined below>. integerDotProduct64BitSignedAccelerated :: Bool , -- | @integerDotProduct64BitMixedSignednessAccelerated@ is a boolean that -- will be 'Vulkan.Core10.FundamentalTypes.TRUE' if the support for 64-bit -- mixed signedness dot product operations using the @OpSUDotKHR@ SPIR-V -- instruction is accelerated- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#devsandqueues-integer-dot-product-accelerated as defined below>.+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#devsandqueues-integer-dot-product-accelerated as defined below>. integerDotProduct64BitMixedSignednessAccelerated :: Bool , -- | @integerDotProductAccumulatingSaturating8BitUnsignedAccelerated@ is a -- boolean that will be 'Vulkan.Core10.FundamentalTypes.TRUE' if the -- support for 8-bit unsigned accumulating saturating dot product -- operations using the @OpUDotAccSatKHR@ SPIR-V instruction is accelerated- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#devsandqueues-integer-dot-product-accelerated as defined below>.+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#devsandqueues-integer-dot-product-accelerated as defined below>. integerDotProductAccumulatingSaturating8BitUnsignedAccelerated :: Bool , -- | @integerDotProductAccumulatingSaturating8BitSignedAccelerated@ is a -- boolean that will be 'Vulkan.Core10.FundamentalTypes.TRUE' if the -- support for 8-bit signed accumulating saturating dot product operations -- using the @OpSDotAccSatKHR@ SPIR-V instruction is accelerated- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#devsandqueues-integer-dot-product-accelerated as defined below>.+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#devsandqueues-integer-dot-product-accelerated as defined below>. integerDotProductAccumulatingSaturating8BitSignedAccelerated :: Bool , -- | @integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated@ -- is a boolean that will be 'Vulkan.Core10.FundamentalTypes.TRUE' if the -- support for 8-bit mixed signedness accumulating saturating dot product -- operations using the @OpSUDotAccSatKHR@ SPIR-V instruction is -- accelerated- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#devsandqueues-integer-dot-product-accelerated as defined below>.+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#devsandqueues-integer-dot-product-accelerated as defined below>. integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated :: Bool , -- | @integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated@ -- is a boolean that will be 'Vulkan.Core10.FundamentalTypes.TRUE' if the -- support for 8-bit unsigned accumulating saturating dot product -- operations from operands packed into 32-bit integers using the -- @OpUDotAccSatKHR@ SPIR-V instruction is accelerated- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#devsandqueues-integer-dot-product-accelerated as defined below>.+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#devsandqueues-integer-dot-product-accelerated as defined below>. integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated :: Bool , -- | @integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated@ -- is a boolean that will be 'Vulkan.Core10.FundamentalTypes.TRUE' if the -- support for 8-bit signed accumulating saturating dot product operations -- from operands packed into 32-bit integers using the @OpSDotAccSatKHR@ -- SPIR-V instruction is accelerated- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#devsandqueues-integer-dot-product-accelerated as defined below>.+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#devsandqueues-integer-dot-product-accelerated as defined below>. integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated :: Bool , -- | @integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated@ -- is a boolean that will be 'Vulkan.Core10.FundamentalTypes.TRUE' if the -- support for 8-bit mixed signedness accumulating saturating dot product -- operations from operands packed into 32-bit integers using the -- @OpSUDotAccSatKHR@ SPIR-V instruction is accelerated- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#devsandqueues-integer-dot-product-accelerated as defined below>.+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#devsandqueues-integer-dot-product-accelerated as defined below>. integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated :: Bool , -- | @integerDotProductAccumulatingSaturating16BitUnsignedAccelerated@ is a -- boolean that will be 'Vulkan.Core10.FundamentalTypes.TRUE' if the -- support for 16-bit unsigned accumulating saturating dot product -- operations using the @OpUDotAccSatKHR@ SPIR-V instruction is accelerated- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#devsandqueues-integer-dot-product-accelerated as defined below>.+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#devsandqueues-integer-dot-product-accelerated as defined below>. integerDotProductAccumulatingSaturating16BitUnsignedAccelerated :: Bool , -- | @integerDotProductAccumulatingSaturating16BitSignedAccelerated@ is a -- boolean that will be 'Vulkan.Core10.FundamentalTypes.TRUE' if the -- support for 16-bit signed accumulating saturating dot product operations -- using the @OpSDotAccSatKHR@ SPIR-V instruction is accelerated- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#devsandqueues-integer-dot-product-accelerated as defined below>.+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#devsandqueues-integer-dot-product-accelerated as defined below>. integerDotProductAccumulatingSaturating16BitSignedAccelerated :: Bool , -- | @integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated@ -- is a boolean that will be 'Vulkan.Core10.FundamentalTypes.TRUE' if the -- support for 16-bit mixed signedness accumulating saturating dot product -- operations using the @OpSUDotAccSatKHR@ SPIR-V instruction is -- accelerated- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#devsandqueues-integer-dot-product-accelerated as defined below>.+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#devsandqueues-integer-dot-product-accelerated as defined below>. integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated :: Bool , -- | @integerDotProductAccumulatingSaturating32BitUnsignedAccelerated@ is a -- boolean that will be 'Vulkan.Core10.FundamentalTypes.TRUE' if the -- support for 32-bit unsigned accumulating saturating dot product -- operations using the @OpUDotAccSatKHR@ SPIR-V instruction is accelerated- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#devsandqueues-integer-dot-product-accelerated as defined below>.+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#devsandqueues-integer-dot-product-accelerated as defined below>. integerDotProductAccumulatingSaturating32BitUnsignedAccelerated :: Bool , -- | @integerDotProductAccumulatingSaturating32BitSignedAccelerated@ is a -- boolean that will be 'Vulkan.Core10.FundamentalTypes.TRUE' if the -- support for 32-bit signed accumulating saturating dot product operations -- using the @OpSDotAccSatKHR@ SPIR-V instruction is accelerated- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#devsandqueues-integer-dot-product-accelerated as defined below>.+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#devsandqueues-integer-dot-product-accelerated as defined below>. integerDotProductAccumulatingSaturating32BitSignedAccelerated :: Bool , -- | @integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated@ -- is a boolean that will be 'Vulkan.Core10.FundamentalTypes.TRUE' if the -- support for 32-bit mixed signedness accumulating saturating dot product -- operations using the @OpSUDotAccSatKHR@ SPIR-V instruction is -- accelerated- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#devsandqueues-integer-dot-product-accelerated as defined below>.+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#devsandqueues-integer-dot-product-accelerated as defined below>. integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated :: Bool , -- | @integerDotProductAccumulatingSaturating64BitUnsignedAccelerated@ is a -- boolean that will be 'Vulkan.Core10.FundamentalTypes.TRUE' if the -- support for 64-bit unsigned accumulating saturating dot product -- operations using the @OpUDotAccSatKHR@ SPIR-V instruction is accelerated- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#devsandqueues-integer-dot-product-accelerated as defined below>.+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#devsandqueues-integer-dot-product-accelerated as defined below>. integerDotProductAccumulatingSaturating64BitUnsignedAccelerated :: Bool , -- | @integerDotProductAccumulatingSaturating64BitSignedAccelerated@ is a -- boolean that will be 'Vulkan.Core10.FundamentalTypes.TRUE' if the -- support for 64-bit signed accumulating saturating dot product operations -- using the @OpSDotAccSatKHR@ SPIR-V instruction is accelerated- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#devsandqueues-integer-dot-product-accelerated as defined below>.+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#devsandqueues-integer-dot-product-accelerated as defined below>. integerDotProductAccumulatingSaturating64BitSignedAccelerated :: Bool , -- | @integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated@ -- is a boolean that will be 'Vulkan.Core10.FundamentalTypes.TRUE' if the -- support for 64-bit mixed signedness accumulating saturating dot product -- operations using the @OpSUDotAccSatKHR@ SPIR-V instruction is -- accelerated- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#devsandqueues-integer-dot-product-accelerated as defined below>.+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#devsandqueues-integer-dot-product-accelerated as defined below>. integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated :: Bool } deriving (Typeable, Eq)
src/Vulkan/Core13/Promoted_From_VK_KHR_synchronization2.hs view
@@ -166,32 +166,32 @@ -- that occur earlier in submission order. -- -- The first--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope> -- and--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-access-scopes access scope>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-access-scopes access scope> -- are defined by the union of all the memory dependencies defined by -- @pDependencyInfo@, and are applied to all operations that occur earlier -- in--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-submission-order submission order>.--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-queue-transfers Queue family ownership transfers>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-submission-order submission order>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-queue-transfers Queue family ownership transfers> -- and--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-image-layout-transitions image layout transitions>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-image-layout-transitions image layout transitions> -- defined by @pDependencyInfo@ are also included in the first scopes. -- -- The second--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope> -- includes only the event signal operation, and any--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-queue-transfers queue family ownership transfers>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-queue-transfers queue family ownership transfers> -- and--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-image-layout-transitions image layout transitions>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-image-layout-transitions image layout transitions> -- defined by @pDependencyInfo@. -- -- The second--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-access-scopes access scope>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-access-scopes access scope> -- includes only--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-queue-transfers queue family ownership transfers>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-queue-transfers queue family ownership transfers> -- and--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-image-layout-transitions image layout transitions>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-image-layout-transitions image layout transitions>. -- -- Future 'cmdWaitEvents2' commands rely on all values of each element in -- @pDependencyInfo@ matching exactly with those used to signal the@@ -218,7 +218,7 @@ -- == Valid Usage -- -- - #VUID-vkCmdSetEvent2-synchronization2-03824# The--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-synchronization2 synchronization2>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-synchronization2 synchronization2> -- feature /must/ be enabled -- -- - #VUID-vkCmdSetEvent2-dependencyFlags-03825# The @dependencyFlags@@@ -256,7 +256,8 @@ -- -- - #VUID-vkCmdSetEvent2-commandBuffer-cmdpool# The -- 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was--- allocated from /must/ support graphics, or compute operations+-- allocated from /must/ support graphics, compute, decode, or encode+-- operations -- -- - #VUID-vkCmdSetEvent2-renderpass# This command /must/ only be called -- outside of a render pass instance@@ -276,12 +277,14 @@ -- -- \' ----- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | Primary | Outside | Graphics |--- | Secondary | | Compute |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================++-- | Primary | Outside | Both | Graphics |+-- | Secondary | | | Compute |+-- | | | | Decode |+-- | | | | Encode |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+ -- -- = See Also --@@ -326,16 +329,16 @@ -- event unsignal operation which resets the event to the unsignaled state. -- -- The first--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope> -- includes all commands that occur earlier in--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-submission-order submission order>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-submission-order submission order>. -- The synchronization scope is limited to operations by @stageMask@ or -- stages that are--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages-order logically earlier>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages-order logically earlier> -- than @stageMask@. -- -- The second--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope> -- includes only the event unsignal operation. -- -- If @event@ is already in the unsignaled state when 'cmdResetEvent2' is@@ -345,59 +348,59 @@ -- == Valid Usage -- -- - #VUID-vkCmdResetEvent2-stageMask-03929# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryShader geometry shaders>+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryShader geometryShader> -- feature is not enabled, @stageMask@ /must/ not contain -- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT' -- -- - #VUID-vkCmdResetEvent2-stageMask-03930# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShader tessellation shaders>+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShader tessellationShader> -- feature is not enabled, @stageMask@ /must/ not contain -- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT' -- or -- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT' -- -- - #VUID-vkCmdResetEvent2-stageMask-03931# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-conditionalRendering conditional rendering>+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-conditionalRendering conditionalRendering> -- feature is not enabled, @stageMask@ /must/ not contain -- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT' -- -- - #VUID-vkCmdResetEvent2-stageMask-03932# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-fragmentDensityMap fragment density map>+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-fragmentDensityMap fragmentDensityMap> -- feature is not enabled, @stageMask@ /must/ not contain -- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT' -- -- - #VUID-vkCmdResetEvent2-stageMask-03933# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-transformFeedback transform feedback>+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-transformFeedback transformFeedback> -- feature is not enabled, @stageMask@ /must/ not contain -- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT' -- -- - #VUID-vkCmdResetEvent2-stageMask-03934# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader mesh shaders>+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader> -- feature is not enabled, @stageMask@ /must/ not contain--- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_MESH_SHADER_BIT_NV'+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_MESH_SHADER_BIT_EXT' -- -- - #VUID-vkCmdResetEvent2-stageMask-03935# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader task shaders>+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader> -- feature is not enabled, @stageMask@ /must/ not contain--- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TASK_SHADER_BIT_NV'+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TASK_SHADER_BIT_EXT' -- -- - #VUID-vkCmdResetEvent2-stageMask-04956# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shading rate image>+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage> -- feature is not enabled, @stageMask@ /must/ not contain -- 'Vulkan.Extensions.VK_KHR_synchronization2.PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV' -- -- - #VUID-vkCmdResetEvent2-stageMask-04957# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-subpassShading subpass shading>+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-subpassShading subpassShading> -- feature is not enabled, @stageMask@ /must/ not contain -- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI' -- -- - #VUID-vkCmdResetEvent2-stageMask-04995# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-invocationMask invocation mask image>+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-invocationMask invocationMask> -- feature is not enabled, @stageMask@ /must/ not contain -- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI' -- -- - #VUID-vkCmdResetEvent2-synchronization2-03829# The--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-synchronization2 synchronization2>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-synchronization2 synchronization2> -- feature /must/ be enabled -- -- - #VUID-vkCmdResetEvent2-stageMask-03830# @stageMask@ /must/ not@@ -435,7 +438,8 @@ -- -- - #VUID-vkCmdResetEvent2-commandBuffer-cmdpool# The -- 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was--- allocated from /must/ support graphics, or compute operations+-- allocated from /must/ support graphics, compute, decode, or encode+-- operations -- -- - #VUID-vkCmdResetEvent2-renderpass# This command /must/ only be -- called outside of a render pass instance@@ -455,12 +459,14 @@ -- -- \' ----- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | Primary | Outside | Graphics |--- | Secondary | | Compute |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================++-- | Primary | Outside | Both | Graphics |+-- | Secondary | | | Compute |+-- | | | | Decode |+-- | | | | Encode |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+ -- -- = See Also --@@ -478,7 +484,7 @@ -> -- | @stageMask@ is a -- 'Vulkan.Core13.Enums.PipelineStageFlags2.PipelineStageFlags2' mask of -- pipeline stages used to determine the first- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>.+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>. ("stageMask" ::: PipelineStageFlags2) -> io () cmdResetEvent2 commandBuffer event stageMask = liftIO $ do@@ -512,7 +518,7 @@ ("events" ::: Vector Event) -> -- | @pDependencyInfos@ is a pointer to an array of @eventCount@ -- 'DependencyInfo' structures, defining the second- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>.+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>. ("dependencyInfos" ::: Vector DependencyInfo) -> io () cmdWaitEvents2SafeOrUnsafe mkVkCmdWaitEvents2 commandBuffer events dependencyInfos = liftIO . evalContT $ do@@ -542,37 +548,37 @@ -- 'Vulkan.Core10.CommandBufferBuilding.cmdSetEvent'. -- -- The first--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope> -- and--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-access-scopes access scope>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-access-scopes access scope> -- of each memory dependency defined by any element i of @pDependencyInfos@ -- are applied to operations that occurred earlier in--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-submission-order submission order>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-submission-order submission order> -- than the last event signal operation on element i of @pEvents@. -- -- Signal operations for an event at index i are only included if: -- -- - The event was signaled by a 'cmdSetEvent2' command that occurred -- earlier in--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-submission-order submission order>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-submission-order submission order> -- with a @dependencyInfo@ parameter exactly equal to the element of -- @pDependencyInfos@ at index i ; or -- -- - The event was created without -- 'Vulkan.Core10.Enums.EventCreateFlagBits.EVENT_CREATE_DEVICE_ONLY_BIT', -- and the first--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope> -- defined by the element of @pDependencyInfos@ at index i only -- includes host operations -- ('Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_HOST_BIT'). -- -- The second--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope> -- and--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-access-scopes access scope>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-access-scopes access scope> -- of each memory dependency defined by any element i of @pDependencyInfos@ -- are applied to operations that occurred later in--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-submission-order submission order>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-submission-order submission order> -- than 'cmdWaitEvents2'. -- -- Note@@ -595,7 +601,7 @@ -- == Valid Usage -- -- - #VUID-vkCmdWaitEvents2-synchronization2-03836# The--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-synchronization2 synchronization2>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-synchronization2 synchronization2> -- feature /must/ be enabled -- -- - #VUID-vkCmdWaitEvents2-pEvents-03837# Members of @pEvents@ /must/@@ -612,7 +618,7 @@ -- 'Vulkan.Core10.Event.setEvent', barriers in the ith element of -- @pDependencyInfos@ /must/ include only host operations in their -- first--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope> -- -- - #VUID-vkCmdWaitEvents2-pEvents-03840# For any element i of -- @pEvents@, if barriers in the ith element of @pDependencyInfos@@@ -623,7 +629,7 @@ -- @pEvents@, if barriers in the ith element of @pDependencyInfos@ do -- not include host operations, the ith element of @pEvents@ /must/ be -- signaled by a corresponding 'cmdSetEvent2' that occurred earlier in--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-submission-order submission order>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-submission-order submission order> -- -- - #VUID-vkCmdWaitEvents2-srcStageMask-03842# The @srcStageMask@ member -- of any element of the @pMemoryBarriers@, @pBufferMemoryBarriers@, or@@ -669,7 +675,8 @@ -- -- - #VUID-vkCmdWaitEvents2-commandBuffer-cmdpool# The -- 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was--- allocated from /must/ support graphics, or compute operations+-- allocated from /must/ support graphics, compute, decode, or encode+-- operations -- -- - #VUID-vkCmdWaitEvents2-eventCount-arraylength# @eventCount@ /must/ -- be greater than @0@@@ -689,12 +696,14 @@ -- -- \' ----- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | Primary | Both | Graphics |--- | Secondary | | Compute |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================++-- | Primary | Both | Both | Graphics |+-- | Secondary | | | Compute |+-- | | | | Decode |+-- | | | | Encode |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+ -- -- = See Also --@@ -711,7 +720,7 @@ ("events" ::: Vector Event) -> -- | @pDependencyInfos@ is a pointer to an array of @eventCount@ -- 'DependencyInfo' structures, defining the second- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>.+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>. ("dependencyInfos" ::: Vector DependencyInfo) -> io () cmdWaitEvents2 = cmdWaitEvents2SafeOrUnsafe mkVkCmdWaitEvents2Unsafe@@ -726,7 +735,7 @@ ("events" ::: Vector Event) -> -- | @pDependencyInfos@ is a pointer to an array of @eventCount@ -- 'DependencyInfo' structures, defining the second- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>.+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>. ("dependencyInfos" ::: Vector DependencyInfo) -> io () cmdWaitEvents2Safe = cmdWaitEvents2SafeOrUnsafe mkVkCmdWaitEvents2Safe@@ -748,24 +757,24 @@ -- submitted after it. -- -- The first--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope> -- and--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-access-scopes access scope>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-access-scopes access scope> -- of each memory dependency defined by @pDependencyInfo@ are applied to -- operations that occurred earlier in--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-submission-order submission order>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-submission-order submission order>. -- -- The second--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope> -- and--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-access-scopes access scope>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-access-scopes access scope> -- of each memory dependency defined by @pDependencyInfo@ are applied to -- operations that occurred later in--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-submission-order submission order>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-submission-order submission order>. -- -- If 'cmdPipelineBarrier2' is recorded within a render pass instance, the -- synchronization scopes are--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-barriers-subpass-self-dependencies limited to operations within the same subpass>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-barriers-subpass-self-dependencies limited to operations within the same subpass>. -- -- == Valid Usage --@@ -811,7 +820,7 @@ -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' -- -- - #VUID-vkCmdPipelineBarrier2-synchronization2-03848# The--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-synchronization2 synchronization2>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-synchronization2 synchronization2> -- feature /must/ be enabled -- -- - #VUID-vkCmdPipelineBarrier2-srcStageMask-03849# The @srcStageMask@@@ -843,8 +852,8 @@ -- -- - #VUID-vkCmdPipelineBarrier2-commandBuffer-cmdpool# The -- 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was--- allocated from /must/ support transfer, graphics, or compute--- operations+-- allocated from /must/ support transfer, graphics, compute, decode,+-- or encode operations -- -- == Host Synchronization --@@ -857,13 +866,15 @@ -- -- \' ----- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | Primary | Both | Transfer |--- | Secondary | | Graphics |--- | | | Compute |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================++-- | Primary | Both | Both | Transfer |+-- | Secondary | | | Graphics |+-- | | | | Compute |+-- | | | | Decode |+-- | | | | Encode |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+ -- -- = See Also --@@ -901,30 +912,30 @@ -- = Description -- -- 'queueSubmit2' is a--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#devsandqueues-submission queue submission command>,+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#devsandqueues-submission queue submission command>, -- with each batch defined by an element of @pSubmits@. -- -- Semaphore operations submitted with 'queueSubmit2' have additional -- ordering constraints compared to other submission commands, with -- dependencies involving previous and subsequent queue operations. -- Information about these additional constraints can be found in the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-semaphores semaphore>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-semaphores semaphore> -- section of--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization the synchronization chapter>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization the synchronization chapter>. -- -- If any command buffer submitted to this queue is in the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-lifecycle executable state>,+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-lifecycle executable state>, -- it is moved to the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-lifecycle pending state>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-lifecycle pending state>. -- Once execution of all submissions of a command buffer complete, it moves -- from the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-lifecycle pending state>,+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-lifecycle pending state>, -- back to the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-lifecycle executable state>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-lifecycle executable state>. -- If a command buffer was recorded with the -- 'Vulkan.Core10.Enums.CommandBufferUsageFlagBits.COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT' -- flag, it instead moves back to the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-lifecycle invalid state>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-lifecycle invalid state>. -- -- If 'queueSubmit2' fails, it /may/ return -- 'Vulkan.Core10.Enums.Result.ERROR_OUT_OF_HOST_MEMORY' or@@ -936,7 +947,7 @@ -- way that the implementation is unable to make that guarantee, the -- implementation /must/ return -- 'Vulkan.Core10.Enums.Result.ERROR_DEVICE_LOST'. See--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#devsandqueues-lost-device Lost Device>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#devsandqueues-lost-device Lost Device>. -- -- == Valid Usage --@@ -950,7 +961,7 @@ -- execution on that queue -- -- - #VUID-vkQueueSubmit2-synchronization2-03866# The--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-synchronization2 synchronization2>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-synchronization2 synchronization2> -- feature /must/ be enabled -- -- - #VUID-vkQueueSubmit2-commandBuffer-03867# If a command recorded into@@ -984,7 +995,7 @@ -- - #VUID-vkQueueSubmit2-semaphore-03872# The @semaphore@ member of any -- element of the @pWaitSemaphoreInfos@ member of any element of -- @pSubmits@ /must/ be semaphores that are signaled, or have--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-semaphores-signaling semaphore signal operations>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-semaphores-signaling semaphore signal operations> -- previously submitted for execution -- -- - #VUID-vkQueueSubmit2-semaphore-03873# Any @semaphore@ member of any@@ -999,7 +1010,7 @@ -- - #VUID-vkQueueSubmit2-commandBuffer-03874# The @commandBuffer@ member -- of any element of the @pCommandBufferInfos@ member of any element of -- @pSubmits@ /must/ be in the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-lifecycle pending or executable state>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-lifecycle pending or executable state> -- -- - #VUID-vkQueueSubmit2-commandBuffer-03875# If a command recorded into -- the @commandBuffer@ member of any element of the@@ -1007,23 +1018,23 @@ -- recorded with the -- 'Vulkan.Core10.Enums.CommandBufferUsageFlagBits.COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT', -- it /must/ not be in the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-lifecycle pending state>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-lifecycle pending state> -- -- - #VUID-vkQueueSubmit2-commandBuffer-03876# Any--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-secondary secondary command buffers recorded>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-secondary secondary command buffers recorded> -- into the @commandBuffer@ member of any element of the -- @pCommandBufferInfos@ member of any element of @pSubmits@ /must/ be -- in the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-lifecycle pending or executable state>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-lifecycle pending or executable state> -- -- - #VUID-vkQueueSubmit2-commandBuffer-03877# If any--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-secondary secondary command buffers recorded>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-secondary secondary command buffers recorded> -- into the @commandBuffer@ member of any element of the -- @pCommandBufferInfos@ member of any element of @pSubmits@ was not -- recorded with the -- 'Vulkan.Core10.Enums.CommandBufferUsageFlagBits.COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT', -- it /must/ not be in the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-lifecycle pending state>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-lifecycle pending state> -- -- - #VUID-vkQueueSubmit2-commandBuffer-03878# The @commandBuffer@ member -- of any element of the @pCommandBufferInfos@ member of any element of@@ -1034,13 +1045,13 @@ -- - #VUID-vkQueueSubmit2-commandBuffer-03879# If a command recorded into -- the @commandBuffer@ member of any element of the -- @pCommandBufferInfos@ member of any element of @pSubmits@ includes a--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-queue-transfers-acquire Queue Family Transfer Acquire Operation>,+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-queue-transfers-acquire Queue Family Transfer Acquire Operation>, -- there /must/ exist a previously submitted--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-queue-transfers-release Queue Family Transfer Release Operation>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-queue-transfers-release Queue Family Transfer Release Operation> -- on a queue in the queue family identified by the acquire operation, -- with parameters matching the acquire operation as defined in the -- definition of such--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-queue-transfers-acquire acquire operations>,+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-queue-transfers-acquire acquire operations>, -- and which happens before the acquire operation -- -- - #VUID-vkQueueSubmit2-commandBuffer-03880# If a command recorded into@@ -1050,7 +1061,7 @@ -- @queryPool@ was created with a @queryType@ of -- 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PERFORMANCE_QUERY_KHR', -- the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#profiling-lock profiling lock>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#profiling-lock profiling lock> -- /must/ have been held continuously on the -- 'Vulkan.Core10.Handles.Device' that @queue@ was retrieved from, -- throughout recording of those command buffers@@ -1088,11 +1099,11 @@ -- -- \' ----- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | - | - | Any |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================++-- | - | - | - | Any |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+ -- -- == Return Codes --@@ -1124,7 +1135,7 @@ -> -- | @fence@ is an /optional/ handle to a fence to be signaled once all -- submitted command buffers have completed execution. If @fence@ is not -- 'Vulkan.Core10.APIConstants.NULL_HANDLE', it defines a- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-fences-signaling fence signal operation>.+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-fences-signaling fence signal operation>. Fence -> io () queueSubmit2 queue submits fence = liftIO . evalContT $ do@@ -1154,14 +1165,14 @@ -- writes a timestamp to a query pool. -- -- The first--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope> -- includes all commands that occur earlier in--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-submission-order submission order>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-submission-order submission order>. -- The synchronization scope is limited to operations on the pipeline stage -- specified by @stage@. -- -- The second--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope> -- includes only the timestamp write operation. -- -- When the timestamp value is written, the availability status of the@@ -1170,7 +1181,7 @@ -- Note -- -- If an implementation is unable to detect completion and latch the timer--- at any specific stage of the pipeline, it /may/ instead do so at any+-- immediately after @stage@ has completed, it /may/ instead do so at any -- logically later stage. -- -- Comparisons between timestamps are not meaningful if the timestamps are@@ -1206,59 +1217,59 @@ -- == Valid Usage -- -- - #VUID-vkCmdWriteTimestamp2-stage-03929# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryShader geometry shaders>+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryShader geometryShader> -- feature is not enabled, @stage@ /must/ not contain -- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT' -- -- - #VUID-vkCmdWriteTimestamp2-stage-03930# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShader tessellation shaders>+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShader tessellationShader> -- feature is not enabled, @stage@ /must/ not contain -- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT' -- or -- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT' -- -- - #VUID-vkCmdWriteTimestamp2-stage-03931# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-conditionalRendering conditional rendering>+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-conditionalRendering conditionalRendering> -- feature is not enabled, @stage@ /must/ not contain -- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT' -- -- - #VUID-vkCmdWriteTimestamp2-stage-03932# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-fragmentDensityMap fragment density map>+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-fragmentDensityMap fragmentDensityMap> -- feature is not enabled, @stage@ /must/ not contain -- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT' -- -- - #VUID-vkCmdWriteTimestamp2-stage-03933# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-transformFeedback transform feedback>+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-transformFeedback transformFeedback> -- feature is not enabled, @stage@ /must/ not contain -- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT' -- -- - #VUID-vkCmdWriteTimestamp2-stage-03934# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader mesh shaders>+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader> -- feature is not enabled, @stage@ /must/ not contain--- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_MESH_SHADER_BIT_NV'+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_MESH_SHADER_BIT_EXT' -- -- - #VUID-vkCmdWriteTimestamp2-stage-03935# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader task shaders>+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader> -- feature is not enabled, @stage@ /must/ not contain--- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TASK_SHADER_BIT_NV'+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TASK_SHADER_BIT_EXT' -- -- - #VUID-vkCmdWriteTimestamp2-stage-04956# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shading rate image>+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage> -- feature is not enabled, @stage@ /must/ not contain -- 'Vulkan.Extensions.VK_KHR_synchronization2.PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV' -- -- - #VUID-vkCmdWriteTimestamp2-stage-04957# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-subpassShading subpass shading>+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-subpassShading subpassShading> -- feature is not enabled, @stage@ /must/ not contain -- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI' -- -- - #VUID-vkCmdWriteTimestamp2-stage-04995# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-invocationMask invocation mask image>+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-invocationMask invocationMask> -- feature is not enabled, @stage@ /must/ not contain -- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI' -- -- - #VUID-vkCmdWriteTimestamp2-synchronization2-03858# The--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-synchronization2 synchronization2>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-synchronization2 synchronization2> -- feature /must/ be enabled -- -- - #VUID-vkCmdWriteTimestamp2-stage-03859# @stage@ /must/ only include@@ -1326,15 +1337,15 @@ -- -- \' ----- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | Primary | Both | Transfer |--- | Secondary | | Graphics |--- | | | Compute |--- | | | Decode |--- | | | Encode |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================++-- | Primary | Both | Both | Transfer |+-- | Secondary | | | Graphics |+-- | | | | Compute |+-- | | | | Decode |+-- | | | | Encode |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+ -- -- = See Also --@@ -1370,74 +1381,74 @@ -- = Description -- -- This structure defines a--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-memory memory dependency>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-memory memory dependency> -- affecting all device memory. -- -- The first--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope> -- and--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-access-scopes access scope>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-access-scopes access scope> -- described by this structure include only operations and memory accesses -- specified by @srcStageMask@ and @srcAccessMask@. -- -- The second--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope> -- and--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-access-scopes access scope>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-access-scopes access scope> -- described by this structure include only operations and memory accesses -- specified by @dstStageMask@ and @dstAccessMask@. -- -- == Valid Usage -- -- - #VUID-VkMemoryBarrier2-srcStageMask-03929# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryShader geometry shaders>+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryShader geometryShader> -- feature is not enabled, @srcStageMask@ /must/ not contain -- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT' -- -- - #VUID-VkMemoryBarrier2-srcStageMask-03930# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShader tessellation shaders>+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShader tessellationShader> -- feature is not enabled, @srcStageMask@ /must/ not contain -- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT' -- or -- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT' -- -- - #VUID-VkMemoryBarrier2-srcStageMask-03931# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-conditionalRendering conditional rendering>+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-conditionalRendering conditionalRendering> -- feature is not enabled, @srcStageMask@ /must/ not contain -- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT' -- -- - #VUID-VkMemoryBarrier2-srcStageMask-03932# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-fragmentDensityMap fragment density map>+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-fragmentDensityMap fragmentDensityMap> -- feature is not enabled, @srcStageMask@ /must/ not contain -- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT' -- -- - #VUID-VkMemoryBarrier2-srcStageMask-03933# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-transformFeedback transform feedback>+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-transformFeedback transformFeedback> -- feature is not enabled, @srcStageMask@ /must/ not contain -- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT' -- -- - #VUID-VkMemoryBarrier2-srcStageMask-03934# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader mesh shaders>+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader> -- feature is not enabled, @srcStageMask@ /must/ not contain--- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_MESH_SHADER_BIT_NV'+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_MESH_SHADER_BIT_EXT' -- -- - #VUID-VkMemoryBarrier2-srcStageMask-03935# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader task shaders>+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader> -- feature is not enabled, @srcStageMask@ /must/ not contain--- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TASK_SHADER_BIT_NV'+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TASK_SHADER_BIT_EXT' -- -- - #VUID-VkMemoryBarrier2-srcStageMask-04956# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shading rate image>+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage> -- feature is not enabled, @srcStageMask@ /must/ not contain -- 'Vulkan.Extensions.VK_KHR_synchronization2.PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV' -- -- - #VUID-VkMemoryBarrier2-srcStageMask-04957# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-subpassShading subpass shading>+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-subpassShading subpassShading> -- feature is not enabled, @srcStageMask@ /must/ not contain -- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI' -- -- - #VUID-VkMemoryBarrier2-srcStageMask-04995# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-invocationMask invocation mask image>+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-invocationMask invocationMask> -- feature is not enabled, @srcStageMask@ /must/ not contain -- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI' --@@ -1704,63 +1715,79 @@ -- or -- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT' ----- - #VUID-VkMemoryBarrier2-srcAccessMask-06256# If+-- - #VUID-VkMemoryBarrier2-srcAccessMask-06256# If the -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-rayQuery rayQuery>--- is not enabled and @srcAccessMask@ includes+-- feature is not enabled and @srcAccessMask@ includes -- 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR', -- @srcStageMask@ /must/ not include any of the -- @VK_PIPELINE_STAGE_*_SHADER_BIT@ stages except -- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR' --+-- - #VUID-VkMemoryBarrier2-srcAccessMask-04858# If @srcAccessMask@+-- includes @VK_ACCESS_2_VIDEO_DECODE_READ_BIT_KHR@, @srcStageMask@+-- /must/ include @VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR@+--+-- - #VUID-VkMemoryBarrier2-srcAccessMask-04859# If @srcAccessMask@+-- includes @VK_ACCESS_2_VIDEO_DECODE_WRITE_BIT_KHR@, @srcStageMask@+-- /must/ include @VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR@+--+-- - #VUID-VkMemoryBarrier2-srcAccessMask-04860# If @srcAccessMask@+-- includes @VK_ACCESS_2_VIDEO_ENCODE_READ_BIT_KHR@, @srcStageMask@+-- /must/ include @VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR@+--+-- - #VUID-VkMemoryBarrier2-srcAccessMask-04861# If @srcAccessMask@+-- includes @VK_ACCESS_2_VIDEO_ENCODE_WRITE_BIT_KHR@, @srcStageMask@+-- /must/ include @VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR@+-- -- - #VUID-VkMemoryBarrier2-dstStageMask-03929# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryShader geometry shaders>+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryShader geometryShader> -- feature is not enabled, @dstStageMask@ /must/ not contain -- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT' -- -- - #VUID-VkMemoryBarrier2-dstStageMask-03930# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShader tessellation shaders>+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShader tessellationShader> -- feature is not enabled, @dstStageMask@ /must/ not contain -- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT' -- or -- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT' -- -- - #VUID-VkMemoryBarrier2-dstStageMask-03931# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-conditionalRendering conditional rendering>+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-conditionalRendering conditionalRendering> -- feature is not enabled, @dstStageMask@ /must/ not contain -- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT' -- -- - #VUID-VkMemoryBarrier2-dstStageMask-03932# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-fragmentDensityMap fragment density map>+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-fragmentDensityMap fragmentDensityMap> -- feature is not enabled, @dstStageMask@ /must/ not contain -- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT' -- -- - #VUID-VkMemoryBarrier2-dstStageMask-03933# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-transformFeedback transform feedback>+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-transformFeedback transformFeedback> -- feature is not enabled, @dstStageMask@ /must/ not contain -- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT' -- -- - #VUID-VkMemoryBarrier2-dstStageMask-03934# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader mesh shaders>+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader> -- feature is not enabled, @dstStageMask@ /must/ not contain--- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_MESH_SHADER_BIT_NV'+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_MESH_SHADER_BIT_EXT' -- -- - #VUID-VkMemoryBarrier2-dstStageMask-03935# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader task shaders>+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader> -- feature is not enabled, @dstStageMask@ /must/ not contain--- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TASK_SHADER_BIT_NV'+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TASK_SHADER_BIT_EXT' -- -- - #VUID-VkMemoryBarrier2-dstStageMask-04956# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shading rate image>+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage> -- feature is not enabled, @dstStageMask@ /must/ not contain -- 'Vulkan.Extensions.VK_KHR_synchronization2.PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV' -- -- - #VUID-VkMemoryBarrier2-dstStageMask-04957# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-subpassShading subpass shading>+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-subpassShading subpassShading> -- feature is not enabled, @dstStageMask@ /must/ not contain -- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI' -- -- - #VUID-VkMemoryBarrier2-dstStageMask-04995# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-invocationMask invocation mask image>+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-invocationMask invocationMask> -- feature is not enabled, @dstStageMask@ /must/ not contain -- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI' --@@ -2027,14 +2054,30 @@ -- or -- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT' ----- - #VUID-VkMemoryBarrier2-dstAccessMask-06256# If+-- - #VUID-VkMemoryBarrier2-dstAccessMask-06256# If the -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-rayQuery rayQuery>--- is not enabled and @dstAccessMask@ includes+-- feature is not enabled and @dstAccessMask@ includes -- 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR', -- @dstStageMask@ /must/ not include any of the -- @VK_PIPELINE_STAGE_*_SHADER_BIT@ stages except -- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR' --+-- - #VUID-VkMemoryBarrier2-dstAccessMask-04858# If @dstAccessMask@+-- includes @VK_ACCESS_2_VIDEO_DECODE_READ_BIT_KHR@, @dstStageMask@+-- /must/ include @VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR@+--+-- - #VUID-VkMemoryBarrier2-dstAccessMask-04859# If @dstAccessMask@+-- includes @VK_ACCESS_2_VIDEO_DECODE_WRITE_BIT_KHR@, @dstStageMask@+-- /must/ include @VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR@+--+-- - #VUID-VkMemoryBarrier2-dstAccessMask-04860# If @dstAccessMask@+-- includes @VK_ACCESS_2_VIDEO_ENCODE_READ_BIT_KHR@, @dstStageMask@+-- /must/ include @VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR@+--+-- - #VUID-VkMemoryBarrier2-dstAccessMask-04861# If @dstAccessMask@+-- includes @VK_ACCESS_2_VIDEO_ENCODE_WRITE_BIT_KHR@, @dstStageMask@+-- /must/ include @VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR@+-- -- == Valid Usage (Implicit) -- -- - #VUID-VkMemoryBarrier2-sType-sType# @sType@ /must/ be@@ -2069,20 +2112,20 @@ { -- | @srcStageMask@ is a -- 'Vulkan.Core13.Enums.PipelineStageFlags2.PipelineStageFlags2' mask of -- pipeline stages to be included in the- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopes first synchronization scope>.+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopes first synchronization scope>. srcStageMask :: PipelineStageFlags2 , -- | @srcAccessMask@ is a 'Vulkan.Core13.Enums.AccessFlags2.AccessFlags2' -- mask of access flags to be included in the- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-access-scopes first access scope>.+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-access-scopes first access scope>. srcAccessMask :: AccessFlags2 , -- | @dstStageMask@ is a -- 'Vulkan.Core13.Enums.PipelineStageFlags2.PipelineStageFlags2' mask of -- pipeline stages to be included in the- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopes second synchronization scope>.+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopes second synchronization scope>. dstStageMask :: PipelineStageFlags2 , -- | @dstAccessMask@ is a 'Vulkan.Core13.Enums.AccessFlags2.AccessFlags2' -- mask of access flags to be included in the- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-access-scopes second access scope>.+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-access-scopes second access scope>. dstAccessMask :: AccessFlags2 } deriving (Typeable, Eq)@@ -2136,29 +2179,29 @@ -- = Description -- -- This structure defines a--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-memory memory dependency>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-memory memory dependency> -- limited to an image subresource range, and /can/ define a--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-queue-transfers queue family transfer operation>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-queue-transfers queue family transfer operation> -- and--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-image-layout-transitions image layout transition>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-image-layout-transitions image layout transition> -- for that subresource range. -- -- The first--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope> -- and--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-access-scopes access scope>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-access-scopes access scope> -- described by this structure include only operations and memory accesses -- specified by @srcStageMask@ and @srcAccessMask@. -- -- The second--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope> -- and--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-access-scopes access scope>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-access-scopes access scope> -- described by this structure include only operations and memory accesses -- specified by @dstStageMask@ and @dstAccessMask@. -- -- Both--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-access-scopes access scopes>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-access-scopes access scopes> -- are limited to only memory accesses to @image@ in the subresource range -- defined by @subresourceRange@. --@@ -2166,36 +2209,36 @@ -- 'Vulkan.Core10.Enums.SharingMode.SHARING_MODE_EXCLUSIVE', and -- @srcQueueFamilyIndex@ is not equal to @dstQueueFamilyIndex@, this memory -- barrier defines a--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-queue-transfers queue family transfer operation>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-queue-transfers queue family transfer operation>. -- When executed on a queue in the family identified by -- @srcQueueFamilyIndex@, this barrier defines a--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-queue-transfers-release queue family release operation>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-queue-transfers-release queue family release operation> -- for the specified image subresource range, and the second -- synchronization and access scopes do not synchronize operations on that -- queue. When executed on a queue in the family identified by -- @dstQueueFamilyIndex@, this barrier defines a--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-queue-transfers-acquire queue family acquire operation>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-queue-transfers-acquire queue family acquire operation> -- for the specified image subresource range, and the first synchronization -- and access scopes do not synchronize operations on that queue. -- -- A--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-queue-transfers queue family transfer operation>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-queue-transfers queue family transfer operation> -- is also defined if the values are not equal, and either is one of the -- special queue family values reserved for external memory ownership -- transfers, as described in--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-queue-transfers>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-queue-transfers>. -- A--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-queue-transfers-release queue family release operation>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-queue-transfers-release queue family release operation> -- is defined when @dstQueueFamilyIndex@ is one of those values, and a--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-queue-transfers-acquire queue family acquire operation>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-queue-transfers-acquire queue family acquire operation> -- is defined when @srcQueueFamilyIndex@ is one of those values. -- -- If @oldLayout@ is not equal to @newLayout@, then the memory barrier -- defines an--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-image-layout-transitions image layout transition>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-image-layout-transitions image layout transition> -- for the specified image subresource range. If this memory barrier -- defines a--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-queue-transfers queue family transfer operation>,+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-queue-transfers queue family transfer operation>, -- the layout transition is only executed once between the queues. -- -- Note@@ -2216,54 +2259,54 @@ -- == Valid Usage -- -- - #VUID-VkImageMemoryBarrier2-srcStageMask-03929# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryShader geometry shaders>+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryShader geometryShader> -- feature is not enabled, @srcStageMask@ /must/ not contain -- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT' -- -- - #VUID-VkImageMemoryBarrier2-srcStageMask-03930# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShader tessellation shaders>+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShader tessellationShader> -- feature is not enabled, @srcStageMask@ /must/ not contain -- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT' -- or -- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT' -- -- - #VUID-VkImageMemoryBarrier2-srcStageMask-03931# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-conditionalRendering conditional rendering>+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-conditionalRendering conditionalRendering> -- feature is not enabled, @srcStageMask@ /must/ not contain -- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT' -- -- - #VUID-VkImageMemoryBarrier2-srcStageMask-03932# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-fragmentDensityMap fragment density map>+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-fragmentDensityMap fragmentDensityMap> -- feature is not enabled, @srcStageMask@ /must/ not contain -- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT' -- -- - #VUID-VkImageMemoryBarrier2-srcStageMask-03933# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-transformFeedback transform feedback>+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-transformFeedback transformFeedback> -- feature is not enabled, @srcStageMask@ /must/ not contain -- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT' -- -- - #VUID-VkImageMemoryBarrier2-srcStageMask-03934# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader mesh shaders>+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader> -- feature is not enabled, @srcStageMask@ /must/ not contain--- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_MESH_SHADER_BIT_NV'+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_MESH_SHADER_BIT_EXT' -- -- - #VUID-VkImageMemoryBarrier2-srcStageMask-03935# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader task shaders>+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader> -- feature is not enabled, @srcStageMask@ /must/ not contain--- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TASK_SHADER_BIT_NV'+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TASK_SHADER_BIT_EXT' -- -- - #VUID-VkImageMemoryBarrier2-srcStageMask-04956# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shading rate image>+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage> -- feature is not enabled, @srcStageMask@ /must/ not contain -- 'Vulkan.Extensions.VK_KHR_synchronization2.PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV' -- -- - #VUID-VkImageMemoryBarrier2-srcStageMask-04957# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-subpassShading subpass shading>+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-subpassShading subpassShading> -- feature is not enabled, @srcStageMask@ /must/ not contain -- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI' -- -- - #VUID-VkImageMemoryBarrier2-srcStageMask-04995# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-invocationMask invocation mask image>+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-invocationMask invocationMask> -- feature is not enabled, @srcStageMask@ /must/ not contain -- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI' --@@ -2530,63 +2573,79 @@ -- or -- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT' ----- - #VUID-VkImageMemoryBarrier2-srcAccessMask-06256# If+-- - #VUID-VkImageMemoryBarrier2-srcAccessMask-06256# If the -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-rayQuery rayQuery>--- is not enabled and @srcAccessMask@ includes+-- feature is not enabled and @srcAccessMask@ includes -- 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR', -- @srcStageMask@ /must/ not include any of the -- @VK_PIPELINE_STAGE_*_SHADER_BIT@ stages except -- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR' --+-- - #VUID-VkImageMemoryBarrier2-srcAccessMask-04858# If @srcAccessMask@+-- includes @VK_ACCESS_2_VIDEO_DECODE_READ_BIT_KHR@, @srcStageMask@+-- /must/ include @VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR@+--+-- - #VUID-VkImageMemoryBarrier2-srcAccessMask-04859# If @srcAccessMask@+-- includes @VK_ACCESS_2_VIDEO_DECODE_WRITE_BIT_KHR@, @srcStageMask@+-- /must/ include @VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR@+--+-- - #VUID-VkImageMemoryBarrier2-srcAccessMask-04860# If @srcAccessMask@+-- includes @VK_ACCESS_2_VIDEO_ENCODE_READ_BIT_KHR@, @srcStageMask@+-- /must/ include @VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR@+--+-- - #VUID-VkImageMemoryBarrier2-srcAccessMask-04861# If @srcAccessMask@+-- includes @VK_ACCESS_2_VIDEO_ENCODE_WRITE_BIT_KHR@, @srcStageMask@+-- /must/ include @VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR@+-- -- - #VUID-VkImageMemoryBarrier2-dstStageMask-03929# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryShader geometry shaders>+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryShader geometryShader> -- feature is not enabled, @dstStageMask@ /must/ not contain -- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT' -- -- - #VUID-VkImageMemoryBarrier2-dstStageMask-03930# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShader tessellation shaders>+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShader tessellationShader> -- feature is not enabled, @dstStageMask@ /must/ not contain -- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT' -- or -- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT' -- -- - #VUID-VkImageMemoryBarrier2-dstStageMask-03931# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-conditionalRendering conditional rendering>+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-conditionalRendering conditionalRendering> -- feature is not enabled, @dstStageMask@ /must/ not contain -- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT' -- -- - #VUID-VkImageMemoryBarrier2-dstStageMask-03932# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-fragmentDensityMap fragment density map>+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-fragmentDensityMap fragmentDensityMap> -- feature is not enabled, @dstStageMask@ /must/ not contain -- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT' -- -- - #VUID-VkImageMemoryBarrier2-dstStageMask-03933# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-transformFeedback transform feedback>+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-transformFeedback transformFeedback> -- feature is not enabled, @dstStageMask@ /must/ not contain -- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT' -- -- - #VUID-VkImageMemoryBarrier2-dstStageMask-03934# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader mesh shaders>+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader> -- feature is not enabled, @dstStageMask@ /must/ not contain--- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_MESH_SHADER_BIT_NV'+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_MESH_SHADER_BIT_EXT' -- -- - #VUID-VkImageMemoryBarrier2-dstStageMask-03935# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader task shaders>+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader> -- feature is not enabled, @dstStageMask@ /must/ not contain--- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TASK_SHADER_BIT_NV'+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TASK_SHADER_BIT_EXT' -- -- - #VUID-VkImageMemoryBarrier2-dstStageMask-04956# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shading rate image>+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage> -- feature is not enabled, @dstStageMask@ /must/ not contain -- 'Vulkan.Extensions.VK_KHR_synchronization2.PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV' -- -- - #VUID-VkImageMemoryBarrier2-dstStageMask-04957# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-subpassShading subpass shading>+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-subpassShading subpassShading> -- feature is not enabled, @dstStageMask@ /must/ not contain -- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI' -- -- - #VUID-VkImageMemoryBarrier2-dstStageMask-04995# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-invocationMask invocation mask image>+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-invocationMask invocationMask> -- feature is not enabled, @dstStageMask@ /must/ not contain -- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI' --@@ -2853,14 +2912,30 @@ -- or -- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT' ----- - #VUID-VkImageMemoryBarrier2-dstAccessMask-06256# If+-- - #VUID-VkImageMemoryBarrier2-dstAccessMask-06256# If the -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-rayQuery rayQuery>--- is not enabled and @dstAccessMask@ includes+-- feature is not enabled and @dstAccessMask@ includes -- 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR', -- @dstStageMask@ /must/ not include any of the -- @VK_PIPELINE_STAGE_*_SHADER_BIT@ stages except -- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR' --+-- - #VUID-VkImageMemoryBarrier2-dstAccessMask-04858# If @dstAccessMask@+-- includes @VK_ACCESS_2_VIDEO_DECODE_READ_BIT_KHR@, @dstStageMask@+-- /must/ include @VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR@+--+-- - #VUID-VkImageMemoryBarrier2-dstAccessMask-04859# If @dstAccessMask@+-- includes @VK_ACCESS_2_VIDEO_DECODE_WRITE_BIT_KHR@, @dstStageMask@+-- /must/ include @VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR@+--+-- - #VUID-VkImageMemoryBarrier2-dstAccessMask-04860# If @dstAccessMask@+-- includes @VK_ACCESS_2_VIDEO_ENCODE_READ_BIT_KHR@, @dstStageMask@+-- /must/ include @VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR@+--+-- - #VUID-VkImageMemoryBarrier2-dstAccessMask-04861# If @dstAccessMask@+-- includes @VK_ACCESS_2_VIDEO_ENCODE_WRITE_BIT_KHR@, @dstStageMask@+-- /must/ include @VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR@+-- -- - #VUID-VkImageMemoryBarrier2-subresourceRange-01486# -- @subresourceRange.baseMipLevel@ /must/ be less than the @mipLevels@ -- specified in 'Vulkan.Core10.Image.ImageCreateInfo' when @image@ was@@ -3034,6 +3109,13 @@ -- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT' -- set --+-- - #VUID-VkImageMemoryBarrier2-synchronization2-06911# If the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-synchronization2 synchronization2>+-- feature is not enabled, @layout@ /must/ not be+-- 'Vulkan.Extensions.VK_KHR_synchronization2.IMAGE_LAYOUT_ATTACHMENT_OPTIMAL_KHR'+-- or+-- 'Vulkan.Extensions.VK_KHR_synchronization2.IMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR'+-- -- - #VUID-VkImageMemoryBarrier2-srcQueueFamilyIndex-03938# If -- @srcQueueFamilyIndex@ and @dstQueueFamilyIndex@ define a -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-queue-transfers queue family ownership transfer>@@ -3130,6 +3212,24 @@ -- for external memory transfers, as described in -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-queue-transfers ???> --+-- - #VUID-VkImageMemoryBarrier2-srcQueueFamilyIndex-07006# If+-- @srcQueueFamilyIndex@ and @dstQueueFamilyIndex@ define a+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-queue-transfers queue family ownership transfer>+-- or @oldLayout@ and @newLayout@ define an+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-image-layout-transitions image layout transition>,+-- and @oldLayout@ or @newLayout@ is+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT'+-- then @image@ /must/ have been created with either the+-- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_COLOR_ATTACHMENT_BIT'+-- or+-- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT'+-- usage bits, and the+-- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_INPUT_ATTACHMENT_BIT'+-- or 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_SAMPLED_BIT'+-- usage bits, and the+-- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT'+-- usage bit.+-- -- - #VUID-VkImageMemoryBarrier2-srcStageMask-03854# If either -- @srcStageMask@ or @dstStageMask@ includes -- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_HOST_BIT',@@ -3139,9 +3239,9 @@ -- includes -- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_HOST_BIT', -- and @srcQueueFamilyIndex@ and @dstQueueFamilyIndex@ define a--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-queue-transfers queue family ownership transfer>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-queue-transfers queue family ownership transfer> -- or @oldLayout@ and @newLayout@ define an--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-image-layout-transitions image layout transition>,+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-image-layout-transitions image layout transition>, -- @oldLayout@ /must/ be one of -- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_PREINITIALIZED', -- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_UNDEFINED', or@@ -3206,37 +3306,37 @@ , -- | @srcStageMask@ is a -- 'Vulkan.Core13.Enums.PipelineStageFlags2.PipelineStageFlags2' mask of -- pipeline stages to be included in the- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopes first synchronization scope>.+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopes first synchronization scope>. srcStageMask :: PipelineStageFlags2 , -- | @srcAccessMask@ is a 'Vulkan.Core13.Enums.AccessFlags2.AccessFlags2' -- mask of access flags to be included in the- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-access-scopes first access scope>.+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-access-scopes first access scope>. srcAccessMask :: AccessFlags2 , -- | @dstStageMask@ is a -- 'Vulkan.Core13.Enums.PipelineStageFlags2.PipelineStageFlags2' mask of -- pipeline stages to be included in the- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopes second synchronization scope>.+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopes second synchronization scope>. dstStageMask :: PipelineStageFlags2 , -- | @dstAccessMask@ is a 'Vulkan.Core13.Enums.AccessFlags2.AccessFlags2' -- mask of access flags to be included in the- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-access-scopes second access scope>.+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-access-scopes second access scope>. dstAccessMask :: AccessFlags2 , -- | @oldLayout@ is the old layout in an- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-image-layout-transitions image layout transition>.+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-image-layout-transitions image layout transition>. oldLayout :: ImageLayout , -- | @newLayout@ is the new layout in an- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-image-layout-transitions image layout transition>.+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-image-layout-transitions image layout transition>. newLayout :: ImageLayout , -- | @srcQueueFamilyIndex@ is the source queue family for a- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-queue-transfers queue family ownership transfer>.+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-queue-transfers queue family ownership transfer>. srcQueueFamilyIndex :: Word32 , -- | @dstQueueFamilyIndex@ is the destination queue family for a- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-queue-transfers queue family ownership transfer>.+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-queue-transfers queue family ownership transfer>. dstQueueFamilyIndex :: Word32 , -- | @image@ is a handle to the image affected by this barrier. image :: Image , -- | @subresourceRange@ describes the- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-views image subresource range>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-views image subresource range> -- within @image@ that is affected by this barrier. subresourceRange :: ImageSubresourceRange }@@ -3323,27 +3423,27 @@ -- = Description -- -- This structure defines a--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-memory memory dependency>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-memory memory dependency> -- limited to a range of a buffer, and /can/ define a--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-queue-transfers queue family transfer operation>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-queue-transfers queue family transfer operation> -- for that range. -- -- The first--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope> -- and--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-access-scopes access scope>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-access-scopes access scope> -- described by this structure include only operations and memory accesses -- specified by @srcStageMask@ and @srcAccessMask@. -- -- The second--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope> -- and--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-access-scopes access scope>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-access-scopes access scope> -- described by this structure include only operations and memory accesses -- specified by @dstStageMask@ and @dstAccessMask@. -- -- Both--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-access-scopes access scopes>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-access-scopes access scopes> -- are limited to only memory accesses to @buffer@ in the range defined by -- @offset@ and @size@. --@@ -3351,81 +3451,81 @@ -- 'Vulkan.Core10.Enums.SharingMode.SHARING_MODE_EXCLUSIVE', and -- @srcQueueFamilyIndex@ is not equal to @dstQueueFamilyIndex@, this memory -- barrier defines a--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-queue-transfers queue family transfer operation>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-queue-transfers queue family transfer operation>. -- When executed on a queue in the family identified by -- @srcQueueFamilyIndex@, this barrier defines a--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-queue-transfers-release queue family release operation>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-queue-transfers-release queue family release operation> -- for the specified buffer range, and the second synchronization and -- access scopes do not synchronize operations on that queue. When executed -- on a queue in the family identified by @dstQueueFamilyIndex@, this -- barrier defines a--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-queue-transfers-acquire queue family acquire operation>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-queue-transfers-acquire queue family acquire operation> -- for the specified buffer range, and the first synchronization and access -- scopes do not synchronize operations on that queue. -- -- A--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-queue-transfers queue family transfer operation>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-queue-transfers queue family transfer operation> -- is also defined if the values are not equal, and either is one of the -- special queue family values reserved for external memory ownership -- transfers, as described in--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-queue-transfers>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-queue-transfers>. -- A--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-queue-transfers-release queue family release operation>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-queue-transfers-release queue family release operation> -- is defined when @dstQueueFamilyIndex@ is one of those values, and a--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-queue-transfers-acquire queue family acquire operation>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-queue-transfers-acquire queue family acquire operation> -- is defined when @srcQueueFamilyIndex@ is one of those values. -- -- == Valid Usage -- -- - #VUID-VkBufferMemoryBarrier2-srcStageMask-03929# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryShader geometry shaders>+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryShader geometryShader> -- feature is not enabled, @srcStageMask@ /must/ not contain -- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT' -- -- - #VUID-VkBufferMemoryBarrier2-srcStageMask-03930# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShader tessellation shaders>+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShader tessellationShader> -- feature is not enabled, @srcStageMask@ /must/ not contain -- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT' -- or -- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT' -- -- - #VUID-VkBufferMemoryBarrier2-srcStageMask-03931# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-conditionalRendering conditional rendering>+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-conditionalRendering conditionalRendering> -- feature is not enabled, @srcStageMask@ /must/ not contain -- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT' -- -- - #VUID-VkBufferMemoryBarrier2-srcStageMask-03932# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-fragmentDensityMap fragment density map>+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-fragmentDensityMap fragmentDensityMap> -- feature is not enabled, @srcStageMask@ /must/ not contain -- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT' -- -- - #VUID-VkBufferMemoryBarrier2-srcStageMask-03933# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-transformFeedback transform feedback>+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-transformFeedback transformFeedback> -- feature is not enabled, @srcStageMask@ /must/ not contain -- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT' -- -- - #VUID-VkBufferMemoryBarrier2-srcStageMask-03934# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader mesh shaders>+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader> -- feature is not enabled, @srcStageMask@ /must/ not contain--- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_MESH_SHADER_BIT_NV'+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_MESH_SHADER_BIT_EXT' -- -- - #VUID-VkBufferMemoryBarrier2-srcStageMask-03935# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader task shaders>+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader> -- feature is not enabled, @srcStageMask@ /must/ not contain--- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TASK_SHADER_BIT_NV'+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TASK_SHADER_BIT_EXT' -- -- - #VUID-VkBufferMemoryBarrier2-srcStageMask-04956# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shading rate image>+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage> -- feature is not enabled, @srcStageMask@ /must/ not contain -- 'Vulkan.Extensions.VK_KHR_synchronization2.PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV' -- -- - #VUID-VkBufferMemoryBarrier2-srcStageMask-04957# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-subpassShading subpass shading>+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-subpassShading subpassShading> -- feature is not enabled, @srcStageMask@ /must/ not contain -- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI' -- -- - #VUID-VkBufferMemoryBarrier2-srcStageMask-04995# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-invocationMask invocation mask image>+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-invocationMask invocationMask> -- feature is not enabled, @srcStageMask@ /must/ not contain -- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI' --@@ -3692,63 +3792,79 @@ -- or -- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT' ----- - #VUID-VkBufferMemoryBarrier2-srcAccessMask-06256# If+-- - #VUID-VkBufferMemoryBarrier2-srcAccessMask-06256# If the -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-rayQuery rayQuery>--- is not enabled and @srcAccessMask@ includes+-- feature is not enabled and @srcAccessMask@ includes -- 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR', -- @srcStageMask@ /must/ not include any of the -- @VK_PIPELINE_STAGE_*_SHADER_BIT@ stages except -- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR' --+-- - #VUID-VkBufferMemoryBarrier2-srcAccessMask-04858# If @srcAccessMask@+-- includes @VK_ACCESS_2_VIDEO_DECODE_READ_BIT_KHR@, @srcStageMask@+-- /must/ include @VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR@+--+-- - #VUID-VkBufferMemoryBarrier2-srcAccessMask-04859# If @srcAccessMask@+-- includes @VK_ACCESS_2_VIDEO_DECODE_WRITE_BIT_KHR@, @srcStageMask@+-- /must/ include @VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR@+--+-- - #VUID-VkBufferMemoryBarrier2-srcAccessMask-04860# If @srcAccessMask@+-- includes @VK_ACCESS_2_VIDEO_ENCODE_READ_BIT_KHR@, @srcStageMask@+-- /must/ include @VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR@+--+-- - #VUID-VkBufferMemoryBarrier2-srcAccessMask-04861# If @srcAccessMask@+-- includes @VK_ACCESS_2_VIDEO_ENCODE_WRITE_BIT_KHR@, @srcStageMask@+-- /must/ include @VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR@+-- -- - #VUID-VkBufferMemoryBarrier2-dstStageMask-03929# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryShader geometry shaders>+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryShader geometryShader> -- feature is not enabled, @dstStageMask@ /must/ not contain -- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT' -- -- - #VUID-VkBufferMemoryBarrier2-dstStageMask-03930# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShader tessellation shaders>+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShader tessellationShader> -- feature is not enabled, @dstStageMask@ /must/ not contain -- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT' -- or -- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT' -- -- - #VUID-VkBufferMemoryBarrier2-dstStageMask-03931# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-conditionalRendering conditional rendering>+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-conditionalRendering conditionalRendering> -- feature is not enabled, @dstStageMask@ /must/ not contain -- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT' -- -- - #VUID-VkBufferMemoryBarrier2-dstStageMask-03932# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-fragmentDensityMap fragment density map>+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-fragmentDensityMap fragmentDensityMap> -- feature is not enabled, @dstStageMask@ /must/ not contain -- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT' -- -- - #VUID-VkBufferMemoryBarrier2-dstStageMask-03933# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-transformFeedback transform feedback>+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-transformFeedback transformFeedback> -- feature is not enabled, @dstStageMask@ /must/ not contain -- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT' -- -- - #VUID-VkBufferMemoryBarrier2-dstStageMask-03934# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader mesh shaders>+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader> -- feature is not enabled, @dstStageMask@ /must/ not contain--- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_MESH_SHADER_BIT_NV'+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_MESH_SHADER_BIT_EXT' -- -- - #VUID-VkBufferMemoryBarrier2-dstStageMask-03935# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader task shaders>+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader> -- feature is not enabled, @dstStageMask@ /must/ not contain--- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TASK_SHADER_BIT_NV'+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TASK_SHADER_BIT_EXT' -- -- - #VUID-VkBufferMemoryBarrier2-dstStageMask-04956# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shading rate image>+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage> -- feature is not enabled, @dstStageMask@ /must/ not contain -- 'Vulkan.Extensions.VK_KHR_synchronization2.PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV' -- -- - #VUID-VkBufferMemoryBarrier2-dstStageMask-04957# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-subpassShading subpass shading>+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-subpassShading subpassShading> -- feature is not enabled, @dstStageMask@ /must/ not contain -- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI' -- -- - #VUID-VkBufferMemoryBarrier2-dstStageMask-04995# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-invocationMask invocation mask image>+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-invocationMask invocationMask> -- feature is not enabled, @dstStageMask@ /must/ not contain -- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI' --@@ -4015,14 +4131,30 @@ -- or -- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT' ----- - #VUID-VkBufferMemoryBarrier2-dstAccessMask-06256# If+-- - #VUID-VkBufferMemoryBarrier2-dstAccessMask-06256# If the -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-rayQuery rayQuery>--- is not enabled and @dstAccessMask@ includes+-- feature is not enabled and @dstAccessMask@ includes -- 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR', -- @dstStageMask@ /must/ not include any of the -- @VK_PIPELINE_STAGE_*_SHADER_BIT@ stages except -- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR' --+-- - #VUID-VkBufferMemoryBarrier2-dstAccessMask-04858# If @dstAccessMask@+-- includes @VK_ACCESS_2_VIDEO_DECODE_READ_BIT_KHR@, @dstStageMask@+-- /must/ include @VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR@+--+-- - #VUID-VkBufferMemoryBarrier2-dstAccessMask-04859# If @dstAccessMask@+-- includes @VK_ACCESS_2_VIDEO_DECODE_WRITE_BIT_KHR@, @dstStageMask@+-- /must/ include @VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR@+--+-- - #VUID-VkBufferMemoryBarrier2-dstAccessMask-04860# If @dstAccessMask@+-- includes @VK_ACCESS_2_VIDEO_ENCODE_READ_BIT_KHR@, @dstStageMask@+-- /must/ include @VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR@+--+-- - #VUID-VkBufferMemoryBarrier2-dstAccessMask-04861# If @dstAccessMask@+-- includes @VK_ACCESS_2_VIDEO_ENCODE_WRITE_BIT_KHR@, @dstStageMask@+-- /must/ include @VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR@+-- -- - #VUID-VkBufferMemoryBarrier2-offset-01187# @offset@ /must/ be less -- than the size of @buffer@ --@@ -4108,26 +4240,26 @@ { -- | @srcStageMask@ is a -- 'Vulkan.Core13.Enums.PipelineStageFlags2.PipelineStageFlags2' mask of -- pipeline stages to be included in the- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopes first synchronization scope>.+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopes first synchronization scope>. srcStageMask :: PipelineStageFlags2 , -- | @srcAccessMask@ is a 'Vulkan.Core13.Enums.AccessFlags2.AccessFlags2' -- mask of access flags to be included in the- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-access-scopes first access scope>.+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-access-scopes first access scope>. srcAccessMask :: AccessFlags2 , -- | @dstStageMask@ is a -- 'Vulkan.Core13.Enums.PipelineStageFlags2.PipelineStageFlags2' mask of -- pipeline stages to be included in the- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopes second synchronization scope>.+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopes second synchronization scope>. dstStageMask :: PipelineStageFlags2 , -- | @dstAccessMask@ is a 'Vulkan.Core13.Enums.AccessFlags2.AccessFlags2' -- mask of access flags to be included in the- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-access-scopes second access scope>.+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-access-scopes second access scope>. dstAccessMask :: AccessFlags2 , -- | @srcQueueFamilyIndex@ is the source queue family for a- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-queue-transfers queue family ownership transfer>.+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-queue-transfers queue family ownership transfer>. srcQueueFamilyIndex :: Word32 , -- | @dstQueueFamilyIndex@ is the destination queue family for a- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-queue-transfers queue family ownership transfer>.+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-queue-transfers queue family ownership transfer>. dstQueueFamilyIndex :: Word32 , -- | @buffer@ is a handle to the buffer whose backing memory is affected by -- the barrier.@@ -4213,15 +4345,15 @@ -- = Description -- -- This structure defines a set of--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-memory memory dependencies>,+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-memory memory dependencies>, -- as well as--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-queue-transfers queue family transfer operations>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-queue-transfers queue family transfer operations> -- and--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-image-layout-transitions image layout transitions>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-image-layout-transitions image layout transitions>. -- -- Each member of @pMemoryBarriers@, @pBufferMemoryBarriers@, and -- @pImageMemoryBarriers@ defines a separate--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-memory memory dependency>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-memory memory dependency>. -- -- == Valid Usage (Implicit) --@@ -4345,54 +4477,54 @@ -- == Valid Usage -- -- - #VUID-VkSemaphoreSubmitInfo-stageMask-03929# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryShader geometry shaders>+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryShader geometryShader> -- feature is not enabled, @stageMask@ /must/ not contain -- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT' -- -- - #VUID-VkSemaphoreSubmitInfo-stageMask-03930# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShader tessellation shaders>+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShader tessellationShader> -- feature is not enabled, @stageMask@ /must/ not contain -- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT' -- or -- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT' -- -- - #VUID-VkSemaphoreSubmitInfo-stageMask-03931# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-conditionalRendering conditional rendering>+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-conditionalRendering conditionalRendering> -- feature is not enabled, @stageMask@ /must/ not contain -- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT' -- -- - #VUID-VkSemaphoreSubmitInfo-stageMask-03932# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-fragmentDensityMap fragment density map>+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-fragmentDensityMap fragmentDensityMap> -- feature is not enabled, @stageMask@ /must/ not contain -- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT' -- -- - #VUID-VkSemaphoreSubmitInfo-stageMask-03933# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-transformFeedback transform feedback>+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-transformFeedback transformFeedback> -- feature is not enabled, @stageMask@ /must/ not contain -- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT' -- -- - #VUID-VkSemaphoreSubmitInfo-stageMask-03934# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader mesh shaders>+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader> -- feature is not enabled, @stageMask@ /must/ not contain--- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_MESH_SHADER_BIT_NV'+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_MESH_SHADER_BIT_EXT' -- -- - #VUID-VkSemaphoreSubmitInfo-stageMask-03935# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader task shaders>+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader> -- feature is not enabled, @stageMask@ /must/ not contain--- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TASK_SHADER_BIT_NV'+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TASK_SHADER_BIT_EXT' -- -- - #VUID-VkSemaphoreSubmitInfo-stageMask-04956# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shading rate image>+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage> -- feature is not enabled, @stageMask@ /must/ not contain -- 'Vulkan.Extensions.VK_KHR_synchronization2.PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV' -- -- - #VUID-VkSemaphoreSubmitInfo-stageMask-04957# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-subpassShading subpass shading>+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-subpassShading subpassShading> -- feature is not enabled, @stageMask@ /must/ not contain -- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI' -- -- - #VUID-VkSemaphoreSubmitInfo-stageMask-04995# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-invocationMask invocation mask image>+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-invocationMask invocationMask> -- feature is not enabled, @stageMask@ /must/ not contain -- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI' --@@ -4439,11 +4571,11 @@ -- pipeline stages which limit the first synchronization scope of a -- semaphore signal operation, or second synchronization scope of a -- semaphore wait operation as described in the- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-semaphores-waiting semaphore wait operation>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-semaphores-waiting semaphore wait operation> -- and- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-semaphores-signaling semaphore signal operation>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-semaphores-signaling semaphore signal operation> -- sections of- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization the synchronization chapter>.+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization the synchronization chapter>. stageMask :: PipelineStageFlags2 , -- | @deviceIndex@ is the index of the device within a device group that -- executes the semaphore wait or signal operation.@@ -4594,7 +4726,7 @@ -- any element of @pSignalSemaphoreInfos@ is a timeline semaphore, the -- @value@ member of that element /must/ have a value greater than the -- current value of the semaphore when the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-semaphores-signaling semaphore signal operation>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-semaphores-signaling semaphore signal operation> -- is executed -- -- - #VUID-VkSubmitInfo2-semaphore-03883# If the @semaphore@ member of@@ -4603,7 +4735,7 @@ -- differ from the current value of the semaphore or the value of any -- outstanding semaphore wait or signal operation on that semaphore by -- more than--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxTimelineSemaphoreValueDifference maxTimelineSemaphoreValueDifference>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxTimelineSemaphoreValueDifference maxTimelineSemaphoreValueDifference> -- -- - #VUID-VkSubmitInfo2-semaphore-03884# If the @semaphore@ member of -- any element of @pWaitSemaphoreInfos@ is a timeline semaphore, the@@ -4611,7 +4743,7 @@ -- differ from the current value of the semaphore or the value of any -- outstanding semaphore wait or signal operation on that semaphore by -- more than--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxTimelineSemaphoreValueDifference maxTimelineSemaphoreValueDifference>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxTimelineSemaphoreValueDifference maxTimelineSemaphoreValueDifference> -- -- - #VUID-VkSubmitInfo2-flags-03886# If @flags@ includes -- 'Vulkan.Core13.Enums.SubmitFlagBits.SUBMIT_PROTECTED_BIT', all@@ -4624,33 +4756,33 @@ -- -- - #VUID-VkSubmitInfo2KHR-commandBuffer-06192# If any @commandBuffer@ -- member of an element of @pCommandBufferInfos@ contains any--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-suspension resumed render pass instances>,+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-suspension resumed render pass instances>, -- they /must/ be suspended by a render pass instance earlier in -- submission order within @pCommandBufferInfos@ -- -- - #VUID-VkSubmitInfo2KHR-commandBuffer-06010# If any @commandBuffer@ -- member of an element of @pCommandBufferInfos@ contains any--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-suspension suspended render pass instances>,+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-suspension suspended render pass instances>, -- they /must/ be resumed by a render pass instance later in submission -- order within @pCommandBufferInfos@ -- -- - #VUID-VkSubmitInfo2KHR-commandBuffer-06011# If any @commandBuffer@ -- member of an element of @pCommandBufferInfos@ contains any--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-suspension suspended render pass instances>,+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-suspension suspended render pass instances>, -- there /must/ be no action or synchronization commands between that -- render pass instance and the render pass instance that resumes it -- -- - #VUID-VkSubmitInfo2KHR-commandBuffer-06012# If any @commandBuffer@ -- member of an element of @pCommandBufferInfos@ contains any--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-suspension suspended render pass instances>,+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-suspension suspended render pass instances>, -- there /must/ be no render pass instances between that render pass -- instance and the render pass instance that resumes it -- -- - #VUID-VkSubmitInfo2KHR-variableSampleLocations-06013# If the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-variableSampleLocations variableSampleLocations>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-variableSampleLocations variableSampleLocations> -- limit is not supported, and any @commandBuffer@ member of an element -- of @pCommandBufferInfos@ contains any--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-suspension suspended render pass instances>,+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-suspension suspended render pass instances>, -- where a graphics pipeline has been bound, any pipelines bound in the -- render pass instance that resumes it, or any subsequent render pass -- instances that resume from that one and so on, /must/ use the same@@ -4707,7 +4839,7 @@ flags :: SubmitFlags , -- | @pWaitSemaphoreInfos@ is a pointer to an array of 'SemaphoreSubmitInfo' -- structures defining- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-semaphores-waiting semaphore wait operations>.+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-semaphores-waiting semaphore wait operations>. waitSemaphoreInfos :: Vector SemaphoreSubmitInfo , -- | @pCommandBufferInfos@ is a pointer to an array of -- 'CommandBufferSubmitInfo' structures describing command buffers to@@ -4715,7 +4847,7 @@ commandBufferInfos :: Vector CommandBufferSubmitInfo , -- | @pSignalSemaphoreInfos@ is a pointer to an array of -- 'SemaphoreSubmitInfo' describing- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-semaphores-signaling semaphore signal operations>.+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-semaphores-signaling semaphore signal operations>. signalSemaphoreInfos :: Vector SemaphoreSubmitInfo } deriving (Typeable)
src/Vulkan/Dynamic.hs view
@@ -44,6 +44,7 @@ import {-# SOURCE #-} Vulkan.Core10.AllocationCallbacks (AllocationCallbacks) import {-# SOURCE #-} Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer (AndroidHardwareBufferPropertiesANDROID) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_android_surface (AndroidSurfaceCreateInfoKHR)+import {-# SOURCE #-} Vulkan.CStruct.Extends (BaseOutStructure) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_ray_tracing (BindAccelerationStructureMemoryInfoNV) import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_bind_memory2 (BindBufferMemoryInfo) import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_bind_memory2 (BindImageMemoryInfo)@@ -160,6 +161,7 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_display (DisplaySurfaceCreateInfoKHR) import {-# SOURCE #-} Vulkan.Core10.Handles (Event) import {-# SOURCE #-} Vulkan.Core10.Event (EventCreateInfo)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_metal_objects (ExportMetalObjectsInfoEXT) import {-# SOURCE #-} Vulkan.Core10.ExtensionDiscovery (ExtensionProperties) import {-# SOURCE #-} Vulkan.Core10.FundamentalTypes (Extent2D) import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_external_memory_capabilities (ExternalBufferProperties)@@ -206,6 +208,7 @@ import {-# SOURCE #-} Vulkan.Core10.CommandBufferBuilding (ImageResolve) import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_get_memory_requirements2 (ImageSparseMemoryRequirementsInfo2) import {-# SOURCE #-} Vulkan.Core10.SparseResourceMemoryManagement (ImageSubresource)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_image_compression_control (ImageSubresource2EXT) import {-# SOURCE #-} Vulkan.Core10.ImageView (ImageSubresourceRange) import {-# SOURCE #-} Vulkan.Core10.Enums.ImageTiling (ImageTiling) import {-# SOURCE #-} Vulkan.Core10.Enums.ImageType (ImageType)@@ -284,6 +287,7 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_pipeline_executable_properties (PipelineExecutableInternalRepresentationKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_pipeline_executable_properties (PipelineExecutablePropertiesKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_pipeline_executable_properties (PipelineExecutableStatisticKHR)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_pipeline_properties (PipelineInfoEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_pipeline_executable_properties (PipelineInfoKHR) import {-# SOURCE #-} Vulkan.Core10.Handles (PipelineLayout) import {-# SOURCE #-} Vulkan.Core10.PipelineLayout (PipelineLayoutCreateInfo)@@ -336,6 +340,7 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_AMD_shader_info (ShaderInfoTypeAMD) import {-# SOURCE #-} Vulkan.Core10.Handles (ShaderModule) import {-# SOURCE #-} Vulkan.Core10.Shader (ShaderModuleCreateInfo)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_shader_module_identifier (ShaderModuleIdentifierEXT) import {-# SOURCE #-} Vulkan.Core10.Enums.ShaderStageFlagBits (ShaderStageFlagBits) import {-# SOURCE #-} Vulkan.Core10.Enums.ShaderStageFlagBits (ShaderStageFlags) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_shading_rate_image (ShadingRatePaletteNV)@@ -354,6 +359,7 @@ import {-# SOURCE #-} Vulkan.Core10.Enums.SubpassContents (SubpassContents) import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_create_renderpass2 (SubpassEndInfo) import {-# SOURCE #-} Vulkan.Core10.Image (SubresourceLayout)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_image_compression_control (SubresourceLayout2EXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_display_surface_counter (SurfaceCapabilities2EXT) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_get_surface_capabilities2 (SurfaceCapabilities2KHR) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_surface (SurfaceCapabilitiesKHR)@@ -363,6 +369,7 @@ import {-# SOURCE #-} Vulkan.Extensions.Handles (SurfaceKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_swapchain (SwapchainCreateInfoKHR) import {-# SOURCE #-} Vulkan.Extensions.Handles (SwapchainKHR)+import {-# SOURCE #-} Vulkan.Extensions.VK_QCOM_tile_properties (TilePropertiesQCOM) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_calibrated_timestamps (TimeDomainEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_validation_cache (ValidationCacheCreateInfoEXT) import {-# SOURCE #-} Vulkan.Extensions.Handles (ValidationCacheEXT)@@ -451,7 +458,7 @@ , pVkCreateMetalSurfaceEXT :: FunPtr (Ptr Instance_T -> ("pCreateInfo" ::: Ptr MetalSurfaceCreateInfoEXT) -> ("pAllocator" ::: Ptr AllocationCallbacks) -> ("pSurface" ::: Ptr SurfaceKHR) -> IO Result) , pVkGetPhysicalDeviceMultisamplePropertiesEXT :: FunPtr (Ptr PhysicalDevice_T -> ("samples" ::: SampleCountFlagBits) -> ("pMultisampleProperties" ::: Ptr MultisamplePropertiesEXT) -> IO ()) , pVkGetPhysicalDeviceSurfaceCapabilities2KHR :: FunPtr (Ptr PhysicalDevice_T -> ("pSurfaceInfo" ::: Ptr (SomeStruct PhysicalDeviceSurfaceInfo2KHR)) -> ("pSurfaceCapabilities" ::: Ptr (SomeStruct SurfaceCapabilities2KHR)) -> IO Result)- , pVkGetPhysicalDeviceSurfaceFormats2KHR :: FunPtr (Ptr PhysicalDevice_T -> ("pSurfaceInfo" ::: Ptr (SomeStruct PhysicalDeviceSurfaceInfo2KHR)) -> ("pSurfaceFormatCount" ::: Ptr Word32) -> ("pSurfaceFormats" ::: Ptr SurfaceFormat2KHR) -> IO Result)+ , pVkGetPhysicalDeviceSurfaceFormats2KHR :: FunPtr (Ptr PhysicalDevice_T -> ("pSurfaceInfo" ::: Ptr (SomeStruct PhysicalDeviceSurfaceInfo2KHR)) -> ("pSurfaceFormatCount" ::: Ptr Word32) -> ("pSurfaceFormats" ::: Ptr (SomeStruct SurfaceFormat2KHR)) -> IO Result) , pVkGetPhysicalDeviceDisplayProperties2KHR :: FunPtr (Ptr PhysicalDevice_T -> ("pPropertyCount" ::: Ptr Word32) -> ("pProperties" ::: Ptr DisplayProperties2KHR) -> IO Result) , pVkGetPhysicalDeviceDisplayPlaneProperties2KHR :: FunPtr (Ptr PhysicalDevice_T -> ("pPropertyCount" ::: Ptr Word32) -> ("pProperties" ::: Ptr DisplayPlaneProperties2KHR) -> IO Result) , pVkGetDisplayModeProperties2KHR :: FunPtr (Ptr PhysicalDevice_T -> DisplayKHR -> ("pPropertyCount" ::: Ptr Word32) -> ("pProperties" ::: Ptr DisplayModeProperties2KHR) -> IO Result)@@ -661,7 +668,7 @@ (castFunPtr @_ @(Ptr Instance_T -> ("pCreateInfo" ::: Ptr MetalSurfaceCreateInfoEXT) -> ("pAllocator" ::: Ptr AllocationCallbacks) -> ("pSurface" ::: Ptr SurfaceKHR) -> IO Result) vkCreateMetalSurfaceEXT) (castFunPtr @_ @(Ptr PhysicalDevice_T -> ("samples" ::: SampleCountFlagBits) -> ("pMultisampleProperties" ::: Ptr MultisamplePropertiesEXT) -> IO ()) vkGetPhysicalDeviceMultisamplePropertiesEXT) (castFunPtr @_ @(Ptr PhysicalDevice_T -> ("pSurfaceInfo" ::: Ptr (SomeStruct PhysicalDeviceSurfaceInfo2KHR)) -> ("pSurfaceCapabilities" ::: Ptr (SomeStruct SurfaceCapabilities2KHR)) -> IO Result) vkGetPhysicalDeviceSurfaceCapabilities2KHR)- (castFunPtr @_ @(Ptr PhysicalDevice_T -> ("pSurfaceInfo" ::: Ptr (SomeStruct PhysicalDeviceSurfaceInfo2KHR)) -> ("pSurfaceFormatCount" ::: Ptr Word32) -> ("pSurfaceFormats" ::: Ptr SurfaceFormat2KHR) -> IO Result) vkGetPhysicalDeviceSurfaceFormats2KHR)+ (castFunPtr @_ @(Ptr PhysicalDevice_T -> ("pSurfaceInfo" ::: Ptr (SomeStruct PhysicalDeviceSurfaceInfo2KHR)) -> ("pSurfaceFormatCount" ::: Ptr Word32) -> ("pSurfaceFormats" ::: Ptr (SomeStruct SurfaceFormat2KHR)) -> IO Result) vkGetPhysicalDeviceSurfaceFormats2KHR) (castFunPtr @_ @(Ptr PhysicalDevice_T -> ("pPropertyCount" ::: Ptr Word32) -> ("pProperties" ::: Ptr DisplayProperties2KHR) -> IO Result) vkGetPhysicalDeviceDisplayProperties2KHR) (castFunPtr @_ @(Ptr PhysicalDevice_T -> ("pPropertyCount" ::: Ptr Word32) -> ("pProperties" ::: Ptr DisplayPlaneProperties2KHR) -> IO Result) vkGetPhysicalDeviceDisplayPlaneProperties2KHR) (castFunPtr @_ @(Ptr PhysicalDevice_T -> DisplayKHR -> ("pPropertyCount" ::: Ptr Word32) -> ("pProperties" ::: Ptr DisplayModeProperties2KHR) -> IO Result) vkGetDisplayModeProperties2KHR)@@ -709,7 +716,7 @@ , pVkWaitForFences :: FunPtr (Ptr Device_T -> ("fenceCount" ::: Word32) -> ("pFences" ::: Ptr Fence) -> ("waitAll" ::: Bool32) -> ("timeout" ::: Word64) -> IO Result) , pVkCreateSemaphore :: FunPtr (Ptr Device_T -> ("pCreateInfo" ::: Ptr (SomeStruct SemaphoreCreateInfo)) -> ("pAllocator" ::: Ptr AllocationCallbacks) -> ("pSemaphore" ::: Ptr Semaphore) -> IO Result) , pVkDestroySemaphore :: FunPtr (Ptr Device_T -> Semaphore -> ("pAllocator" ::: Ptr AllocationCallbacks) -> IO ())- , pVkCreateEvent :: FunPtr (Ptr Device_T -> ("pCreateInfo" ::: Ptr EventCreateInfo) -> ("pAllocator" ::: Ptr AllocationCallbacks) -> ("pEvent" ::: Ptr Event) -> IO Result)+ , pVkCreateEvent :: FunPtr (Ptr Device_T -> ("pCreateInfo" ::: Ptr (SomeStruct EventCreateInfo)) -> ("pAllocator" ::: Ptr AllocationCallbacks) -> ("pEvent" ::: Ptr Event) -> IO Result) , pVkDestroyEvent :: FunPtr (Ptr Device_T -> Event -> ("pAllocator" ::: Ptr AllocationCallbacks) -> IO ()) , pVkGetEventStatus :: FunPtr (Ptr Device_T -> Event -> IO Result) , pVkSetEvent :: FunPtr (Ptr Device_T -> Event -> IO Result)@@ -720,7 +727,7 @@ , pVkResetQueryPool :: FunPtr (Ptr Device_T -> QueryPool -> ("firstQuery" ::: Word32) -> ("queryCount" ::: Word32) -> IO ()) , pVkCreateBuffer :: FunPtr (Ptr Device_T -> ("pCreateInfo" ::: Ptr (SomeStruct BufferCreateInfo)) -> ("pAllocator" ::: Ptr AllocationCallbacks) -> ("pBuffer" ::: Ptr Buffer) -> IO Result) , pVkDestroyBuffer :: FunPtr (Ptr Device_T -> Buffer -> ("pAllocator" ::: Ptr AllocationCallbacks) -> IO ())- , pVkCreateBufferView :: FunPtr (Ptr Device_T -> ("pCreateInfo" ::: Ptr BufferViewCreateInfo) -> ("pAllocator" ::: Ptr AllocationCallbacks) -> ("pView" ::: Ptr BufferView) -> IO Result)+ , pVkCreateBufferView :: FunPtr (Ptr Device_T -> ("pCreateInfo" ::: Ptr (SomeStruct BufferViewCreateInfo)) -> ("pAllocator" ::: Ptr AllocationCallbacks) -> ("pView" ::: Ptr BufferView) -> IO Result) , pVkDestroyBufferView :: FunPtr (Ptr Device_T -> BufferView -> ("pAllocator" ::: Ptr AllocationCallbacks) -> IO ()) , pVkCreateImage :: FunPtr (Ptr Device_T -> ("pCreateInfo" ::: Ptr (SomeStruct ImageCreateInfo)) -> ("pAllocator" ::: Ptr AllocationCallbacks) -> ("pImage" ::: Ptr Image) -> IO Result) , pVkDestroyImage :: FunPtr (Ptr Device_T -> Image -> ("pAllocator" ::: Ptr AllocationCallbacks) -> IO ())@@ -924,6 +931,9 @@ , pVkCmdDrawMeshTasksNV :: FunPtr (Ptr CommandBuffer_T -> ("taskCount" ::: Word32) -> ("firstTask" ::: Word32) -> IO ()) , pVkCmdDrawMeshTasksIndirectNV :: FunPtr (Ptr CommandBuffer_T -> Buffer -> ("offset" ::: DeviceSize) -> ("drawCount" ::: Word32) -> ("stride" ::: Word32) -> IO ()) , pVkCmdDrawMeshTasksIndirectCountNV :: FunPtr (Ptr CommandBuffer_T -> Buffer -> ("offset" ::: DeviceSize) -> ("countBuffer" ::: Buffer) -> ("countBufferOffset" ::: DeviceSize) -> ("maxDrawCount" ::: Word32) -> ("stride" ::: Word32) -> IO ())+ , pVkCmdDrawMeshTasksEXT :: FunPtr (Ptr CommandBuffer_T -> ("groupCountX" ::: Word32) -> ("groupCountY" ::: Word32) -> ("groupCountZ" ::: Word32) -> IO ())+ , pVkCmdDrawMeshTasksIndirectEXT :: FunPtr (Ptr CommandBuffer_T -> Buffer -> ("offset" ::: DeviceSize) -> ("drawCount" ::: Word32) -> ("stride" ::: Word32) -> IO ())+ , pVkCmdDrawMeshTasksIndirectCountEXT :: FunPtr (Ptr CommandBuffer_T -> Buffer -> ("offset" ::: DeviceSize) -> ("countBuffer" ::: Buffer) -> ("countBufferOffset" ::: DeviceSize) -> ("maxDrawCount" ::: Word32) -> ("stride" ::: Word32) -> IO ()) , pVkCompileDeferredNV :: FunPtr (Ptr Device_T -> Pipeline -> ("shader" ::: Word32) -> IO Result) , pVkCreateAccelerationStructureNV :: FunPtr (Ptr Device_T -> ("pCreateInfo" ::: Ptr AccelerationStructureCreateInfoNV) -> ("pAllocator" ::: Ptr AllocationCallbacks) -> ("pAccelerationStructure" ::: Ptr AccelerationStructureNV) -> IO Result) , pVkCmdBindInvocationMaskHUAWEI :: FunPtr (Ptr CommandBuffer_T -> ImageView -> ImageLayout -> IO ())@@ -950,6 +960,7 @@ , pVkCreateRayTracingPipelinesNV :: FunPtr (Ptr Device_T -> PipelineCache -> ("createInfoCount" ::: Word32) -> ("pCreateInfos" ::: Ptr (SomeStruct RayTracingPipelineCreateInfoNV)) -> ("pAllocator" ::: Ptr AllocationCallbacks) -> ("pPipelines" ::: Ptr Pipeline) -> IO Result) , pVkCreateRayTracingPipelinesKHR :: FunPtr (Ptr Device_T -> DeferredOperationKHR -> PipelineCache -> ("createInfoCount" ::: Word32) -> ("pCreateInfos" ::: Ptr (SomeStruct RayTracingPipelineCreateInfoKHR)) -> ("pAllocator" ::: Ptr AllocationCallbacks) -> ("pPipelines" ::: Ptr Pipeline) -> IO Result) , pVkCmdTraceRaysIndirectKHR :: FunPtr (Ptr CommandBuffer_T -> ("pRaygenShaderBindingTable" ::: Ptr StridedDeviceAddressRegionKHR) -> ("pMissShaderBindingTable" ::: Ptr StridedDeviceAddressRegionKHR) -> ("pHitShaderBindingTable" ::: Ptr StridedDeviceAddressRegionKHR) -> ("pCallableShaderBindingTable" ::: Ptr StridedDeviceAddressRegionKHR) -> ("indirectDeviceAddress" ::: DeviceAddress) -> IO ())+ , pVkCmdTraceRaysIndirect2KHR :: FunPtr (Ptr CommandBuffer_T -> ("indirectDeviceAddress" ::: DeviceAddress) -> IO ()) , pVkGetDeviceAccelerationStructureCompatibilityKHR :: FunPtr (Ptr Device_T -> ("pVersionInfo" ::: Ptr AccelerationStructureVersionInfoKHR) -> ("pCompatibility" ::: Ptr AccelerationStructureCompatibilityKHR) -> IO ()) , pVkGetRayTracingShaderGroupStackSizeKHR :: FunPtr (Ptr Device_T -> Pipeline -> ("group" ::: Word32) -> ShaderGroupShaderKHR -> IO DeviceSize) , pVkCmdSetRayTracingPipelineStackSizeKHR :: FunPtr (Ptr CommandBuffer_T -> ("pipelineStackSize" ::: Word32) -> IO ())@@ -1043,6 +1054,13 @@ , pVkCmdEndRendering :: FunPtr (Ptr CommandBuffer_T -> IO ()) , pVkGetDescriptorSetLayoutHostMappingInfoVALVE :: FunPtr (Ptr Device_T -> ("pBindingReference" ::: Ptr DescriptorSetBindingReferenceVALVE) -> ("pHostMapping" ::: Ptr DescriptorSetLayoutHostMappingInfoVALVE) -> IO ()) , pVkGetDescriptorSetHostMappingVALVE :: FunPtr (Ptr Device_T -> DescriptorSet -> ("ppData" ::: Ptr (Ptr ())) -> IO ())+ , pVkGetShaderModuleIdentifierEXT :: FunPtr (Ptr Device_T -> ShaderModule -> ("pIdentifier" ::: Ptr ShaderModuleIdentifierEXT) -> IO ())+ , pVkGetShaderModuleCreateInfoIdentifierEXT :: FunPtr (Ptr Device_T -> ("pCreateInfo" ::: Ptr (SomeStruct ShaderModuleCreateInfo)) -> ("pIdentifier" ::: Ptr ShaderModuleIdentifierEXT) -> IO ())+ , pVkGetImageSubresourceLayout2EXT :: FunPtr (Ptr Device_T -> Image -> ("pSubresource" ::: Ptr ImageSubresource2EXT) -> ("pLayout" ::: Ptr (SomeStruct SubresourceLayout2EXT)) -> IO ())+ , pVkGetPipelinePropertiesEXT :: FunPtr (Ptr Device_T -> ("pPipelineInfo" ::: Ptr PipelineInfoEXT) -> ("pPipelineProperties" ::: Ptr BaseOutStructure) -> IO Result)+ , pVkExportMetalObjectsEXT :: FunPtr (Ptr Device_T -> ("pMetalObjectsInfo" ::: Ptr (SomeStruct ExportMetalObjectsInfoEXT)) -> IO ())+ , pVkGetFramebufferTilePropertiesQCOM :: FunPtr (Ptr Device_T -> Framebuffer -> ("pPropertiesCount" ::: Ptr Word32) -> ("pProperties" ::: Ptr TilePropertiesQCOM) -> IO Result)+ , pVkGetDynamicRenderingTilePropertiesQCOM :: FunPtr (Ptr Device_T -> ("pRenderingInfo" ::: Ptr (SomeStruct RenderingInfo)) -> ("pProperties" ::: Ptr TilePropertiesQCOM) -> IO Result) } deriving instance Eq DeviceCmds@@ -1094,7 +1112,8 @@ nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr- nullFunPtr+ nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr+ nullFunPtr nullFunPtr nullFunPtr nullFunPtr foreign import ccall #if !defined(SAFE_FOREIGN_CALLS)@@ -1356,6 +1375,9 @@ vkCmdDrawMeshTasksNV <- getDeviceProcAddr' handle (Ptr "vkCmdDrawMeshTasksNV"#) vkCmdDrawMeshTasksIndirectNV <- getDeviceProcAddr' handle (Ptr "vkCmdDrawMeshTasksIndirectNV"#) vkCmdDrawMeshTasksIndirectCountNV <- getDeviceProcAddr' handle (Ptr "vkCmdDrawMeshTasksIndirectCountNV"#)+ vkCmdDrawMeshTasksEXT <- getDeviceProcAddr' handle (Ptr "vkCmdDrawMeshTasksEXT"#)+ vkCmdDrawMeshTasksIndirectEXT <- getDeviceProcAddr' handle (Ptr "vkCmdDrawMeshTasksIndirectEXT"#)+ vkCmdDrawMeshTasksIndirectCountEXT <- getDeviceProcAddr' handle (Ptr "vkCmdDrawMeshTasksIndirectCountEXT"#) vkCompileDeferredNV <- getDeviceProcAddr' handle (Ptr "vkCompileDeferredNV"#) vkCreateAccelerationStructureNV <- getDeviceProcAddr' handle (Ptr "vkCreateAccelerationStructureNV"#) vkCmdBindInvocationMaskHUAWEI <- getDeviceProcAddr' handle (Ptr "vkCmdBindInvocationMaskHUAWEI"#)@@ -1382,6 +1404,7 @@ vkCreateRayTracingPipelinesNV <- getDeviceProcAddr' handle (Ptr "vkCreateRayTracingPipelinesNV"#) vkCreateRayTracingPipelinesKHR <- getDeviceProcAddr' handle (Ptr "vkCreateRayTracingPipelinesKHR"#) vkCmdTraceRaysIndirectKHR <- getDeviceProcAddr' handle (Ptr "vkCmdTraceRaysIndirectKHR"#)+ vkCmdTraceRaysIndirect2KHR <- getDeviceProcAddr' handle (Ptr "vkCmdTraceRaysIndirect2KHR"#) vkGetDeviceAccelerationStructureCompatibilityKHR <- getDeviceProcAddr' handle (Ptr "vkGetDeviceAccelerationStructureCompatibilityKHR"#) vkGetRayTracingShaderGroupStackSizeKHR <- getDeviceProcAddr' handle (Ptr "vkGetRayTracingShaderGroupStackSizeKHR"#) vkCmdSetRayTracingPipelineStackSizeKHR <- getDeviceProcAddr' handle (Ptr "vkCmdSetRayTracingPipelineStackSizeKHR"#)@@ -1475,6 +1498,13 @@ vkCmdEndRendering <- getFirstDeviceProcAddr [(Ptr "vkCmdEndRenderingKHR"#), (Ptr "vkCmdEndRendering"#)] vkGetDescriptorSetLayoutHostMappingInfoVALVE <- getDeviceProcAddr' handle (Ptr "vkGetDescriptorSetLayoutHostMappingInfoVALVE"#) vkGetDescriptorSetHostMappingVALVE <- getDeviceProcAddr' handle (Ptr "vkGetDescriptorSetHostMappingVALVE"#)+ vkGetShaderModuleIdentifierEXT <- getDeviceProcAddr' handle (Ptr "vkGetShaderModuleIdentifierEXT"#)+ vkGetShaderModuleCreateInfoIdentifierEXT <- getDeviceProcAddr' handle (Ptr "vkGetShaderModuleCreateInfoIdentifierEXT"#)+ vkGetImageSubresourceLayout2EXT <- getDeviceProcAddr' handle (Ptr "vkGetImageSubresourceLayout2EXT"#)+ vkGetPipelinePropertiesEXT <- getDeviceProcAddr' handle (Ptr "vkGetPipelinePropertiesEXT"#)+ vkExportMetalObjectsEXT <- getDeviceProcAddr' handle (Ptr "vkExportMetalObjectsEXT"#)+ vkGetFramebufferTilePropertiesQCOM <- getDeviceProcAddr' handle (Ptr "vkGetFramebufferTilePropertiesQCOM"#)+ vkGetDynamicRenderingTilePropertiesQCOM <- getDeviceProcAddr' handle (Ptr "vkGetDynamicRenderingTilePropertiesQCOM"#) pure $ DeviceCmds handle (castFunPtr @_ @(Ptr Device_T -> ("pName" ::: Ptr CChar) -> IO PFN_vkVoidFunction) vkGetDeviceProcAddr) (castFunPtr @_ @(Ptr Device_T -> ("pAllocator" ::: Ptr AllocationCallbacks) -> IO ()) vkDestroyDevice)@@ -1502,7 +1532,7 @@ (castFunPtr @_ @(Ptr Device_T -> ("fenceCount" ::: Word32) -> ("pFences" ::: Ptr Fence) -> ("waitAll" ::: Bool32) -> ("timeout" ::: Word64) -> IO Result) vkWaitForFences) (castFunPtr @_ @(Ptr Device_T -> ("pCreateInfo" ::: Ptr (SomeStruct SemaphoreCreateInfo)) -> ("pAllocator" ::: Ptr AllocationCallbacks) -> ("pSemaphore" ::: Ptr Semaphore) -> IO Result) vkCreateSemaphore) (castFunPtr @_ @(Ptr Device_T -> Semaphore -> ("pAllocator" ::: Ptr AllocationCallbacks) -> IO ()) vkDestroySemaphore)- (castFunPtr @_ @(Ptr Device_T -> ("pCreateInfo" ::: Ptr EventCreateInfo) -> ("pAllocator" ::: Ptr AllocationCallbacks) -> ("pEvent" ::: Ptr Event) -> IO Result) vkCreateEvent)+ (castFunPtr @_ @(Ptr Device_T -> ("pCreateInfo" ::: Ptr (SomeStruct EventCreateInfo)) -> ("pAllocator" ::: Ptr AllocationCallbacks) -> ("pEvent" ::: Ptr Event) -> IO Result) vkCreateEvent) (castFunPtr @_ @(Ptr Device_T -> Event -> ("pAllocator" ::: Ptr AllocationCallbacks) -> IO ()) vkDestroyEvent) (castFunPtr @_ @(Ptr Device_T -> Event -> IO Result) vkGetEventStatus) (castFunPtr @_ @(Ptr Device_T -> Event -> IO Result) vkSetEvent)@@ -1513,7 +1543,7 @@ (castFunPtr @_ @(Ptr Device_T -> QueryPool -> ("firstQuery" ::: Word32) -> ("queryCount" ::: Word32) -> IO ()) vkResetQueryPool) (castFunPtr @_ @(Ptr Device_T -> ("pCreateInfo" ::: Ptr (SomeStruct BufferCreateInfo)) -> ("pAllocator" ::: Ptr AllocationCallbacks) -> ("pBuffer" ::: Ptr Buffer) -> IO Result) vkCreateBuffer) (castFunPtr @_ @(Ptr Device_T -> Buffer -> ("pAllocator" ::: Ptr AllocationCallbacks) -> IO ()) vkDestroyBuffer)- (castFunPtr @_ @(Ptr Device_T -> ("pCreateInfo" ::: Ptr BufferViewCreateInfo) -> ("pAllocator" ::: Ptr AllocationCallbacks) -> ("pView" ::: Ptr BufferView) -> IO Result) vkCreateBufferView)+ (castFunPtr @_ @(Ptr Device_T -> ("pCreateInfo" ::: Ptr (SomeStruct BufferViewCreateInfo)) -> ("pAllocator" ::: Ptr AllocationCallbacks) -> ("pView" ::: Ptr BufferView) -> IO Result) vkCreateBufferView) (castFunPtr @_ @(Ptr Device_T -> BufferView -> ("pAllocator" ::: Ptr AllocationCallbacks) -> IO ()) vkDestroyBufferView) (castFunPtr @_ @(Ptr Device_T -> ("pCreateInfo" ::: Ptr (SomeStruct ImageCreateInfo)) -> ("pAllocator" ::: Ptr AllocationCallbacks) -> ("pImage" ::: Ptr Image) -> IO Result) vkCreateImage) (castFunPtr @_ @(Ptr Device_T -> Image -> ("pAllocator" ::: Ptr AllocationCallbacks) -> IO ()) vkDestroyImage)@@ -1717,6 +1747,9 @@ (castFunPtr @_ @(Ptr CommandBuffer_T -> ("taskCount" ::: Word32) -> ("firstTask" ::: Word32) -> IO ()) vkCmdDrawMeshTasksNV) (castFunPtr @_ @(Ptr CommandBuffer_T -> Buffer -> ("offset" ::: DeviceSize) -> ("drawCount" ::: Word32) -> ("stride" ::: Word32) -> IO ()) vkCmdDrawMeshTasksIndirectNV) (castFunPtr @_ @(Ptr CommandBuffer_T -> Buffer -> ("offset" ::: DeviceSize) -> ("countBuffer" ::: Buffer) -> ("countBufferOffset" ::: DeviceSize) -> ("maxDrawCount" ::: Word32) -> ("stride" ::: Word32) -> IO ()) vkCmdDrawMeshTasksIndirectCountNV)+ (castFunPtr @_ @(Ptr CommandBuffer_T -> ("groupCountX" ::: Word32) -> ("groupCountY" ::: Word32) -> ("groupCountZ" ::: Word32) -> IO ()) vkCmdDrawMeshTasksEXT)+ (castFunPtr @_ @(Ptr CommandBuffer_T -> Buffer -> ("offset" ::: DeviceSize) -> ("drawCount" ::: Word32) -> ("stride" ::: Word32) -> IO ()) vkCmdDrawMeshTasksIndirectEXT)+ (castFunPtr @_ @(Ptr CommandBuffer_T -> Buffer -> ("offset" ::: DeviceSize) -> ("countBuffer" ::: Buffer) -> ("countBufferOffset" ::: DeviceSize) -> ("maxDrawCount" ::: Word32) -> ("stride" ::: Word32) -> IO ()) vkCmdDrawMeshTasksIndirectCountEXT) (castFunPtr @_ @(Ptr Device_T -> Pipeline -> ("shader" ::: Word32) -> IO Result) vkCompileDeferredNV) (castFunPtr @_ @(Ptr Device_T -> ("pCreateInfo" ::: Ptr AccelerationStructureCreateInfoNV) -> ("pAllocator" ::: Ptr AllocationCallbacks) -> ("pAccelerationStructure" ::: Ptr AccelerationStructureNV) -> IO Result) vkCreateAccelerationStructureNV) (castFunPtr @_ @(Ptr CommandBuffer_T -> ImageView -> ImageLayout -> IO ()) vkCmdBindInvocationMaskHUAWEI)@@ -1743,6 +1776,7 @@ (castFunPtr @_ @(Ptr Device_T -> PipelineCache -> ("createInfoCount" ::: Word32) -> ("pCreateInfos" ::: Ptr (SomeStruct RayTracingPipelineCreateInfoNV)) -> ("pAllocator" ::: Ptr AllocationCallbacks) -> ("pPipelines" ::: Ptr Pipeline) -> IO Result) vkCreateRayTracingPipelinesNV) (castFunPtr @_ @(Ptr Device_T -> DeferredOperationKHR -> PipelineCache -> ("createInfoCount" ::: Word32) -> ("pCreateInfos" ::: Ptr (SomeStruct RayTracingPipelineCreateInfoKHR)) -> ("pAllocator" ::: Ptr AllocationCallbacks) -> ("pPipelines" ::: Ptr Pipeline) -> IO Result) vkCreateRayTracingPipelinesKHR) (castFunPtr @_ @(Ptr CommandBuffer_T -> ("pRaygenShaderBindingTable" ::: Ptr StridedDeviceAddressRegionKHR) -> ("pMissShaderBindingTable" ::: Ptr StridedDeviceAddressRegionKHR) -> ("pHitShaderBindingTable" ::: Ptr StridedDeviceAddressRegionKHR) -> ("pCallableShaderBindingTable" ::: Ptr StridedDeviceAddressRegionKHR) -> ("indirectDeviceAddress" ::: DeviceAddress) -> IO ()) vkCmdTraceRaysIndirectKHR)+ (castFunPtr @_ @(Ptr CommandBuffer_T -> ("indirectDeviceAddress" ::: DeviceAddress) -> IO ()) vkCmdTraceRaysIndirect2KHR) (castFunPtr @_ @(Ptr Device_T -> ("pVersionInfo" ::: Ptr AccelerationStructureVersionInfoKHR) -> ("pCompatibility" ::: Ptr AccelerationStructureCompatibilityKHR) -> IO ()) vkGetDeviceAccelerationStructureCompatibilityKHR) (castFunPtr @_ @(Ptr Device_T -> Pipeline -> ("group" ::: Word32) -> ShaderGroupShaderKHR -> IO DeviceSize) vkGetRayTracingShaderGroupStackSizeKHR) (castFunPtr @_ @(Ptr CommandBuffer_T -> ("pipelineStackSize" ::: Word32) -> IO ()) vkCmdSetRayTracingPipelineStackSizeKHR)@@ -1836,4 +1870,11 @@ (castFunPtr @_ @(Ptr CommandBuffer_T -> IO ()) vkCmdEndRendering) (castFunPtr @_ @(Ptr Device_T -> ("pBindingReference" ::: Ptr DescriptorSetBindingReferenceVALVE) -> ("pHostMapping" ::: Ptr DescriptorSetLayoutHostMappingInfoVALVE) -> IO ()) vkGetDescriptorSetLayoutHostMappingInfoVALVE) (castFunPtr @_ @(Ptr Device_T -> DescriptorSet -> ("ppData" ::: Ptr (Ptr ())) -> IO ()) vkGetDescriptorSetHostMappingVALVE)+ (castFunPtr @_ @(Ptr Device_T -> ShaderModule -> ("pIdentifier" ::: Ptr ShaderModuleIdentifierEXT) -> IO ()) vkGetShaderModuleIdentifierEXT)+ (castFunPtr @_ @(Ptr Device_T -> ("pCreateInfo" ::: Ptr (SomeStruct ShaderModuleCreateInfo)) -> ("pIdentifier" ::: Ptr ShaderModuleIdentifierEXT) -> IO ()) vkGetShaderModuleCreateInfoIdentifierEXT)+ (castFunPtr @_ @(Ptr Device_T -> Image -> ("pSubresource" ::: Ptr ImageSubresource2EXT) -> ("pLayout" ::: Ptr (SomeStruct SubresourceLayout2EXT)) -> IO ()) vkGetImageSubresourceLayout2EXT)+ (castFunPtr @_ @(Ptr Device_T -> ("pPipelineInfo" ::: Ptr PipelineInfoEXT) -> ("pPipelineProperties" ::: Ptr BaseOutStructure) -> IO Result) vkGetPipelinePropertiesEXT)+ (castFunPtr @_ @(Ptr Device_T -> ("pMetalObjectsInfo" ::: Ptr (SomeStruct ExportMetalObjectsInfoEXT)) -> IO ()) vkExportMetalObjectsEXT)+ (castFunPtr @_ @(Ptr Device_T -> Framebuffer -> ("pPropertiesCount" ::: Ptr Word32) -> ("pProperties" ::: Ptr TilePropertiesQCOM) -> IO Result) vkGetFramebufferTilePropertiesQCOM)+ (castFunPtr @_ @(Ptr Device_T -> ("pRenderingInfo" ::: Ptr (SomeStruct RenderingInfo)) -> ("pProperties" ::: Ptr TilePropertiesQCOM) -> IO Result) vkGetDynamicRenderingTilePropertiesQCOM)
src/Vulkan/Exception.hs view
@@ -35,11 +35,12 @@ ERROR_FORMAT_NOT_SUPPORTED -> "A requested format is not supported on this device" ERROR_FRAGMENTED_POOL -> "A pool allocation has failed due to fragmentation of the pool's memory" ERROR_UNKNOWN -> "An unknown error has occurred; either the application has provided invalid input, or an implementation failure has occurred"+ ERROR_COMPRESSION_EXHAUSTED_EXT -> "An image creation failed because internal resources required for compression are exhausted" OPERATION_NOT_DEFERRED_KHR -> "A deferred operation was requested and no operations were deferred" OPERATION_DEFERRED_KHR -> "A deferred operation was requested and at least some of the work was deferred" THREAD_DONE_KHR -> "A deferred operation is not complete but there is no work remaining to assign to additional threads" THREAD_IDLE_KHR -> "A deferred operation is not complete but there is currently no work for this thread to do at the time of this call"- ERROR_FULL_SCREEN_EXCLUSIVE_MODE_LOST_EXT -> "An operation on a swapchain created with VK_FULL_SCREEN_EXCLUSIVE_APPLICATION_CONTROLLED_EXT failed as it did not have exlusive full-screen access"+ ERROR_FULL_SCREEN_EXCLUSIVE_MODE_LOST_EXT -> "An operation on a swapchain created with VK_FULL_SCREEN_EXCLUSIVE_APPLICATION_CONTROLLED_EXT failed as it did not have exclusive full-screen access" ERROR_INVALID_SHADER_NV -> "One or more shaders failed to compile or link" ERROR_INCOMPATIBLE_DISPLAY_KHR -> "The display used by a swapchain does not use the same presentable image layout, or is incompatible in a way that prevents sharing an image" ERROR_OUT_OF_DATE_KHR -> "A surface has changed in such a way that it is no longer compatible with the swapchain, and further presentation requests using the swapchain will fail"
src/Vulkan/Extensions.hs view
@@ -17,6 +17,7 @@ , module Vulkan.Extensions.VK_AMD_shader_ballot , module Vulkan.Extensions.VK_AMD_shader_core_properties , module Vulkan.Extensions.VK_AMD_shader_core_properties2+ , module Vulkan.Extensions.VK_AMD_shader_early_and_late_fragment_tests , module Vulkan.Extensions.VK_AMD_shader_explicit_vertex_parameter , module Vulkan.Extensions.VK_AMD_shader_fragment_mask , module Vulkan.Extensions.VK_AMD_shader_image_load_store_lod@@ -29,6 +30,7 @@ , module Vulkan.Extensions.VK_EXT_acquire_drm_display , module Vulkan.Extensions.VK_EXT_acquire_xlib_display , module Vulkan.Extensions.VK_EXT_astc_decode_mode+ , module Vulkan.Extensions.VK_EXT_attachment_feedback_loop_layout , module Vulkan.Extensions.VK_EXT_blend_operation_advanced , module Vulkan.Extensions.VK_EXT_border_color_swizzle , module Vulkan.Extensions.VK_EXT_buffer_device_address@@ -40,6 +42,7 @@ , module Vulkan.Extensions.VK_EXT_debug_marker , module Vulkan.Extensions.VK_EXT_debug_report , module Vulkan.Extensions.VK_EXT_debug_utils+ , module Vulkan.Extensions.VK_EXT_depth_clamp_zero_one , module Vulkan.Extensions.VK_EXT_depth_clip_control , module Vulkan.Extensions.VK_EXT_depth_clip_enable , module Vulkan.Extensions.VK_EXT_depth_range_unrestricted@@ -65,6 +68,9 @@ , module Vulkan.Extensions.VK_EXT_hdr_metadata , module Vulkan.Extensions.VK_EXT_headless_surface , module Vulkan.Extensions.VK_EXT_host_query_reset+ , module Vulkan.Extensions.VK_EXT_image_2d_view_of_3d+ , module Vulkan.Extensions.VK_EXT_image_compression_control+ , module Vulkan.Extensions.VK_EXT_image_compression_control_swapchain , module Vulkan.Extensions.VK_EXT_image_drm_format_modifier , module Vulkan.Extensions.VK_EXT_image_robustness , module Vulkan.Extensions.VK_EXT_image_view_min_lod@@ -74,19 +80,26 @@ , module Vulkan.Extensions.VK_EXT_load_store_op_none , module Vulkan.Extensions.VK_EXT_memory_budget , module Vulkan.Extensions.VK_EXT_memory_priority+ , module Vulkan.Extensions.VK_EXT_mesh_shader+ , module Vulkan.Extensions.VK_EXT_metal_objects , module Vulkan.Extensions.VK_EXT_metal_surface , module Vulkan.Extensions.VK_EXT_multi_draw+ , module Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled+ , module Vulkan.Extensions.VK_EXT_non_seamless_cube_map , module Vulkan.Extensions.VK_EXT_pageable_device_local_memory , module Vulkan.Extensions.VK_EXT_pci_bus_info , module Vulkan.Extensions.VK_EXT_physical_device_drm , module Vulkan.Extensions.VK_EXT_pipeline_creation_cache_control , module Vulkan.Extensions.VK_EXT_pipeline_creation_feedback+ , module Vulkan.Extensions.VK_EXT_pipeline_properties+ , module Vulkan.Extensions.VK_EXT_pipeline_robustness , module Vulkan.Extensions.VK_EXT_post_depth_coverage , module Vulkan.Extensions.VK_EXT_primitive_topology_list_restart , module Vulkan.Extensions.VK_EXT_primitives_generated_query , module Vulkan.Extensions.VK_EXT_private_data , module Vulkan.Extensions.VK_EXT_provoking_vertex , module Vulkan.Extensions.VK_EXT_queue_family_foreign+ , module Vulkan.Extensions.VK_EXT_rasterization_order_attachment_access , module Vulkan.Extensions.VK_EXT_rgba10x6_formats , module Vulkan.Extensions.VK_EXT_robustness2 , module Vulkan.Extensions.VK_EXT_sample_locations@@ -97,11 +110,13 @@ , module Vulkan.Extensions.VK_EXT_shader_atomic_float2 , module Vulkan.Extensions.VK_EXT_shader_demote_to_helper_invocation , module Vulkan.Extensions.VK_EXT_shader_image_atomic_int64+ , module Vulkan.Extensions.VK_EXT_shader_module_identifier , module Vulkan.Extensions.VK_EXT_shader_stencil_export , module Vulkan.Extensions.VK_EXT_shader_subgroup_ballot , module Vulkan.Extensions.VK_EXT_shader_subgroup_vote , module Vulkan.Extensions.VK_EXT_shader_viewport_index_layer , module Vulkan.Extensions.VK_EXT_subgroup_size_control+ , module Vulkan.Extensions.VK_EXT_subpass_merge_feedback , module Vulkan.Extensions.VK_EXT_swapchain_colorspace , module Vulkan.Extensions.VK_EXT_texel_buffer_alignment , module Vulkan.Extensions.VK_EXT_texture_compression_astc_hdr@@ -163,6 +178,7 @@ , module Vulkan.Extensions.VK_KHR_external_semaphore_fd , module Vulkan.Extensions.VK_KHR_external_semaphore_win32 , module Vulkan.Extensions.VK_KHR_format_feature_flags2+ , module Vulkan.Extensions.VK_KHR_fragment_shader_barycentric , module Vulkan.Extensions.VK_KHR_fragment_shading_rate , module Vulkan.Extensions.VK_KHR_get_display_properties2 , module Vulkan.Extensions.VK_KHR_get_memory_requirements2@@ -186,6 +202,7 @@ , module Vulkan.Extensions.VK_KHR_present_wait , module Vulkan.Extensions.VK_KHR_push_descriptor , module Vulkan.Extensions.VK_KHR_ray_query+ , module Vulkan.Extensions.VK_KHR_ray_tracing_maintenance1 , module Vulkan.Extensions.VK_KHR_ray_tracing_pipeline , module Vulkan.Extensions.VK_KHR_relaxed_block_layout , module Vulkan.Extensions.VK_KHR_sampler_mirror_clamp_to_edge@@ -264,11 +281,14 @@ , module Vulkan.Extensions.VK_NV_viewport_swizzle , module Vulkan.Extensions.VK_NV_win32_keyed_mutex , module Vulkan.Extensions.VK_QCOM_fragment_density_map_offset+ , module Vulkan.Extensions.VK_QCOM_image_processing , module Vulkan.Extensions.VK_QCOM_render_pass_shader_resolve , module Vulkan.Extensions.VK_QCOM_render_pass_store_ops , module Vulkan.Extensions.VK_QCOM_render_pass_transform , module Vulkan.Extensions.VK_QCOM_rotated_copy_commands+ , module Vulkan.Extensions.VK_QCOM_tile_properties , module Vulkan.Extensions.VK_QNX_screen_surface+ , module Vulkan.Extensions.VK_SEC_amigo_profiling , module Vulkan.Extensions.VK_VALVE_descriptor_set_host_mapping , module Vulkan.Extensions.VK_VALVE_mutable_descriptor_type ) where@@ -289,6 +309,7 @@ import Vulkan.Extensions.VK_AMD_shader_ballot import Vulkan.Extensions.VK_AMD_shader_core_properties import Vulkan.Extensions.VK_AMD_shader_core_properties2+import Vulkan.Extensions.VK_AMD_shader_early_and_late_fragment_tests import Vulkan.Extensions.VK_AMD_shader_explicit_vertex_parameter import Vulkan.Extensions.VK_AMD_shader_fragment_mask import Vulkan.Extensions.VK_AMD_shader_image_load_store_lod@@ -301,6 +322,7 @@ import Vulkan.Extensions.VK_EXT_acquire_drm_display import Vulkan.Extensions.VK_EXT_acquire_xlib_display import Vulkan.Extensions.VK_EXT_astc_decode_mode+import Vulkan.Extensions.VK_EXT_attachment_feedback_loop_layout import Vulkan.Extensions.VK_EXT_blend_operation_advanced import Vulkan.Extensions.VK_EXT_border_color_swizzle import Vulkan.Extensions.VK_EXT_buffer_device_address@@ -312,6 +334,7 @@ import Vulkan.Extensions.VK_EXT_debug_marker import Vulkan.Extensions.VK_EXT_debug_report import Vulkan.Extensions.VK_EXT_debug_utils+import Vulkan.Extensions.VK_EXT_depth_clamp_zero_one import Vulkan.Extensions.VK_EXT_depth_clip_control import Vulkan.Extensions.VK_EXT_depth_clip_enable import Vulkan.Extensions.VK_EXT_depth_range_unrestricted@@ -337,6 +360,9 @@ import Vulkan.Extensions.VK_EXT_hdr_metadata import Vulkan.Extensions.VK_EXT_headless_surface import Vulkan.Extensions.VK_EXT_host_query_reset+import Vulkan.Extensions.VK_EXT_image_2d_view_of_3d+import Vulkan.Extensions.VK_EXT_image_compression_control+import Vulkan.Extensions.VK_EXT_image_compression_control_swapchain import Vulkan.Extensions.VK_EXT_image_drm_format_modifier import Vulkan.Extensions.VK_EXT_image_robustness import Vulkan.Extensions.VK_EXT_image_view_min_lod@@ -346,19 +372,26 @@ import Vulkan.Extensions.VK_EXT_load_store_op_none import Vulkan.Extensions.VK_EXT_memory_budget import Vulkan.Extensions.VK_EXT_memory_priority+import Vulkan.Extensions.VK_EXT_mesh_shader+import Vulkan.Extensions.VK_EXT_metal_objects import Vulkan.Extensions.VK_EXT_metal_surface import Vulkan.Extensions.VK_EXT_multi_draw+import Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled+import Vulkan.Extensions.VK_EXT_non_seamless_cube_map import Vulkan.Extensions.VK_EXT_pageable_device_local_memory import Vulkan.Extensions.VK_EXT_pci_bus_info import Vulkan.Extensions.VK_EXT_physical_device_drm import Vulkan.Extensions.VK_EXT_pipeline_creation_cache_control import Vulkan.Extensions.VK_EXT_pipeline_creation_feedback+import Vulkan.Extensions.VK_EXT_pipeline_properties+import Vulkan.Extensions.VK_EXT_pipeline_robustness import Vulkan.Extensions.VK_EXT_post_depth_coverage import Vulkan.Extensions.VK_EXT_primitive_topology_list_restart import Vulkan.Extensions.VK_EXT_primitives_generated_query import Vulkan.Extensions.VK_EXT_private_data import Vulkan.Extensions.VK_EXT_provoking_vertex import Vulkan.Extensions.VK_EXT_queue_family_foreign+import Vulkan.Extensions.VK_EXT_rasterization_order_attachment_access import Vulkan.Extensions.VK_EXT_rgba10x6_formats import Vulkan.Extensions.VK_EXT_robustness2 import Vulkan.Extensions.VK_EXT_sample_locations@@ -369,11 +402,13 @@ import Vulkan.Extensions.VK_EXT_shader_atomic_float2 import Vulkan.Extensions.VK_EXT_shader_demote_to_helper_invocation import Vulkan.Extensions.VK_EXT_shader_image_atomic_int64+import Vulkan.Extensions.VK_EXT_shader_module_identifier import Vulkan.Extensions.VK_EXT_shader_stencil_export import Vulkan.Extensions.VK_EXT_shader_subgroup_ballot import Vulkan.Extensions.VK_EXT_shader_subgroup_vote import Vulkan.Extensions.VK_EXT_shader_viewport_index_layer import Vulkan.Extensions.VK_EXT_subgroup_size_control+import Vulkan.Extensions.VK_EXT_subpass_merge_feedback import Vulkan.Extensions.VK_EXT_swapchain_colorspace import Vulkan.Extensions.VK_EXT_texel_buffer_alignment import Vulkan.Extensions.VK_EXT_texture_compression_astc_hdr@@ -435,6 +470,7 @@ import Vulkan.Extensions.VK_KHR_external_semaphore_fd import Vulkan.Extensions.VK_KHR_external_semaphore_win32 import Vulkan.Extensions.VK_KHR_format_feature_flags2+import Vulkan.Extensions.VK_KHR_fragment_shader_barycentric import Vulkan.Extensions.VK_KHR_fragment_shading_rate import Vulkan.Extensions.VK_KHR_get_display_properties2 import Vulkan.Extensions.VK_KHR_get_memory_requirements2@@ -458,6 +494,7 @@ import Vulkan.Extensions.VK_KHR_present_wait import Vulkan.Extensions.VK_KHR_push_descriptor import Vulkan.Extensions.VK_KHR_ray_query+import Vulkan.Extensions.VK_KHR_ray_tracing_maintenance1 import Vulkan.Extensions.VK_KHR_ray_tracing_pipeline import Vulkan.Extensions.VK_KHR_relaxed_block_layout import Vulkan.Extensions.VK_KHR_sampler_mirror_clamp_to_edge@@ -536,11 +573,14 @@ import Vulkan.Extensions.VK_NV_viewport_swizzle import Vulkan.Extensions.VK_NV_win32_keyed_mutex import Vulkan.Extensions.VK_QCOM_fragment_density_map_offset+import Vulkan.Extensions.VK_QCOM_image_processing import Vulkan.Extensions.VK_QCOM_render_pass_shader_resolve import Vulkan.Extensions.VK_QCOM_render_pass_store_ops import Vulkan.Extensions.VK_QCOM_render_pass_transform import Vulkan.Extensions.VK_QCOM_rotated_copy_commands+import Vulkan.Extensions.VK_QCOM_tile_properties import Vulkan.Extensions.VK_QNX_screen_surface+import Vulkan.Extensions.VK_SEC_amigo_profiling import Vulkan.Extensions.VK_VALVE_descriptor_set_host_mapping import Vulkan.Extensions.VK_VALVE_mutable_descriptor_type
src/Vulkan/Extensions/Dependencies.hs view
@@ -18,6 +18,8 @@ import Vulkan.Extensions.VK_EXT_acquire_drm_display (pattern EXT_ACQUIRE_DRM_DISPLAY_EXTENSION_NAME) import Vulkan.Extensions.VK_EXT_acquire_xlib_display (pattern EXT_ACQUIRE_XLIB_DISPLAY_EXTENSION_NAME) import Vulkan.Extensions.VK_EXT_astc_decode_mode (pattern EXT_ASTC_DECODE_MODE_EXTENSION_NAME)+import Vulkan.Extensions.VK_EXT_attachment_feedback_loop_layout (pattern EXT_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_EXTENSION_NAME)+import Vulkan.Extensions.VK_EXT_blend_operation_advanced (pattern EXT_BLEND_OPERATION_ADVANCED_EXTENSION_NAME) import Vulkan.Extensions.VK_EXT_border_color_swizzle (pattern EXT_BORDER_COLOR_SWIZZLE_EXTENSION_NAME) import Vulkan.Extensions.VK_EXT_buffer_device_address (pattern EXT_BUFFER_DEVICE_ADDRESS_EXTENSION_NAME) import Vulkan.Extensions.VK_EXT_calibrated_timestamps (pattern EXT_CALIBRATED_TIMESTAMPS_EXTENSION_NAME)@@ -48,6 +50,9 @@ import Vulkan.Extensions.VK_EXT_hdr_metadata (pattern EXT_HDR_METADATA_EXTENSION_NAME) import Vulkan.Extensions.VK_EXT_headless_surface (pattern EXT_HEADLESS_SURFACE_EXTENSION_NAME) import Vulkan.Extensions.VK_EXT_host_query_reset (pattern EXT_HOST_QUERY_RESET_EXTENSION_NAME)+import Vulkan.Extensions.VK_EXT_image_2d_view_of_3d (pattern EXT_IMAGE_2D_VIEW_OF_3D_EXTENSION_NAME)+import Vulkan.Extensions.VK_EXT_image_compression_control (pattern EXT_IMAGE_COMPRESSION_CONTROL_EXTENSION_NAME)+import Vulkan.Extensions.VK_EXT_image_compression_control_swapchain (pattern EXT_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_EXTENSION_NAME) import Vulkan.Extensions.VK_EXT_image_drm_format_modifier (pattern EXT_IMAGE_DRM_FORMAT_MODIFIER_EXTENSION_NAME) import Vulkan.Extensions.VK_EXT_image_robustness (pattern EXT_IMAGE_ROBUSTNESS_EXTENSION_NAME) import Vulkan.Extensions.VK_EXT_image_view_min_lod (pattern EXT_IMAGE_VIEW_MIN_LOD_EXTENSION_NAME)@@ -55,13 +60,19 @@ import Vulkan.Extensions.VK_EXT_line_rasterization (pattern EXT_LINE_RASTERIZATION_EXTENSION_NAME) import Vulkan.Extensions.VK_EXT_memory_budget (pattern EXT_MEMORY_BUDGET_EXTENSION_NAME) import Vulkan.Extensions.VK_EXT_memory_priority (pattern EXT_MEMORY_PRIORITY_EXTENSION_NAME)+import Vulkan.Extensions.VK_EXT_mesh_shader (pattern EXT_MESH_SHADER_EXTENSION_NAME) import Vulkan.Extensions.VK_EXT_metal_surface (pattern EXT_METAL_SURFACE_EXTENSION_NAME)+import Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled (pattern EXT_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_EXTENSION_NAME) import Vulkan.Extensions.VK_EXT_pageable_device_local_memory (pattern EXT_PAGEABLE_DEVICE_LOCAL_MEMORY_EXTENSION_NAME) import Vulkan.Extensions.VK_EXT_pci_bus_info (pattern EXT_PCI_BUS_INFO_EXTENSION_NAME) import Vulkan.Extensions.VK_EXT_physical_device_drm (pattern EXT_PHYSICAL_DEVICE_DRM_EXTENSION_NAME)+import Vulkan.Extensions.VK_EXT_pipeline_creation_cache_control (pattern EXT_PIPELINE_CREATION_CACHE_CONTROL_EXTENSION_NAME)+import Vulkan.Extensions.VK_EXT_pipeline_properties (pattern EXT_PIPELINE_PROPERTIES_EXTENSION_NAME)+import Vulkan.Extensions.VK_EXT_pipeline_robustness (pattern EXT_PIPELINE_ROBUSTNESS_EXTENSION_NAME) import Vulkan.Extensions.VK_EXT_primitives_generated_query (pattern EXT_PRIMITIVES_GENERATED_QUERY_EXTENSION_NAME) import Vulkan.Extensions.VK_EXT_provoking_vertex (pattern EXT_PROVOKING_VERTEX_EXTENSION_NAME) import Vulkan.Extensions.VK_EXT_queue_family_foreign (pattern EXT_QUEUE_FAMILY_FOREIGN_EXTENSION_NAME)+import Vulkan.Extensions.VK_EXT_rasterization_order_attachment_access (pattern EXT_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_EXTENSION_NAME) import Vulkan.Extensions.VK_EXT_rgba10x6_formats (pattern EXT_RGBA10X6_FORMATS_EXTENSION_NAME) import Vulkan.Extensions.VK_EXT_sampler_filter_minmax (pattern EXT_SAMPLER_FILTER_MINMAX_EXTENSION_NAME) import Vulkan.Extensions.VK_EXT_sample_locations (pattern EXT_SAMPLE_LOCATIONS_EXTENSION_NAME)@@ -70,6 +81,7 @@ import Vulkan.Extensions.VK_EXT_shader_atomic_float (pattern EXT_SHADER_ATOMIC_FLOAT_EXTENSION_NAME) import Vulkan.Extensions.VK_EXT_shader_demote_to_helper_invocation (pattern EXT_SHADER_DEMOTE_TO_HELPER_INVOCATION_EXTENSION_NAME) import Vulkan.Extensions.VK_EXT_shader_image_atomic_int64 (pattern EXT_SHADER_IMAGE_ATOMIC_INT64_EXTENSION_NAME)+import Vulkan.Extensions.VK_EXT_shader_module_identifier (pattern EXT_SHADER_MODULE_IDENTIFIER_EXTENSION_NAME) import Vulkan.Extensions.VK_EXT_subgroup_size_control (pattern EXT_SUBGROUP_SIZE_CONTROL_EXTENSION_NAME) import Vulkan.Extensions.VK_EXT_swapchain_colorspace (pattern EXT_SWAPCHAIN_COLOR_SPACE_EXTENSION_NAME) import Vulkan.Extensions.VK_EXT_texel_buffer_alignment (pattern EXT_TEXEL_BUFFER_ALIGNMENT_EXTENSION_NAME)@@ -120,6 +132,7 @@ import Vulkan.Extensions.VK_KHR_external_semaphore_fd (pattern KHR_EXTERNAL_SEMAPHORE_FD_EXTENSION_NAME) import Vulkan.Extensions.VK_KHR_external_semaphore_win32 (pattern KHR_EXTERNAL_SEMAPHORE_WIN32_EXTENSION_NAME) import Vulkan.Extensions.VK_KHR_format_feature_flags2 (pattern KHR_FORMAT_FEATURE_FLAGS_2_EXTENSION_NAME)+import Vulkan.Extensions.VK_KHR_fragment_shader_barycentric (pattern KHR_FRAGMENT_SHADER_BARYCENTRIC_EXTENSION_NAME) import Vulkan.Extensions.VK_KHR_fragment_shading_rate (pattern KHR_FRAGMENT_SHADING_RATE_EXTENSION_NAME) import Vulkan.Extensions.VK_KHR_get_display_properties2 (pattern KHR_GET_DISPLAY_PROPERTIES_2_EXTENSION_NAME) import Vulkan.Extensions.VK_KHR_get_memory_requirements2 (pattern KHR_GET_MEMORY_REQUIREMENTS_2_EXTENSION_NAME)@@ -141,6 +154,7 @@ import Vulkan.Extensions.VK_KHR_present_wait (pattern KHR_PRESENT_WAIT_EXTENSION_NAME) import Vulkan.Extensions.VK_KHR_push_descriptor (pattern KHR_PUSH_DESCRIPTOR_EXTENSION_NAME) import Vulkan.Extensions.VK_KHR_ray_query (pattern KHR_RAY_QUERY_EXTENSION_NAME)+import Vulkan.Extensions.VK_KHR_ray_tracing_maintenance1 (pattern KHR_RAY_TRACING_MAINTENANCE_1_EXTENSION_NAME) import Vulkan.Extensions.VK_KHR_ray_tracing_pipeline (pattern KHR_RAY_TRACING_PIPELINE_EXTENSION_NAME) import Vulkan.Extensions.VK_KHR_sampler_ycbcr_conversion (pattern KHR_SAMPLER_YCBCR_CONVERSION_EXTENSION_NAME) import Vulkan.Extensions.VK_KHR_separate_depth_stencil_layouts (pattern KHR_SEPARATE_DEPTH_STENCIL_LAYOUTS_EXTENSION_NAME)@@ -201,9 +215,12 @@ import Vulkan.Extensions.VK_NV_shading_rate_image (pattern NV_SHADING_RATE_IMAGE_EXTENSION_NAME) import Vulkan.Extensions.VK_NV_win32_keyed_mutex (pattern NV_WIN32_KEYED_MUTEX_EXTENSION_NAME) import Vulkan.Extensions.VK_QCOM_fragment_density_map_offset (pattern QCOM_FRAGMENT_DENSITY_MAP_OFFSET_EXTENSION_NAME)+import Vulkan.Extensions.VK_QCOM_image_processing (pattern QCOM_IMAGE_PROCESSING_EXTENSION_NAME) import Vulkan.Extensions.VK_QCOM_render_pass_transform (pattern QCOM_RENDER_PASS_TRANSFORM_EXTENSION_NAME) import Vulkan.Extensions.VK_QCOM_rotated_copy_commands (pattern QCOM_ROTATED_COPY_COMMANDS_EXTENSION_NAME)+import Vulkan.Extensions.VK_QCOM_tile_properties (pattern QCOM_TILE_PROPERTIES_EXTENSION_NAME) import Vulkan.Extensions.VK_QNX_screen_surface (pattern QNX_SCREEN_SURFACE_EXTENSION_NAME)+import Vulkan.Extensions.VK_SEC_amigo_profiling (pattern SEC_AMIGO_PROFILING_EXTENSION_NAME) import Vulkan.Extensions.VK_VALVE_mutable_descriptor_type (pattern VALVE_MUTABLE_DESCRIPTOR_TYPE_EXTENSION_NAME) -- | The set of other extensions required to use this extension extensionDependencies :: ("extensionName" ::: ByteString) -> [ByteString]@@ -212,15 +229,21 @@ KHR_DISPLAY_EXTENSION_NAME -> [KHR_SURFACE_EXTENSION_NAME] KHR_DISPLAY_SWAPCHAIN_EXTENSION_NAME -> [KHR_SWAPCHAIN_EXTENSION_NAME, KHR_DISPLAY_EXTENSION_NAME, KHR_SURFACE_EXTENSION_NAME]- KHR_XLIB_SURFACE_EXTENSION_NAME -> [KHR_SURFACE_EXTENSION_NAME]- KHR_XCB_SURFACE_EXTENSION_NAME -> [KHR_SURFACE_EXTENSION_NAME]- KHR_WAYLAND_SURFACE_EXTENSION_NAME -> [KHR_SURFACE_EXTENSION_NAME]- KHR_ANDROID_SURFACE_EXTENSION_NAME -> [KHR_SURFACE_EXTENSION_NAME]- KHR_WIN32_SURFACE_EXTENSION_NAME -> [KHR_SURFACE_EXTENSION_NAME]- EXT_DEBUG_MARKER_EXTENSION_NAME -> [EXT_DEBUG_REPORT_EXTENSION_NAME]- EXT_TRANSFORM_FEEDBACK_EXTENSION_NAME -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]- AMD_TEXTURE_GATHER_BIAS_LOD_EXTENSION_NAME -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]- KHR_DYNAMIC_RENDERING_EXTENSION_NAME -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]+ KHR_XLIB_SURFACE_EXTENSION_NAME -> [KHR_SURFACE_EXTENSION_NAME]+ KHR_XCB_SURFACE_EXTENSION_NAME -> [KHR_SURFACE_EXTENSION_NAME]+ KHR_WAYLAND_SURFACE_EXTENSION_NAME -> [KHR_SURFACE_EXTENSION_NAME]+ KHR_ANDROID_SURFACE_EXTENSION_NAME -> [KHR_SURFACE_EXTENSION_NAME]+ KHR_WIN32_SURFACE_EXTENSION_NAME -> [KHR_SURFACE_EXTENSION_NAME]+ EXT_DEBUG_MARKER_EXTENSION_NAME -> [EXT_DEBUG_REPORT_EXTENSION_NAME]+ EXT_TRANSFORM_FEEDBACK_EXTENSION_NAME -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]+ AMD_TEXTURE_GATHER_BIAS_LOD_EXTENSION_NAME -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]+ KHR_DYNAMIC_RENDERING_EXTENSION_NAME ->+ [ KHR_DEPTH_STENCIL_RESOLVE_EXTENSION_NAME+ , KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME+ , KHR_CREATE_RENDERPASS_2_EXTENSION_NAME+ , KHR_MULTIVIEW_EXTENSION_NAME+ , KHR_MAINTENANCE_2_EXTENSION_NAME+ ] GGP_STREAM_DESCRIPTOR_SURFACE_EXTENSION_NAME -> [KHR_SURFACE_EXTENSION_NAME] NV_CORNER_SAMPLED_IMAGE_EXTENSION_NAME -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME] KHR_MULTIVIEW_EXTENSION_NAME -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]@@ -236,6 +259,7 @@ NN_VI_SURFACE_EXTENSION_NAME -> [KHR_SURFACE_EXTENSION_NAME] EXT_TEXTURE_COMPRESSION_ASTC_HDR_EXTENSION_NAME -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME] EXT_ASTC_DECODE_MODE_EXTENSION_NAME -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]+ EXT_PIPELINE_ROBUSTNESS_EXTENSION_NAME -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME] KHR_EXTERNAL_MEMORY_CAPABILITIES_EXTENSION_NAME -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME] KHR_EXTERNAL_MEMORY_EXTENSION_NAME -> [KHR_EXTERNAL_MEMORY_CAPABILITIES_EXTENSION_NAME, KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]@@ -348,7 +372,8 @@ EXT_SAMPLER_FILTER_MINMAX_EXTENSION_NAME -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME] EXT_INLINE_UNIFORM_BLOCK_EXTENSION_NAME -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME, KHR_MAINTENANCE_1_EXTENSION_NAME]- EXT_SAMPLE_LOCATIONS_EXTENSION_NAME -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]+ EXT_SAMPLE_LOCATIONS_EXTENSION_NAME -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]+ EXT_BLEND_OPERATION_ADVANCED_EXTENSION_NAME -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME] KHR_ACCELERATION_STRUCTURE_EXTENSION_NAME -> [ EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME , KHR_BUFFER_DEVICE_ADDRESS_EXTENSION_NAME@@ -512,6 +537,7 @@ KHR_SYNCHRONIZATION_2_EXTENSION_NAME -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME] EXT_GRAPHICS_PIPELINE_LIBRARY_EXTENSION_NAME -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME, KHR_PIPELINE_LIBRARY_EXTENSION_NAME]+ KHR_FRAGMENT_SHADER_BARYCENTRIC_EXTENSION_NAME -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME] KHR_ZERO_INITIALIZE_WORKGROUP_MEMORY_EXTENSION_NAME -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME] NV_FRAGMENT_SHADING_RATE_ENUMS_EXTENSION_NAME -> [ KHR_FRAGMENT_SHADING_RATE_EXTENSION_NAME@@ -531,6 +557,7 @@ , KHR_DEFERRED_HOST_OPERATIONS_EXTENSION_NAME , KHR_MAINTENANCE_3_EXTENSION_NAME ]+ EXT_MESH_SHADER_EXTENSION_NAME -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME] EXT_YCBCR_2PLANE_444_FORMATS_EXTENSION_NAME -> [ KHR_SAMPLER_YCBCR_CONVERSION_EXTENSION_NAME , KHR_MAINTENANCE_1_EXTENSION_NAME@@ -544,6 +571,7 @@ [KHR_SWAPCHAIN_EXTENSION_NAME, KHR_COPY_COMMANDS_2_EXTENSION_NAME, KHR_SURFACE_EXTENSION_NAME] EXT_IMAGE_ROBUSTNESS_EXTENSION_NAME -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME] KHR_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_EXTENSION_NAME -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]+ EXT_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_EXTENSION_NAME -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME] EXT_4444_FORMATS_EXTENSION_NAME -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME] ARM_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_EXTENSION_NAME -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME] EXT_RGBA10X6_FORMATS_EXTENSION_NAME ->@@ -606,20 +634,46 @@ , KHR_EXTERNAL_MEMORY_CAPABILITIES_EXTENSION_NAME , KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME ]+ EXT_PIPELINE_PROPERTIES_EXTENSION_NAME -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]+ EXT_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_EXTENSION_NAME ->+ [ KHR_CREATE_RENDERPASS_2_EXTENSION_NAME+ , KHR_DEPTH_STENCIL_RESOLVE_EXTENSION_NAME+ , KHR_MULTIVIEW_EXTENSION_NAME+ , KHR_MAINTENANCE_2_EXTENSION_NAME+ , KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME+ ] EXT_EXTENDED_DYNAMIC_STATE_2_EXTENSION_NAME -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME] QNX_SCREEN_SURFACE_EXTENSION_NAME -> [KHR_SURFACE_EXTENSION_NAME] EXT_COLOR_WRITE_ENABLE_EXTENSION_NAME -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME] EXT_PRIMITIVES_GENERATED_QUERY_EXTENSION_NAME -> [EXT_TRANSFORM_FEEDBACK_EXTENSION_NAME, KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]+ KHR_RAY_TRACING_MAINTENANCE_1_EXTENSION_NAME ->+ [ KHR_ACCELERATION_STRUCTURE_EXTENSION_NAME+ , EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME+ , KHR_BUFFER_DEVICE_ADDRESS_EXTENSION_NAME+ , KHR_DEFERRED_HOST_OPERATIONS_EXTENSION_NAME+ , KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME+ , KHR_MAINTENANCE_3_EXTENSION_NAME+ ] EXT_GLOBAL_PRIORITY_QUERY_EXTENSION_NAME -> [EXT_GLOBAL_PRIORITY_EXTENSION_NAME, KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]- EXT_IMAGE_VIEW_MIN_LOD_EXTENSION_NAME -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]+ EXT_IMAGE_VIEW_MIN_LOD_EXTENSION_NAME -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]+ EXT_IMAGE_2D_VIEW_OF_3D_EXTENSION_NAME ->+ [KHR_MAINTENANCE_1_EXTENSION_NAME, KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME] EXT_BORDER_COLOR_SWIZZLE_EXTENSION_NAME -> [EXT_CUSTOM_BORDER_COLOR_EXTENSION_NAME] EXT_PAGEABLE_DEVICE_LOCAL_MEMORY_EXTENSION_NAME -> [EXT_MEMORY_PRIORITY_EXTENSION_NAME, KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME] QCOM_FRAGMENT_DENSITY_MAP_OFFSET_EXTENSION_NAME -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME, EXT_FRAGMENT_DENSITY_MAP_EXTENSION_NAME]- GOOGLE_SURFACELESS_QUERY_EXTENSION_NAME -> [KHR_SURFACE_EXTENSION_NAME]+ GOOGLE_SURFACELESS_QUERY_EXTENSION_NAME -> [KHR_SURFACE_EXTENSION_NAME]+ EXT_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_EXTENSION_NAME -> [EXT_IMAGE_COMPRESSION_CONTROL_EXTENSION_NAME]+ QCOM_IMAGE_PROCESSING_EXTENSION_NAME ->+ [KHR_FORMAT_FEATURE_FLAGS_2_EXTENSION_NAME, KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]+ EXT_SHADER_MODULE_IDENTIFIER_EXTENSION_NAME ->+ [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME, EXT_PIPELINE_CREATION_CACHE_CONTROL_EXTENSION_NAME]+ EXT_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_EXTENSION_NAME -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]+ QCOM_TILE_PROPERTIES_EXTENSION_NAME -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]+ SEC_AMIGO_PROFILING_EXTENSION_NAME -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME] _ -> [] -- | The minimum required API version to use this extension@@ -636,6 +690,7 @@ KHR_SURFACE_PROTECTED_CAPABILITIES_EXTENSION_NAME -> MAKE_API_VERSION 1 1 0 NV_DEVICE_GENERATED_COMMANDS_EXTENSION_NAME -> MAKE_API_VERSION 1 1 0 KHR_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_EXTENSION_NAME -> MAKE_API_VERSION 1 1 0+ KHR_RAY_TRACING_MAINTENANCE_1_EXTENSION_NAME -> MAKE_API_VERSION 1 1 0 KHR_MAINTENANCE_4_EXTENSION_NAME -> MAKE_API_VERSION 1 1 0 _ -> API_VERSION_1_0
src/Vulkan/Extensions/VK_AMD_buffer_marker.hs view
@@ -19,7 +19,7 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 -- -- [__Special Use__] --@@ -82,7 +82,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_AMD_buffer_marker Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_AMD_buffer_marker Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.@@ -166,41 +166,44 @@ -- @commandBuffer@ was allocated from -- -- - #VUID-vkCmdWriteBufferMarkerAMD-pipelineStage-04075# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryShader geometry shaders>+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryShader geometryShader> -- feature is not enabled, @pipelineStage@ /must/ not be -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_GEOMETRY_SHADER_BIT' -- -- - #VUID-vkCmdWriteBufferMarkerAMD-pipelineStage-04076# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShader tessellation shaders>+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShader tessellationShader> -- feature is not enabled, @pipelineStage@ /must/ not be -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT' -- or -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT' -- -- - #VUID-vkCmdWriteBufferMarkerAMD-pipelineStage-04077# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-conditionalRendering conditional rendering>+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-conditionalRendering conditionalRendering> -- feature is not enabled, @pipelineStage@ /must/ not be -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT' -- -- - #VUID-vkCmdWriteBufferMarkerAMD-pipelineStage-04078# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-fragmentDensityMap fragment density map>+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-fragmentDensityMap fragmentDensityMap> -- feature is not enabled, @pipelineStage@ /must/ not be -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT' -- -- - #VUID-vkCmdWriteBufferMarkerAMD-pipelineStage-04079# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-transformFeedback transform feedback>+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-transformFeedback transformFeedback> -- feature is not enabled, @pipelineStage@ /must/ not be -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT' -- -- - #VUID-vkCmdWriteBufferMarkerAMD-pipelineStage-04080# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader mesh shaders>+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader> -- feature is not enabled, @pipelineStage@ /must/ not be--- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_MESH_SHADER_BIT_NV'--- or--- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TASK_SHADER_BIT_NV'+-- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_MESH_SHADER_BIT_EXT' --+-- - #VUID-vkCmdWriteBufferMarkerAMD-pipelineStage-07077# If the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader task shaders>+-- feature is not enabled, @pipelineStage@ /must/ not be+-- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TASK_SHADER_BIT_EXT'+-- -- - #VUID-vkCmdWriteBufferMarkerAMD-pipelineStage-04081# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shading rate image>+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage> -- feature is not enabled, @pipelineStage@ /must/ not be -- 'Vulkan.Extensions.VK_NV_shading_rate_image.PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV' --@@ -247,6 +250,9 @@ -- allocated from /must/ support transfer, graphics, or compute -- operations --+-- - #VUID-vkCmdWriteBufferMarkerAMD-videocoding# This command /must/+-- only be called outside of a video coding scope+-- -- - #VUID-vkCmdWriteBufferMarkerAMD-commonparent# Both of -- @commandBuffer@, and @dstBuffer@ /must/ have been created, -- allocated, or retrieved from the same 'Vulkan.Core10.Handles.Device'@@ -262,13 +268,13 @@ -- -- \' ----- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | Primary | Both | Transfer |--- | Secondary | | Graphics |--- | | | Compute |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================++-- | Primary | Both | Outside | Transfer |+-- | Secondary | | | Graphics |+-- | | | | Compute |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+ -- -- = See Also --
src/Vulkan/Extensions/VK_AMD_device_coherent_memory.hs view
@@ -19,7 +19,7 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 -- -- [__Contact__] --@@ -89,7 +89,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_AMD_device_coherent_memory Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_AMD_device_coherent_memory Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_AMD_device_coherent_memory.hs-boot view
@@ -19,7 +19,7 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 -- -- [__Contact__] --@@ -89,7 +89,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_AMD_device_coherent_memory Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_AMD_device_coherent_memory Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_AMD_display_native_hdr.hs view
@@ -19,13 +19,16 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_get_physical_device_properties2@+-- - Requires @VK_KHR_get_physical_device_properties2@ to be enabled+-- for any device-level functionality ----- - Requires @VK_KHR_get_surface_capabilities2@+-- - Requires @VK_KHR_get_surface_capabilities2@ to be enabled for+-- any device-level functionality ----- - Requires @VK_KHR_swapchain@+-- - Requires @VK_KHR_swapchain@ to be enabled for any device-level+-- functionality -- -- [__Contact__] --@@ -120,7 +123,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_AMD_display_native_hdr Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_AMD_display_native_hdr Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.@@ -244,7 +247,7 @@ -- dimming. If this is 'Vulkan.Core10.FundamentalTypes.TRUE', -- 'SwapchainDisplayNativeHdrCreateInfoAMD' /can/ be used to explicitly -- enable or disable local dimming for the surface. Local dimming may also- -- be overriden by 'setLocalDimmingAMD' during the lifetime of the+ -- be overridden by 'setLocalDimmingAMD' during the lifetime of the -- swapchain. localDimmingSupport :: Bool } deriving (Typeable, Eq)
src/Vulkan/Extensions/VK_AMD_display_native_hdr.hs-boot view
@@ -19,13 +19,16 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_get_physical_device_properties2@+-- - Requires @VK_KHR_get_physical_device_properties2@ to be enabled+-- for any device-level functionality ----- - Requires @VK_KHR_get_surface_capabilities2@+-- - Requires @VK_KHR_get_surface_capabilities2@ to be enabled for+-- any device-level functionality ----- - Requires @VK_KHR_swapchain@+-- - Requires @VK_KHR_swapchain@ to be enabled for any device-level+-- functionality -- -- [__Contact__] --@@ -120,7 +123,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_AMD_display_native_hdr Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_AMD_display_native_hdr Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_AMD_draw_indirect_count.hs view
@@ -19,7 +19,7 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 -- -- [__Deprecation state__] --@@ -100,7 +100,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_AMD_draw_indirect_count Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_AMD_draw_indirect_count Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_AMD_gcn_shader.hs view
@@ -19,7 +19,7 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 -- -- [__Contact__] --@@ -40,7 +40,7 @@ -- <https://htmlpreview.github.io/?https://github.com/KhronosGroup/SPIRV-Registry/blob/master/extensions/AMD/SPV_AMD_gcn_shader.html SPV_AMD_gcn_shader> -- -- - This extension provides API support for--- <https://www.khronos.org/registry/OpenGL/extensions/AMD/AMD_gcn_shader.txt GL_AMD_gcn_shader>+-- <https://registry.khronos.org/OpenGL/extensions/AMD/AMD_gcn_shader.txt GL_AMD_gcn_shader> -- -- [__Contributors__] --@@ -78,7 +78,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_AMD_gcn_shader Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_AMD_gcn_shader Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_AMD_gpu_shader_half_float.hs view
@@ -19,7 +19,7 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 -- -- [__Deprecation state__] --@@ -47,7 +47,7 @@ -- <https://htmlpreview.github.io/?https://github.com/KhronosGroup/SPIRV-Registry/blob/master/extensions/AMD/SPV_AMD_gpu_shader_half_float.html SPV_AMD_gpu_shader_half_float> -- -- - This extension provides API support for--- <https://www.khronos.org/registry/OpenGL/extensions/AMD/AMD_gpu_shader_half_float.txt GL_AMD_gpu_shader_half_float>+-- <https://registry.khronos.org/OpenGL/extensions/AMD/AMD_gpu_shader_half_float.txt GL_AMD_gpu_shader_half_float> -- -- [__Contributors__] --@@ -97,7 +97,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_AMD_gpu_shader_half_float Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_AMD_gpu_shader_half_float Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_AMD_gpu_shader_int16.hs view
@@ -19,7 +19,7 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 -- -- [__Deprecation state__] --@@ -47,7 +47,7 @@ -- <https://htmlpreview.github.io/?https://github.com/KhronosGroup/SPIRV-Registry/blob/master/extensions/AMD/SPV_AMD_gpu_shader_int16.html SPV_AMD_gpu_shader_int16> -- -- - This extension provides API support for--- <https://www.khronos.org/registry/OpenGL/extensions/AMD/AMD_gpu_shader_int16.txt GL_AMD_gpu_shader_int16>+-- <https://registry.khronos.org/OpenGL/extensions/AMD/AMD_gpu_shader_int16.txt GL_AMD_gpu_shader_int16> -- -- [__Contributors__] --@@ -100,7 +100,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_AMD_gpu_shader_int16 Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_AMD_gpu_shader_int16 Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_AMD_memory_overallocation_behavior.hs view
@@ -19,7 +19,7 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 -- -- [__Contact__] --@@ -86,7 +86,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_AMD_memory_overallocation_behavior Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_AMD_memory_overallocation_behavior Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_AMD_memory_overallocation_behavior.hs-boot view
@@ -19,7 +19,7 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 -- -- [__Contact__] --@@ -86,7 +86,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_AMD_memory_overallocation_behavior Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_AMD_memory_overallocation_behavior Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_AMD_mixed_attachment_samples.hs view
@@ -19,7 +19,7 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 -- -- [__Contact__] --@@ -74,7 +74,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_AMD_mixed_attachment_samples Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_AMD_mixed_attachment_samples Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_AMD_negative_viewport_height.hs view
@@ -19,7 +19,7 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 -- -- [__Deprecation state__] --@@ -88,7 +88,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_AMD_negative_viewport_height Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_AMD_negative_viewport_height Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_AMD_pipeline_compiler_control.hs view
@@ -19,7 +19,7 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 -- -- [__Contact__] --@@ -97,7 +97,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_AMD_pipeline_compiler_control Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_AMD_pipeline_compiler_control Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_AMD_pipeline_compiler_control.hs-boot view
@@ -19,7 +19,7 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 -- -- [__Contact__] --@@ -97,7 +97,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_AMD_pipeline_compiler_control Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_AMD_pipeline_compiler_control Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_AMD_rasterization_order.hs view
@@ -19,7 +19,7 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 -- -- [__Contact__] --@@ -160,7 +160,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_AMD_rasterization_order Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_AMD_rasterization_order Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.@@ -274,11 +274,11 @@ -- | 'RASTERIZATION_ORDER_STRICT_AMD' specifies that operations for each -- primitive in a subpass /must/ occur in--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#drawing-primitive-order primitive order>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#drawing-primitive-order primitive order>. pattern RASTERIZATION_ORDER_STRICT_AMD = RasterizationOrderAMD 0 -- | 'RASTERIZATION_ORDER_RELAXED_AMD' specifies that operations for each -- primitive in a subpass /may/ not occur in--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#drawing-primitive-order primitive order>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#drawing-primitive-order primitive order>. pattern RASTERIZATION_ORDER_RELAXED_AMD = RasterizationOrderAMD 1 {-# complete RASTERIZATION_ORDER_STRICT_AMD, RASTERIZATION_ORDER_RELAXED_AMD :: RasterizationOrderAMD #-}
src/Vulkan/Extensions/VK_AMD_rasterization_order.hs-boot view
@@ -19,7 +19,7 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 -- -- [__Contact__] --@@ -160,7 +160,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_AMD_rasterization_order Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_AMD_rasterization_order Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_AMD_shader_ballot.hs view
@@ -19,7 +19,7 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 -- -- [__Contact__] --@@ -40,7 +40,7 @@ -- <https://htmlpreview.github.io/?https://github.com/KhronosGroup/SPIRV-Registry/blob/master/extensions/AMD/SPV_AMD_shader_ballot.html SPV_AMD_shader_ballot> -- -- - This extension provides API support for--- <https://www.khronos.org/registry/OpenGL/extensions/AMD/AMD_shader_ballot.txt GL_AMD_shader_ballot>+-- <https://registry.khronos.org/OpenGL/extensions/AMD/AMD_shader_ballot.txt GL_AMD_shader_ballot> -- -- [__Contributors__] --@@ -82,7 +82,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_AMD_shader_ballot Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_AMD_shader_ballot Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_AMD_shader_core_properties.hs view
@@ -19,9 +19,10 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_get_physical_device_properties2@+-- - Requires @VK_KHR_get_physical_device_properties2@ to be enabled+-- for any device-level functionality -- -- [__Contact__] --@@ -147,7 +148,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_AMD_shader_core_properties Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_AMD_shader_core_properties Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_AMD_shader_core_properties.hs-boot view
@@ -19,9 +19,10 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_get_physical_device_properties2@+-- - Requires @VK_KHR_get_physical_device_properties2@ to be enabled+-- for any device-level functionality -- -- [__Contact__] --@@ -147,7 +148,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_AMD_shader_core_properties Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_AMD_shader_core_properties Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_AMD_shader_core_properties2.hs view
@@ -19,9 +19,10 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_AMD_shader_core_properties@+-- - Requires @VK_AMD_shader_core_properties@ to be enabled for any+-- device-level functionality -- -- [__Contact__] --@@ -91,7 +92,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_AMD_shader_core_properties2 Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_AMD_shader_core_properties2 Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_AMD_shader_core_properties2.hs-boot view
@@ -19,9 +19,10 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_AMD_shader_core_properties@+-- - Requires @VK_AMD_shader_core_properties@ to be enabled for any+-- device-level functionality -- -- [__Contact__] --@@ -91,7 +92,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_AMD_shader_core_properties2 Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_AMD_shader_core_properties2 Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
+ src/Vulkan/Extensions/VK_AMD_shader_early_and_late_fragment_tests.hs view
@@ -0,0 +1,207 @@+{-# language CPP #-}+-- | = Name+--+-- VK_AMD_shader_early_and_late_fragment_tests - device extension+--+-- == VK_AMD_shader_early_and_late_fragment_tests+--+-- [__Name String__]+-- @VK_AMD_shader_early_and_late_fragment_tests@+--+-- [__Extension Type__]+-- Device extension+--+-- [__Registered Extension Number__]+-- 322+--+-- [__Revision__]+-- 1+--+-- [__Extension and Version Dependencies__]+--+-- - Requires support for Vulkan 1.0+--+-- [__Contact__]+--+-- - Tobias Hector+-- <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_AMD_shader_early_and_late_fragment_tests] @tobski%0A<<Here describe the issue or question you have about the VK_AMD_shader_early_and_late_fragment_tests extension>> >+--+-- [__Extension Proposal__]+-- <https://github.com/KhronosGroup/Vulkan-Docs/tree/main/proposals/VK_AMD_shader_early_and_late_fragment_tests.adoc VK_AMD_shader_early_and_late_fragment_tests>+--+-- == Other Extension Metadata+--+-- [__Last Modified Date__]+-- 2021-09-14+--+-- [__Interactions and External Dependencies__]+--+-- - This extension requires+-- <https://htmlpreview.github.io/?https://github.com/KhronosGroup/SPIRV-Registry/blob/master/extensions/AMD/SPV_AMD_shader_early_and_late_fragment_tests.html SPV_AMD_shader_early_and_late_fragment_tests>+--+-- - This extension interacts with @VK_EXT_shader_stencil_export@+--+-- [__Contributors__]+--+-- - Tobias Hector, AMD+--+-- == Description+--+-- This extension adds support for the+-- <https://htmlpreview.github.io/?https://github.com/KhronosGroup/SPIRV-Registry/blob/master/extensions/AMD/SPV_AMD_shader_early_and_late_fragment_tests.html SPV_AMD_shader_early_and_late_fragment_tests>+-- extension, allowing shaders to explicitly opt in to allowing both early+-- /and/ late fragment tests with the @EarlyAndLateFragmentTestsAMD@+-- execution mode.+--+-- If @VK_EXT_shader_stencil_export@ is supported, additional execution+-- modes allowing early depth tests similar to @DepthUnchanged@,+-- @DepthLess@, and @DepthGreater@ are provided.+--+-- == New Structures+--+-- - Extending+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',+-- 'Vulkan.Core10.Device.DeviceCreateInfo':+--+-- - 'PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD'+--+-- == New Enum Constants+--+-- - 'AMD_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_EXTENSION_NAME'+--+-- - 'AMD_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_SPEC_VERSION'+--+-- - Extending 'Vulkan.Core10.Enums.StructureType.StructureType':+--+-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_FEATURES_AMD'+--+-- == Version History+--+-- - Revision 1, 2021-09-14 (Tobias Hector)+--+-- - Initial draft+--+-- == See Also+--+-- 'PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD'+--+-- == Document Notes+--+-- For more information, see the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_AMD_shader_early_and_late_fragment_tests Vulkan Specification>+--+-- This page is a generated document. Fixes and changes should be made to+-- the generator scripts, not directly.+module Vulkan.Extensions.VK_AMD_shader_early_and_late_fragment_tests ( PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD(..)+ , AMD_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_SPEC_VERSION+ , pattern AMD_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_SPEC_VERSION+ , AMD_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_EXTENSION_NAME+ , pattern AMD_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_EXTENSION_NAME+ ) where++import Foreign.Marshal.Alloc (allocaBytes)+import Foreign.Ptr (nullPtr)+import Foreign.Ptr (plusPtr)+import Vulkan.CStruct (FromCStruct)+import Vulkan.CStruct (FromCStruct(..))+import Vulkan.CStruct (ToCStruct)+import Vulkan.CStruct (ToCStruct(..))+import Vulkan.Zero (Zero(..))+import Data.String (IsString)+import Data.Typeable (Typeable)+import Foreign.Storable (Storable)+import Foreign.Storable (Storable(peek))+import Foreign.Storable (Storable(poke))+import qualified Foreign.Storable (Storable(..))+import GHC.Generics (Generic)+import Foreign.Ptr (Ptr)+import Data.Kind (Type)+import Vulkan.Core10.FundamentalTypes (bool32ToBool)+import Vulkan.Core10.FundamentalTypes (boolToBool32)+import Vulkan.Core10.FundamentalTypes (Bool32)+import Vulkan.Core10.Enums.StructureType (StructureType)+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_FEATURES_AMD))+-- | VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD - Structure+-- describing whether early and late fragment tests can be supported by an+-- implementation+--+-- = Members+--+-- This structure describes the following feature:+--+-- = Description+--+-- If the 'PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD'+-- structure is included in the @pNext@ chain of the+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2'+-- structure passed to+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceFeatures2',+-- it is filled in to indicate whether each corresponding feature is+-- supported. 'PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD'+-- /can/ also be used in the @pNext@ chain of+-- 'Vulkan.Core10.Device.DeviceCreateInfo' to selectively enable these+-- features.+--+-- == Valid Usage (Implicit)+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_AMD_shader_early_and_late_fragment_tests VK_AMD_shader_early_and_late_fragment_tests>,+-- 'Vulkan.Core10.FundamentalTypes.Bool32',+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD = PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD+ { -- | #features-shaderEarlyAndLateFragmentTests#+ -- @shaderEarlyAndLateFragmentTests@ indicates whether the implementation+ -- supports the @EarlyAndLateFragmentTestsAMD@ @Execution@ @Mode@.+ shaderEarlyAndLateFragmentTests :: Bool }+ deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD)+#endif+deriving instance Show PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD++instance ToCStruct PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD where+ withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)+ pokeCStruct p PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD{..} f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_FEATURES_AMD)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (shaderEarlyAndLateFragmentTests))+ f+ cStructSize = 24+ cStructAlignment = 8+ pokeZeroCStruct p f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_FEATURES_AMD)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (zero))+ f++instance FromCStruct PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD where+ peekCStruct p = do+ shaderEarlyAndLateFragmentTests <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))+ pure $ PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD+ (bool32ToBool shaderEarlyAndLateFragmentTests)++instance Storable PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD where+ sizeOf ~_ = 24+ alignment ~_ = 8+ peek = peekCStruct+ poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD where+ zero = PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD+ zero+++type AMD_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_SPEC_VERSION = 1++-- No documentation found for TopLevel "VK_AMD_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_SPEC_VERSION"+pattern AMD_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_SPEC_VERSION :: forall a . Integral a => a+pattern AMD_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_SPEC_VERSION = 1+++type AMD_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_EXTENSION_NAME = "VK_AMD_shader_early_and_late_fragment_tests"++-- No documentation found for TopLevel "VK_AMD_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_EXTENSION_NAME"+pattern AMD_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_EXTENSION_NAME :: forall a . (Eq a, IsString a) => a+pattern AMD_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_EXTENSION_NAME = "VK_AMD_shader_early_and_late_fragment_tests"+
+ src/Vulkan/Extensions/VK_AMD_shader_early_and_late_fragment_tests.hs-boot view
@@ -0,0 +1,107 @@+{-# language CPP #-}+-- | = Name+--+-- VK_AMD_shader_early_and_late_fragment_tests - device extension+--+-- == VK_AMD_shader_early_and_late_fragment_tests+--+-- [__Name String__]+-- @VK_AMD_shader_early_and_late_fragment_tests@+--+-- [__Extension Type__]+-- Device extension+--+-- [__Registered Extension Number__]+-- 322+--+-- [__Revision__]+-- 1+--+-- [__Extension and Version Dependencies__]+--+-- - Requires support for Vulkan 1.0+--+-- [__Contact__]+--+-- - Tobias Hector+-- <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_AMD_shader_early_and_late_fragment_tests] @tobski%0A<<Here describe the issue or question you have about the VK_AMD_shader_early_and_late_fragment_tests extension>> >+--+-- [__Extension Proposal__]+-- <https://github.com/KhronosGroup/Vulkan-Docs/tree/main/proposals/VK_AMD_shader_early_and_late_fragment_tests.adoc VK_AMD_shader_early_and_late_fragment_tests>+--+-- == Other Extension Metadata+--+-- [__Last Modified Date__]+-- 2021-09-14+--+-- [__Interactions and External Dependencies__]+--+-- - This extension requires+-- <https://htmlpreview.github.io/?https://github.com/KhronosGroup/SPIRV-Registry/blob/master/extensions/AMD/SPV_AMD_shader_early_and_late_fragment_tests.html SPV_AMD_shader_early_and_late_fragment_tests>+--+-- - This extension interacts with @VK_EXT_shader_stencil_export@+--+-- [__Contributors__]+--+-- - Tobias Hector, AMD+--+-- == Description+--+-- This extension adds support for the+-- <https://htmlpreview.github.io/?https://github.com/KhronosGroup/SPIRV-Registry/blob/master/extensions/AMD/SPV_AMD_shader_early_and_late_fragment_tests.html SPV_AMD_shader_early_and_late_fragment_tests>+-- extension, allowing shaders to explicitly opt in to allowing both early+-- /and/ late fragment tests with the @EarlyAndLateFragmentTestsAMD@+-- execution mode.+--+-- If @VK_EXT_shader_stencil_export@ is supported, additional execution+-- modes allowing early depth tests similar to @DepthUnchanged@,+-- @DepthLess@, and @DepthGreater@ are provided.+--+-- == New Structures+--+-- - Extending+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',+-- 'Vulkan.Core10.Device.DeviceCreateInfo':+--+-- - 'PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD'+--+-- == New Enum Constants+--+-- - 'AMD_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_EXTENSION_NAME'+--+-- - 'AMD_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_SPEC_VERSION'+--+-- - Extending 'Vulkan.Core10.Enums.StructureType.StructureType':+--+-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_FEATURES_AMD'+--+-- == Version History+--+-- - Revision 1, 2021-09-14 (Tobias Hector)+--+-- - Initial draft+--+-- == See Also+--+-- 'PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD'+--+-- == Document Notes+--+-- For more information, see the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_AMD_shader_early_and_late_fragment_tests Vulkan Specification>+--+-- This page is a generated document. Fixes and changes should be made to+-- the generator scripts, not directly.+module Vulkan.Extensions.VK_AMD_shader_early_and_late_fragment_tests (PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD) where++import Vulkan.CStruct (FromCStruct)+import Vulkan.CStruct (ToCStruct)+import Data.Kind (Type)++data PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD++instance ToCStruct PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD+instance Show PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD++instance FromCStruct PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD+
src/Vulkan/Extensions/VK_AMD_shader_explicit_vertex_parameter.hs view
@@ -19,7 +19,7 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 -- -- [__Contact__] --@@ -40,7 +40,7 @@ -- <https://htmlpreview.github.io/?https://github.com/KhronosGroup/SPIRV-Registry/blob/master/extensions/AMD/SPV_AMD_shader_explicit_vertex_parameter.html SPV_AMD_shader_explicit_vertex_parameter> -- -- - This extension provides API support for--- <https://www.khronos.org/registry/OpenGL/extensions/AMD/AMD_shader_explicit_vertex_parameter.txt GL_AMD_shader_explicit_vertex_parameter>+-- <https://registry.khronos.org/OpenGL/extensions/AMD/AMD_shader_explicit_vertex_parameter.txt GL_AMD_shader_explicit_vertex_parameter> -- -- [__Contributors__] --@@ -80,7 +80,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_AMD_shader_explicit_vertex_parameter Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_AMD_shader_explicit_vertex_parameter Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_AMD_shader_fragment_mask.hs view
@@ -19,7 +19,7 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 -- -- [__Contact__] --@@ -76,7 +76,7 @@ -- -- == New SPIR-V Capabilities ----- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-FragmentMaskAMD FragmentMaskAMD>+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-FragmentMaskAMD FragmentMaskAMD> -- -- == Examples --@@ -126,7 +126,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_AMD_shader_fragment_mask Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_AMD_shader_fragment_mask Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_AMD_shader_image_load_store_lod.hs view
@@ -19,7 +19,7 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 -- -- [__Contact__] --@@ -37,7 +37,7 @@ -- <https://htmlpreview.github.io/?https://github.com/KhronosGroup/SPIRV-Registry/blob/master/extensions/AMD/SPV_AMD_shader_image_load_store_lod.html SPV_AMD_shader_image_load_store_lod> -- -- - This extension provides API support for--- <https://www.khronos.org/registry/OpenGL/extensions/AMD/AMD_shader_image_load_store_lod.txt GL_AMD_shader_image_load_store_lod>+-- <https://registry.khronos.org/OpenGL/extensions/AMD/AMD_shader_image_load_store_lod.txt GL_AMD_shader_image_load_store_lod> -- -- [__IP Status__] -- No known IP claims.@@ -76,7 +76,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_AMD_shader_image_load_store_lod Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_AMD_shader_image_load_store_lod Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_AMD_shader_info.hs view
@@ -19,7 +19,7 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 -- -- [__Special Use__] --@@ -148,7 +148,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_AMD_shader_info Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_AMD_shader_info Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.@@ -566,7 +566,7 @@ -- information will be queried. pattern SHADER_INFO_TYPE_BINARY_AMD = ShaderInfoTypeAMD 1 -- | 'SHADER_INFO_TYPE_DISASSEMBLY_AMD' specifies that human-readable--- dissassembly of a shader.+-- disassembly of a shader. pattern SHADER_INFO_TYPE_DISASSEMBLY_AMD = ShaderInfoTypeAMD 2 {-# complete SHADER_INFO_TYPE_STATISTICS_AMD, SHADER_INFO_TYPE_BINARY_AMD,
src/Vulkan/Extensions/VK_AMD_shader_info.hs-boot view
@@ -19,7 +19,7 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 -- -- [__Special Use__] --@@ -148,7 +148,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_AMD_shader_info Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_AMD_shader_info Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_AMD_shader_trinary_minmax.hs view
@@ -19,7 +19,7 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 -- -- [__Contact__] --@@ -40,7 +40,7 @@ -- <https://htmlpreview.github.io/?https://github.com/KhronosGroup/SPIRV-Registry/blob/master/extensions/AMD/SPV_AMD_shader_trinary_minmax.html SPV_AMD_shader_trinary_minmax> -- -- - This extension provides API support for--- <https://www.khronos.org/registry/OpenGL/extensions/AMD/AMD_shader_trinary_minmax.txt GL_AMD_shader_trinary_minmax>+-- <https://registry.khronos.org/OpenGL/extensions/AMD/AMD_shader_trinary_minmax.txt GL_AMD_shader_trinary_minmax> -- -- [__Contributors__] --@@ -80,7 +80,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_AMD_shader_trinary_minmax Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_AMD_shader_trinary_minmax Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_AMD_texture_gather_bias_lod.hs view
@@ -19,9 +19,10 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_get_physical_device_properties2@+-- - Requires @VK_KHR_get_physical_device_properties2@ to be enabled+-- for any device-level functionality -- -- [__Contact__] --@@ -42,7 +43,7 @@ -- <https://htmlpreview.github.io/?https://github.com/KhronosGroup/SPIRV-Registry/blob/master/extensions/AMD/SPV_AMD_texture_gather_bias_lod.html SPV_AMD_texture_gather_bias_lod> -- -- - This extension provides API support for--- <https://www.khronos.org/registry/OpenGL/extensions/AMD/AMD_texture_gather_bias_lod.txt GL_AMD_texture_gather_bias_lod>+-- <https://registry.khronos.org/OpenGL/extensions/AMD/AMD_texture_gather_bias_lod.txt GL_AMD_texture_gather_bias_lod> -- -- [__Contributors__] --@@ -91,7 +92,7 @@ -- -- == New SPIR-V Capabilities ----- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-ImageGatherBiasLodAMD ImageGatherBiasLodAMD>+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-ImageGatherBiasLodAMD ImageGatherBiasLodAMD> -- -- == Examples --@@ -148,7 +149,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_AMD_texture_gather_bias_lod Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_AMD_texture_gather_bias_lod Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_AMD_texture_gather_bias_lod.hs-boot view
@@ -19,9 +19,10 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_get_physical_device_properties2@+-- - Requires @VK_KHR_get_physical_device_properties2@ to be enabled+-- for any device-level functionality -- -- [__Contact__] --@@ -42,7 +43,7 @@ -- <https://htmlpreview.github.io/?https://github.com/KhronosGroup/SPIRV-Registry/blob/master/extensions/AMD/SPV_AMD_texture_gather_bias_lod.html SPV_AMD_texture_gather_bias_lod> -- -- - This extension provides API support for--- <https://www.khronos.org/registry/OpenGL/extensions/AMD/AMD_texture_gather_bias_lod.txt GL_AMD_texture_gather_bias_lod>+-- <https://registry.khronos.org/OpenGL/extensions/AMD/AMD_texture_gather_bias_lod.txt GL_AMD_texture_gather_bias_lod> -- -- [__Contributors__] --@@ -91,7 +92,7 @@ -- -- == New SPIR-V Capabilities ----- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-ImageGatherBiasLodAMD ImageGatherBiasLodAMD>+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-ImageGatherBiasLodAMD ImageGatherBiasLodAMD> -- -- == Examples --@@ -148,7 +149,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_AMD_texture_gather_bias_lod Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_AMD_texture_gather_bias_lod Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_ANDROID_external_memory_android_hardware_buffer.hs view
@@ -19,15 +19,19 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_sampler_ycbcr_conversion@+-- - Requires @VK_KHR_sampler_ycbcr_conversion@ to be enabled for any+-- device-level functionality ----- - Requires @VK_KHR_external_memory@+-- - Requires @VK_KHR_external_memory@ to be enabled for any+-- device-level functionality ----- - Requires @VK_EXT_queue_family_foreign@+-- - Requires @VK_EXT_queue_family_foreign@ to be enabled for any+-- device-level functionality ----- - Requires @VK_KHR_dedicated_allocation@+-- - Requires @VK_KHR_dedicated_allocation@ to be enabled for any+-- device-level functionality -- -- [__Contact__] --@@ -275,7 +279,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_ANDROID_external_memory_android_hardware_buffer Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_ANDROID_external_memory_android_hardware_buffer Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.@@ -519,7 +523,7 @@ -- @buffer@ is not @NULL@, it /must/ be a valid Android hardware buffer -- object with @AHardwareBuffer_Desc@::@usage@ compatible with Vulkan -- as described in--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-external-android-hardware-buffer Android Hardware Buffers>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-external-android-hardware-buffer Android Hardware Buffers> -- -- == Valid Usage (Implicit) --@@ -582,7 +586,7 @@ -- -- The @androidHardwareBufferUsage@ field /must/ include Android hardware -- buffer usage flags listed in the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-external-android-hardware-buffer-usage AHardwareBuffer Usage Equivalence>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-external-android-hardware-buffer-usage AHardwareBuffer Usage Equivalence> -- table when the corresponding Vulkan image usage or image creation flags -- are included in the @usage@ or @flags@ fields of -- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceImageFormatInfo2'.@@ -819,7 +823,7 @@ -- = Description -- -- If the Android hardware buffer has one of the formats listed in the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-external-android-hardware-buffer-formats Format Equivalence table>,+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-external-android-hardware-buffer-formats Format Equivalence table>, -- then @format@ /must/ have the equivalent Vulkan format listed in the -- table. Otherwise, @format@ /may/ be -- 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED', indicating the Android@@ -840,7 +844,7 @@ -- -- The @formatFeatures@ member only indicates the features available when -- using an--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-external-android-hardware-buffer-external-formats external-format image>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-external-android-hardware-buffer-external-formats external-format image> -- created from the Android hardware buffer. Images from Android hardware -- buffers with a format other than -- 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' are subject to the format@@ -877,7 +881,7 @@ -- with that format. If @format@ is -- 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED', all members of -- @samplerYcbcrConversionComponents@ /must/ be the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-views-identity-mappings identity swizzle>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-views-identity-mappings identity swizzle>. -- -- Implementations /may/ not always be able to determine the color model, -- numerical range, or chroma offsets of the image contents, so the values@@ -886,7 +890,7 @@ -- the absence of more reliable information obtained through some other -- means. If the underlying physical device is also usable via OpenGL ES -- with the--- <https://www.khronos.org/registry/OpenGL/extensions/OES/OES_EGL_image_external.txt GL_OES_EGL_image_external>+-- <https://registry.khronos.org/OpenGL/extensions/OES/OES_EGL_image_external.txt GL_OES_EGL_image_external> -- extension, the implementation /should/ suggest values that will produce -- similar sampled values as would be obtained by sampling the same -- external image via @samplerExternalOES@ in OpenGL ES using equivalent@@ -895,7 +899,7 @@ -- Note -- -- Since--- <https://www.khronos.org/registry/OpenGL/extensions/OES/OES_EGL_image_external.txt GL_OES_EGL_image_external>+-- <https://registry.khronos.org/OpenGL/extensions/OES/OES_EGL_image_external.txt GL_OES_EGL_image_external> -- does not require the same sampling and conversion calculations as Vulkan -- does, achieving identical results between APIs /may/ not be possible on -- some implementations.
src/Vulkan/Extensions/VK_ANDROID_external_memory_android_hardware_buffer.hs-boot view
@@ -19,15 +19,19 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_sampler_ycbcr_conversion@+-- - Requires @VK_KHR_sampler_ycbcr_conversion@ to be enabled for any+-- device-level functionality ----- - Requires @VK_KHR_external_memory@+-- - Requires @VK_KHR_external_memory@ to be enabled for any+-- device-level functionality ----- - Requires @VK_EXT_queue_family_foreign@+-- - Requires @VK_EXT_queue_family_foreign@ to be enabled for any+-- device-level functionality ----- - Requires @VK_KHR_dedicated_allocation@+-- - Requires @VK_KHR_dedicated_allocation@ to be enabled for any+-- device-level functionality -- -- [__Contact__] --@@ -275,7 +279,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_ANDROID_external_memory_android_hardware_buffer Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_ANDROID_external_memory_android_hardware_buffer Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_ARM_rasterization_order_attachment_access.hs view
@@ -19,10 +19,16 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_get_physical_device_properties2@+-- - Requires @VK_KHR_get_physical_device_properties2@ to be enabled+-- for any device-level functionality --+-- [__Deprecation state__]+--+-- - /Promoted/ to @VK_EXT_rasterization_order_attachment_access@+-- extension+-- -- [__Contact__] -- -- - Jan-Harald Fredriksen@@ -45,7 +51,7 @@ -- == Description -- -- Renderpasses, and specifically--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-barriers-subpass-self-dependencies subpass self-dependencies>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-barriers-subpass-self-dependencies subpass self-dependencies> -- enable much of the same functionality as the framebuffer fetch and pixel -- local storage extensions did for OpenGL ES. But certain techniques such -- as programmable blending are awkward or impractical to implement with@@ -58,7 +64,7 @@ -- rasterization order, without explicit synchronization. -- -- See--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-feedbackloop renderpass feedback loops>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-feedbackloop renderpass feedback loops> -- for more information. -- -- == New Structures@@ -69,12 +75,6 @@ -- -- - 'PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM' ----- == New Enums------ - 'Vulkan.Core10.Enums.PipelineColorBlendStateCreateFlagBits.PipelineColorBlendStateCreateFlagBits'------ - 'Vulkan.Core10.Enums.PipelineDepthStencilStateCreateFlagBits.PipelineDepthStencilStateCreateFlagBits'--- -- == New Enum Constants -- -- - 'ARM_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_EXTENSION_NAME'@@ -84,27 +84,27 @@ -- - Extending -- 'Vulkan.Core10.Enums.PipelineColorBlendStateCreateFlagBits.PipelineColorBlendStateCreateFlagBits': ----- - 'Vulkan.Core10.Enums.PipelineColorBlendStateCreateFlagBits.PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_ARM'+-- - 'PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_ARM' -- -- - Extending -- 'Vulkan.Core10.Enums.PipelineDepthStencilStateCreateFlagBits.PipelineDepthStencilStateCreateFlagBits': ----- - 'Vulkan.Core10.Enums.PipelineDepthStencilStateCreateFlagBits.PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_ARM'+-- - 'PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_ARM' ----- - 'Vulkan.Core10.Enums.PipelineDepthStencilStateCreateFlagBits.PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_ARM'+-- - 'PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_ARM' -- -- - Extending 'Vulkan.Core10.Enums.StructureType.StructureType': ----- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_ARM'+-- - 'STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_ARM' -- -- - Extending -- 'Vulkan.Core10.Enums.SubpassDescriptionFlagBits.SubpassDescriptionFlagBits': ----- - 'Vulkan.Core10.Enums.SubpassDescriptionFlagBits.SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_COLOR_ACCESS_BIT_ARM'+-- - 'SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_COLOR_ACCESS_BIT_ARM' ----- - 'Vulkan.Core10.Enums.SubpassDescriptionFlagBits.SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_ARM'+-- - 'SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_ARM' ----- - 'Vulkan.Core10.Enums.SubpassDescriptionFlagBits.SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_ARM'+-- - 'SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_ARM' -- -- == Issues --@@ -129,134 +129,76 @@ -- -- == See Also ----- 'PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM',--- 'Vulkan.Core10.Enums.PipelineColorBlendStateCreateFlagBits.PipelineColorBlendStateCreateFlagBits',--- 'Vulkan.Core10.Enums.PipelineDepthStencilStateCreateFlagBits.PipelineDepthStencilStateCreateFlagBits'+-- 'PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM' -- -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_ARM_rasterization_order_attachment_access Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_ARM_rasterization_order_attachment_access Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.-module Vulkan.Extensions.VK_ARM_rasterization_order_attachment_access ( PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM(..)+module Vulkan.Extensions.VK_ARM_rasterization_order_attachment_access ( pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_ARM+ , pattern PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_ARM+ , pattern PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_ARM+ , pattern PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_ARM+ , pattern SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_COLOR_ACCESS_BIT_ARM+ , pattern SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_ARM+ , pattern SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_ARM+ , PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM , ARM_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_SPEC_VERSION , pattern ARM_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_SPEC_VERSION , ARM_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_EXTENSION_NAME , pattern ARM_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_EXTENSION_NAME+ , PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT(..) ) where -import Foreign.Marshal.Alloc (allocaBytes)-import Foreign.Ptr (nullPtr)-import Foreign.Ptr (plusPtr)-import Vulkan.CStruct (FromCStruct)-import Vulkan.CStruct (FromCStruct(..))-import Vulkan.CStruct (ToCStruct)-import Vulkan.CStruct (ToCStruct(..))-import Vulkan.Zero (Zero(..)) import Data.String (IsString)-import Data.Typeable (Typeable)-import Foreign.Storable (Storable)-import Foreign.Storable (Storable(peek))-import Foreign.Storable (Storable(poke))-import qualified Foreign.Storable (Storable(..))-import GHC.Generics (Generic)-import Foreign.Ptr (Ptr)-import Data.Kind (Type)-import Vulkan.Core10.FundamentalTypes (bool32ToBool)-import Vulkan.Core10.FundamentalTypes (boolToBool32)-import Vulkan.Core10.FundamentalTypes (Bool32)-import Vulkan.Core10.Enums.StructureType (StructureType)-import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_ARM))--- | VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM ---- Structure describing whether rasterization order attachment access can--- be supported by an implementation------ = Members------ The members of the--- 'PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM' structure--- describe the following features:------ = Description------ If the 'PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM'--- structure is included in the @pNext@ chain of--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',--- it is filled with values indicating whether the feature is supported.--- 'PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM' /can/ also--- be used in the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo'--- to enable features.------ == Valid Usage (Implicit)------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_ARM_rasterization_order_attachment_access VK_ARM_rasterization_order_attachment_access>,--- 'Vulkan.Core10.FundamentalTypes.Bool32',--- 'Vulkan.Core10.Enums.StructureType.StructureType'-data PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM = PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM- { -- | #features-rasterizationOrderColorAttachmentAccess#- -- @rasterizationOrderColorAttachmentAccess@ indicates that rasterization- -- order access to color and input attachments is supported by the- -- implementation.- rasterizationOrderColorAttachmentAccess :: Bool- , -- | #features-rasterizationOrderDepthAttachmentAccess#- -- @rasterizationOrderDepthAttachmentAccess@ indicates that rasterization- -- order access to the depth aspect of depth\/stencil and input attachments- -- is supported by the implementation.- rasterizationOrderDepthAttachmentAccess :: Bool- , -- | #features-rasterizationOrderStencilAttachmentAccess#- -- @rasterizationOrderStencilAttachmentAccess@ indicates that rasterization- -- order access to the stencil aspect of depth\/stencil and input- -- attachments is supported by the implementation.- rasterizationOrderStencilAttachmentAccess :: Bool- }- deriving (Typeable, Eq)-#if defined(GENERIC_INSTANCES)-deriving instance Generic (PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM)-#endif-deriving instance Show PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM+import Vulkan.Extensions.VK_EXT_rasterization_order_attachment_access (PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT)+import Vulkan.Core10.Enums.PipelineColorBlendStateCreateFlagBits (PipelineColorBlendStateCreateFlags)+import Vulkan.Core10.Enums.PipelineColorBlendStateCreateFlagBits (PipelineColorBlendStateCreateFlagBits(PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_EXT))+import Vulkan.Core10.Enums.PipelineDepthStencilStateCreateFlagBits (PipelineDepthStencilStateCreateFlags)+import Vulkan.Core10.Enums.PipelineDepthStencilStateCreateFlagBits (PipelineDepthStencilStateCreateFlagBits(PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT))+import Vulkan.Core10.Enums.PipelineDepthStencilStateCreateFlagBits (PipelineDepthStencilStateCreateFlags)+import Vulkan.Core10.Enums.PipelineDepthStencilStateCreateFlagBits (PipelineDepthStencilStateCreateFlagBits(PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_EXT))+import Vulkan.Core10.Enums.SubpassDescriptionFlagBits (SubpassDescriptionFlags)+import Vulkan.Core10.Enums.SubpassDescriptionFlagBits (SubpassDescriptionFlagBits(SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_COLOR_ACCESS_BIT_EXT))+import Vulkan.Core10.Enums.SubpassDescriptionFlagBits (SubpassDescriptionFlags)+import Vulkan.Core10.Enums.SubpassDescriptionFlagBits (SubpassDescriptionFlagBits(SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT))+import Vulkan.Core10.Enums.SubpassDescriptionFlagBits (SubpassDescriptionFlags)+import Vulkan.Core10.Enums.SubpassDescriptionFlagBits (SubpassDescriptionFlagBits(SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT))+import Vulkan.Extensions.VK_EXT_rasterization_order_attachment_access (PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT(..))+-- No documentation found for TopLevel "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_ARM"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_ARM = STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_EXT -instance ToCStruct PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM where- withCStruct x f = allocaBytes 32 $ \p -> pokeCStruct p x (f p)- pokeCStruct p PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM{..} f = do- poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_ARM)- poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)- poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (rasterizationOrderColorAttachmentAccess))- poke ((p `plusPtr` 20 :: Ptr Bool32)) (boolToBool32 (rasterizationOrderDepthAttachmentAccess))- poke ((p `plusPtr` 24 :: Ptr Bool32)) (boolToBool32 (rasterizationOrderStencilAttachmentAccess))- f- cStructSize = 32- cStructAlignment = 8- pokeZeroCStruct p f = do- poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_ARM)- poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)- poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (zero))- poke ((p `plusPtr` 20 :: Ptr Bool32)) (boolToBool32 (zero))- poke ((p `plusPtr` 24 :: Ptr Bool32)) (boolToBool32 (zero))- f -instance FromCStruct PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM where- peekCStruct p = do- rasterizationOrderColorAttachmentAccess <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))- rasterizationOrderDepthAttachmentAccess <- peek @Bool32 ((p `plusPtr` 20 :: Ptr Bool32))- rasterizationOrderStencilAttachmentAccess <- peek @Bool32 ((p `plusPtr` 24 :: Ptr Bool32))- pure $ PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM- (bool32ToBool rasterizationOrderColorAttachmentAccess) (bool32ToBool rasterizationOrderDepthAttachmentAccess) (bool32ToBool rasterizationOrderStencilAttachmentAccess)+-- No documentation found for TopLevel "VK_PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_ARM"+pattern PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_ARM = PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_EXT -instance Storable PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM where- sizeOf ~_ = 32- alignment ~_ = 8- peek = peekCStruct- poke ptr poked = pokeCStruct ptr poked (pure ()) -instance Zero PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM where- zero = PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM- zero- zero- zero+-- No documentation found for TopLevel "VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_ARM"+pattern PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_ARM = PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT+++-- No documentation found for TopLevel "VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_ARM"+pattern PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_ARM = PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT+++-- No documentation found for TopLevel "VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_COLOR_ACCESS_BIT_ARM"+pattern SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_COLOR_ACCESS_BIT_ARM = SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_COLOR_ACCESS_BIT_EXT+++-- No documentation found for TopLevel "VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_ARM"+pattern SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_ARM = SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT+++-- No documentation found for TopLevel "VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_ARM"+pattern SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_ARM = SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT+++-- No documentation found for TopLevel "VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM"+type PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM = PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT type ARM_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_SPEC_VERSION = 1
− src/Vulkan/Extensions/VK_ARM_rasterization_order_attachment_access.hs-boot
@@ -1,155 +0,0 @@-{-# language CPP #-}--- | = Name------ VK_ARM_rasterization_order_attachment_access - device extension------ == VK_ARM_rasterization_order_attachment_access------ [__Name String__]--- @VK_ARM_rasterization_order_attachment_access@------ [__Extension Type__]--- Device extension------ [__Registered Extension Number__]--- 343------ [__Revision__]--- 1------ [__Extension and Version Dependencies__]------ - Requires Vulkan 1.0------ - Requires @VK_KHR_get_physical_device_properties2@------ [__Contact__]------ - Jan-Harald Fredriksen--- <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_ARM_rasterization_order_attachment_access] @janharaldfredriksen-arm%0A<<Here describe the issue or question you have about the VK_ARM_rasterization_order_attachment_access extension>> >------ == Other Extension Metadata------ [__Last Modified Date__]--- 2021-11-12------ [__IP Status__]--- No known IP claims.------ [__Contributors__]------ - Tobias Hector, AMD------ - Jan-Harald Fredriksen, Arm------ == Description------ Renderpasses, and specifically--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-barriers-subpass-self-dependencies subpass self-dependencies>--- enable much of the same functionality as the framebuffer fetch and pixel--- local storage extensions did for OpenGL ES. But certain techniques such--- as programmable blending are awkward or impractical to implement with--- these alone, in part because a self-dependency is required every time a--- fragment will read a value at a given sample coordinate.------ This extension extends the mechanism of input attachments to allow--- access to framebuffer attachments when used as both input and color, or--- depth\/stencil, attachments from one fragment to the next, in--- rasterization order, without explicit synchronization.------ See--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-feedbackloop renderpass feedback loops>--- for more information.------ == New Structures------ - Extending--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',--- 'Vulkan.Core10.Device.DeviceCreateInfo':------ - 'PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM'------ == New Enums------ - 'Vulkan.Core10.Enums.PipelineColorBlendStateCreateFlagBits.PipelineColorBlendStateCreateFlagBits'------ - 'Vulkan.Core10.Enums.PipelineDepthStencilStateCreateFlagBits.PipelineDepthStencilStateCreateFlagBits'------ == New Enum Constants------ - 'ARM_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_EXTENSION_NAME'------ - 'ARM_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_SPEC_VERSION'------ - Extending--- 'Vulkan.Core10.Enums.PipelineColorBlendStateCreateFlagBits.PipelineColorBlendStateCreateFlagBits':------ - 'Vulkan.Core10.Enums.PipelineColorBlendStateCreateFlagBits.PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_ARM'------ - Extending--- 'Vulkan.Core10.Enums.PipelineDepthStencilStateCreateFlagBits.PipelineDepthStencilStateCreateFlagBits':------ - 'Vulkan.Core10.Enums.PipelineDepthStencilStateCreateFlagBits.PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_ARM'------ - 'Vulkan.Core10.Enums.PipelineDepthStencilStateCreateFlagBits.PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_ARM'------ - Extending 'Vulkan.Core10.Enums.StructureType.StructureType':------ - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_ARM'------ - Extending--- 'Vulkan.Core10.Enums.SubpassDescriptionFlagBits.SubpassDescriptionFlagBits':------ - 'Vulkan.Core10.Enums.SubpassDescriptionFlagBits.SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_COLOR_ACCESS_BIT_ARM'------ - 'Vulkan.Core10.Enums.SubpassDescriptionFlagBits.SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_ARM'------ - 'Vulkan.Core10.Enums.SubpassDescriptionFlagBits.SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_ARM'------ == Issues------ 1) Is there any interaction with the @VK_KHR_dynamic_rendering@--- extension?------ No. This extension only affects reads from input attachments. Render--- pass instances begun with--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR' do not--- have input attachments and a different mechanism will be needed to--- provide similar functionality in this case.------ == Examples------ None.------ == Version History------ - Revision 1, 2021-11-12 (Jan-Harald Fredriksen)------ - Initial draft------ == See Also------ 'PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM',--- 'Vulkan.Core10.Enums.PipelineColorBlendStateCreateFlagBits.PipelineColorBlendStateCreateFlagBits',--- 'Vulkan.Core10.Enums.PipelineDepthStencilStateCreateFlagBits.PipelineDepthStencilStateCreateFlagBits'------ == Document Notes------ For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_ARM_rasterization_order_attachment_access Vulkan Specification>------ This page is a generated document. Fixes and changes should be made to--- the generator scripts, not directly.-module Vulkan.Extensions.VK_ARM_rasterization_order_attachment_access (PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM) where--import Vulkan.CStruct (FromCStruct)-import Vulkan.CStruct (ToCStruct)-import Data.Kind (Type)--data PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM--instance ToCStruct PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM-instance Show PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM--instance FromCStruct PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM-
src/Vulkan/Extensions/VK_EXT_4444_formats.hs view
@@ -19,9 +19,10 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_get_physical_device_properties2@+-- - Requires @VK_KHR_get_physical_device_properties2@ to be enabled+-- for any device-level functionality -- -- [__Deprecation state__] --@@ -112,7 +113,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_4444_formats Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_4444_formats Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_EXT_4444_formats.hs-boot view
@@ -19,9 +19,10 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_get_physical_device_properties2@+-- - Requires @VK_KHR_get_physical_device_properties2@ to be enabled+-- for any device-level functionality -- -- [__Deprecation state__] --@@ -112,7 +113,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_4444_formats Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_4444_formats Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_EXT_acquire_drm_display.hs view
@@ -19,9 +19,9 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_EXT_direct_mode_display@+-- - Requires @VK_EXT_direct_mode_display@ to be enabled -- -- [__Contact__] --@@ -75,7 +75,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_acquire_drm_display Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_acquire_drm_display Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_EXT_acquire_xlib_display.hs view
@@ -19,9 +19,9 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_EXT_direct_mode_display@+-- - Requires @VK_EXT_direct_mode_display@ to be enabled -- -- [__Contact__] --@@ -108,7 +108,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_acquire_xlib_display Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_acquire_xlib_display Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.@@ -176,7 +176,7 @@ -- Permission to access the display /may/ be temporarily revoked during -- periods when the X11 server from which control was acquired itself loses -- access to @display@. During such periods, operations which require--- access to the display /must/ fail with an approriate error code. If the+-- access to the display /must/ fail with an appropriate error code. If the -- X11 server associated with @dpy@ does not own @display@, or if -- permission to access it has already been acquired by another entity, the -- call /must/ return the error code
src/Vulkan/Extensions/VK_EXT_acquire_xlib_display.hs-boot view
@@ -19,9 +19,9 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_EXT_direct_mode_display@+-- - Requires @VK_EXT_direct_mode_display@ to be enabled -- -- [__Contact__] --@@ -108,7 +108,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_acquire_xlib_display Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_acquire_xlib_display Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_EXT_astc_decode_mode.hs view
@@ -19,9 +19,10 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_get_physical_device_properties2@+-- - Requires @VK_KHR_get_physical_device_properties2@ to be enabled+-- for any device-level functionality -- -- [__Contact__] --@@ -151,7 +152,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_astc_decode_mode Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_astc_decode_mode Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.@@ -199,7 +200,7 @@ -- 'Vulkan.Core10.Enums.Format.FORMAT_E5B9G9R9_UFLOAT_PACK32' -- -- - #VUID-VkImageViewASTCDecodeModeEXT-decodeMode-02231# If the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-astc-decodeModeSharedExponent decodeModeSharedExponent>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-astc-decodeModeSharedExponent decodeModeSharedExponent> -- feature is not enabled, @decodeMode@ /must/ not be -- 'Vulkan.Core10.Enums.Format.FORMAT_E5B9G9R9_UFLOAT_PACK32' --@@ -209,7 +210,7 @@ -- -- - #VUID-VkImageViewASTCDecodeModeEXT-format-04084# @format@ of the -- image view /must/ be one of the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#appendix-compressedtex-astc ASTC Compressed Image Formats>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#appendix-compressedtex-astc ASTC Compressed Image Formats> -- -- If @format@ uses sRGB encoding then the @decodeMode@ has no effect. --
src/Vulkan/Extensions/VK_EXT_astc_decode_mode.hs-boot view
@@ -19,9 +19,10 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_get_physical_device_properties2@+-- - Requires @VK_KHR_get_physical_device_properties2@ to be enabled+-- for any device-level functionality -- -- [__Contact__] --@@ -151,7 +152,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_astc_decode_mode Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_astc_decode_mode Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
+ src/Vulkan/Extensions/VK_EXT_attachment_feedback_loop_layout.hs view
@@ -0,0 +1,227 @@+{-# language CPP #-}+-- | = Name+--+-- VK_EXT_attachment_feedback_loop_layout - device extension+--+-- == VK_EXT_attachment_feedback_loop_layout+--+-- [__Name String__]+-- @VK_EXT_attachment_feedback_loop_layout@+--+-- [__Extension Type__]+-- Device extension+--+-- [__Registered Extension Number__]+-- 340+--+-- [__Revision__]+-- 2+--+-- [__Extension and Version Dependencies__]+--+-- - Requires support for Vulkan 1.0+--+-- - Requires @VK_KHR_get_physical_device_properties2@ to be enabled+-- for any device-level functionality+--+-- [__Contact__]+--+-- - Joshua Ashton+-- <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_EXT_attachment_feedback_loop_layout] @Joshua-Ashton%0A<<Here describe the issue or question you have about the VK_EXT_attachment_feedback_loop_layout extension>> >+--+-- [__Extension Proposal__]+-- <https://github.com/KhronosGroup/Vulkan-Docs/tree/main/proposals/VK_EXT_attachment_feedback_loop_layout.adoc VK_EXT_attachment_feedback_loop_layout>+--+-- == Other Extension Metadata+--+-- [__Last Modified Date__]+-- 2022-04-04+--+-- [__IP Status__]+-- No known IP claims.+--+-- [__Contributors__]+--+-- - Joshua Ashton, Valve+--+-- - Jason Ekstrand, Collabora+--+-- - Bas Nieuwenhuizen, Google+--+-- - Samuel Iglesias Gonsálvez, Igalia+--+-- - Ralph Potter, Samsung+--+-- - Jan-Harald Fredriksen, Arm+--+-- - Ricardo Garcia, Igalia+--+-- == Description+--+-- This extension adds a new image layout,+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT',+-- which allows applications to have an image layout in which they are able+-- to both render to and sample\/fetch from the same subresource of an+-- image in a given render pass.+--+-- == New Structures+--+-- - Extending+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',+-- 'Vulkan.Core10.Device.DeviceCreateInfo':+--+-- - 'PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT'+--+-- == New Enum Constants+--+-- - 'EXT_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_EXTENSION_NAME'+--+-- - 'EXT_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_SPEC_VERSION'+--+-- - Extending+-- 'Vulkan.Core10.Enums.DependencyFlagBits.DependencyFlagBits':+--+-- - 'Vulkan.Core10.Enums.DependencyFlagBits.DEPENDENCY_FEEDBACK_LOOP_BIT_EXT'+--+-- - Extending 'Vulkan.Core10.Enums.ImageLayout.ImageLayout':+--+-- - 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT'+--+-- - Extending+-- 'Vulkan.Core10.Enums.ImageUsageFlagBits.ImageUsageFlagBits':+--+-- - 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT'+--+-- - Extending+-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PipelineCreateFlagBits':+--+-- - 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT'+--+-- - 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT'+--+-- - Extending 'Vulkan.Core10.Enums.StructureType.StructureType':+--+-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_FEATURES_EXT'+--+-- == Version History+--+-- - Revision 2, 2022-04-04 (Joshua Ashton)+--+-- - Renamed from VALVE to EXT.+--+-- - Revision 1, 2021-03-09 (Joshua Ashton)+--+-- - Initial draft.+--+-- == See Also+--+-- 'PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT'+--+-- == Document Notes+--+-- For more information, see the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_attachment_feedback_loop_layout Vulkan Specification>+--+-- This page is a generated document. Fixes and changes should be made to+-- the generator scripts, not directly.+module Vulkan.Extensions.VK_EXT_attachment_feedback_loop_layout ( PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT(..)+ , EXT_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_SPEC_VERSION+ , pattern EXT_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_SPEC_VERSION+ , EXT_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_EXTENSION_NAME+ , pattern EXT_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_EXTENSION_NAME+ ) where++import Foreign.Marshal.Alloc (allocaBytes)+import Foreign.Ptr (nullPtr)+import Foreign.Ptr (plusPtr)+import Vulkan.CStruct (FromCStruct)+import Vulkan.CStruct (FromCStruct(..))+import Vulkan.CStruct (ToCStruct)+import Vulkan.CStruct (ToCStruct(..))+import Vulkan.Zero (Zero(..))+import Data.String (IsString)+import Data.Typeable (Typeable)+import Foreign.Storable (Storable)+import Foreign.Storable (Storable(peek))+import Foreign.Storable (Storable(poke))+import qualified Foreign.Storable (Storable(..))+import GHC.Generics (Generic)+import Foreign.Ptr (Ptr)+import Data.Kind (Type)+import Vulkan.Core10.FundamentalTypes (bool32ToBool)+import Vulkan.Core10.FundamentalTypes (boolToBool32)+import Vulkan.Core10.FundamentalTypes (Bool32)+import Vulkan.Core10.Enums.StructureType (StructureType)+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_FEATURES_EXT))+-- | VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT - Structure+-- indicating support for a render feedback loop image layout+--+-- = Members+--+-- This structure describes the following feature:+--+-- == Valid Usage (Implicit)+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_attachment_feedback_loop_layout VK_EXT_attachment_feedback_loop_layout>,+-- 'Vulkan.Core10.FundamentalTypes.Bool32',+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT = PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT+ { -- | #features-attachmentFeedbackLoopLayout# @attachmentFeedbackLoopLayout@+ -- indicates whether the implementation supports using+ -- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT'+ -- image layout for images created with+ -- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT'.+ attachmentFeedbackLoopLayout :: Bool }+ deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT)+#endif+deriving instance Show PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT++instance ToCStruct PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT where+ withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)+ pokeCStruct p PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT{..} f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_FEATURES_EXT)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (attachmentFeedbackLoopLayout))+ f+ cStructSize = 24+ cStructAlignment = 8+ pokeZeroCStruct p f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_FEATURES_EXT)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (zero))+ f++instance FromCStruct PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT where+ peekCStruct p = do+ attachmentFeedbackLoopLayout <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))+ pure $ PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT+ (bool32ToBool attachmentFeedbackLoopLayout)++instance Storable PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT where+ sizeOf ~_ = 24+ alignment ~_ = 8+ peek = peekCStruct+ poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT where+ zero = PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT+ zero+++type EXT_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_SPEC_VERSION = 2++-- No documentation found for TopLevel "VK_EXT_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_SPEC_VERSION"+pattern EXT_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_SPEC_VERSION :: forall a . Integral a => a+pattern EXT_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_SPEC_VERSION = 2+++type EXT_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_EXTENSION_NAME = "VK_EXT_attachment_feedback_loop_layout"++-- No documentation found for TopLevel "VK_EXT_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_EXTENSION_NAME"+pattern EXT_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_EXTENSION_NAME :: forall a . (Eq a, IsString a) => a+pattern EXT_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_EXTENSION_NAME = "VK_EXT_attachment_feedback_loop_layout"+
+ src/Vulkan/Extensions/VK_EXT_attachment_feedback_loop_layout.hs-boot view
@@ -0,0 +1,139 @@+{-# language CPP #-}+-- | = Name+--+-- VK_EXT_attachment_feedback_loop_layout - device extension+--+-- == VK_EXT_attachment_feedback_loop_layout+--+-- [__Name String__]+-- @VK_EXT_attachment_feedback_loop_layout@+--+-- [__Extension Type__]+-- Device extension+--+-- [__Registered Extension Number__]+-- 340+--+-- [__Revision__]+-- 2+--+-- [__Extension and Version Dependencies__]+--+-- - Requires support for Vulkan 1.0+--+-- - Requires @VK_KHR_get_physical_device_properties2@ to be enabled+-- for any device-level functionality+--+-- [__Contact__]+--+-- - Joshua Ashton+-- <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_EXT_attachment_feedback_loop_layout] @Joshua-Ashton%0A<<Here describe the issue or question you have about the VK_EXT_attachment_feedback_loop_layout extension>> >+--+-- [__Extension Proposal__]+-- <https://github.com/KhronosGroup/Vulkan-Docs/tree/main/proposals/VK_EXT_attachment_feedback_loop_layout.adoc VK_EXT_attachment_feedback_loop_layout>+--+-- == Other Extension Metadata+--+-- [__Last Modified Date__]+-- 2022-04-04+--+-- [__IP Status__]+-- No known IP claims.+--+-- [__Contributors__]+--+-- - Joshua Ashton, Valve+--+-- - Jason Ekstrand, Collabora+--+-- - Bas Nieuwenhuizen, Google+--+-- - Samuel Iglesias Gonsálvez, Igalia+--+-- - Ralph Potter, Samsung+--+-- - Jan-Harald Fredriksen, Arm+--+-- - Ricardo Garcia, Igalia+--+-- == Description+--+-- This extension adds a new image layout,+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT',+-- which allows applications to have an image layout in which they are able+-- to both render to and sample\/fetch from the same subresource of an+-- image in a given render pass.+--+-- == New Structures+--+-- - Extending+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',+-- 'Vulkan.Core10.Device.DeviceCreateInfo':+--+-- - 'PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT'+--+-- == New Enum Constants+--+-- - 'EXT_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_EXTENSION_NAME'+--+-- - 'EXT_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_SPEC_VERSION'+--+-- - Extending+-- 'Vulkan.Core10.Enums.DependencyFlagBits.DependencyFlagBits':+--+-- - 'Vulkan.Core10.Enums.DependencyFlagBits.DEPENDENCY_FEEDBACK_LOOP_BIT_EXT'+--+-- - Extending 'Vulkan.Core10.Enums.ImageLayout.ImageLayout':+--+-- - 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT'+--+-- - Extending+-- 'Vulkan.Core10.Enums.ImageUsageFlagBits.ImageUsageFlagBits':+--+-- - 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT'+--+-- - Extending+-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PipelineCreateFlagBits':+--+-- - 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT'+--+-- - 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT'+--+-- - Extending 'Vulkan.Core10.Enums.StructureType.StructureType':+--+-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_FEATURES_EXT'+--+-- == Version History+--+-- - Revision 2, 2022-04-04 (Joshua Ashton)+--+-- - Renamed from VALVE to EXT.+--+-- - Revision 1, 2021-03-09 (Joshua Ashton)+--+-- - Initial draft.+--+-- == See Also+--+-- 'PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT'+--+-- == Document Notes+--+-- For more information, see the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_attachment_feedback_loop_layout Vulkan Specification>+--+-- This page is a generated document. Fixes and changes should be made to+-- the generator scripts, not directly.+module Vulkan.Extensions.VK_EXT_attachment_feedback_loop_layout (PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT) where++import Vulkan.CStruct (FromCStruct)+import Vulkan.CStruct (ToCStruct)+import Data.Kind (Type)++data PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT++instance ToCStruct PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT+instance Show PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT++instance FromCStruct PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT+
src/Vulkan/Extensions/VK_EXT_blend_operation_advanced.hs view
@@ -19,8 +19,11 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 --+-- - Requires @VK_KHR_get_physical_device_properties2@ to be enabled+-- for any device-level functionality+-- -- [__Contact__] -- -- - Jeff Bolz@@ -276,7 +279,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_blend_operation_advanced Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_blend_operation_advanced Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.@@ -355,9 +358,9 @@ data PhysicalDeviceBlendOperationAdvancedFeaturesEXT = PhysicalDeviceBlendOperationAdvancedFeaturesEXT { -- | #features-advancedBlendCoherentOperations# -- @advancedBlendCoherentOperations@ specifies whether blending using- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#framebuffer-blend-advanced advanced blend operations>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#framebuffer-blend-advanced advanced blend operations> -- is guaranteed to execute atomically and in- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#drawing-primitive-order primitive order>.+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#drawing-primitive-order primitive order>. -- If this is 'Vulkan.Core10.FundamentalTypes.TRUE', -- 'Vulkan.Core10.Enums.AccessFlagBits.ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT' -- is treated the same as@@ -431,7 +434,7 @@ -- @advancedBlendMaxColorAttachments@ is one greater than the highest color -- attachment index that /can/ be used in a subpass, for a pipeline that -- uses an- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#framebuffer-blend-advanced advanced blend operation>.+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#framebuffer-blend-advanced advanced blend operation>. advancedBlendMaxColorAttachments :: Word32 , -- | #limits-advancedBlendIndependentBlend# @advancedBlendIndependentBlend@ -- specifies whether advanced blend operations /can/ vary per-attachment.@@ -534,19 +537,19 @@ -- -- - #VUID-VkPipelineColorBlendAdvancedStateCreateInfoEXT-srcPremultiplied-01424# -- If the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-advancedBlendNonPremultipliedSrcColor non-premultiplied source color>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-advancedBlendNonPremultipliedSrcColor non-premultiplied source color> -- property is not supported, @srcPremultiplied@ /must/ be -- 'Vulkan.Core10.FundamentalTypes.TRUE' -- -- - #VUID-VkPipelineColorBlendAdvancedStateCreateInfoEXT-dstPremultiplied-01425# -- If the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-advancedBlendNonPremultipliedDstColor non-premultiplied destination color>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-advancedBlendNonPremultipliedDstColor non-premultiplied destination color> -- property is not supported, @dstPremultiplied@ /must/ be -- 'Vulkan.Core10.FundamentalTypes.TRUE' -- -- - #VUID-VkPipelineColorBlendAdvancedStateCreateInfoEXT-blendOverlap-01426# -- If the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-advancedBlendCorrelatedOverlap correlated overlap>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-advancedBlendCorrelatedOverlap correlated overlap> -- property is not supported, @blendOverlap@ /must/ be -- 'BLEND_OVERLAP_UNCORRELATED_EXT' --
src/Vulkan/Extensions/VK_EXT_blend_operation_advanced.hs-boot view
@@ -19,8 +19,11 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 --+-- - Requires @VK_KHR_get_physical_device_properties2@ to be enabled+-- for any device-level functionality+-- -- [__Contact__] -- -- - Jeff Bolz@@ -276,7 +279,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_blend_operation_advanced Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_blend_operation_advanced Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_EXT_border_color_swizzle.hs view
@@ -19,9 +19,10 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_EXT_custom_border_color@+-- - Requires @VK_EXT_custom_border_color@ to be enabled for any+-- device-level functionality -- -- [__Special Uses__] --@@ -114,7 +115,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_border_color_swizzle Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_border_color_swizzle Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.@@ -164,7 +165,7 @@ -- -- - #VUID-VkSamplerBorderColorComponentMappingCreateInfoEXT-borderColorSwizzle-06437# -- The--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-borderColorSwizzle borderColorSwizzle>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-borderColorSwizzle borderColorSwizzle> -- feature /must/ be enabled. -- -- == Valid Usage (Implicit)@@ -269,7 +270,7 @@ -- 'Vulkan.Core10.Enums.BorderColor.BORDER_COLOR_FLOAT_CUSTOM_EXT', or -- 'Vulkan.Core10.Enums.BorderColor.BORDER_COLOR_INT_CUSTOM_EXT' -- @borderColor@ and an image view that uses a- -- non-<https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-views-identity-mappings identity component mapping>,+ -- non-<https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-views-identity-mappings identity component mapping>, -- when either @borderColorSwizzleFromImage@ is enabled or the -- 'SamplerBorderColorComponentMappingCreateInfoEXT' is specified. borderColorSwizzle :: Bool@@ -281,7 +282,7 @@ -- is not set, applications /can/ chain a -- 'SamplerBorderColorComponentMappingCreateInfoEXT' structure when -- creating samplers for use with image views that do not have an- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-views-identity-mappings identity swizzle>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-views-identity-mappings identity swizzle> -- and, when those samplers are combined with image views using the same -- component mapping, sampled image operations that use opaque black or -- custom border colors will return the correct border color values.
src/Vulkan/Extensions/VK_EXT_border_color_swizzle.hs-boot view
@@ -19,9 +19,10 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_EXT_custom_border_color@+-- - Requires @VK_EXT_custom_border_color@ to be enabled for any+-- device-level functionality -- -- [__Special Uses__] --@@ -114,7 +115,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_border_color_swizzle Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_border_color_swizzle Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_EXT_buffer_device_address.hs view
@@ -19,9 +19,10 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_get_physical_device_properties2@+-- - Requires @VK_KHR_get_physical_device_properties2@ to be enabled+-- for any device-level functionality -- -- [__Deprecation state__] --@@ -130,7 +131,7 @@ -- -- == New SPIR-V Capabilities ----- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-PhysicalStorageBufferAddresses PhysicalStorageBufferAddressesEXT>+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-PhysicalStorageBufferAddresses PhysicalStorageBufferAddressesEXT> -- -- == Issues --@@ -164,7 +165,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_buffer_device_address Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_buffer_device_address Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_EXT_buffer_device_address.hs-boot view
@@ -19,9 +19,10 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_get_physical_device_properties2@+-- - Requires @VK_KHR_get_physical_device_properties2@ to be enabled+-- for any device-level functionality -- -- [__Deprecation state__] --@@ -130,7 +131,7 @@ -- -- == New SPIR-V Capabilities ----- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-PhysicalStorageBufferAddresses PhysicalStorageBufferAddressesEXT>+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-PhysicalStorageBufferAddresses PhysicalStorageBufferAddressesEXT> -- -- == Issues --@@ -164,7 +165,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_buffer_device_address Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_buffer_device_address Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_EXT_calibrated_timestamps.hs view
@@ -19,9 +19,10 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_get_physical_device_properties2@+-- - Requires @VK_KHR_get_physical_device_properties2@ to be enabled+-- for any device-level functionality -- -- [__Contact__] --@@ -148,7 +149,7 @@ -- -- __RESOLVED__: Unless the tick of each clock corresponding to the set of -- time domains coincides and all clocks can literally be sampled--- simutaneously, there is not really a possibility for the maximum+-- simultaneously, there is not really a possibility for the maximum -- deviation to be zero, so by convention the maximum deviation is always -- at least the maximum of the length of the ticks of the set of time -- domains calibrated and thus can never be zero.@@ -172,7 +173,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_calibrated_timestamps Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_calibrated_timestamps Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.@@ -354,7 +355,7 @@ -- responsibility to assess whether the returned maximum deviation makes -- the timestamp values suitable for any particular purpose and /can/ -- choose to re-issue the timestamp calibration call pursuing a lower--- devation value.+-- deviation value. -- -- Calibrated timestamp values /can/ be extrapolated to estimate future -- coinciding timestamp values, however, depending on the nature of the@@ -510,7 +511,7 @@ -- 'Vulkan.Core10.CommandBufferBuilding.cmdWriteTimestamp' or -- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.cmdWriteTimestamp2' -- and are defined to be incrementing according to the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-timestampPeriod timestampPeriod>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-timestampPeriod timestampPeriod> -- of the device. pattern TIME_DOMAIN_DEVICE_EXT = TimeDomainEXT 0 -- | 'TIME_DOMAIN_CLOCK_MONOTONIC_EXT' specifies the CLOCK_MONOTONIC time
src/Vulkan/Extensions/VK_EXT_calibrated_timestamps.hs-boot view
@@ -19,9 +19,10 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_get_physical_device_properties2@+-- - Requires @VK_KHR_get_physical_device_properties2@ to be enabled+-- for any device-level functionality -- -- [__Contact__] --@@ -148,7 +149,7 @@ -- -- __RESOLVED__: Unless the tick of each clock corresponding to the set of -- time domains coincides and all clocks can literally be sampled--- simutaneously, there is not really a possibility for the maximum+-- simultaneously, there is not really a possibility for the maximum -- deviation to be zero, so by convention the maximum deviation is always -- at least the maximum of the length of the ticks of the set of time -- domains calibrated and thus can never be zero.@@ -172,7 +173,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_calibrated_timestamps Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_calibrated_timestamps Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_EXT_color_write_enable.hs view
@@ -19,9 +19,10 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_get_physical_device_properties2@+-- - Requires @VK_KHR_get_physical_device_properties2@ to be enabled+-- for any device-level functionality -- -- [__Contact__] --@@ -107,7 +108,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_color_write_enable Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_color_write_enable Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.@@ -192,7 +193,7 @@ -- == Valid Usage -- -- - #VUID-vkCmdSetColorWriteEnableEXT-None-04803# The--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-colorWriteEnable colorWriteEnable>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-colorWriteEnable colorWriteEnable> -- feature /must/ be enabled -- -- - #VUID-vkCmdSetColorWriteEnableEXT-attachmentCount-06656#@@ -218,6 +219,9 @@ -- 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was -- allocated from /must/ support graphics operations --+-- - #VUID-vkCmdSetColorWriteEnableEXT-videocoding# This command /must/+-- only be called outside of a video coding scope+-- -- - #VUID-vkCmdSetColorWriteEnableEXT-attachmentCount-arraylength# -- @attachmentCount@ /must/ be greater than @0@ --@@ -232,12 +236,12 @@ -- -- \' ----- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | Primary | Both | Graphics |--- | Secondary | | |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================++-- | Primary | Both | Outside | Graphics |+-- | Secondary | | | |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+ -- -- = See Also --@@ -350,14 +354,14 @@ -- 'Vulkan.Core10.FundamentalTypes.TRUE' values. -- -- If the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-colorWriteEnable colorWriteEnable>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-colorWriteEnable colorWriteEnable> -- feature is not enabled on the device, all -- 'Vulkan.Core10.FundamentalTypes.Bool32' elements in the -- @pColorWriteEnables@ array /must/ be -- 'Vulkan.Core10.FundamentalTypes.TRUE'. -- -- Color Write Enable interacts with the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#framebuffer-color-write-mask Color Write Mask>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#framebuffer-color-write-mask Color Write Mask> -- as follows: -- -- - If @colorWriteEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE',@@ -371,7 +375,7 @@ -- == Valid Usage -- -- - #VUID-VkPipelineColorWriteCreateInfoEXT-pAttachments-04801# If the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-colorWriteEnable colorWriteEnable>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-colorWriteEnable colorWriteEnable> -- feature is not enabled, all elements of @pColorWriteEnables@ /must/ -- be 'Vulkan.Core10.FundamentalTypes.TRUE' --
src/Vulkan/Extensions/VK_EXT_color_write_enable.hs-boot view
@@ -19,9 +19,10 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_get_physical_device_properties2@+-- - Requires @VK_KHR_get_physical_device_properties2@ to be enabled+-- for any device-level functionality -- -- [__Contact__] --@@ -107,7 +108,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_color_write_enable Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_color_write_enable Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_EXT_conditional_rendering.hs view
@@ -19,7 +19,7 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 -- -- [__Contact__] --@@ -156,7 +156,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_conditional_rendering Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_conditional_rendering Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.@@ -244,7 +244,7 @@ -- -- - #VUID-vkCmdBeginConditionalRenderingEXT-None-01980# Conditional -- rendering /must/ not already be--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#active-conditional-rendering active>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#active-conditional-rendering active> -- -- == Valid Usage (Implicit) --@@ -264,6 +264,9 @@ -- 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was -- allocated from /must/ support graphics, or compute operations --+-- - #VUID-vkCmdBeginConditionalRenderingEXT-videocoding# This command+-- /must/ only be called outside of a video coding scope+-- -- == Host Synchronization -- -- - Host access to @commandBuffer@ /must/ be externally synchronized@@ -275,12 +278,12 @@ -- -- \' ----- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | Primary | Both | Graphics |--- | Secondary | | Compute |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================++-- | Primary | Both | Outside | Graphics |+-- | Secondary | | | Compute |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+ -- -- = See Also --@@ -334,17 +337,17 @@ -- -- - #VUID-vkCmdEndConditionalRenderingEXT-None-01985# Conditional -- rendering /must/ be--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#active-conditional-rendering active>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#active-conditional-rendering active> -- -- - #VUID-vkCmdEndConditionalRenderingEXT-None-01986# If conditional -- rendering was made--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#active-conditional-rendering active>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#active-conditional-rendering active> -- outside of a render pass instance, it /must/ not be ended inside a -- render pass instance -- -- - #VUID-vkCmdEndConditionalRenderingEXT-None-01987# If conditional -- rendering was made--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#active-conditional-rendering active>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#active-conditional-rendering active> -- within a subpass it /must/ be ended in the same subpass -- -- == Valid Usage (Implicit)@@ -361,6 +364,9 @@ -- 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was -- allocated from /must/ support graphics, or compute operations --+-- - #VUID-vkCmdEndConditionalRenderingEXT-videocoding# This command+-- /must/ only be called outside of a video coding scope+-- -- == Host Synchronization -- -- - Host access to @commandBuffer@ /must/ be externally synchronized@@ -372,12 +378,12 @@ -- -- \' ----- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | Primary | Both | Graphics |--- | Secondary | | Compute |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================++-- | Primary | Both | Outside | Graphics |+-- | Secondary | | | Compute |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+ -- -- = See Also --@@ -518,7 +524,7 @@ -- -- - #VUID-VkCommandBufferInheritanceConditionalRenderingInfoEXT-conditionalRenderingEnable-01977# -- If the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-inheritedConditionalRendering inherited conditional rendering>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-inheritedConditionalRendering inheritedConditionalRendering> -- feature is not enabled, @conditionalRenderingEnable@ /must/ be -- 'Vulkan.Core10.FundamentalTypes.FALSE' --
src/Vulkan/Extensions/VK_EXT_conditional_rendering.hs-boot view
@@ -19,7 +19,7 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 -- -- [__Contact__] --@@ -156,7 +156,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_conditional_rendering Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_conditional_rendering Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_EXT_conservative_rasterization.hs view
@@ -19,9 +19,10 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_get_physical_device_properties2@+-- - Requires @VK_KHR_get_physical_device_properties2@ to be enabled+-- for any device-level functionality -- -- [__Contact__] --@@ -48,7 +49,7 @@ -- feature is used. -- -- - This extension provides API support for--- <https://www.khronos.org/registry/OpenGL/extensions/NV/NV_conservative_raster_underestimation.txt GL_NV_conservative_raster_underestimation>+-- <https://registry.khronos.org/OpenGL/extensions/NV/NV_conservative_raster_underestimation.txt GL_NV_conservative_raster_underestimation> -- if the -- 'PhysicalDeviceConservativeRasterizationPropertiesEXT'::@fullyCoveredFragmentShaderInputVariable@ -- feature is used.@@ -147,7 +148,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_conservative_rasterization Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_conservative_rasterization Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.@@ -373,6 +374,26 @@ -- | VkPipelineRasterizationConservativeStateCreateInfoEXT - Structure -- specifying conservative raster state --+-- = Description+--+-- If this structure is not included in the @pNext@ chain,+-- @conservativeRasterizationMode@ is considered to be+-- 'CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT', and and conservative+-- rasterization is disabled.+--+-- Polygon rasterization /can/ be made conservative by setting+-- @conservativeRasterizationMode@ to+-- 'CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT' or+-- 'CONSERVATIVE_RASTERIZATION_MODE_UNDERESTIMATE_EXT' in+-- 'PipelineRasterizationConservativeStateCreateInfoEXT'.+--+-- Note+--+-- If+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-conservativePointAndLineRasterization conservativePointAndLineRasterization>+-- is supported, conservative rasterization can be applied to line and+-- point primitives, otherwise it must be disabled.+-- -- == Valid Usage (Implicit) -- -- = See Also@@ -399,6 +420,9 @@ -- each of its edges in @X@ and @Y@ equally in screen space beyond the base -- overestimation specified in -- 'PhysicalDeviceConservativeRasterizationPropertiesEXT'::@primitiveOverestimationSize@.+ -- If @conservativeRasterizationMode@ is not+ -- 'CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT', this value is+ -- ignored. -- -- #VUID-VkPipelineRasterizationConservativeStateCreateInfoEXT-extraPrimitiveOverestimationSize-01769# -- @extraPrimitiveOverestimationSize@ /must/ be in the range of @0.0@ to
src/Vulkan/Extensions/VK_EXT_conservative_rasterization.hs-boot view
@@ -19,9 +19,10 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_get_physical_device_properties2@+-- - Requires @VK_KHR_get_physical_device_properties2@ to be enabled+-- for any device-level functionality -- -- [__Contact__] --@@ -48,7 +49,7 @@ -- feature is used. -- -- - This extension provides API support for--- <https://www.khronos.org/registry/OpenGL/extensions/NV/NV_conservative_raster_underestimation.txt GL_NV_conservative_raster_underestimation>+-- <https://registry.khronos.org/OpenGL/extensions/NV/NV_conservative_raster_underestimation.txt GL_NV_conservative_raster_underestimation> -- if the -- 'PhysicalDeviceConservativeRasterizationPropertiesEXT'::@fullyCoveredFragmentShaderInputVariable@ -- feature is used.@@ -147,7 +148,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_conservative_rasterization Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_conservative_rasterization Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_EXT_custom_border_color.hs view
@@ -19,7 +19,7 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 -- -- [__Special Uses__] --@@ -246,7 +246,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_custom_border_color Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_custom_border_color Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.@@ -300,11 +300,11 @@ -- 'Vulkan.Core10.Sampler.SamplerCreateInfo'::@borderColor@ type /must/ -- match the sampled type of the provided @format@, as shown in the -- /SPIR-V Sampled Type/ column of the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#formats-numericformat>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#formats-numericformat> -- table -- -- - #VUID-VkSamplerCustomBorderColorCreateInfoEXT-format-04014# If the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-customBorderColorWithoutFormat customBorderColorWithoutFormat>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-customBorderColorWithoutFormat customBorderColorWithoutFormat> -- feature is not enabled then @format@ /must/ not be -- 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' --@@ -339,7 +339,7 @@ , -- | @format@ is a 'Vulkan.Core10.Enums.Format.Format' representing the -- format of the sampled image view(s). This field may be -- 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' if the- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-customBorderColorWithoutFormat customBorderColorWithoutFormat>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-customBorderColorWithoutFormat customBorderColorWithoutFormat> -- feature is enabled. format :: Format }
src/Vulkan/Extensions/VK_EXT_custom_border_color.hs-boot view
@@ -19,7 +19,7 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 -- -- [__Special Uses__] --@@ -246,7 +246,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_custom_border_color Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_custom_border_color Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_EXT_debug_marker.hs view
@@ -19,9 +19,10 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_EXT_debug_report@+-- - Requires @VK_EXT_debug_report@ to be enabled for any+-- device-level functionality -- -- [__Deprecation state__] --@@ -268,7 +269,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_debug_marker Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_debug_marker Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.@@ -494,6 +495,9 @@ -- 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was -- allocated from /must/ support graphics, or compute operations --+-- - #VUID-vkCmdDebugMarkerBeginEXT-videocoding# This command /must/ only+-- be called outside of a video coding scope+-- -- == Host Synchronization -- -- - Host access to @commandBuffer@ /must/ be externally synchronized@@ -505,12 +509,12 @@ -- -- \' ----- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | Primary | Both | Graphics |--- | Secondary | | Compute |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================++-- | Primary | Both | Outside | Graphics |+-- | Secondary | | | Compute |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+ -- -- = See Also --@@ -579,6 +583,9 @@ -- 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was -- allocated from /must/ support graphics, or compute operations --+-- - #VUID-vkCmdDebugMarkerEndEXT-videocoding# This command /must/ only+-- be called outside of a video coding scope+-- -- == Host Synchronization -- -- - Host access to @commandBuffer@ /must/ be externally synchronized@@ -590,12 +597,12 @@ -- -- \' ----- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | Primary | Both | Graphics |--- | Secondary | | Compute |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================++-- | Primary | Both | Outside | Graphics |+-- | Secondary | | | Compute |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+ -- -- = See Also --@@ -643,6 +650,9 @@ -- 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was -- allocated from /must/ support graphics, or compute operations --+-- - #VUID-vkCmdDebugMarkerInsertEXT-videocoding# This command /must/+-- only be called outside of a video coding scope+-- -- == Host Synchronization -- -- - Host access to @commandBuffer@ /must/ be externally synchronized@@ -654,12 +664,12 @@ -- -- \' ----- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | Primary | Both | Graphics |--- | Secondary | | Compute |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================++-- | Primary | Both | Outside | Graphics |+-- | Secondary | | | Compute |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+ -- -- = See Also --@@ -721,7 +731,7 @@ -- -- #VUID-VkDebugMarkerObjectNameInfoEXT-object-01492# @object@ /must/ be a -- Vulkan object of the type associated with @objectType@ as defined in- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#debug-report-object-types>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#debug-report-object-types> object :: Word64 , -- | @pObjectName@ is a null-terminated UTF-8 string specifying the name to -- apply to @object@.@@ -809,7 +819,7 @@ -- -- #VUID-VkDebugMarkerObjectTagInfoEXT-object-01495# @object@ /must/ be a -- Vulkan object of the type associated with @objectType@ as defined in- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#debug-report-object-types>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#debug-report-object-types> object :: Word64 , -- | @tagName@ is a numerical identifier of the tag. tagName :: Word64
src/Vulkan/Extensions/VK_EXT_debug_marker.hs-boot view
@@ -19,9 +19,10 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_EXT_debug_report@+-- - Requires @VK_EXT_debug_report@ to be enabled for any+-- device-level functionality -- -- [__Deprecation state__] --@@ -268,7 +269,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_debug_marker Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_debug_marker Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_EXT_debug_report.hs view
@@ -19,7 +19,7 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 -- -- [__Deprecation state__] --@@ -322,7 +322,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_debug_report Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_debug_report Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.@@ -517,7 +517,7 @@ -- called. DebugReportCallbackCreateInfoEXT -> -- | @pAllocator@ controls host memory allocation as described in the- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation> -- chapter. ("allocator" ::: Maybe AllocationCallbacks) -> io (DebugReportCallbackEXT)@@ -610,7 +610,7 @@ -- active. DebugReportCallbackEXT -> -- | @pAllocator@ controls host memory allocation as described in the- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation> -- chapter. ("allocator" ::: Maybe AllocationCallbacks) -> io ()@@ -652,7 +652,7 @@ -- 'Vulkan.Core10.APIConstants.NULL_HANDLE', @object@ /must/ be a -- Vulkan object of the corresponding type associated with @objectType@ -- as defined in--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#debug-report-object-types>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#debug-report-object-types> -- -- == Valid Usage (Implicit) --@@ -1179,7 +1179,7 @@ -- 'Vulkan.Core10.APIConstants.NULL_HANDLE', @object@ /must/ be a Vulkan -- object of the corresponding type associated with @objectType@ as defined -- in--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#debug-report-object-types>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#debug-report-object-types>. -- -- = See Also --
src/Vulkan/Extensions/VK_EXT_debug_report.hs-boot view
@@ -19,7 +19,7 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 -- -- [__Deprecation state__] --@@ -322,7 +322,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_debug_report Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_debug_report Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_EXT_debug_utils.hs view
@@ -19,7 +19,7 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 -- -- [__Special Use__] --@@ -481,7 +481,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_debug_utils Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_debug_utils Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.@@ -773,11 +773,11 @@ -- -- \' ----- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | - | - | Any |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================++-- | - | - | - | Any |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+ -- -- = See Also --@@ -836,11 +836,11 @@ -- -- \' ----- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | - | - | Any |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================++-- | - | - | - | Any |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+ -- -- = See Also --@@ -873,11 +873,11 @@ -- -- \' ----- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | - | - | Any |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================++-- | - | - | - | Any |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+ -- -- = See Also --@@ -934,6 +934,9 @@ -- 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was -- allocated from /must/ support graphics, or compute operations --+-- - #VUID-vkCmdBeginDebugUtilsLabelEXT-videocoding# This command /must/+-- only be called outside of a video coding scope+-- -- == Host Synchronization -- -- - Host access to @commandBuffer@ /must/ be externally synchronized@@ -945,12 +948,12 @@ -- -- \' ----- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | Primary | Both | Graphics |--- | Secondary | | Compute |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================++-- | Primary | Both | Outside | Graphics |+-- | Secondary | | | Compute |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+ -- -- = See Also --@@ -1040,6 +1043,9 @@ -- 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was -- allocated from /must/ support graphics, or compute operations --+-- - #VUID-vkCmdEndDebugUtilsLabelEXT-videocoding# This command /must/+-- only be called outside of a video coding scope+-- -- == Host Synchronization -- -- - Host access to @commandBuffer@ /must/ be externally synchronized@@ -1051,12 +1057,12 @@ -- -- \' ----- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | Primary | Both | Graphics |--- | Secondary | | Compute |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================++-- | Primary | Both | Outside | Graphics |+-- | Secondary | | | Compute |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+ -- -- = See Also --@@ -1104,6 +1110,9 @@ -- 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was -- allocated from /must/ support graphics, or compute operations --+-- - #VUID-vkCmdInsertDebugUtilsLabelEXT-videocoding# This command /must/+-- only be called outside of a video coding scope+-- -- == Host Synchronization -- -- - Host access to @commandBuffer@ /must/ be externally synchronized@@ -1115,12 +1124,12 @@ -- -- \' ----- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | Primary | Both | Graphics |--- | Secondary | | Compute |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================++-- | Primary | Both | Outside | Graphics |+-- | Secondary | | | Compute |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+ -- -- = See Also --@@ -1201,7 +1210,7 @@ -- conditions under which this messenger will trigger the callback. DebugUtilsMessengerCreateInfoEXT -> -- | @pAllocator@ controls host memory allocation as described in the- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation> -- chapter. ("allocator" ::: Maybe AllocationCallbacks) -> io (DebugUtilsMessengerEXT)@@ -1298,7 +1307,7 @@ -- active. DebugUtilsMessengerEXT -> -- | @pAllocator@ controls host memory allocation as described in the- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation> -- chapter. ("allocator" ::: Maybe AllocationCallbacks) -> io ()@@ -1396,7 +1405,7 @@ -- set name is removed. -- -- The--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-graphicsPipelineLibrary graphicsPipelineLibrary>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-graphicsPipelineLibrary graphicsPipelineLibrary> -- feature allows the specification of pipelines without the creation of -- 'Vulkan.Core10.Handles.ShaderModule' objects beforehand. In order to -- continue to allow naming these shaders independently,@@ -1416,7 +1425,7 @@ -- 'Vulkan.Core10.Enums.ObjectType.OBJECT_TYPE_UNKNOWN', @objectHandle@ -- /must/ be 'Vulkan.Core10.APIConstants.NULL_HANDLE' or a valid Vulkan -- handle of the type associated with @objectType@ as defined in the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#debugging-object-types and Vulkan Handle Relationship>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#debugging-object-types and Vulkan Handle Relationship> -- table -- -- == Valid Usage (Implicit)@@ -1524,7 +1533,7 @@ -- #VUID-VkDebugUtilsObjectTagInfoEXT-objectHandle-01910# @objectHandle@ -- /must/ be a valid Vulkan handle of the type associated with @objectType@ -- as defined in the- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#debugging-object-types and Vulkan Handle Relationship>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#debugging-object-types and Vulkan Handle Relationship> -- table objectHandle :: Word64 , -- | @tagName@ is a numerical identifier of the tag.@@ -1910,14 +1919,14 @@ , -- | @pQueueLabels@ is @NULL@ or a pointer to an array of -- 'DebugUtilsLabelEXT' active in the current 'Vulkan.Core10.Handles.Queue' -- at the time the callback was triggered. Refer to- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#debugging-queue-labels Queue Labels>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#debugging-queue-labels Queue Labels> -- for more information. queueLabels :: Vector DebugUtilsLabelEXT , -- | @pCmdBufLabels@ is @NULL@ or a pointer to an array of -- 'DebugUtilsLabelEXT' active in the current -- 'Vulkan.Core10.Handles.CommandBuffer' at the time the callback was -- triggered. Refer to- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#debugging-command-buffer-labels Command Buffer Labels>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#debugging-command-buffer-labels Command Buffer Labels> -- for more information. cmdBufLabels :: Vector DebugUtilsLabelEXT , -- | @pObjects@ is a pointer to an array of 'DebugUtilsObjectNameInfoEXT'
src/Vulkan/Extensions/VK_EXT_debug_utils.hs-boot view
@@ -19,7 +19,7 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 -- -- [__Special Use__] --@@ -481,7 +481,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_debug_utils Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_debug_utils Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
+ src/Vulkan/Extensions/VK_EXT_depth_clamp_zero_one.hs view
@@ -0,0 +1,189 @@+{-# language CPP #-}+-- | = Name+--+-- VK_EXT_depth_clamp_zero_one - device extension+--+-- == VK_EXT_depth_clamp_zero_one+--+-- [__Name String__]+-- @VK_EXT_depth_clamp_zero_one@+--+-- [__Extension Type__]+-- Device extension+--+-- [__Registered Extension Number__]+-- 422+--+-- [__Revision__]+-- 1+--+-- [__Extension and Version Dependencies__]+--+-- - Requires support for Vulkan 1.0+--+-- [__Contact__]+--+-- - Graeme Leese+-- <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_EXT_depth_clamp_zero_one] @gnl21%0A<<Here describe the issue or question you have about the VK_EXT_depth_clamp_zero_one extension>> >+--+-- == Other Extension Metadata+--+-- [__Last Modified Date__]+-- 2021-07-29+--+-- [__Contributors__]+--+-- - Graeme Leese, Broadcom+--+-- == Description+--+-- This extension gives defined behavior to fragment depth values which end+-- up outside the conventional [0, 1] range. It can be used to ensure+-- portability in edge cases of features like depthBias. The particular+-- behavior is chosen to match OpenGL to aid porting or emulation.+--+-- == New Structures+--+-- - Extending+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',+-- 'Vulkan.Core10.Device.DeviceCreateInfo':+--+-- - 'PhysicalDeviceDepthClampZeroOneFeaturesEXT'+--+-- == New Enum Constants+--+-- - 'EXT_DEPTH_CLAMP_ZERO_ONE_EXTENSION_NAME'+--+-- - 'EXT_DEPTH_CLAMP_ZERO_ONE_SPEC_VERSION'+--+-- - Extending 'Vulkan.Core10.Enums.StructureType.StructureType':+--+-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLAMP_ZERO_ONE_FEATURES_EXT'+--+-- == Version History+--+-- - Revision 1, 2021-07-29 (Graeme Leese)+--+-- - Internal revisions+--+-- == See Also+--+-- 'PhysicalDeviceDepthClampZeroOneFeaturesEXT'+--+-- == Document Notes+--+-- For more information, see the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_depth_clamp_zero_one Vulkan Specification>+--+-- This page is a generated document. Fixes and changes should be made to+-- the generator scripts, not directly.+module Vulkan.Extensions.VK_EXT_depth_clamp_zero_one ( PhysicalDeviceDepthClampZeroOneFeaturesEXT(..)+ , EXT_DEPTH_CLAMP_ZERO_ONE_SPEC_VERSION+ , pattern EXT_DEPTH_CLAMP_ZERO_ONE_SPEC_VERSION+ , EXT_DEPTH_CLAMP_ZERO_ONE_EXTENSION_NAME+ , pattern EXT_DEPTH_CLAMP_ZERO_ONE_EXTENSION_NAME+ ) where++import Foreign.Marshal.Alloc (allocaBytes)+import Foreign.Ptr (nullPtr)+import Foreign.Ptr (plusPtr)+import Vulkan.CStruct (FromCStruct)+import Vulkan.CStruct (FromCStruct(..))+import Vulkan.CStruct (ToCStruct)+import Vulkan.CStruct (ToCStruct(..))+import Vulkan.Zero (Zero(..))+import Data.String (IsString)+import Data.Typeable (Typeable)+import Foreign.Storable (Storable)+import Foreign.Storable (Storable(peek))+import Foreign.Storable (Storable(poke))+import qualified Foreign.Storable (Storable(..))+import GHC.Generics (Generic)+import Foreign.Ptr (Ptr)+import Data.Kind (Type)+import Vulkan.Core10.FundamentalTypes (bool32ToBool)+import Vulkan.Core10.FundamentalTypes (boolToBool32)+import Vulkan.Core10.FundamentalTypes (Bool32)+import Vulkan.Core10.Enums.StructureType (StructureType)+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLAMP_ZERO_ONE_FEATURES_EXT))+-- | VkPhysicalDeviceDepthClampZeroOneFeaturesEXT - Structure describing+-- feature to control zero to one depth clamping+--+-- = Members+--+-- This structure describes the following feature:+--+-- = Description+--+-- If the 'PhysicalDeviceDepthClampZeroOneFeaturesEXT' structure is+-- included in the @pNext@ chain of the+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2'+-- structure passed to+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceFeatures2',+-- it is filled in to indicate whether each corresponding feature is+-- supported. 'PhysicalDeviceDepthClampZeroOneFeaturesEXT' /can/ also be+-- used in the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to+-- selectively enable these features.+--+-- == Valid Usage (Implicit)+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_depth_clamp_zero_one VK_EXT_depth_clamp_zero_one>,+-- 'Vulkan.Core10.FundamentalTypes.Bool32',+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data PhysicalDeviceDepthClampZeroOneFeaturesEXT = PhysicalDeviceDepthClampZeroOneFeaturesEXT+ { -- | #features-depthClampZeroOne# @depthClampZeroOne@ indicates that the+ -- implementation supports clamping the depth to a range of @0@ to @1@.+ depthClampZeroOne :: Bool }+ deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (PhysicalDeviceDepthClampZeroOneFeaturesEXT)+#endif+deriving instance Show PhysicalDeviceDepthClampZeroOneFeaturesEXT++instance ToCStruct PhysicalDeviceDepthClampZeroOneFeaturesEXT where+ withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)+ pokeCStruct p PhysicalDeviceDepthClampZeroOneFeaturesEXT{..} f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLAMP_ZERO_ONE_FEATURES_EXT)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (depthClampZeroOne))+ f+ cStructSize = 24+ cStructAlignment = 8+ pokeZeroCStruct p f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLAMP_ZERO_ONE_FEATURES_EXT)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (zero))+ f++instance FromCStruct PhysicalDeviceDepthClampZeroOneFeaturesEXT where+ peekCStruct p = do+ depthClampZeroOne <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))+ pure $ PhysicalDeviceDepthClampZeroOneFeaturesEXT+ (bool32ToBool depthClampZeroOne)++instance Storable PhysicalDeviceDepthClampZeroOneFeaturesEXT where+ sizeOf ~_ = 24+ alignment ~_ = 8+ peek = peekCStruct+ poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero PhysicalDeviceDepthClampZeroOneFeaturesEXT where+ zero = PhysicalDeviceDepthClampZeroOneFeaturesEXT+ zero+++type EXT_DEPTH_CLAMP_ZERO_ONE_SPEC_VERSION = 1++-- No documentation found for TopLevel "VK_EXT_DEPTH_CLAMP_ZERO_ONE_SPEC_VERSION"+pattern EXT_DEPTH_CLAMP_ZERO_ONE_SPEC_VERSION :: forall a . Integral a => a+pattern EXT_DEPTH_CLAMP_ZERO_ONE_SPEC_VERSION = 1+++type EXT_DEPTH_CLAMP_ZERO_ONE_EXTENSION_NAME = "VK_EXT_depth_clamp_zero_one"++-- No documentation found for TopLevel "VK_EXT_DEPTH_CLAMP_ZERO_ONE_EXTENSION_NAME"+pattern EXT_DEPTH_CLAMP_ZERO_ONE_EXTENSION_NAME :: forall a . (Eq a, IsString a) => a+pattern EXT_DEPTH_CLAMP_ZERO_ONE_EXTENSION_NAME = "VK_EXT_depth_clamp_zero_one"+
+ src/Vulkan/Extensions/VK_EXT_depth_clamp_zero_one.hs-boot view
@@ -0,0 +1,92 @@+{-# language CPP #-}+-- | = Name+--+-- VK_EXT_depth_clamp_zero_one - device extension+--+-- == VK_EXT_depth_clamp_zero_one+--+-- [__Name String__]+-- @VK_EXT_depth_clamp_zero_one@+--+-- [__Extension Type__]+-- Device extension+--+-- [__Registered Extension Number__]+-- 422+--+-- [__Revision__]+-- 1+--+-- [__Extension and Version Dependencies__]+--+-- - Requires support for Vulkan 1.0+--+-- [__Contact__]+--+-- - Graeme Leese+-- <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_EXT_depth_clamp_zero_one] @gnl21%0A<<Here describe the issue or question you have about the VK_EXT_depth_clamp_zero_one extension>> >+--+-- == Other Extension Metadata+--+-- [__Last Modified Date__]+-- 2021-07-29+--+-- [__Contributors__]+--+-- - Graeme Leese, Broadcom+--+-- == Description+--+-- This extension gives defined behavior to fragment depth values which end+-- up outside the conventional [0, 1] range. It can be used to ensure+-- portability in edge cases of features like depthBias. The particular+-- behavior is chosen to match OpenGL to aid porting or emulation.+--+-- == New Structures+--+-- - Extending+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',+-- 'Vulkan.Core10.Device.DeviceCreateInfo':+--+-- - 'PhysicalDeviceDepthClampZeroOneFeaturesEXT'+--+-- == New Enum Constants+--+-- - 'EXT_DEPTH_CLAMP_ZERO_ONE_EXTENSION_NAME'+--+-- - 'EXT_DEPTH_CLAMP_ZERO_ONE_SPEC_VERSION'+--+-- - Extending 'Vulkan.Core10.Enums.StructureType.StructureType':+--+-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLAMP_ZERO_ONE_FEATURES_EXT'+--+-- == Version History+--+-- - Revision 1, 2021-07-29 (Graeme Leese)+--+-- - Internal revisions+--+-- == See Also+--+-- 'PhysicalDeviceDepthClampZeroOneFeaturesEXT'+--+-- == Document Notes+--+-- For more information, see the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_depth_clamp_zero_one Vulkan Specification>+--+-- This page is a generated document. Fixes and changes should be made to+-- the generator scripts, not directly.+module Vulkan.Extensions.VK_EXT_depth_clamp_zero_one (PhysicalDeviceDepthClampZeroOneFeaturesEXT) where++import Vulkan.CStruct (FromCStruct)+import Vulkan.CStruct (ToCStruct)+import Data.Kind (Type)++data PhysicalDeviceDepthClampZeroOneFeaturesEXT++instance ToCStruct PhysicalDeviceDepthClampZeroOneFeaturesEXT+instance Show PhysicalDeviceDepthClampZeroOneFeaturesEXT++instance FromCStruct PhysicalDeviceDepthClampZeroOneFeaturesEXT+
src/Vulkan/Extensions/VK_EXT_depth_clip_control.hs view
@@ -19,9 +19,10 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_get_physical_device_properties2@+-- - Requires @VK_KHR_get_physical_device_properties2@ to be enabled+-- for any device-level functionality -- -- [__Special Use__] --@@ -80,16 +81,6 @@ -- -- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PIPELINE_VIEWPORT_DEPTH_CLIP_CONTROL_CREATE_INFO_EXT' ----- == Version History------ - Revision 0, 2020-10-01 (Spencer Fricke)------ - Internal revisions------ - Revision 1, 2020-11-26 (Shahbaz Youssefi)------ - Language fixes--- -- == Issues -- -- 1) Should this extension include an origin control option to match@@ -117,6 +108,16 @@ -- 'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo'::@pNext@ -- instead. --+-- == Version History+--+-- - Revision 0, 2020-10-01 (Spencer Fricke)+--+-- - Internal revisions+--+-- - Revision 1, 2020-11-26 (Shahbaz Youssefi)+--+-- - Language fixes+-- -- == See Also -- -- 'PhysicalDeviceDepthClipControlFeaturesEXT',@@ -125,7 +126,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_depth_clip_control Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_depth_clip_control Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.@@ -165,8 +166,7 @@ -- -- = Members ----- The members of the 'PhysicalDeviceDepthClipControlFeaturesEXT' structure--- describe the following features:+-- This structure describes the following feature: -- -- = Description --@@ -238,7 +238,7 @@ -- -- - #VUID-VkPipelineViewportDepthClipControlCreateInfoEXT-negativeOneToOne-06470# -- If--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-depthClipControl depthClipControl>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-depthClipControl depthClipControl> -- is not enabled, @negativeOneToOne@ /must/ be -- 'Vulkan.Core10.FundamentalTypes.FALSE' --
src/Vulkan/Extensions/VK_EXT_depth_clip_control.hs-boot view
@@ -19,9 +19,10 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_get_physical_device_properties2@+-- - Requires @VK_KHR_get_physical_device_properties2@ to be enabled+-- for any device-level functionality -- -- [__Special Use__] --@@ -80,16 +81,6 @@ -- -- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PIPELINE_VIEWPORT_DEPTH_CLIP_CONTROL_CREATE_INFO_EXT' ----- == Version History------ - Revision 0, 2020-10-01 (Spencer Fricke)------ - Internal revisions------ - Revision 1, 2020-11-26 (Shahbaz Youssefi)------ - Language fixes--- -- == Issues -- -- 1) Should this extension include an origin control option to match@@ -117,6 +108,16 @@ -- 'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo'::@pNext@ -- instead. --+-- == Version History+--+-- - Revision 0, 2020-10-01 (Spencer Fricke)+--+-- - Internal revisions+--+-- - Revision 1, 2020-11-26 (Shahbaz Youssefi)+--+-- - Language fixes+-- -- == See Also -- -- 'PhysicalDeviceDepthClipControlFeaturesEXT',@@ -125,7 +126,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_depth_clip_control Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_depth_clip_control Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_EXT_depth_clip_enable.hs view
@@ -19,7 +19,7 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 -- -- [__Special Use__] --@@ -103,7 +103,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_depth_clip_enable Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_depth_clip_enable Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.@@ -240,7 +240,7 @@ flags :: PipelineRasterizationDepthClipStateCreateFlagsEXT , -- | @depthClipEnable@ controls whether depth clipping is enabled as -- described in- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#vertexpostproc-clipping Primitive Clipping>.+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#vertexpostproc-clipping Primitive Clipping>. depthClipEnable :: Bool } deriving (Typeable, Eq)
src/Vulkan/Extensions/VK_EXT_depth_clip_enable.hs-boot view
@@ -19,7 +19,7 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 -- -- [__Special Use__] --@@ -103,7 +103,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_depth_clip_enable Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_depth_clip_enable Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_EXT_depth_range_unrestricted.hs view
@@ -19,7 +19,7 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 -- -- [__Contact__] --@@ -57,10 +57,10 @@ -- -- 1) How do 'Vulkan.Core10.Pipeline.Viewport' @minDepth@ and @maxDepth@ -- values outside of the @0.0@ to @1.0@ range interact with--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#vertexpostproc-clipping Primitive Clipping>?+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#vertexpostproc-clipping Primitive Clipping>? -- -- __RESOLVED__: The behavior described in--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#vertexpostproc-clipping Primitive Clipping>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#vertexpostproc-clipping Primitive Clipping> -- still applies. If depth clamping is disabled the depth values are still -- clipped to 0 ≤ zc ≤ wc before the viewport transform. If depth clamping -- is enabled the above equation is ignored and the depth values are@@ -72,8 +72,11 @@ -- @1.0@ range and the depth buffer is fixed-point rather than -- floating-point? ----- __RESOLVED__: The supported range of a fixed-point depth buffer is @0.0@--- to @1.0@ and depth fragments are clamped to this range.+-- __RESOLVED__: This situation can also arise without this extension (when+-- fragment shaders replace depth values, for example), and this extension+-- does not change the behaviour, which is defined in the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fragops-depth Depth Test>+-- section of the Fragment Operations chapter. -- -- == Version History --@@ -88,7 +91,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_depth_range_unrestricted Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_depth_range_unrestricted Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_EXT_descriptor_indexing.hs view
@@ -19,11 +19,13 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_get_physical_device_properties2@+-- - Requires @VK_KHR_get_physical_device_properties2@ to be enabled+-- for any device-level functionality ----- - Requires @VK_KHR_maintenance3@+-- - Requires @VK_KHR_maintenance3@ to be enabled for any+-- device-level functionality -- -- [__Deprecation state__] --@@ -213,7 +215,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_descriptor_indexing Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_descriptor_indexing Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_EXT_device_memory_report.hs view
@@ -19,9 +19,10 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_get_physical_device_properties2@+-- - Requires @VK_KHR_get_physical_device_properties2@ to be enabled+-- for any device-level functionality -- -- [__Special Use__] --@@ -234,7 +235,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_device_memory_report Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_device_memory_report Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.@@ -532,7 +533,7 @@ -- 'DEVICE_MEMORY_REPORT_EVENT_TYPE_UNIMPORT_EXT', @objectHandle@ is a -- valid Vulkan handle of the type associated with @objectType@ as defined -- in the- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#debugging-object-types and Vulkan Handle Relationship>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#debugging-object-types and Vulkan Handle Relationship> -- table. Otherwise, @objectHandle@ is undefined. objectHandle :: Word64 , -- | @heapIndex@ describes which memory heap this device memory allocation is
src/Vulkan/Extensions/VK_EXT_device_memory_report.hs-boot view
@@ -19,9 +19,10 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_get_physical_device_properties2@+-- - Requires @VK_KHR_get_physical_device_properties2@ to be enabled+-- for any device-level functionality -- -- [__Special Use__] --@@ -234,7 +235,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_device_memory_report Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_device_memory_report Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_EXT_direct_mode_display.hs view
@@ -19,9 +19,9 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_display@+-- - Requires @VK_KHR_display@ to be enabled -- -- [__Contact__] --@@ -99,7 +99,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_direct_mode_display Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_direct_mode_display Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_EXT_directfb_surface.hs view
@@ -19,9 +19,9 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_surface@+-- - Requires @VK_KHR_surface@ to be enabled -- -- [__Contact__] --@@ -87,7 +87,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_directfb_surface Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_directfb_surface Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.@@ -227,7 +227,7 @@ DirectFBSurfaceCreateInfoEXT -> -- | @pAllocator@ is the allocator used for host memory allocated for the -- surface object when there is no more specific allocator available (see- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>).+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>). ("allocator" ::: Maybe AllocationCallbacks) -> io (SurfaceKHR) createDirectFBSurfaceEXT instance' createInfo allocator = liftIO . evalContT $ do
src/Vulkan/Extensions/VK_EXT_directfb_surface.hs-boot view
@@ -19,9 +19,9 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_surface@+-- - Requires @VK_KHR_surface@ to be enabled -- -- [__Contact__] --@@ -87,7 +87,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_directfb_surface Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_directfb_surface Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_EXT_discard_rectangles.hs view
@@ -19,9 +19,10 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_get_physical_device_properties2@+-- - Requires @VK_KHR_get_physical_device_properties2@ to be enabled+-- for any device-level functionality -- -- [__Contact__] --@@ -120,7 +121,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_discard_rectangles Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_discard_rectangles Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.@@ -267,6 +268,9 @@ -- 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was -- allocated from /must/ support graphics operations --+-- - #VUID-vkCmdSetDiscardRectangleEXT-videocoding# This command /must/+-- only be called outside of a video coding scope+-- -- - #VUID-vkCmdSetDiscardRectangleEXT-discardRectangleCount-arraylength# -- @discardRectangleCount@ /must/ be greater than @0@ --@@ -281,12 +285,12 @@ -- -- \' ----- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | Primary | Both | Graphics |--- | Secondary | | |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================++-- | Primary | Both | Outside | Graphics |+-- | Secondary | | | |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+ -- -- = See Also --
src/Vulkan/Extensions/VK_EXT_discard_rectangles.hs-boot view
@@ -19,9 +19,10 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_get_physical_device_properties2@+-- - Requires @VK_KHR_get_physical_device_properties2@ to be enabled+-- for any device-level functionality -- -- [__Contact__] --@@ -120,7 +121,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_discard_rectangles Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_discard_rectangles Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_EXT_display_control.hs view
@@ -19,11 +19,13 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_EXT_display_surface_counter@+-- - Requires @VK_EXT_display_surface_counter@ to be enabled for any+-- device-level functionality ----- - Requires @VK_KHR_swapchain@+-- - Requires @VK_KHR_swapchain@ to be enabled for any device-level+-- functionality -- -- [__Contact__] --@@ -146,7 +148,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_display_control Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_display_control Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.@@ -361,7 +363,7 @@ -- describing the event of interest to the application. DeviceEventInfoEXT -> -- | @pAllocator@ controls host memory allocation as described in the- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation> -- chapter. ("allocator" ::: Maybe AllocationCallbacks) -> io (Fence)@@ -440,7 +442,7 @@ -- describing the event of interest to the application. DisplayEventInfoEXT -> -- | @pAllocator@ controls host memory allocation as described in the- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation> -- chapter. ("allocator" ::: Maybe AllocationCallbacks) -> io (Fence)
src/Vulkan/Extensions/VK_EXT_display_control.hs-boot view
@@ -19,11 +19,13 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_EXT_display_surface_counter@+-- - Requires @VK_EXT_display_surface_counter@ to be enabled for any+-- device-level functionality ----- - Requires @VK_KHR_swapchain@+-- - Requires @VK_KHR_swapchain@ to be enabled for any device-level+-- functionality -- -- [__Contact__] --@@ -146,7 +148,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_display_control Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_display_control Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_EXT_display_surface_counter.hs view
@@ -19,9 +19,9 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_display@+-- - Requires @VK_KHR_display@ to be enabled -- -- [__Contact__] --@@ -96,7 +96,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_display_surface_counter Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_display_surface_counter Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.@@ -363,7 +363,7 @@ -- #VUID-VkSurfaceCapabilities2EXT-supportedSurfaceCounters-01246# -- @supportedSurfaceCounters@ /must/ not include -- 'SURFACE_COUNTER_VBLANK_BIT_EXT' unless the surface queried is a- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#wsi-display-surfaces display surface>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#wsi-display-surfaces display surface> supportedSurfaceCounters :: SurfaceCounterFlagsEXT } deriving (Typeable)
src/Vulkan/Extensions/VK_EXT_display_surface_counter.hs-boot view
@@ -19,9 +19,9 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_display@+-- - Requires @VK_KHR_display@ to be enabled -- -- [__Contact__] --@@ -96,7 +96,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_display_surface_counter Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_display_surface_counter Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_EXT_extended_dynamic_state.hs view
@@ -19,9 +19,10 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_get_physical_device_properties2@+-- - Requires @VK_KHR_get_physical_device_properties2@ to be enabled+-- for any device-level functionality -- -- [__Deprecation state__] --@@ -170,7 +171,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_extended_dynamic_state Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_extended_dynamic_state Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_EXT_extended_dynamic_state.hs-boot view
@@ -19,9 +19,10 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_get_physical_device_properties2@+-- - Requires @VK_KHR_get_physical_device_properties2@ to be enabled+-- for any device-level functionality -- -- [__Deprecation state__] --@@ -170,7 +171,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_extended_dynamic_state Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_extended_dynamic_state Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_EXT_extended_dynamic_state2.hs view
@@ -19,9 +19,10 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_get_physical_device_properties2@+-- - Requires @VK_KHR_get_physical_device_properties2@ to be enabled+-- for any device-level functionality -- -- [__Deprecation state__] --@@ -129,7 +130,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_extended_dynamic_state2 Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_extended_dynamic_state2 Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.@@ -219,7 +220,7 @@ -- == Valid Usage -- -- - #VUID-vkCmdSetPatchControlPointsEXT-None-04873# The--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState2PatchControlPoints extendedDynamicState2PatchControlPoints>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState2PatchControlPoints extendedDynamicState2PatchControlPoints> -- feature /must/ be enabled -- -- - #VUID-vkCmdSetPatchControlPointsEXT-patchControlPoints-04874#@@ -241,6 +242,9 @@ -- 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was -- allocated from /must/ support graphics operations --+-- - #VUID-vkCmdSetPatchControlPointsEXT-videocoding# This command /must/+-- only be called outside of a video coding scope+-- -- == Host Synchronization -- -- - Host access to @commandBuffer@ /must/ be externally synchronized@@ -252,12 +256,12 @@ -- -- \' ----- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | Primary | Both | Graphics |--- | Secondary | | |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================++-- | Primary | Both | Outside | Graphics |+-- | Secondary | | | |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+ -- -- = See Also --@@ -303,7 +307,7 @@ -- == Valid Usage -- -- - #VUID-vkCmdSetLogicOpEXT-None-04867# The--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState2LogicOp extendedDynamicState2LogicOp>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState2LogicOp extendedDynamicState2LogicOp> -- feature /must/ be enabled -- -- == Valid Usage (Implicit)@@ -322,6 +326,9 @@ -- 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was -- allocated from /must/ support graphics operations --+-- - #VUID-vkCmdSetLogicOpEXT-videocoding# This command /must/ only be+-- called outside of a video coding scope+-- -- == Host Synchronization -- -- - Host access to @commandBuffer@ /must/ be externally synchronized@@ -333,12 +340,12 @@ -- -- \' ----- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | Primary | Both | Graphics |--- | Secondary | | |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================++-- | Primary | Both | Outside | Graphics |+-- | Secondary | | | |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+ -- -- = See Also --
src/Vulkan/Extensions/VK_EXT_extended_dynamic_state2.hs-boot view
@@ -19,9 +19,10 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_get_physical_device_properties2@+-- - Requires @VK_KHR_get_physical_device_properties2@ to be enabled+-- for any device-level functionality -- -- [__Deprecation state__] --@@ -129,7 +130,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_extended_dynamic_state2 Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_extended_dynamic_state2 Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_EXT_external_memory_dma_buf.hs view
@@ -19,9 +19,10 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_external_memory_fd@+-- - Requires @VK_KHR_external_memory_fd@ to be enabled for any+-- device-level functionality -- -- [__Contact__] --@@ -73,15 +74,15 @@ -- image, specify the memory layout (such as row pitch and DRM format -- modifier) of the 'Vulkan.Core10.Handles.Image'? In other words, how does -- the application achieve behavior comparable to that provided by--- <https://www.khronos.org/registry/EGL/extensions/EXT/EGL_EXT_image_dma_buf_import.txt EGL_EXT_image_dma_buf_import>+-- <https://registry.khronos.org/EGL/extensions/EXT/EGL_EXT_image_dma_buf_import.txt EGL_EXT_image_dma_buf_import> -- and--- <https://www.khronos.org/registry/EGL/extensions/EXT/EGL_EXT_image_dma_buf_import_modifiers.txt EGL_EXT_image_dma_buf_import_modifiers>+-- <https://registry.khronos.org/EGL/extensions/EXT/EGL_EXT_image_dma_buf_import_modifiers.txt EGL_EXT_image_dma_buf_import_modifiers> -- ? -- -- __RESOLVED__: Features comparable to those in--- <https://www.khronos.org/registry/EGL/extensions/EXT/EGL_EXT_image_dma_buf_import.txt EGL_EXT_image_dma_buf_import>+-- <https://registry.khronos.org/EGL/extensions/EXT/EGL_EXT_image_dma_buf_import.txt EGL_EXT_image_dma_buf_import> -- and--- <https://www.khronos.org/registry/EGL/extensions/EXT/EGL_EXT_image_dma_buf_import_modifiers.txt EGL_EXT_image_dma_buf_import_modifiers>+-- <https://registry.khronos.org/EGL/extensions/EXT/EGL_EXT_image_dma_buf_import_modifiers.txt EGL_EXT_image_dma_buf_import_modifiers> -- will be provided by an extension layered atop this one. -- -- 2) Without the ability to specify the memory layout of external@@ -106,7 +107,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_external_memory_dma_buf Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_external_memory_dma_buf Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_EXT_external_memory_host.hs view
@@ -19,9 +19,10 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_external_memory@+-- - Requires @VK_KHR_external_memory@ to be enabled for any+-- device-level functionality -- -- [__Contact__] --@@ -165,7 +166,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_external_memory_host Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_external_memory_host Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.@@ -323,7 +324,7 @@ -- continue to access the memory through the host pointer but it is the -- application’s responsibility to synchronize device and non-device access -- to the payload as defined in--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-device-hostaccess Host Access to Device Memory Objects>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-device-hostaccess Host Access to Device Memory Objects>. -- -- Applications /can/ import the same payload into multiple instances of -- Vulkan and multiple times into a given Vulkan instance. However,
src/Vulkan/Extensions/VK_EXT_external_memory_host.hs-boot view
@@ -19,9 +19,10 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_external_memory@+-- - Requires @VK_KHR_external_memory@ to be enabled for any+-- device-level functionality -- -- [__Contact__] --@@ -165,7 +166,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_external_memory_host Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_external_memory_host Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_EXT_filter_cubic.hs view
@@ -19,7 +19,7 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 -- -- [__Contact__] --@@ -85,12 +85,12 @@ -- -- - Extending 'Vulkan.Core10.Enums.Filter.Filter': ----- - 'FILTER_CUBIC_EXT'+-- - 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' -- -- - Extending -- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FormatFeatureFlagBits': ----- - 'FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT'+-- - 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT' -- -- - Extending 'Vulkan.Core10.Enums.StructureType.StructureType': --@@ -122,13 +122,11 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_filter_cubic Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_filter_cubic Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.-module Vulkan.Extensions.VK_EXT_filter_cubic ( pattern FILTER_CUBIC_EXT- , pattern FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT- , PhysicalDeviceImageViewImageFormatInfoEXT(..)+module Vulkan.Extensions.VK_EXT_filter_cubic ( PhysicalDeviceImageViewImageFormatInfoEXT(..) , FilterCubicImageViewImageFormatPropertiesEXT(..) , EXT_FILTER_CUBIC_SPEC_VERSION , pattern EXT_FILTER_CUBIC_SPEC_VERSION@@ -158,19 +156,8 @@ import Vulkan.Core10.FundamentalTypes (Bool32) import Vulkan.Core10.Enums.ImageViewType (ImageViewType) import Vulkan.Core10.Enums.StructureType (StructureType)-import Vulkan.Core10.Enums.Filter (Filter(FILTER_CUBIC_IMG))-import Vulkan.Core10.Enums.FormatFeatureFlagBits (FormatFeatureFlags)-import Vulkan.Core10.Enums.FormatFeatureFlagBits (FormatFeatureFlagBits(FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG)) import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_FILTER_CUBIC_IMAGE_VIEW_IMAGE_FORMAT_PROPERTIES_EXT)) import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_IMAGE_FORMAT_INFO_EXT))--- No documentation found for TopLevel "VK_FILTER_CUBIC_EXT"-pattern FILTER_CUBIC_EXT = FILTER_CUBIC_IMG----- No documentation found for TopLevel "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT"-pattern FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT = FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG-- -- | VkPhysicalDeviceImageViewImageFormatInfoEXT - Structure for providing -- image view type --
src/Vulkan/Extensions/VK_EXT_filter_cubic.hs-boot view
@@ -19,7 +19,7 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 -- -- [__Contact__] --@@ -85,12 +85,12 @@ -- -- - Extending 'Vulkan.Core10.Enums.Filter.Filter': ----- - 'FILTER_CUBIC_EXT'+-- - 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' -- -- - Extending -- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FormatFeatureFlagBits': ----- - 'FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT'+-- - 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT' -- -- - Extending 'Vulkan.Core10.Enums.StructureType.StructureType': --@@ -122,7 +122,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_filter_cubic Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_filter_cubic Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_EXT_fragment_density_map.hs view
@@ -19,9 +19,10 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_get_physical_device_properties2@+-- - Requires @VK_KHR_get_physical_device_properties2@ to be enabled+-- for any device-level functionality -- -- [__Contact__] --@@ -159,13 +160,13 @@ -- -- == New or Modified Built-In Variables ----- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-fraginvocationcount FragInvocationCountEXT>+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-fraginvocationcount FragInvocationCountEXT> ----- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-fragsize FragSizeEXT>+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-fragsize FragSizeEXT> -- -- == New SPIR-V Capabilities ----- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-FragmentDensityEXT FragmentDensityEXT>+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-FragmentDensityEXT FragmentDensityEXT> -- -- == Version History --@@ -186,7 +187,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_fragment_density_map Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_fragment_density_map Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.@@ -272,9 +273,9 @@ -- implementation supports regular non-subsampled image attachments with -- fragment density map render passes. If this feature is not enabled, -- render passes with a- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-fragmentdensitymapattachment fragment density map attachment>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-fragmentdensitymapattachment fragment density map attachment> -- /must/ only have- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#samplers-subsamplesampler subsampled attachments>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#samplers-subsamplesampler subsampled attachments> -- bound. fragmentDensityMapNonSubsampledImages :: Bool }@@ -349,7 +350,7 @@ data PhysicalDeviceFragmentDensityMapPropertiesEXT = PhysicalDeviceFragmentDensityMapPropertiesEXT { -- | #limits-minFragmentDensityTexelSize# @minFragmentDensityTexelSize@ is -- the minimum- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#glossary-fragment-density-texel-size fragment density texel size>.+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#glossary-fragment-density-texel-size fragment density texel size>. minFragmentDensityTexelSize :: Extent2D , -- | #limits-maxFragmentDensityTexelSize# @maxFragmentDensityTexelSize@ is -- the maximum fragment density texel size.
src/Vulkan/Extensions/VK_EXT_fragment_density_map.hs-boot view
@@ -19,9 +19,10 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_get_physical_device_properties2@+-- - Requires @VK_KHR_get_physical_device_properties2@ to be enabled+-- for any device-level functionality -- -- [__Contact__] --@@ -159,13 +160,13 @@ -- -- == New or Modified Built-In Variables ----- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-fraginvocationcount FragInvocationCountEXT>+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-fraginvocationcount FragInvocationCountEXT> ----- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-fragsize FragSizeEXT>+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-fragsize FragSizeEXT> -- -- == New SPIR-V Capabilities ----- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-FragmentDensityEXT FragmentDensityEXT>+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-FragmentDensityEXT FragmentDensityEXT> -- -- == Version History --@@ -186,7 +187,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_fragment_density_map Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_fragment_density_map Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_EXT_fragment_density_map2.hs view
@@ -19,9 +19,10 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_EXT_fragment_density_map@+-- - Requires @VK_EXT_fragment_density_map@ to be enabled for any+-- device-level functionality -- -- [__Contact__] --@@ -60,80 +61,29 @@ -- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2', -- 'Vulkan.Core10.Device.DeviceCreateInfo': ----- - 'Vulkan.Extensions.VK_EXT_fragment_density_map.PhysicalDeviceFragmentDensityMapFeaturesEXT'+-- - 'PhysicalDeviceFragmentDensityMap2FeaturesEXT' -- -- - Extending -- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2': ----- - 'Vulkan.Extensions.VK_EXT_fragment_density_map.PhysicalDeviceFragmentDensityMapPropertiesEXT'------ - Extending 'Vulkan.Core10.Pass.RenderPassCreateInfo',--- 'Vulkan.Core12.Promoted_From_VK_KHR_create_renderpass2.RenderPassCreateInfo2':------ - 'Vulkan.Extensions.VK_EXT_fragment_density_map.RenderPassFragmentDensityMapCreateInfoEXT'+-- - 'PhysicalDeviceFragmentDensityMap2PropertiesEXT' -- -- == New Enum Constants ----- - 'Vulkan.Extensions.VK_EXT_fragment_density_map.EXT_FRAGMENT_DENSITY_MAP_EXTENSION_NAME'------ - 'Vulkan.Extensions.VK_EXT_fragment_density_map.EXT_FRAGMENT_DENSITY_MAP_SPEC_VERSION'------ - Extending 'Vulkan.Core10.Enums.AccessFlagBits.AccessFlagBits':------ - 'Vulkan.Core10.Enums.AccessFlagBits.ACCESS_FRAGMENT_DENSITY_MAP_READ_BIT_EXT'------ - Extending--- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FormatFeatureFlagBits':------ - 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_FRAGMENT_DENSITY_MAP_BIT_EXT'------ - Extending--- 'Vulkan.Core10.Enums.ImageCreateFlagBits.ImageCreateFlagBits':------ - 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SUBSAMPLED_BIT_EXT'------ - Extending 'Vulkan.Core10.Enums.ImageLayout.ImageLayout':------ - 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT'------ - Extending--- 'Vulkan.Core10.Enums.ImageUsageFlagBits.ImageUsageFlagBits':+-- - 'EXT_FRAGMENT_DENSITY_MAP_2_EXTENSION_NAME' ----- - 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT'+-- - 'EXT_FRAGMENT_DENSITY_MAP_2_SPEC_VERSION' -- -- - Extending -- 'Vulkan.Core10.Enums.ImageViewCreateFlagBits.ImageViewCreateFlagBits': ----- - 'Vulkan.Core10.Enums.ImageViewCreateFlagBits.IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DYNAMIC_BIT_EXT'------ - Extending--- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlagBits':------ - 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT'------ - Extending--- 'Vulkan.Core10.Enums.SamplerCreateFlagBits.SamplerCreateFlagBits':------ - 'Vulkan.Core10.Enums.SamplerCreateFlagBits.SAMPLER_CREATE_SUBSAMPLED_BIT_EXT'------ - 'Vulkan.Core10.Enums.SamplerCreateFlagBits.SAMPLER_CREATE_SUBSAMPLED_COARSE_RECONSTRUCTION_BIT_EXT'+-- - 'Vulkan.Core10.Enums.ImageViewCreateFlagBits.IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DEFERRED_BIT_EXT' -- -- - Extending 'Vulkan.Core10.Enums.StructureType.StructureType': ----- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT'------ - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT'------ - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_RENDER_PASS_FRAGMENT_DENSITY_MAP_CREATE_INFO_EXT'------ If--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_format_feature_flags2 VK_KHR_format_feature_flags2>--- is supported:------ - Extending--- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FormatFeatureFlagBits2':+-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT' ----- - 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_FRAGMENT_DENSITY_MAP_BIT_EXT'+-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT' -- -- == Version History --@@ -149,7 +99,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_fragment_density_map2 Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_fragment_density_map2 Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.@@ -191,7 +141,7 @@ -- -- = Members ----- This structure describes the following features:+-- This structure describes the following feature: -- -- = Description --
src/Vulkan/Extensions/VK_EXT_fragment_density_map2.hs-boot view
@@ -19,9 +19,10 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_EXT_fragment_density_map@+-- - Requires @VK_EXT_fragment_density_map@ to be enabled for any+-- device-level functionality -- -- [__Contact__] --@@ -60,80 +61,29 @@ -- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2', -- 'Vulkan.Core10.Device.DeviceCreateInfo': ----- - 'Vulkan.Extensions.VK_EXT_fragment_density_map.PhysicalDeviceFragmentDensityMapFeaturesEXT'+-- - 'PhysicalDeviceFragmentDensityMap2FeaturesEXT' -- -- - Extending -- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2': ----- - 'Vulkan.Extensions.VK_EXT_fragment_density_map.PhysicalDeviceFragmentDensityMapPropertiesEXT'------ - Extending 'Vulkan.Core10.Pass.RenderPassCreateInfo',--- 'Vulkan.Core12.Promoted_From_VK_KHR_create_renderpass2.RenderPassCreateInfo2':------ - 'Vulkan.Extensions.VK_EXT_fragment_density_map.RenderPassFragmentDensityMapCreateInfoEXT'+-- - 'PhysicalDeviceFragmentDensityMap2PropertiesEXT' -- -- == New Enum Constants ----- - 'Vulkan.Extensions.VK_EXT_fragment_density_map.EXT_FRAGMENT_DENSITY_MAP_EXTENSION_NAME'------ - 'Vulkan.Extensions.VK_EXT_fragment_density_map.EXT_FRAGMENT_DENSITY_MAP_SPEC_VERSION'------ - Extending 'Vulkan.Core10.Enums.AccessFlagBits.AccessFlagBits':------ - 'Vulkan.Core10.Enums.AccessFlagBits.ACCESS_FRAGMENT_DENSITY_MAP_READ_BIT_EXT'------ - Extending--- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FormatFeatureFlagBits':------ - 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_FRAGMENT_DENSITY_MAP_BIT_EXT'------ - Extending--- 'Vulkan.Core10.Enums.ImageCreateFlagBits.ImageCreateFlagBits':------ - 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SUBSAMPLED_BIT_EXT'------ - Extending 'Vulkan.Core10.Enums.ImageLayout.ImageLayout':------ - 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT'------ - Extending--- 'Vulkan.Core10.Enums.ImageUsageFlagBits.ImageUsageFlagBits':+-- - 'EXT_FRAGMENT_DENSITY_MAP_2_EXTENSION_NAME' ----- - 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT'+-- - 'EXT_FRAGMENT_DENSITY_MAP_2_SPEC_VERSION' -- -- - Extending -- 'Vulkan.Core10.Enums.ImageViewCreateFlagBits.ImageViewCreateFlagBits': ----- - 'Vulkan.Core10.Enums.ImageViewCreateFlagBits.IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DYNAMIC_BIT_EXT'------ - Extending--- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlagBits':------ - 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT'------ - Extending--- 'Vulkan.Core10.Enums.SamplerCreateFlagBits.SamplerCreateFlagBits':------ - 'Vulkan.Core10.Enums.SamplerCreateFlagBits.SAMPLER_CREATE_SUBSAMPLED_BIT_EXT'------ - 'Vulkan.Core10.Enums.SamplerCreateFlagBits.SAMPLER_CREATE_SUBSAMPLED_COARSE_RECONSTRUCTION_BIT_EXT'+-- - 'Vulkan.Core10.Enums.ImageViewCreateFlagBits.IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DEFERRED_BIT_EXT' -- -- - Extending 'Vulkan.Core10.Enums.StructureType.StructureType': ----- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT'------ - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT'------ - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_RENDER_PASS_FRAGMENT_DENSITY_MAP_CREATE_INFO_EXT'------ If--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_format_feature_flags2 VK_KHR_format_feature_flags2>--- is supported:------ - Extending--- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FormatFeatureFlagBits2':+-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT' ----- - 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_FRAGMENT_DENSITY_MAP_BIT_EXT'+-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT' -- -- == Version History --@@ -149,7 +99,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_fragment_density_map2 Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_fragment_density_map2 Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_EXT_fragment_shader_interlock.hs view
@@ -19,9 +19,10 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_get_physical_device_properties2@+-- - Requires @VK_KHR_get_physical_device_properties2@ to be enabled+-- for any device-level functionality -- -- [__Contact__] --@@ -39,7 +40,7 @@ -- <https://htmlpreview.github.io/?https://github.com/KhronosGroup/SPIRV-Registry/blob/master/extensions/EXT/SPV_EXT_fragment_shader_interlock.html SPV_EXT_fragment_shader_interlock> -- -- - This extension provides API support for--- <https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_fragment_shader_interlock.txt GL_ARB_fragment_shader_interlock>+-- <https://registry.khronos.org/OpenGL/extensions/ARB/ARB_fragment_shader_interlock.txt GL_ARB_fragment_shader_interlock> -- -- [__Contributors__] --@@ -101,11 +102,11 @@ -- -- == New SPIR-V Capabilities ----- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-FragmentShaderSampleInterlockEXT FragmentShaderInterlockEXT>+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-FragmentShaderSampleInterlockEXT FragmentShaderInterlockEXT> ----- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-FragmentShaderPixelInterlockEXT FragmentShaderPixelInterlockEXT>+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-FragmentShaderPixelInterlockEXT FragmentShaderPixelInterlockEXT> ----- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-FragmentShaderShadingRateInterlockEXT FragmentShaderShadingRateInterlockEXT>+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-FragmentShaderShadingRateInterlockEXT FragmentShaderShadingRateInterlockEXT> -- -- == Version History --@@ -120,7 +121,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_fragment_shader_interlock Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_fragment_shader_interlock Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_EXT_fragment_shader_interlock.hs-boot view
@@ -19,9 +19,10 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_get_physical_device_properties2@+-- - Requires @VK_KHR_get_physical_device_properties2@ to be enabled+-- for any device-level functionality -- -- [__Contact__] --@@ -39,7 +40,7 @@ -- <https://htmlpreview.github.io/?https://github.com/KhronosGroup/SPIRV-Registry/blob/master/extensions/EXT/SPV_EXT_fragment_shader_interlock.html SPV_EXT_fragment_shader_interlock> -- -- - This extension provides API support for--- <https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_fragment_shader_interlock.txt GL_ARB_fragment_shader_interlock>+-- <https://registry.khronos.org/OpenGL/extensions/ARB/ARB_fragment_shader_interlock.txt GL_ARB_fragment_shader_interlock> -- -- [__Contributors__] --@@ -101,11 +102,11 @@ -- -- == New SPIR-V Capabilities ----- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-FragmentShaderSampleInterlockEXT FragmentShaderInterlockEXT>+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-FragmentShaderSampleInterlockEXT FragmentShaderInterlockEXT> ----- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-FragmentShaderPixelInterlockEXT FragmentShaderPixelInterlockEXT>+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-FragmentShaderPixelInterlockEXT FragmentShaderPixelInterlockEXT> ----- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-FragmentShaderShadingRateInterlockEXT FragmentShaderShadingRateInterlockEXT>+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-FragmentShaderShadingRateInterlockEXT FragmentShaderShadingRateInterlockEXT> -- -- == Version History --@@ -120,7 +121,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_fragment_shader_interlock Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_fragment_shader_interlock Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_EXT_full_screen_exclusive.hs view
@@ -19,15 +19,19 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_get_physical_device_properties2@+-- - Requires @VK_KHR_get_physical_device_properties2@ to be enabled+-- for any device-level functionality ----- - Requires @VK_KHR_surface@+-- - Requires @VK_KHR_surface@ to be enabled for any device-level+-- functionality ----- - Requires @VK_KHR_get_surface_capabilities2@+-- - Requires @VK_KHR_get_surface_capabilities2@ to be enabled for+-- any device-level functionality ----- - Requires @VK_KHR_swapchain@+-- - Requires @VK_KHR_swapchain@ to be enabled for any device-level+-- functionality -- -- [__Contact__] --@@ -251,7 +255,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_full_screen_exclusive Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_full_screen_exclusive Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_EXT_full_screen_exclusive.hs-boot view
@@ -19,15 +19,19 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_get_physical_device_properties2@+-- - Requires @VK_KHR_get_physical_device_properties2@ to be enabled+-- for any device-level functionality ----- - Requires @VK_KHR_surface@+-- - Requires @VK_KHR_surface@ to be enabled for any device-level+-- functionality ----- - Requires @VK_KHR_get_surface_capabilities2@+-- - Requires @VK_KHR_get_surface_capabilities2@ to be enabled for+-- any device-level functionality ----- - Requires @VK_KHR_swapchain@+-- - Requires @VK_KHR_swapchain@ to be enabled for any device-level+-- functionality -- -- [__Contact__] --@@ -251,7 +255,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_full_screen_exclusive Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_full_screen_exclusive Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_EXT_global_priority.hs view
@@ -19,7 +19,7 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 -- -- [__Deprecation state__] --@@ -119,7 +119,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_global_priority Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_global_priority Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_EXT_global_priority_query.hs view
@@ -19,11 +19,13 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_EXT_global_priority@+-- - Requires @VK_EXT_global_priority@ to be enabled for any+-- device-level functionality ----- - Requires @VK_KHR_get_physical_device_properties2@+-- - Requires @VK_KHR_get_physical_device_properties2@ to be enabled+-- for any device-level functionality -- -- [__Deprecation state__] --@@ -117,7 +119,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_global_priority_query Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_global_priority_query Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_EXT_graphics_pipeline_library.hs view
@@ -19,11 +19,13 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_get_physical_device_properties2@+-- - Requires @VK_KHR_get_physical_device_properties2@ to be enabled+-- for any device-level functionality ----- - Requires @VK_KHR_pipeline_library@+-- - Requires @VK_KHR_pipeline_library@ to be enabled for any+-- device-level functionality -- -- [__Contact__] --@@ -31,7 +33,7 @@ -- <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_EXT_graphics_pipeline_library] @tobski%0A<<Here describe the issue or question you have about the VK_EXT_graphics_pipeline_library extension>> > -- -- [__Extension Proposal__]--- <https://github.com/KhronosGroup/Vulkan-Docs/tree/main/proposals/VK_EXT_graphics_pipeline_library.asciidoc VK_EXT_graphics_pipeline_library>+-- <https://github.com/KhronosGroup/Vulkan-Docs/tree/main/proposals/VK_EXT_graphics_pipeline_library.adoc VK_EXT_graphics_pipeline_library> -- -- == Other Extension Metadata --@@ -145,7 +147,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_graphics_pipeline_library Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_graphics_pipeline_library Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.@@ -228,7 +230,7 @@ data PhysicalDeviceGraphicsPipelineLibraryFeaturesEXT = PhysicalDeviceGraphicsPipelineLibraryFeaturesEXT { -- | #features-graphicsPipelineLibrary# @graphicsPipelineLibrary@ indicates -- that the implementation supports- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-library graphics pipeline libraries>.+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-library graphics pipeline libraries>. graphicsPipelineLibrary :: Bool } deriving (Typeable, Eq) #if defined(GENERIC_INSTANCES)@@ -358,7 +360,7 @@ -- If a 'GraphicsPipelineLibraryCreateInfoEXT' structure is included in the -- @pNext@ chain of 'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo', it -- specifies the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets subsets of the graphics pipeline>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets subsets of the graphics pipeline> -- being created. -- -- If this structure is omitted, and either@@ -370,7 +372,7 @@ -- structure with a @libraryCount@ greater than @0@, it is as if @flags@ is -- @0@. Otherwise if this structure is omitted, it is as if @flags@ -- includes all possible subsets of the graphics pipeline (i.e. a--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-complete complete graphics pipeline>).+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-complete complete graphics pipeline>). -- -- == Valid Usage (Implicit) --@@ -442,19 +444,19 @@ -- | 'GRAPHICS_PIPELINE_LIBRARY_VERTEX_INPUT_INTERFACE_BIT_EXT' specifies -- that a pipeline will include--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-vertex-input vertex input interface state>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-vertex-input vertex input interface state>. pattern GRAPHICS_PIPELINE_LIBRARY_VERTEX_INPUT_INTERFACE_BIT_EXT = GraphicsPipelineLibraryFlagBitsEXT 0x00000001 -- | 'GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT' specifies -- that a pipeline will include--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>. pattern GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT = GraphicsPipelineLibraryFlagBitsEXT 0x00000002 -- | 'GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT' specifies that a -- pipeline will include--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>. pattern GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT = GraphicsPipelineLibraryFlagBitsEXT 0x00000004 -- | 'GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT' specifies -- that a pipeline will include--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-output fragment output interface state>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-output fragment output interface state>. pattern GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT = GraphicsPipelineLibraryFlagBitsEXT 0x00000008 conNameGraphicsPipelineLibraryFlagBitsEXT :: String
src/Vulkan/Extensions/VK_EXT_graphics_pipeline_library.hs-boot view
@@ -19,11 +19,13 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_get_physical_device_properties2@+-- - Requires @VK_KHR_get_physical_device_properties2@ to be enabled+-- for any device-level functionality ----- - Requires @VK_KHR_pipeline_library@+-- - Requires @VK_KHR_pipeline_library@ to be enabled for any+-- device-level functionality -- -- [__Contact__] --@@ -31,7 +33,7 @@ -- <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_EXT_graphics_pipeline_library] @tobski%0A<<Here describe the issue or question you have about the VK_EXT_graphics_pipeline_library extension>> > -- -- [__Extension Proposal__]--- <https://github.com/KhronosGroup/Vulkan-Docs/tree/main/proposals/VK_EXT_graphics_pipeline_library.asciidoc VK_EXT_graphics_pipeline_library>+-- <https://github.com/KhronosGroup/Vulkan-Docs/tree/main/proposals/VK_EXT_graphics_pipeline_library.adoc VK_EXT_graphics_pipeline_library> -- -- == Other Extension Metadata --@@ -145,7 +147,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_graphics_pipeline_library Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_graphics_pipeline_library Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_EXT_hdr_metadata.hs view
@@ -19,9 +19,10 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_swapchain@+-- - Requires @VK_KHR_swapchain@ to be enabled for any device-level+-- functionality -- -- [__Contact__] --@@ -113,7 +114,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_hdr_metadata Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_hdr_metadata Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_EXT_hdr_metadata.hs-boot view
@@ -19,9 +19,10 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_swapchain@+-- - Requires @VK_KHR_swapchain@ to be enabled for any device-level+-- functionality -- -- [__Contact__] --@@ -113,7 +114,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_hdr_metadata Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_hdr_metadata Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_EXT_headless_surface.hs view
@@ -19,9 +19,9 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_surface@+-- - Requires @VK_KHR_surface@ to be enabled -- -- [__Contact__] --@@ -98,7 +98,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_headless_surface Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_headless_surface Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.@@ -226,7 +226,7 @@ HeadlessSurfaceCreateInfoEXT -> -- | @pAllocator@ is the allocator used for host memory allocated for the -- surface object when there is no more specific allocator available (see- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>).+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>). ("allocator" ::: Maybe AllocationCallbacks) -> io (SurfaceKHR) createHeadlessSurfaceEXT instance' createInfo allocator = liftIO . evalContT $ do
src/Vulkan/Extensions/VK_EXT_headless_surface.hs-boot view
@@ -19,9 +19,9 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_surface@+-- - Requires @VK_KHR_surface@ to be enabled -- -- [__Contact__] --@@ -98,7 +98,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_headless_surface Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_headless_surface Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_EXT_host_query_reset.hs view
@@ -19,9 +19,10 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_get_physical_device_properties2@+-- - Requires @VK_KHR_get_physical_device_properties2@ to be enabled+-- for any device-level functionality -- -- [__Deprecation state__] --@@ -100,7 +101,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_host_query_reset Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_host_query_reset Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
+ src/Vulkan/Extensions/VK_EXT_image_2d_view_of_3d.hs view
@@ -0,0 +1,241 @@+{-# language CPP #-}+-- | = Name+--+-- VK_EXT_image_2d_view_of_3d - device extension+--+-- == VK_EXT_image_2d_view_of_3d+--+-- [__Name String__]+-- @VK_EXT_image_2d_view_of_3d@+--+-- [__Extension Type__]+-- Device extension+--+-- [__Registered Extension Number__]+-- 394+--+-- [__Revision__]+-- 1+--+-- [__Extension and Version Dependencies__]+--+-- - Requires support for Vulkan 1.0+--+-- - Requires @VK_KHR_maintenance1@ to be enabled for any+-- device-level functionality+--+-- - Requires @VK_KHR_get_physical_device_properties2@ to be enabled+-- for any device-level functionality+--+-- [__Special Use__]+--+-- - <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#extendingvulkan-compatibility-specialuse OpenGL \/ ES support>+--+-- [__Contact__]+--+-- - Mike Blumenkrantz+-- <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_EXT_image_2d_view_of_3d] @zmike%0A<<Here describe the issue or question you have about the VK_EXT_image_2d_view_of_3d extension>> >+--+-- == Other Extension Metadata+--+-- [__Last Modified Date__]+-- 2022-02-22+--+-- [__IP Status__]+-- No known IP claims.+--+-- [__Contributors__]+--+-- - Mike Blumenkrantz, Valve+--+-- - Piers Daniell, NVIDIA+--+-- - Spencer Fricke, Samsung+--+-- - Ricardo Garcia, Igalia+--+-- - Graeme Leese, Broadcom+--+-- - Ralph Potter, Samsung+--+-- - Stu Smith, AMD+--+-- - Shahbaz Youssefi, Google+--+-- - Alex Walters, Imagination+--+-- == Description+--+-- This extension allows a single slice of a 3D image to be used as a 2D+-- view in image descriptors, matching both the functionality of+-- glBindImageTexture in OpenGL with the @layer@ parameter set to true and+-- 2D view binding provided by the extension EGL_KHR_gl_texture_3D_image.+-- It is primarily intended to support GL emulation.+--+-- == New Structures+--+-- - Extending+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',+-- 'Vulkan.Core10.Device.DeviceCreateInfo':+--+-- - 'PhysicalDeviceImage2DViewOf3DFeaturesEXT'+--+-- == New Enum Constants+--+-- - 'EXT_IMAGE_2D_VIEW_OF_3D_EXTENSION_NAME'+--+-- - 'EXT_IMAGE_2D_VIEW_OF_3D_SPEC_VERSION'+--+-- - Extending+-- 'Vulkan.Core10.Enums.ImageCreateFlagBits.ImageCreateFlagBits':+--+-- - 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_2D_VIEW_COMPATIBLE_BIT_EXT'+--+-- - Extending 'Vulkan.Core10.Enums.StructureType.StructureType':+--+-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_2D_VIEW_OF_3D_FEATURES_EXT'+--+-- == Version History+--+-- - Revision 1, 2022-03-25 (Mike Blumenkrantz)+--+-- - Internal revisions+--+-- == See Also+--+-- 'PhysicalDeviceImage2DViewOf3DFeaturesEXT'+--+-- == Document Notes+--+-- For more information, see the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_image_2d_view_of_3d Vulkan Specification>+--+-- This page is a generated document. Fixes and changes should be made to+-- the generator scripts, not directly.+module Vulkan.Extensions.VK_EXT_image_2d_view_of_3d ( PhysicalDeviceImage2DViewOf3DFeaturesEXT(..)+ , EXT_IMAGE_2D_VIEW_OF_3D_SPEC_VERSION+ , pattern EXT_IMAGE_2D_VIEW_OF_3D_SPEC_VERSION+ , EXT_IMAGE_2D_VIEW_OF_3D_EXTENSION_NAME+ , pattern EXT_IMAGE_2D_VIEW_OF_3D_EXTENSION_NAME+ ) where++import Foreign.Marshal.Alloc (allocaBytes)+import Foreign.Ptr (nullPtr)+import Foreign.Ptr (plusPtr)+import Vulkan.CStruct (FromCStruct)+import Vulkan.CStruct (FromCStruct(..))+import Vulkan.CStruct (ToCStruct)+import Vulkan.CStruct (ToCStruct(..))+import Vulkan.Zero (Zero(..))+import Data.String (IsString)+import Data.Typeable (Typeable)+import Foreign.Storable (Storable)+import Foreign.Storable (Storable(peek))+import Foreign.Storable (Storable(poke))+import qualified Foreign.Storable (Storable(..))+import GHC.Generics (Generic)+import Foreign.Ptr (Ptr)+import Data.Kind (Type)+import Vulkan.Core10.FundamentalTypes (bool32ToBool)+import Vulkan.Core10.FundamentalTypes (boolToBool32)+import Vulkan.Core10.FundamentalTypes (Bool32)+import Vulkan.Core10.Enums.StructureType (StructureType)+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_2D_VIEW_OF_3D_FEATURES_EXT))+-- | VkPhysicalDeviceImage2DViewOf3DFeaturesEXT - Structure describing+-- whether single-slice 2D views of 3D images can be used in image+-- descriptors+--+-- = Members+--+-- This structure describes the following features:+--+-- = Description+--+-- If the 'PhysicalDeviceImage2DViewOf3DFeaturesEXT' structure is included+-- in the @pNext@ chain of the+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2'+-- structure passed to+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceFeatures2',+-- it is filled in to indicate whether each corresponding feature is+-- supported. 'PhysicalDeviceImage2DViewOf3DFeaturesEXT' /can/ also be used+-- in the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to+-- selectively enable these features.+--+-- == Valid Usage (Implicit)+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_image_2d_view_of_3d VK_EXT_image_2d_view_of_3d>,+-- 'Vulkan.Core10.FundamentalTypes.Bool32',+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data PhysicalDeviceImage2DViewOf3DFeaturesEXT = PhysicalDeviceImage2DViewOf3DFeaturesEXT+ { -- | #features-image2DViewOf3D# @image2DViewOf3D@ indicates that the+ -- implementation supports using a 2D view of a 3D image in a descriptor of+ -- type 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_IMAGE'+ -- if the image is created using+ -- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_2D_VIEW_COMPATIBLE_BIT_EXT'.+ image2DViewOf3D :: Bool+ , -- | #features-sampler2DViewOf3D# @sampler2DViewOf3D@ indicates that the+ -- implementation supports using a 2D view of a 3D image in a descriptor of+ -- type 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_SAMPLED_IMAGE'+ -- or+ -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER'+ -- if the image is created using+ -- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_2D_VIEW_COMPATIBLE_BIT_EXT'.+ sampler2DViewOf3D :: Bool+ }+ deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (PhysicalDeviceImage2DViewOf3DFeaturesEXT)+#endif+deriving instance Show PhysicalDeviceImage2DViewOf3DFeaturesEXT++instance ToCStruct PhysicalDeviceImage2DViewOf3DFeaturesEXT where+ withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)+ pokeCStruct p PhysicalDeviceImage2DViewOf3DFeaturesEXT{..} f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_2D_VIEW_OF_3D_FEATURES_EXT)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (image2DViewOf3D))+ poke ((p `plusPtr` 20 :: Ptr Bool32)) (boolToBool32 (sampler2DViewOf3D))+ f+ cStructSize = 24+ cStructAlignment = 8+ pokeZeroCStruct p f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_2D_VIEW_OF_3D_FEATURES_EXT)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (zero))+ poke ((p `plusPtr` 20 :: Ptr Bool32)) (boolToBool32 (zero))+ f++instance FromCStruct PhysicalDeviceImage2DViewOf3DFeaturesEXT where+ peekCStruct p = do+ image2DViewOf3D <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))+ sampler2DViewOf3D <- peek @Bool32 ((p `plusPtr` 20 :: Ptr Bool32))+ pure $ PhysicalDeviceImage2DViewOf3DFeaturesEXT+ (bool32ToBool image2DViewOf3D) (bool32ToBool sampler2DViewOf3D)++instance Storable PhysicalDeviceImage2DViewOf3DFeaturesEXT where+ sizeOf ~_ = 24+ alignment ~_ = 8+ peek = peekCStruct+ poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero PhysicalDeviceImage2DViewOf3DFeaturesEXT where+ zero = PhysicalDeviceImage2DViewOf3DFeaturesEXT+ zero+ zero+++type EXT_IMAGE_2D_VIEW_OF_3D_SPEC_VERSION = 1++-- No documentation found for TopLevel "VK_EXT_IMAGE_2D_VIEW_OF_3D_SPEC_VERSION"+pattern EXT_IMAGE_2D_VIEW_OF_3D_SPEC_VERSION :: forall a . Integral a => a+pattern EXT_IMAGE_2D_VIEW_OF_3D_SPEC_VERSION = 1+++type EXT_IMAGE_2D_VIEW_OF_3D_EXTENSION_NAME = "VK_EXT_image_2d_view_of_3d"++-- No documentation found for TopLevel "VK_EXT_IMAGE_2D_VIEW_OF_3D_EXTENSION_NAME"+pattern EXT_IMAGE_2D_VIEW_OF_3D_EXTENSION_NAME :: forall a . (Eq a, IsString a) => a+pattern EXT_IMAGE_2D_VIEW_OF_3D_EXTENSION_NAME = "VK_EXT_image_2d_view_of_3d"+
+ src/Vulkan/Extensions/VK_EXT_image_2d_view_of_3d.hs-boot view
@@ -0,0 +1,127 @@+{-# language CPP #-}+-- | = Name+--+-- VK_EXT_image_2d_view_of_3d - device extension+--+-- == VK_EXT_image_2d_view_of_3d+--+-- [__Name String__]+-- @VK_EXT_image_2d_view_of_3d@+--+-- [__Extension Type__]+-- Device extension+--+-- [__Registered Extension Number__]+-- 394+--+-- [__Revision__]+-- 1+--+-- [__Extension and Version Dependencies__]+--+-- - Requires support for Vulkan 1.0+--+-- - Requires @VK_KHR_maintenance1@ to be enabled for any+-- device-level functionality+--+-- - Requires @VK_KHR_get_physical_device_properties2@ to be enabled+-- for any device-level functionality+--+-- [__Special Use__]+--+-- - <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#extendingvulkan-compatibility-specialuse OpenGL \/ ES support>+--+-- [__Contact__]+--+-- - Mike Blumenkrantz+-- <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_EXT_image_2d_view_of_3d] @zmike%0A<<Here describe the issue or question you have about the VK_EXT_image_2d_view_of_3d extension>> >+--+-- == Other Extension Metadata+--+-- [__Last Modified Date__]+-- 2022-02-22+--+-- [__IP Status__]+-- No known IP claims.+--+-- [__Contributors__]+--+-- - Mike Blumenkrantz, Valve+--+-- - Piers Daniell, NVIDIA+--+-- - Spencer Fricke, Samsung+--+-- - Ricardo Garcia, Igalia+--+-- - Graeme Leese, Broadcom+--+-- - Ralph Potter, Samsung+--+-- - Stu Smith, AMD+--+-- - Shahbaz Youssefi, Google+--+-- - Alex Walters, Imagination+--+-- == Description+--+-- This extension allows a single slice of a 3D image to be used as a 2D+-- view in image descriptors, matching both the functionality of+-- glBindImageTexture in OpenGL with the @layer@ parameter set to true and+-- 2D view binding provided by the extension EGL_KHR_gl_texture_3D_image.+-- It is primarily intended to support GL emulation.+--+-- == New Structures+--+-- - Extending+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',+-- 'Vulkan.Core10.Device.DeviceCreateInfo':+--+-- - 'PhysicalDeviceImage2DViewOf3DFeaturesEXT'+--+-- == New Enum Constants+--+-- - 'EXT_IMAGE_2D_VIEW_OF_3D_EXTENSION_NAME'+--+-- - 'EXT_IMAGE_2D_VIEW_OF_3D_SPEC_VERSION'+--+-- - Extending+-- 'Vulkan.Core10.Enums.ImageCreateFlagBits.ImageCreateFlagBits':+--+-- - 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_2D_VIEW_COMPATIBLE_BIT_EXT'+--+-- - Extending 'Vulkan.Core10.Enums.StructureType.StructureType':+--+-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_2D_VIEW_OF_3D_FEATURES_EXT'+--+-- == Version History+--+-- - Revision 1, 2022-03-25 (Mike Blumenkrantz)+--+-- - Internal revisions+--+-- == See Also+--+-- 'PhysicalDeviceImage2DViewOf3DFeaturesEXT'+--+-- == Document Notes+--+-- For more information, see the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_image_2d_view_of_3d Vulkan Specification>+--+-- This page is a generated document. Fixes and changes should be made to+-- the generator scripts, not directly.+module Vulkan.Extensions.VK_EXT_image_2d_view_of_3d (PhysicalDeviceImage2DViewOf3DFeaturesEXT) where++import Vulkan.CStruct (FromCStruct)+import Vulkan.CStruct (ToCStruct)+import Data.Kind (Type)++data PhysicalDeviceImage2DViewOf3DFeaturesEXT++instance ToCStruct PhysicalDeviceImage2DViewOf3DFeaturesEXT+instance Show PhysicalDeviceImage2DViewOf3DFeaturesEXT++instance FromCStruct PhysicalDeviceImage2DViewOf3DFeaturesEXT+
+ src/Vulkan/Extensions/VK_EXT_image_compression_control.hs view
@@ -0,0 +1,1006 @@+{-# language CPP #-}+-- | = Name+--+-- VK_EXT_image_compression_control - device extension+--+-- == VK_EXT_image_compression_control+--+-- [__Name String__]+-- @VK_EXT_image_compression_control@+--+-- [__Extension Type__]+-- Device extension+--+-- [__Registered Extension Number__]+-- 339+--+-- [__Revision__]+-- 1+--+-- [__Extension and Version Dependencies__]+--+-- - Requires support for Vulkan 1.0+--+-- [__Contact__]+--+-- - Jan-Harald Fredriksen+-- <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_EXT_image_compression_control] @janharaldfredriksen-arm%0A<<Here describe the issue or question you have about the VK_EXT_image_compression_control extension>> >+--+-- [__Extension Proposal__]+-- <https://github.com/KhronosGroup/Vulkan-Docs/tree/main/proposals/VK_EXT_image_compression_control.adoc VK_EXT_image_compression_control>+--+-- == Other Extension Metadata+--+-- [__Last Modified Date__]+-- 2022-05-02+--+-- [__IP Status__]+-- No known IP claims.+--+-- [__Contributors__]+--+-- - Jan-Harald Fredriksen, Arm+--+-- - Graeme Leese, Broadcom+--+-- - Andrew Garrard, Imagination+--+-- - Lisa Wu, Arm+--+-- - Peter Kohaut, Arm+--+-- == Description+--+-- This extension enables fixed-rate image compression and adds the ability+-- to control when this kind of compression can be applied. Many+-- implementations support some form of framebuffer compression. This is+-- typically transparent to applications as lossless compression schemes+-- are used. With fixed-rate compression, the compression is done at a+-- defined bitrate. Such compression algorithms generally produce results+-- that are visually lossless, but the results are typically not bit-exact+-- when compared to a non-compressed result. The implementation may not be+-- able to use the requested compression rate in all cases. This extension+-- adds a query that can be used to determine the compression scheme and+-- rate that was applied to an image.+--+-- == New Commands+--+-- - 'getImageSubresourceLayout2EXT'+--+-- == New Structures+--+-- - 'ImageSubresource2EXT'+--+-- - 'SubresourceLayout2EXT'+--+-- - Extending 'Vulkan.Core10.Image.ImageCreateInfo',+-- 'Vulkan.Extensions.VK_KHR_swapchain.SwapchainCreateInfoKHR',+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceImageFormatInfo2':+--+-- - 'ImageCompressionControlEXT'+--+-- - Extending+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.ImageFormatProperties2',+-- 'Vulkan.Extensions.VK_KHR_get_surface_capabilities2.SurfaceFormat2KHR',+-- 'SubresourceLayout2EXT':+--+-- - 'ImageCompressionPropertiesEXT'+--+-- - Extending+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',+-- 'Vulkan.Core10.Device.DeviceCreateInfo':+--+-- - 'PhysicalDeviceImageCompressionControlFeaturesEXT'+--+-- == New Enums+--+-- - 'ImageCompressionFixedRateFlagBitsEXT'+--+-- - 'ImageCompressionFlagBitsEXT'+--+-- == New Bitmasks+--+-- - 'ImageCompressionFixedRateFlagsEXT'+--+-- - 'ImageCompressionFlagsEXT'+--+-- == New Enum Constants+--+-- - 'EXT_IMAGE_COMPRESSION_CONTROL_EXTENSION_NAME'+--+-- - 'EXT_IMAGE_COMPRESSION_CONTROL_SPEC_VERSION'+--+-- - Extending 'Vulkan.Core10.Enums.Result.Result':+--+-- - 'Vulkan.Core10.Enums.Result.ERROR_COMPRESSION_EXHAUSTED_EXT'+--+-- - Extending 'Vulkan.Core10.Enums.StructureType.StructureType':+--+-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_IMAGE_COMPRESSION_CONTROL_EXT'+--+-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_IMAGE_COMPRESSION_PROPERTIES_EXT'+--+-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2_EXT'+--+-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_FEATURES_EXT'+--+-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2_EXT'+--+-- == Version History+--+-- - Revision 1, 2022-05-02 (Jan-Harald Fredriksen)+--+-- - Initial draft+--+-- == See Also+--+-- 'ImageCompressionControlEXT', 'ImageCompressionFixedRateFlagBitsEXT',+-- 'ImageCompressionFixedRateFlagsEXT', 'ImageCompressionFlagBitsEXT',+-- 'ImageCompressionFlagsEXT', 'ImageCompressionPropertiesEXT',+-- 'ImageSubresource2EXT',+-- 'PhysicalDeviceImageCompressionControlFeaturesEXT',+-- 'SubresourceLayout2EXT', 'getImageSubresourceLayout2EXT'+--+-- == Document Notes+--+-- For more information, see the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_image_compression_control Vulkan Specification>+--+-- This page is a generated document. Fixes and changes should be made to+-- the generator scripts, not directly.+module Vulkan.Extensions.VK_EXT_image_compression_control ( getImageSubresourceLayout2EXT+ , ImageCompressionControlEXT(..)+ , PhysicalDeviceImageCompressionControlFeaturesEXT(..)+ , ImageCompressionPropertiesEXT(..)+ , ImageSubresource2EXT(..)+ , SubresourceLayout2EXT(..)+ , ImageCompressionFlagsEXT+ , ImageCompressionFlagBitsEXT( IMAGE_COMPRESSION_DEFAULT_EXT+ , IMAGE_COMPRESSION_FIXED_RATE_DEFAULT_EXT+ , IMAGE_COMPRESSION_FIXED_RATE_EXPLICIT_EXT+ , IMAGE_COMPRESSION_DISABLED_EXT+ , ..+ )+ , ImageCompressionFixedRateFlagsEXT+ , ImageCompressionFixedRateFlagBitsEXT( IMAGE_COMPRESSION_FIXED_RATE_NONE_EXT+ , IMAGE_COMPRESSION_FIXED_RATE_1BPC_BIT_EXT+ , IMAGE_COMPRESSION_FIXED_RATE_2BPC_BIT_EXT+ , IMAGE_COMPRESSION_FIXED_RATE_3BPC_BIT_EXT+ , IMAGE_COMPRESSION_FIXED_RATE_4BPC_BIT_EXT+ , IMAGE_COMPRESSION_FIXED_RATE_5BPC_BIT_EXT+ , IMAGE_COMPRESSION_FIXED_RATE_6BPC_BIT_EXT+ , IMAGE_COMPRESSION_FIXED_RATE_7BPC_BIT_EXT+ , IMAGE_COMPRESSION_FIXED_RATE_8BPC_BIT_EXT+ , IMAGE_COMPRESSION_FIXED_RATE_9BPC_BIT_EXT+ , IMAGE_COMPRESSION_FIXED_RATE_10BPC_BIT_EXT+ , IMAGE_COMPRESSION_FIXED_RATE_11BPC_BIT_EXT+ , IMAGE_COMPRESSION_FIXED_RATE_12BPC_BIT_EXT+ , IMAGE_COMPRESSION_FIXED_RATE_13BPC_BIT_EXT+ , IMAGE_COMPRESSION_FIXED_RATE_14BPC_BIT_EXT+ , IMAGE_COMPRESSION_FIXED_RATE_15BPC_BIT_EXT+ , IMAGE_COMPRESSION_FIXED_RATE_16BPC_BIT_EXT+ , IMAGE_COMPRESSION_FIXED_RATE_17BPC_BIT_EXT+ , IMAGE_COMPRESSION_FIXED_RATE_18BPC_BIT_EXT+ , IMAGE_COMPRESSION_FIXED_RATE_19BPC_BIT_EXT+ , IMAGE_COMPRESSION_FIXED_RATE_20BPC_BIT_EXT+ , IMAGE_COMPRESSION_FIXED_RATE_21BPC_BIT_EXT+ , IMAGE_COMPRESSION_FIXED_RATE_22BPC_BIT_EXT+ , IMAGE_COMPRESSION_FIXED_RATE_23BPC_BIT_EXT+ , IMAGE_COMPRESSION_FIXED_RATE_24BPC_BIT_EXT+ , ..+ )+ , EXT_IMAGE_COMPRESSION_CONTROL_SPEC_VERSION+ , pattern EXT_IMAGE_COMPRESSION_CONTROL_SPEC_VERSION+ , EXT_IMAGE_COMPRESSION_CONTROL_EXTENSION_NAME+ , pattern EXT_IMAGE_COMPRESSION_CONTROL_EXTENSION_NAME+ ) where++import Vulkan.Internal.Utils (enumReadPrec)+import Vulkan.Internal.Utils (enumShowsPrec)+import Vulkan.Internal.Utils (traceAroundEvent)+import Control.Monad (unless)+import Control.Monad.IO.Class (liftIO)+import Data.Typeable (eqT)+import Foreign.Marshal.Alloc (allocaBytes)+import GHC.IO (throwIO)+import GHC.Ptr (castPtr)+import GHC.Ptr (nullFunPtr)+import Foreign.Ptr (nullPtr)+import Foreign.Ptr (plusPtr)+import GHC.Show (showString)+import Numeric (showHex)+import Control.Monad.Trans.Class (lift)+import Control.Monad.Trans.Cont (evalContT)+import Vulkan.CStruct (FromCStruct)+import Vulkan.CStruct (FromCStruct(..))+import Vulkan.CStruct (ToCStruct)+import Vulkan.CStruct (ToCStruct(..))+import Vulkan.Zero (Zero)+import Vulkan.Zero (Zero(..))+import Control.Monad.IO.Class (MonadIO)+import Data.Bits (Bits)+import Data.Bits (FiniteBits)+import Data.String (IsString)+import Data.Type.Equality ((:~:)(Refl))+import Data.Typeable (Typeable)+import Foreign.Storable (Storable)+import Foreign.Storable (Storable(peek))+import Foreign.Storable (Storable(poke))+import qualified Foreign.Storable (Storable(..))+import GHC.Generics (Generic)+import GHC.IO.Exception (IOErrorType(..))+import GHC.IO.Exception (IOException(..))+import Foreign.Ptr (FunPtr)+import Foreign.Ptr (Ptr)+import GHC.Read (Read(readPrec))+import GHC.Show (Show(showsPrec))+import Data.Word (Word32)+import Data.Kind (Type)+import Control.Monad.Trans.Cont (ContT(..))+import Vulkan.Core10.FundamentalTypes (bool32ToBool)+import Vulkan.Core10.FundamentalTypes (boolToBool32)+import Vulkan.CStruct.Extends (forgetExtensions)+import Vulkan.Core10.FundamentalTypes (Bool32)+import Vulkan.CStruct.Extends (Chain)+import Vulkan.Core10.Handles (Device)+import Vulkan.Core10.Handles (Device(..))+import Vulkan.Core10.Handles (Device(Device))+import Vulkan.Dynamic (DeviceCmds(pVkGetImageSubresourceLayout2EXT))+import Vulkan.Core10.Handles (Device_T)+import Vulkan.CStruct.Extends (Extends)+import Vulkan.CStruct.Extends (Extendss)+import Vulkan.CStruct.Extends (Extensible(..))+import Vulkan.Core10.FundamentalTypes (Flags)+import Vulkan.Core10.Handles (Image)+import Vulkan.Core10.Handles (Image(..))+import Vulkan.Core10.SparseResourceMemoryManagement (ImageSubresource)+import Vulkan.CStruct.Extends (PeekChain)+import Vulkan.CStruct.Extends (PeekChain(..))+import Vulkan.CStruct.Extends (PokeChain)+import Vulkan.CStruct.Extends (PokeChain(..))+import Vulkan.CStruct.Extends (SomeStruct)+import Vulkan.Core10.Enums.StructureType (StructureType)+import Vulkan.Core10.Image (SubresourceLayout)+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_IMAGE_COMPRESSION_CONTROL_EXT))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_IMAGE_COMPRESSION_PROPERTIES_EXT))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2_EXT))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_FEATURES_EXT))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2_EXT))+foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+ unsafe+#endif+ "dynamic" mkVkGetImageSubresourceLayout2EXT+ :: FunPtr (Ptr Device_T -> Image -> Ptr ImageSubresource2EXT -> Ptr (SomeStruct SubresourceLayout2EXT) -> IO ()) -> Ptr Device_T -> Image -> Ptr ImageSubresource2EXT -> Ptr (SomeStruct SubresourceLayout2EXT) -> IO ()++-- | vkGetImageSubresourceLayout2EXT - Retrieve information about an image+-- subresource+--+-- = Description+--+-- 'getImageSubresourceLayout2EXT' behaves similarly to+-- 'Vulkan.Core10.Image.getImageSubresourceLayout', with the ability to+-- specify extended inputs via chained input structures, and to return+-- extended information via chained output structures.+--+-- == Valid Usage+--+-- - #VUID-vkGetImageSubresourceLayout2EXT-image-02270# @image@ /must/+-- have been created with @tiling@ equal to+-- 'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_LINEAR' or+-- 'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT'+--+-- - #VUID-vkGetImageSubresourceLayout2EXT-aspectMask-00997# The+-- @aspectMask@ member of @pSubresource@ /must/ only have a single bit+-- set+--+-- - #VUID-vkGetImageSubresourceLayout2EXT-mipLevel-01716# The @mipLevel@+-- member of @pSubresource@ /must/ be less than the @mipLevels@+-- specified in 'Vulkan.Core10.Image.ImageCreateInfo' when @image@ was+-- created+--+-- - #VUID-vkGetImageSubresourceLayout2EXT-arrayLayer-01717# The+-- @arrayLayer@ member of @pSubresource@ /must/ be less than the+-- @arrayLayers@ specified in 'Vulkan.Core10.Image.ImageCreateInfo'+-- when @image@ was created+--+-- - #VUID-vkGetImageSubresourceLayout2EXT-format-04461# If @format@ is a+-- color format, the @aspectMask@ member of @pSubresource@ /must/ be+-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_COLOR_BIT'+--+-- - #VUID-vkGetImageSubresourceLayout2EXT-format-04462# If @format@ has+-- a depth component, the @aspectMask@ member of @pSubresource@ /must/+-- contain+-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_DEPTH_BIT'+--+-- - #VUID-vkGetImageSubresourceLayout2EXT-format-04463# If @format@ has+-- a stencil component, the @aspectMask@ member of @pSubresource@+-- /must/ contain+-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_STENCIL_BIT'+--+-- - #VUID-vkGetImageSubresourceLayout2EXT-format-04464# If @format@ does+-- not contain a stencil or depth component, the @aspectMask@ member of+-- @pSubresource@ /must/ not contain+-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_DEPTH_BIT' or+-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_STENCIL_BIT'+--+-- - #VUID-vkGetImageSubresourceLayout2EXT-format-01581# If the @tiling@+-- of the @image@ is+-- 'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_LINEAR' and its+-- @format@ is a+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar format>+-- with two planes, the @aspectMask@ member of @pSubresource@ /must/ be+-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_0_BIT'+-- or+-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_1_BIT'+--+-- - #VUID-vkGetImageSubresourceLayout2EXT-format-01582# If the @tiling@+-- of the @image@ is+-- 'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_LINEAR' and its+-- @format@ is a+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar format>+-- with three planes, the @aspectMask@ member of @pSubresource@ /must/+-- be+-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_0_BIT',+-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_1_BIT'+-- or+-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_2_BIT'+--+-- - #VUID-vkGetImageSubresourceLayout2EXT-image-01895# If @image@ was+-- created with the+-- 'Vulkan.Core11.Enums.ExternalMemoryHandleTypeFlagBits.EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID'+-- external memory handle type, then @image@ /must/ be bound to memory+--+-- - #VUID-vkGetImageSubresourceLayout2EXT-tiling-02271# If the @tiling@+-- of the @image@ is+-- 'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT',+-- then the @aspectMask@ member of @pSubresource@ /must/ be+-- @VK_IMAGE_ASPECT_MEMORY_PLANE_i_BIT_EXT@ and the index /i/ /must/ be+-- less than the+-- 'Vulkan.Extensions.VK_EXT_image_drm_format_modifier.DrmFormatModifierPropertiesEXT'::@drmFormatModifierPlaneCount@+-- associated with the image’s @format@ and+-- 'Vulkan.Extensions.VK_EXT_image_drm_format_modifier.ImageDrmFormatModifierPropertiesEXT'::@drmFormatModifier@+--+-- == Valid Usage (Implicit)+--+-- - #VUID-vkGetImageSubresourceLayout2EXT-device-parameter# @device@+-- /must/ be a valid 'Vulkan.Core10.Handles.Device' handle+--+-- - #VUID-vkGetImageSubresourceLayout2EXT-image-parameter# @image@+-- /must/ be a valid 'Vulkan.Core10.Handles.Image' handle+--+-- - #VUID-vkGetImageSubresourceLayout2EXT-pSubresource-parameter#+-- @pSubresource@ /must/ be a valid pointer to a valid+-- 'ImageSubresource2EXT' structure+--+-- - #VUID-vkGetImageSubresourceLayout2EXT-pLayout-parameter# @pLayout@+-- /must/ be a valid pointer to a 'SubresourceLayout2EXT' structure+--+-- - #VUID-vkGetImageSubresourceLayout2EXT-image-parent# @image@ /must/+-- have been created, allocated, or retrieved from @device@+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_image_compression_control VK_EXT_image_compression_control>,+-- 'Vulkan.Core10.Handles.Device', 'Vulkan.Core10.Handles.Image',+-- 'ImageSubresource2EXT', 'SubresourceLayout2EXT'+getImageSubresourceLayout2EXT :: forall a io+ . (Extendss SubresourceLayout2EXT a, PokeChain a, PeekChain a, MonadIO io)+ => -- | @device@ is the logical device that owns the image.+ Device+ -> -- | @image@ is the image whose layout is being queried.+ Image+ -> -- | @pSubresource@ is a pointer to a 'ImageSubresource2EXT' structure+ -- selecting a specific image for the image subresource.+ ImageSubresource2EXT+ -> io (SubresourceLayout2EXT a)+getImageSubresourceLayout2EXT device image subresource = liftIO . evalContT $ do+ let vkGetImageSubresourceLayout2EXTPtr = pVkGetImageSubresourceLayout2EXT (case device of Device{deviceCmds} -> deviceCmds)+ lift $ unless (vkGetImageSubresourceLayout2EXTPtr /= nullFunPtr) $+ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetImageSubresourceLayout2EXT is null" Nothing Nothing+ let vkGetImageSubresourceLayout2EXT' = mkVkGetImageSubresourceLayout2EXT vkGetImageSubresourceLayout2EXTPtr+ pSubresource <- ContT $ withCStruct (subresource)+ pPLayout <- ContT (withZeroCStruct @(SubresourceLayout2EXT _))+ lift $ traceAroundEvent "vkGetImageSubresourceLayout2EXT" (vkGetImageSubresourceLayout2EXT' (deviceHandle (device)) (image) pSubresource (forgetExtensions (pPLayout)))+ pLayout <- lift $ peekCStruct @(SubresourceLayout2EXT _) pPLayout+ pure $ (pLayout)+++-- | VkImageCompressionControlEXT - Specify image compression properties+--+-- = Description+--+-- If enabled, fixed-rate compression is done in an implementation-defined+-- manner and /may/ be applied at block granularity. In that case, a write+-- to an individual texel /may/ modify the value of other texels in the+-- same block.+--+-- == Valid Usage+--+-- - #VUID-VkImageCompressionControlEXT-flags-06747# @flags@ /must/ be+-- one of 'IMAGE_COMPRESSION_DEFAULT_EXT',+-- 'IMAGE_COMPRESSION_FIXED_RATE_DEFAULT_EXT',+-- 'IMAGE_COMPRESSION_FIXED_RATE_EXPLICIT_EXT', or+-- 'IMAGE_COMPRESSION_DISABLED_EXT'+--+-- - #VUID-VkImageCompressionControlEXT-flags-06748# If @flags@ includes+-- 'IMAGE_COMPRESSION_FIXED_RATE_EXPLICIT_EXT', @pFixedRateFlags@+-- /must/ not be @NULL@+--+-- == Valid Usage (Implicit)+--+-- - #VUID-VkImageCompressionControlEXT-sType-sType# @sType@ /must/ be+-- 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_IMAGE_COMPRESSION_CONTROL_EXT'+--+-- Note+--+-- Some combinations of compression properties may not be supported. For+-- example, some implementations may not support different fixed-rate+-- compression rates per plane of a multi-planar format and will not be+-- able to enable fixed-rate compression for any plane if the requested+-- rates differ.+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_image_compression_control VK_EXT_image_compression_control>,+-- 'ImageCompressionFixedRateFlagsEXT', 'ImageCompressionFlagsEXT',+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data ImageCompressionControlEXT = ImageCompressionControlEXT+ { -- | @flags@ is a bitmask of 'ImageCompressionFlagBitsEXT' describing+ -- compression controls for the image.+ flags :: ImageCompressionFlagsEXT+ , -- | @compressionControlPlaneCount@ is the number of entries in the+ -- @pFixedRateFlags@ array.+ compressionControlPlaneCount :: Word32+ , -- | @pFixedRateFlags@ is @NULL@ or a pointer to an array of+ -- 'ImageCompressionFixedRateFlagsEXT' bitfields describing allowed+ -- fixed-rate compression rates of each image plane. It is ignored if+ -- @flags@ does not include 'IMAGE_COMPRESSION_FIXED_RATE_EXPLICIT_EXT'.+ fixedRateFlags :: Ptr ImageCompressionFixedRateFlagsEXT+ }+ deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (ImageCompressionControlEXT)+#endif+deriving instance Show ImageCompressionControlEXT++instance ToCStruct ImageCompressionControlEXT where+ withCStruct x f = allocaBytes 32 $ \p -> pokeCStruct p x (f p)+ pokeCStruct p ImageCompressionControlEXT{..} f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_IMAGE_COMPRESSION_CONTROL_EXT)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr ImageCompressionFlagsEXT)) (flags)+ poke ((p `plusPtr` 20 :: Ptr Word32)) (compressionControlPlaneCount)+ poke ((p `plusPtr` 24 :: Ptr (Ptr ImageCompressionFixedRateFlagsEXT))) (fixedRateFlags)+ f+ cStructSize = 32+ cStructAlignment = 8+ pokeZeroCStruct p f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_IMAGE_COMPRESSION_CONTROL_EXT)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr ImageCompressionFlagsEXT)) (zero)+ poke ((p `plusPtr` 24 :: Ptr (Ptr ImageCompressionFixedRateFlagsEXT))) (zero)+ f++instance FromCStruct ImageCompressionControlEXT where+ peekCStruct p = do+ flags <- peek @ImageCompressionFlagsEXT ((p `plusPtr` 16 :: Ptr ImageCompressionFlagsEXT))+ compressionControlPlaneCount <- peek @Word32 ((p `plusPtr` 20 :: Ptr Word32))+ pFixedRateFlags <- peek @(Ptr ImageCompressionFixedRateFlagsEXT) ((p `plusPtr` 24 :: Ptr (Ptr ImageCompressionFixedRateFlagsEXT)))+ pure $ ImageCompressionControlEXT+ flags compressionControlPlaneCount pFixedRateFlags++instance Storable ImageCompressionControlEXT where+ sizeOf ~_ = 32+ alignment ~_ = 8+ peek = peekCStruct+ poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero ImageCompressionControlEXT where+ zero = ImageCompressionControlEXT+ zero+ zero+ zero+++-- | VkPhysicalDeviceImageCompressionControlFeaturesEXT - Structure+-- describing whether image compression controls can be supported by an+-- implementation+--+-- = Members+--+-- This structure describes the following feature:+--+-- = Description+--+-- If the 'PhysicalDeviceImageCompressionControlFeaturesEXT' structure is+-- included in the @pNext@ chain of the+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2'+-- structure passed to+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceFeatures2',+-- it is filled in to indicate whether each corresponding feature is+-- supported. 'PhysicalDeviceImageCompressionControlFeaturesEXT' /can/ also+-- be used in the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo'+-- to selectively enable these features.+--+-- == Valid Usage (Implicit)+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_image_compression_control VK_EXT_image_compression_control>,+-- 'Vulkan.Core10.FundamentalTypes.Bool32',+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data PhysicalDeviceImageCompressionControlFeaturesEXT = PhysicalDeviceImageCompressionControlFeaturesEXT+ { -- | #features-imageCompressionControl# @imageCompressionControl@ indicates+ -- that the implementation supports providing controls for image+ -- compression at image creation time.+ imageCompressionControl :: Bool }+ deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (PhysicalDeviceImageCompressionControlFeaturesEXT)+#endif+deriving instance Show PhysicalDeviceImageCompressionControlFeaturesEXT++instance ToCStruct PhysicalDeviceImageCompressionControlFeaturesEXT where+ withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)+ pokeCStruct p PhysicalDeviceImageCompressionControlFeaturesEXT{..} f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_FEATURES_EXT)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (imageCompressionControl))+ f+ cStructSize = 24+ cStructAlignment = 8+ pokeZeroCStruct p f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_FEATURES_EXT)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (zero))+ f++instance FromCStruct PhysicalDeviceImageCompressionControlFeaturesEXT where+ peekCStruct p = do+ imageCompressionControl <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))+ pure $ PhysicalDeviceImageCompressionControlFeaturesEXT+ (bool32ToBool imageCompressionControl)++instance Storable PhysicalDeviceImageCompressionControlFeaturesEXT where+ sizeOf ~_ = 24+ alignment ~_ = 8+ peek = peekCStruct+ poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero PhysicalDeviceImageCompressionControlFeaturesEXT where+ zero = PhysicalDeviceImageCompressionControlFeaturesEXT+ zero+++-- | VkImageCompressionPropertiesEXT - Compression properties of an image+--+-- == Valid Usage (Implicit)+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_image_compression_control VK_EXT_image_compression_control>,+-- 'ImageCompressionFixedRateFlagsEXT', 'ImageCompressionFlagsEXT',+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data ImageCompressionPropertiesEXT = ImageCompressionPropertiesEXT+ { -- | @imageCompressionFlags@ returns a value describing the compression+ -- controls that apply to the image. The value will be either+ -- 'IMAGE_COMPRESSION_DEFAULT_EXT' to indicate no fixed-rate compression,+ -- 'IMAGE_COMPRESSION_FIXED_RATE_EXPLICIT_EXT' to indicate fixed-rate+ -- compression, or 'IMAGE_COMPRESSION_DISABLED_EXT' to indicate no+ -- compression.+ imageCompressionFlags :: ImageCompressionFlagsEXT+ , -- | @imageCompressionFixedRateFlags@ returns a+ -- 'ImageCompressionFixedRateFlagsEXT' value describing the compression+ -- rates that apply to the specified aspect of the image.+ imageCompressionFixedRateFlags :: ImageCompressionFixedRateFlagsEXT+ }+ deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (ImageCompressionPropertiesEXT)+#endif+deriving instance Show ImageCompressionPropertiesEXT++instance ToCStruct ImageCompressionPropertiesEXT where+ withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)+ pokeCStruct p ImageCompressionPropertiesEXT{..} f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_IMAGE_COMPRESSION_PROPERTIES_EXT)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr ImageCompressionFlagsEXT)) (imageCompressionFlags)+ poke ((p `plusPtr` 20 :: Ptr ImageCompressionFixedRateFlagsEXT)) (imageCompressionFixedRateFlags)+ f+ cStructSize = 24+ cStructAlignment = 8+ pokeZeroCStruct p f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_IMAGE_COMPRESSION_PROPERTIES_EXT)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr ImageCompressionFlagsEXT)) (zero)+ poke ((p `plusPtr` 20 :: Ptr ImageCompressionFixedRateFlagsEXT)) (zero)+ f++instance FromCStruct ImageCompressionPropertiesEXT where+ peekCStruct p = do+ imageCompressionFlags <- peek @ImageCompressionFlagsEXT ((p `plusPtr` 16 :: Ptr ImageCompressionFlagsEXT))+ imageCompressionFixedRateFlags <- peek @ImageCompressionFixedRateFlagsEXT ((p `plusPtr` 20 :: Ptr ImageCompressionFixedRateFlagsEXT))+ pure $ ImageCompressionPropertiesEXT+ imageCompressionFlags imageCompressionFixedRateFlags++instance Storable ImageCompressionPropertiesEXT where+ sizeOf ~_ = 24+ alignment ~_ = 8+ peek = peekCStruct+ poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero ImageCompressionPropertiesEXT where+ zero = ImageCompressionPropertiesEXT+ zero+ zero+++-- | VkImageSubresource2EXT - Structure specifying an image subresource+--+-- == Valid Usage (Implicit)+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_image_compression_control VK_EXT_image_compression_control>,+-- 'Vulkan.Core10.SparseResourceMemoryManagement.ImageSubresource',+-- 'Vulkan.Core10.Enums.StructureType.StructureType',+-- 'getImageSubresourceLayout2EXT'+data ImageSubresource2EXT = ImageSubresource2EXT+ { -- | @imageSubresource@ is a+ -- 'Vulkan.Core10.SparseResourceMemoryManagement.ImageSubresource'+ -- structure.+ --+ -- #VUID-VkImageSubresource2EXT-imageSubresource-parameter#+ -- @imageSubresource@ /must/ be a valid+ -- 'Vulkan.Core10.SparseResourceMemoryManagement.ImageSubresource'+ -- structure+ imageSubresource :: ImageSubresource }+ deriving (Typeable)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (ImageSubresource2EXT)+#endif+deriving instance Show ImageSubresource2EXT++instance ToCStruct ImageSubresource2EXT where+ withCStruct x f = allocaBytes 32 $ \p -> pokeCStruct p x (f p)+ pokeCStruct p ImageSubresource2EXT{..} f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2_EXT)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr ImageSubresource)) (imageSubresource)+ f+ cStructSize = 32+ cStructAlignment = 8+ pokeZeroCStruct p f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2_EXT)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr ImageSubresource)) (zero)+ f++instance FromCStruct ImageSubresource2EXT where+ peekCStruct p = do+ imageSubresource <- peekCStruct @ImageSubresource ((p `plusPtr` 16 :: Ptr ImageSubresource))+ pure $ ImageSubresource2EXT+ imageSubresource++instance Storable ImageSubresource2EXT where+ sizeOf ~_ = 32+ alignment ~_ = 8+ peek = peekCStruct+ poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero ImageSubresource2EXT where+ zero = ImageSubresource2EXT+ zero+++-- | VkSubresourceLayout2EXT - Structure specifying subresource layout+--+-- == Valid Usage (Implicit)+--+-- - #VUID-VkSubresourceLayout2EXT-sType-sType# @sType@ /must/ be+-- 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2_EXT'+--+-- - #VUID-VkSubresourceLayout2EXT-pNext-pNext# @pNext@ /must/ be @NULL@+-- or a pointer to a valid instance of 'ImageCompressionPropertiesEXT'+--+-- - #VUID-VkSubresourceLayout2EXT-sType-unique# The @sType@ value of+-- each struct in the @pNext@ chain /must/ be unique+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_image_compression_control VK_EXT_image_compression_control>,+-- 'Vulkan.Core10.Enums.StructureType.StructureType',+-- 'Vulkan.Core10.Image.SubresourceLayout', 'getImageSubresourceLayout2EXT'+data SubresourceLayout2EXT (es :: [Type]) = SubresourceLayout2EXT+ { -- | @pNext@ is @NULL@ or a pointer to a structure extending this structure.+ next :: Chain es+ , -- | @subresourceLayout@ is a 'Vulkan.Core10.Image.SubresourceLayout'+ -- structure.+ subresourceLayout :: SubresourceLayout+ }+ deriving (Typeable)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (SubresourceLayout2EXT (es :: [Type]))+#endif+deriving instance Show (Chain es) => Show (SubresourceLayout2EXT es)++instance Extensible SubresourceLayout2EXT where+ extensibleTypeName = "SubresourceLayout2EXT"+ setNext SubresourceLayout2EXT{..} next' = SubresourceLayout2EXT{next = next', ..}+ getNext SubresourceLayout2EXT{..} = next+ extends :: forall e b proxy. Typeable e => proxy e -> (Extends SubresourceLayout2EXT e => b) -> Maybe b+ extends _ f+ | Just Refl <- eqT @e @ImageCompressionPropertiesEXT = Just f+ | otherwise = Nothing++instance (Extendss SubresourceLayout2EXT es, PokeChain es) => ToCStruct (SubresourceLayout2EXT es) where+ withCStruct x f = allocaBytes 56 $ \p -> pokeCStruct p x (f p)+ pokeCStruct p SubresourceLayout2EXT{..} f = evalContT $ do+ lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2_EXT)+ pNext'' <- fmap castPtr . ContT $ withChain (next)+ lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext''+ lift $ poke ((p `plusPtr` 16 :: Ptr SubresourceLayout)) (subresourceLayout)+ lift $ f+ cStructSize = 56+ cStructAlignment = 8+ pokeZeroCStruct p f = evalContT $ do+ lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2_EXT)+ pNext' <- fmap castPtr . ContT $ withZeroChain @es+ lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext'+ lift $ poke ((p `plusPtr` 16 :: Ptr SubresourceLayout)) (zero)+ lift $ f++instance (Extendss SubresourceLayout2EXT es, PeekChain es) => FromCStruct (SubresourceLayout2EXT es) where+ peekCStruct p = do+ pNext <- peek @(Ptr ()) ((p `plusPtr` 8 :: Ptr (Ptr ())))+ next <- peekChain (castPtr pNext)+ subresourceLayout <- peekCStruct @SubresourceLayout ((p `plusPtr` 16 :: Ptr SubresourceLayout))+ pure $ SubresourceLayout2EXT+ next subresourceLayout++instance es ~ '[] => Zero (SubresourceLayout2EXT es) where+ zero = SubresourceLayout2EXT+ ()+ zero+++type ImageCompressionFlagsEXT = ImageCompressionFlagBitsEXT++-- | VkImageCompressionFlagBitsEXT - Bitmask specifying image compression+-- controls+--+-- = Description+--+-- If 'ImageCompressionControlEXT'::@flags@ is+-- 'IMAGE_COMPRESSION_FIXED_RATE_EXPLICIT_EXT', then the @i@th member of+-- the @pFixedRateFlags@ array specifies the allowed compression rates for+-- the image’s @i@th plane.+--+-- Note+--+-- If 'IMAGE_COMPRESSION_DISABLED_EXT' is included in+-- 'ImageCompressionControlEXT'::@flags@, both lossless and fixed-rate+-- compression will be disabled. This is likely to have a negative impact+-- on performance and is only intended to be used for debugging purposes.+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_image_compression_control VK_EXT_image_compression_control>,+-- 'ImageCompressionFlagsEXT'+newtype ImageCompressionFlagBitsEXT = ImageCompressionFlagBitsEXT Flags+ deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits)++-- | 'IMAGE_COMPRESSION_DEFAULT_EXT' specifies that the default image+-- compression setting is used. Implementations /must/ not apply fixed-rate+-- compression.+pattern IMAGE_COMPRESSION_DEFAULT_EXT = ImageCompressionFlagBitsEXT 0x00000000+-- | 'IMAGE_COMPRESSION_FIXED_RATE_DEFAULT_EXT' specifies that the+-- implementation /may/ choose any supported fixed-rate compression setting+-- in an implementation-defined manner based on the properties of the+-- image.+pattern IMAGE_COMPRESSION_FIXED_RATE_DEFAULT_EXT = ImageCompressionFlagBitsEXT 0x00000001+-- | 'IMAGE_COMPRESSION_FIXED_RATE_EXPLICIT_EXT' specifies that fixed-rate+-- compression /may/ be used and that the allowed compression rates are+-- specified by 'ImageCompressionControlEXT'::@pFixedRateFlags@.+pattern IMAGE_COMPRESSION_FIXED_RATE_EXPLICIT_EXT = ImageCompressionFlagBitsEXT 0x00000002+-- | 'IMAGE_COMPRESSION_DISABLED_EXT' specifies that all lossless and+-- fixed-rate compression /should/ be disabled.+pattern IMAGE_COMPRESSION_DISABLED_EXT = ImageCompressionFlagBitsEXT 0x00000004++conNameImageCompressionFlagBitsEXT :: String+conNameImageCompressionFlagBitsEXT = "ImageCompressionFlagBitsEXT"++enumPrefixImageCompressionFlagBitsEXT :: String+enumPrefixImageCompressionFlagBitsEXT = "IMAGE_COMPRESSION_"++showTableImageCompressionFlagBitsEXT :: [(ImageCompressionFlagBitsEXT, String)]+showTableImageCompressionFlagBitsEXT =+ [ (IMAGE_COMPRESSION_DEFAULT_EXT , "DEFAULT_EXT")+ , (IMAGE_COMPRESSION_FIXED_RATE_DEFAULT_EXT , "FIXED_RATE_DEFAULT_EXT")+ , (IMAGE_COMPRESSION_FIXED_RATE_EXPLICIT_EXT, "FIXED_RATE_EXPLICIT_EXT")+ , (IMAGE_COMPRESSION_DISABLED_EXT , "DISABLED_EXT")+ ]++instance Show ImageCompressionFlagBitsEXT where+ showsPrec = enumShowsPrec enumPrefixImageCompressionFlagBitsEXT+ showTableImageCompressionFlagBitsEXT+ conNameImageCompressionFlagBitsEXT+ (\(ImageCompressionFlagBitsEXT x) -> x)+ (\x -> showString "0x" . showHex x)++instance Read ImageCompressionFlagBitsEXT where+ readPrec = enumReadPrec enumPrefixImageCompressionFlagBitsEXT+ showTableImageCompressionFlagBitsEXT+ conNameImageCompressionFlagBitsEXT+ ImageCompressionFlagBitsEXT+++type ImageCompressionFixedRateFlagsEXT = ImageCompressionFixedRateFlagBitsEXT++-- | VkImageCompressionFixedRateFlagBitsEXT - Bitmask specifying fixed rate+-- image compression rates+--+-- = Description+--+-- If the format has a different bit rate for different components,+-- 'ImageCompressionControlEXT'::@pFixedRateFlags@ describes the rate of+-- the component with the largest number of bits assigned to it, scaled pro+-- rata. For example, to request that a+-- 'Vulkan.Core10.Enums.Format.FORMAT_A2R10G10B10_UNORM_PACK32' format be+-- stored at a rate of 8 bits per pixel, use+-- 'IMAGE_COMPRESSION_FIXED_RATE_2BPC_BIT_EXT' (10 bits for the largest+-- component, stored at quarter the original size, 2.5 bits, rounded down).+--+-- If @flags@ includes 'IMAGE_COMPRESSION_FIXED_RATE_EXPLICIT_EXT', and+-- multiple bits are set in 'ImageCompressionControlEXT'::pFixedRateFlags+-- for a plane, implementations /should/ apply the lowest allowed bitrate+-- that is supported.+--+-- Note+--+-- The choice of “bits per component” terminology was chosen so that the+-- same compression rate describes the same degree of compression applied+-- to formats that differ only in the number of components. For example,+-- 'Vulkan.Core10.Enums.Format.FORMAT_R8G8_UNORM' compressed to half its+-- original size is a rate of 4 bits per component, 8 bits per pixel.+-- 'Vulkan.Core10.Enums.Format.FORMAT_R8G8B8A8_UNORM' compressed to half+-- /its/ original size is 4 bits per component, 16 bits per pixel. Both of+-- these cases can be requested with+-- 'IMAGE_COMPRESSION_FIXED_RATE_4BPC_BIT_EXT'.+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_image_compression_control VK_EXT_image_compression_control>,+-- 'ImageCompressionFixedRateFlagsEXT'+newtype ImageCompressionFixedRateFlagBitsEXT = ImageCompressionFixedRateFlagBitsEXT Flags+ deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits)++-- | 'IMAGE_COMPRESSION_FIXED_RATE_NONE_EXT' specifies that fixed-rate+-- compression /must/ not be used.+pattern IMAGE_COMPRESSION_FIXED_RATE_NONE_EXT = ImageCompressionFixedRateFlagBitsEXT 0x00000000+-- | 'IMAGE_COMPRESSION_FIXED_RATE_1BPC_BIT_EXT' specifies that fixed-rate+-- compression with a bitrate of [1,2) bits per component /may/ be used.+pattern IMAGE_COMPRESSION_FIXED_RATE_1BPC_BIT_EXT = ImageCompressionFixedRateFlagBitsEXT 0x00000001+-- | 'IMAGE_COMPRESSION_FIXED_RATE_2BPC_BIT_EXT' specifies that fixed-rate+-- compression with a bitrate of [2,3) bits per component /may/ be used.+pattern IMAGE_COMPRESSION_FIXED_RATE_2BPC_BIT_EXT = ImageCompressionFixedRateFlagBitsEXT 0x00000002+-- | 'IMAGE_COMPRESSION_FIXED_RATE_3BPC_BIT_EXT' specifies that fixed-rate+-- compression with a bitrate of [3,4) bits per component /may/ be used.+pattern IMAGE_COMPRESSION_FIXED_RATE_3BPC_BIT_EXT = ImageCompressionFixedRateFlagBitsEXT 0x00000004+-- | 'IMAGE_COMPRESSION_FIXED_RATE_4BPC_BIT_EXT' specifies that fixed-rate+-- compression with a bitrate of [4,5) bits per component /may/ be used.+pattern IMAGE_COMPRESSION_FIXED_RATE_4BPC_BIT_EXT = ImageCompressionFixedRateFlagBitsEXT 0x00000008+-- | 'IMAGE_COMPRESSION_FIXED_RATE_5BPC_BIT_EXT' specifies that fixed-rate+-- compression with a bitrate of [5,6) bits per component /may/ be used.+pattern IMAGE_COMPRESSION_FIXED_RATE_5BPC_BIT_EXT = ImageCompressionFixedRateFlagBitsEXT 0x00000010+-- | 'IMAGE_COMPRESSION_FIXED_RATE_6BPC_BIT_EXT' specifies that fixed-rate+-- compression with a bitrate of [6,7) bits per component /may/ be used.+pattern IMAGE_COMPRESSION_FIXED_RATE_6BPC_BIT_EXT = ImageCompressionFixedRateFlagBitsEXT 0x00000020+-- | 'IMAGE_COMPRESSION_FIXED_RATE_7BPC_BIT_EXT' specifies that fixed-rate+-- compression with a bitrate of [7,8) bits per component /may/ be used.+pattern IMAGE_COMPRESSION_FIXED_RATE_7BPC_BIT_EXT = ImageCompressionFixedRateFlagBitsEXT 0x00000040+-- | 'IMAGE_COMPRESSION_FIXED_RATE_8BPC_BIT_EXT' specifies that fixed-rate+-- compression with a bitrate of [8,9) bits per component /may/ be used.+pattern IMAGE_COMPRESSION_FIXED_RATE_8BPC_BIT_EXT = ImageCompressionFixedRateFlagBitsEXT 0x00000080+-- | 'IMAGE_COMPRESSION_FIXED_RATE_9BPC_BIT_EXT' specifies that fixed-rate+-- compression with a bitrate of [9,10) bits per component /may/ be used.+pattern IMAGE_COMPRESSION_FIXED_RATE_9BPC_BIT_EXT = ImageCompressionFixedRateFlagBitsEXT 0x00000100+-- | 'IMAGE_COMPRESSION_FIXED_RATE_10BPC_BIT_EXT' specifies that fixed-rate+-- compression with a bitrate of [10,11) bits per component /may/ be used.+pattern IMAGE_COMPRESSION_FIXED_RATE_10BPC_BIT_EXT = ImageCompressionFixedRateFlagBitsEXT 0x00000200+-- | 'IMAGE_COMPRESSION_FIXED_RATE_11BPC_BIT_EXT' specifies that fixed-rate+-- compression with a bitrate of [11,12) bits per component /may/ be used.+pattern IMAGE_COMPRESSION_FIXED_RATE_11BPC_BIT_EXT = ImageCompressionFixedRateFlagBitsEXT 0x00000400+-- | 'IMAGE_COMPRESSION_FIXED_RATE_12BPC_BIT_EXT' specifies that fixed-rate+-- compression with a bitrate of at least 12 bits per component /may/ be+-- used.+pattern IMAGE_COMPRESSION_FIXED_RATE_12BPC_BIT_EXT = ImageCompressionFixedRateFlagBitsEXT 0x00000800+-- No documentation found for Nested "VkImageCompressionFixedRateFlagBitsEXT" "VK_IMAGE_COMPRESSION_FIXED_RATE_13BPC_BIT_EXT"+pattern IMAGE_COMPRESSION_FIXED_RATE_13BPC_BIT_EXT = ImageCompressionFixedRateFlagBitsEXT 0x00001000+-- No documentation found for Nested "VkImageCompressionFixedRateFlagBitsEXT" "VK_IMAGE_COMPRESSION_FIXED_RATE_14BPC_BIT_EXT"+pattern IMAGE_COMPRESSION_FIXED_RATE_14BPC_BIT_EXT = ImageCompressionFixedRateFlagBitsEXT 0x00002000+-- No documentation found for Nested "VkImageCompressionFixedRateFlagBitsEXT" "VK_IMAGE_COMPRESSION_FIXED_RATE_15BPC_BIT_EXT"+pattern IMAGE_COMPRESSION_FIXED_RATE_15BPC_BIT_EXT = ImageCompressionFixedRateFlagBitsEXT 0x00004000+-- No documentation found for Nested "VkImageCompressionFixedRateFlagBitsEXT" "VK_IMAGE_COMPRESSION_FIXED_RATE_16BPC_BIT_EXT"+pattern IMAGE_COMPRESSION_FIXED_RATE_16BPC_BIT_EXT = ImageCompressionFixedRateFlagBitsEXT 0x00008000+-- No documentation found for Nested "VkImageCompressionFixedRateFlagBitsEXT" "VK_IMAGE_COMPRESSION_FIXED_RATE_17BPC_BIT_EXT"+pattern IMAGE_COMPRESSION_FIXED_RATE_17BPC_BIT_EXT = ImageCompressionFixedRateFlagBitsEXT 0x00010000+-- No documentation found for Nested "VkImageCompressionFixedRateFlagBitsEXT" "VK_IMAGE_COMPRESSION_FIXED_RATE_18BPC_BIT_EXT"+pattern IMAGE_COMPRESSION_FIXED_RATE_18BPC_BIT_EXT = ImageCompressionFixedRateFlagBitsEXT 0x00020000+-- No documentation found for Nested "VkImageCompressionFixedRateFlagBitsEXT" "VK_IMAGE_COMPRESSION_FIXED_RATE_19BPC_BIT_EXT"+pattern IMAGE_COMPRESSION_FIXED_RATE_19BPC_BIT_EXT = ImageCompressionFixedRateFlagBitsEXT 0x00040000+-- No documentation found for Nested "VkImageCompressionFixedRateFlagBitsEXT" "VK_IMAGE_COMPRESSION_FIXED_RATE_20BPC_BIT_EXT"+pattern IMAGE_COMPRESSION_FIXED_RATE_20BPC_BIT_EXT = ImageCompressionFixedRateFlagBitsEXT 0x00080000+-- No documentation found for Nested "VkImageCompressionFixedRateFlagBitsEXT" "VK_IMAGE_COMPRESSION_FIXED_RATE_21BPC_BIT_EXT"+pattern IMAGE_COMPRESSION_FIXED_RATE_21BPC_BIT_EXT = ImageCompressionFixedRateFlagBitsEXT 0x00100000+-- No documentation found for Nested "VkImageCompressionFixedRateFlagBitsEXT" "VK_IMAGE_COMPRESSION_FIXED_RATE_22BPC_BIT_EXT"+pattern IMAGE_COMPRESSION_FIXED_RATE_22BPC_BIT_EXT = ImageCompressionFixedRateFlagBitsEXT 0x00200000+-- No documentation found for Nested "VkImageCompressionFixedRateFlagBitsEXT" "VK_IMAGE_COMPRESSION_FIXED_RATE_23BPC_BIT_EXT"+pattern IMAGE_COMPRESSION_FIXED_RATE_23BPC_BIT_EXT = ImageCompressionFixedRateFlagBitsEXT 0x00400000+-- No documentation found for Nested "VkImageCompressionFixedRateFlagBitsEXT" "VK_IMAGE_COMPRESSION_FIXED_RATE_24BPC_BIT_EXT"+pattern IMAGE_COMPRESSION_FIXED_RATE_24BPC_BIT_EXT = ImageCompressionFixedRateFlagBitsEXT 0x00800000++conNameImageCompressionFixedRateFlagBitsEXT :: String+conNameImageCompressionFixedRateFlagBitsEXT = "ImageCompressionFixedRateFlagBitsEXT"++enumPrefixImageCompressionFixedRateFlagBitsEXT :: String+enumPrefixImageCompressionFixedRateFlagBitsEXT = "IMAGE_COMPRESSION_FIXED_RATE_"++showTableImageCompressionFixedRateFlagBitsEXT :: [(ImageCompressionFixedRateFlagBitsEXT, String)]+showTableImageCompressionFixedRateFlagBitsEXT =+ [ (IMAGE_COMPRESSION_FIXED_RATE_NONE_EXT , "NONE_EXT")+ , (IMAGE_COMPRESSION_FIXED_RATE_1BPC_BIT_EXT , "1BPC_BIT_EXT")+ , (IMAGE_COMPRESSION_FIXED_RATE_2BPC_BIT_EXT , "2BPC_BIT_EXT")+ , (IMAGE_COMPRESSION_FIXED_RATE_3BPC_BIT_EXT , "3BPC_BIT_EXT")+ , (IMAGE_COMPRESSION_FIXED_RATE_4BPC_BIT_EXT , "4BPC_BIT_EXT")+ , (IMAGE_COMPRESSION_FIXED_RATE_5BPC_BIT_EXT , "5BPC_BIT_EXT")+ , (IMAGE_COMPRESSION_FIXED_RATE_6BPC_BIT_EXT , "6BPC_BIT_EXT")+ , (IMAGE_COMPRESSION_FIXED_RATE_7BPC_BIT_EXT , "7BPC_BIT_EXT")+ , (IMAGE_COMPRESSION_FIXED_RATE_8BPC_BIT_EXT , "8BPC_BIT_EXT")+ , (IMAGE_COMPRESSION_FIXED_RATE_9BPC_BIT_EXT , "9BPC_BIT_EXT")+ , (IMAGE_COMPRESSION_FIXED_RATE_10BPC_BIT_EXT, "10BPC_BIT_EXT")+ , (IMAGE_COMPRESSION_FIXED_RATE_11BPC_BIT_EXT, "11BPC_BIT_EXT")+ , (IMAGE_COMPRESSION_FIXED_RATE_12BPC_BIT_EXT, "12BPC_BIT_EXT")+ , (IMAGE_COMPRESSION_FIXED_RATE_13BPC_BIT_EXT, "13BPC_BIT_EXT")+ , (IMAGE_COMPRESSION_FIXED_RATE_14BPC_BIT_EXT, "14BPC_BIT_EXT")+ , (IMAGE_COMPRESSION_FIXED_RATE_15BPC_BIT_EXT, "15BPC_BIT_EXT")+ , (IMAGE_COMPRESSION_FIXED_RATE_16BPC_BIT_EXT, "16BPC_BIT_EXT")+ , (IMAGE_COMPRESSION_FIXED_RATE_17BPC_BIT_EXT, "17BPC_BIT_EXT")+ , (IMAGE_COMPRESSION_FIXED_RATE_18BPC_BIT_EXT, "18BPC_BIT_EXT")+ , (IMAGE_COMPRESSION_FIXED_RATE_19BPC_BIT_EXT, "19BPC_BIT_EXT")+ , (IMAGE_COMPRESSION_FIXED_RATE_20BPC_BIT_EXT, "20BPC_BIT_EXT")+ , (IMAGE_COMPRESSION_FIXED_RATE_21BPC_BIT_EXT, "21BPC_BIT_EXT")+ , (IMAGE_COMPRESSION_FIXED_RATE_22BPC_BIT_EXT, "22BPC_BIT_EXT")+ , (IMAGE_COMPRESSION_FIXED_RATE_23BPC_BIT_EXT, "23BPC_BIT_EXT")+ , (IMAGE_COMPRESSION_FIXED_RATE_24BPC_BIT_EXT, "24BPC_BIT_EXT")+ ]++instance Show ImageCompressionFixedRateFlagBitsEXT where+ showsPrec = enumShowsPrec enumPrefixImageCompressionFixedRateFlagBitsEXT+ showTableImageCompressionFixedRateFlagBitsEXT+ conNameImageCompressionFixedRateFlagBitsEXT+ (\(ImageCompressionFixedRateFlagBitsEXT x) -> x)+ (\x -> showString "0x" . showHex x)++instance Read ImageCompressionFixedRateFlagBitsEXT where+ readPrec = enumReadPrec enumPrefixImageCompressionFixedRateFlagBitsEXT+ showTableImageCompressionFixedRateFlagBitsEXT+ conNameImageCompressionFixedRateFlagBitsEXT+ ImageCompressionFixedRateFlagBitsEXT+++type EXT_IMAGE_COMPRESSION_CONTROL_SPEC_VERSION = 1++-- No documentation found for TopLevel "VK_EXT_IMAGE_COMPRESSION_CONTROL_SPEC_VERSION"+pattern EXT_IMAGE_COMPRESSION_CONTROL_SPEC_VERSION :: forall a . Integral a => a+pattern EXT_IMAGE_COMPRESSION_CONTROL_SPEC_VERSION = 1+++type EXT_IMAGE_COMPRESSION_CONTROL_EXTENSION_NAME = "VK_EXT_image_compression_control"++-- No documentation found for TopLevel "VK_EXT_IMAGE_COMPRESSION_CONTROL_EXTENSION_NAME"+pattern EXT_IMAGE_COMPRESSION_CONTROL_EXTENSION_NAME :: forall a . (Eq a, IsString a) => a+pattern EXT_IMAGE_COMPRESSION_CONTROL_EXTENSION_NAME = "VK_EXT_image_compression_control"+
+ src/Vulkan/Extensions/VK_EXT_image_compression_control.hs-boot view
@@ -0,0 +1,204 @@+{-# language CPP #-}+-- | = Name+--+-- VK_EXT_image_compression_control - device extension+--+-- == VK_EXT_image_compression_control+--+-- [__Name String__]+-- @VK_EXT_image_compression_control@+--+-- [__Extension Type__]+-- Device extension+--+-- [__Registered Extension Number__]+-- 339+--+-- [__Revision__]+-- 1+--+-- [__Extension and Version Dependencies__]+--+-- - Requires support for Vulkan 1.0+--+-- [__Contact__]+--+-- - Jan-Harald Fredriksen+-- <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_EXT_image_compression_control] @janharaldfredriksen-arm%0A<<Here describe the issue or question you have about the VK_EXT_image_compression_control extension>> >+--+-- [__Extension Proposal__]+-- <https://github.com/KhronosGroup/Vulkan-Docs/tree/main/proposals/VK_EXT_image_compression_control.adoc VK_EXT_image_compression_control>+--+-- == Other Extension Metadata+--+-- [__Last Modified Date__]+-- 2022-05-02+--+-- [__IP Status__]+-- No known IP claims.+--+-- [__Contributors__]+--+-- - Jan-Harald Fredriksen, Arm+--+-- - Graeme Leese, Broadcom+--+-- - Andrew Garrard, Imagination+--+-- - Lisa Wu, Arm+--+-- - Peter Kohaut, Arm+--+-- == Description+--+-- This extension enables fixed-rate image compression and adds the ability+-- to control when this kind of compression can be applied. Many+-- implementations support some form of framebuffer compression. This is+-- typically transparent to applications as lossless compression schemes+-- are used. With fixed-rate compression, the compression is done at a+-- defined bitrate. Such compression algorithms generally produce results+-- that are visually lossless, but the results are typically not bit-exact+-- when compared to a non-compressed result. The implementation may not be+-- able to use the requested compression rate in all cases. This extension+-- adds a query that can be used to determine the compression scheme and+-- rate that was applied to an image.+--+-- == New Commands+--+-- - 'getImageSubresourceLayout2EXT'+--+-- == New Structures+--+-- - 'ImageSubresource2EXT'+--+-- - 'SubresourceLayout2EXT'+--+-- - Extending 'Vulkan.Core10.Image.ImageCreateInfo',+-- 'Vulkan.Extensions.VK_KHR_swapchain.SwapchainCreateInfoKHR',+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceImageFormatInfo2':+--+-- - 'ImageCompressionControlEXT'+--+-- - Extending+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.ImageFormatProperties2',+-- 'Vulkan.Extensions.VK_KHR_get_surface_capabilities2.SurfaceFormat2KHR',+-- 'SubresourceLayout2EXT':+--+-- - 'ImageCompressionPropertiesEXT'+--+-- - Extending+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',+-- 'Vulkan.Core10.Device.DeviceCreateInfo':+--+-- - 'PhysicalDeviceImageCompressionControlFeaturesEXT'+--+-- == New Enums+--+-- - 'ImageCompressionFixedRateFlagBitsEXT'+--+-- - 'ImageCompressionFlagBitsEXT'+--+-- == New Bitmasks+--+-- - 'ImageCompressionFixedRateFlagsEXT'+--+-- - 'ImageCompressionFlagsEXT'+--+-- == New Enum Constants+--+-- - 'EXT_IMAGE_COMPRESSION_CONTROL_EXTENSION_NAME'+--+-- - 'EXT_IMAGE_COMPRESSION_CONTROL_SPEC_VERSION'+--+-- - Extending 'Vulkan.Core10.Enums.Result.Result':+--+-- - 'Vulkan.Core10.Enums.Result.ERROR_COMPRESSION_EXHAUSTED_EXT'+--+-- - Extending 'Vulkan.Core10.Enums.StructureType.StructureType':+--+-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_IMAGE_COMPRESSION_CONTROL_EXT'+--+-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_IMAGE_COMPRESSION_PROPERTIES_EXT'+--+-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2_EXT'+--+-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_FEATURES_EXT'+--+-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2_EXT'+--+-- == Version History+--+-- - Revision 1, 2022-05-02 (Jan-Harald Fredriksen)+--+-- - Initial draft+--+-- == See Also+--+-- 'ImageCompressionControlEXT', 'ImageCompressionFixedRateFlagBitsEXT',+-- 'ImageCompressionFixedRateFlagsEXT', 'ImageCompressionFlagBitsEXT',+-- 'ImageCompressionFlagsEXT', 'ImageCompressionPropertiesEXT',+-- 'ImageSubresource2EXT',+-- 'PhysicalDeviceImageCompressionControlFeaturesEXT',+-- 'SubresourceLayout2EXT', 'getImageSubresourceLayout2EXT'+--+-- == Document Notes+--+-- For more information, see the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_image_compression_control Vulkan Specification>+--+-- This page is a generated document. Fixes and changes should be made to+-- the generator scripts, not directly.+module Vulkan.Extensions.VK_EXT_image_compression_control ( ImageCompressionControlEXT+ , ImageCompressionPropertiesEXT+ , ImageSubresource2EXT+ , PhysicalDeviceImageCompressionControlFeaturesEXT+ , SubresourceLayout2EXT+ ) where++import Vulkan.CStruct (FromCStruct)+import Vulkan.CStruct (ToCStruct)+import Data.Kind (Type)+import {-# SOURCE #-} Vulkan.CStruct.Extends (Chain)+import {-# SOURCE #-} Vulkan.CStruct.Extends (Extendss)+import {-# SOURCE #-} Vulkan.CStruct.Extends (PeekChain)+import {-# SOURCE #-} Vulkan.CStruct.Extends (PokeChain)+data ImageCompressionControlEXT++instance ToCStruct ImageCompressionControlEXT+instance Show ImageCompressionControlEXT++instance FromCStruct ImageCompressionControlEXT+++data ImageCompressionPropertiesEXT++instance ToCStruct ImageCompressionPropertiesEXT+instance Show ImageCompressionPropertiesEXT++instance FromCStruct ImageCompressionPropertiesEXT+++data ImageSubresource2EXT++instance ToCStruct ImageSubresource2EXT+instance Show ImageSubresource2EXT++instance FromCStruct ImageSubresource2EXT+++data PhysicalDeviceImageCompressionControlFeaturesEXT++instance ToCStruct PhysicalDeviceImageCompressionControlFeaturesEXT+instance Show PhysicalDeviceImageCompressionControlFeaturesEXT++instance FromCStruct PhysicalDeviceImageCompressionControlFeaturesEXT+++type role SubresourceLayout2EXT nominal+data SubresourceLayout2EXT (es :: [Type])++instance (Extendss SubresourceLayout2EXT es, PokeChain es) => ToCStruct (SubresourceLayout2EXT es)+instance Show (Chain es) => Show (SubresourceLayout2EXT es)++instance (Extendss SubresourceLayout2EXT es, PeekChain es) => FromCStruct (SubresourceLayout2EXT es)+
+ src/Vulkan/Extensions/VK_EXT_image_compression_control_swapchain.hs view
@@ -0,0 +1,208 @@+{-# language CPP #-}+-- | = Name+--+-- VK_EXT_image_compression_control_swapchain - device extension+--+-- == VK_EXT_image_compression_control_swapchain+--+-- [__Name String__]+-- @VK_EXT_image_compression_control_swapchain@+--+-- [__Extension Type__]+-- Device extension+--+-- [__Registered Extension Number__]+-- 438+--+-- [__Revision__]+-- 1+--+-- [__Extension and Version Dependencies__]+--+-- - Requires support for Vulkan 1.0+--+-- - Requires @VK_EXT_image_compression_control@ to be enabled for+-- any device-level functionality+--+-- [__Contact__]+--+-- - Jan-Harald Fredriksen+-- <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_EXT_image_compression_control_swapchain] @janharaldfredriksen-arm%0A<<Here describe the issue or question you have about the VK_EXT_image_compression_control_swapchain extension>> >+--+-- == Other Extension Metadata+--+-- [__Last Modified Date__]+-- 2022-05-02+--+-- [__IP Status__]+-- No known IP claims.+--+-- [__Contributors__]+--+-- - Jan-Harald Fredriksen, Arm+--+-- - Graeme Leese, Broadcom+--+-- - Andrew Garrard, Imagination+--+-- - Lisa Wu, Arm+--+-- - Peter Kohaut, Arm+--+-- - Ian Elliott, Google+--+-- == Description+--+-- This extension enables fixed-rate image compression and adds the ability+-- to control when this kind of compression can be applied to swapchain+-- images.+--+-- == New Structures+--+-- - Extending+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',+-- 'Vulkan.Core10.Device.DeviceCreateInfo':+--+-- - 'PhysicalDeviceImageCompressionControlSwapchainFeaturesEXT'+--+-- == New Enum Constants+--+-- - 'EXT_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_EXTENSION_NAME'+--+-- - 'EXT_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_SPEC_VERSION'+--+-- - Extending 'Vulkan.Core10.Enums.StructureType.StructureType':+--+-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_FEATURES_EXT'+--+-- == Version History+--+-- - Revision 1, 2022-05-02 (Jan-Harald Fredriksen)+--+-- - Initial draft+--+-- == See Also+--+-- 'PhysicalDeviceImageCompressionControlSwapchainFeaturesEXT'+--+-- == Document Notes+--+-- For more information, see the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_image_compression_control_swapchain Vulkan Specification>+--+-- This page is a generated document. Fixes and changes should be made to+-- the generator scripts, not directly.+module Vulkan.Extensions.VK_EXT_image_compression_control_swapchain ( PhysicalDeviceImageCompressionControlSwapchainFeaturesEXT(..)+ , EXT_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_SPEC_VERSION+ , pattern EXT_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_SPEC_VERSION+ , EXT_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_EXTENSION_NAME+ , pattern EXT_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_EXTENSION_NAME+ ) where++import Foreign.Marshal.Alloc (allocaBytes)+import Foreign.Ptr (nullPtr)+import Foreign.Ptr (plusPtr)+import Vulkan.CStruct (FromCStruct)+import Vulkan.CStruct (FromCStruct(..))+import Vulkan.CStruct (ToCStruct)+import Vulkan.CStruct (ToCStruct(..))+import Vulkan.Zero (Zero(..))+import Data.String (IsString)+import Data.Typeable (Typeable)+import Foreign.Storable (Storable)+import Foreign.Storable (Storable(peek))+import Foreign.Storable (Storable(poke))+import qualified Foreign.Storable (Storable(..))+import GHC.Generics (Generic)+import Foreign.Ptr (Ptr)+import Data.Kind (Type)+import Vulkan.Core10.FundamentalTypes (bool32ToBool)+import Vulkan.Core10.FundamentalTypes (boolToBool32)+import Vulkan.Core10.FundamentalTypes (Bool32)+import Vulkan.Core10.Enums.StructureType (StructureType)+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_FEATURES_EXT))+-- | VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT - Structure+-- describing whether per-swapchain image compression controls can be+-- supported by an implementation+--+-- = Members+--+-- This structure describes the following feature:+--+-- = Description+--+-- If the 'PhysicalDeviceImageCompressionControlSwapchainFeaturesEXT'+-- structure is included in the @pNext@ chain of the+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2'+-- structure passed to+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceFeatures2',+-- it is filled in to indicate whether each corresponding feature is+-- supported. 'PhysicalDeviceImageCompressionControlSwapchainFeaturesEXT'+-- /can/ also be used in the @pNext@ chain of+-- 'Vulkan.Core10.Device.DeviceCreateInfo' to selectively enable these+-- features.+--+-- == Valid Usage (Implicit)+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_image_compression_control_swapchain VK_EXT_image_compression_control_swapchain>,+-- 'Vulkan.Core10.FundamentalTypes.Bool32',+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data PhysicalDeviceImageCompressionControlSwapchainFeaturesEXT = PhysicalDeviceImageCompressionControlSwapchainFeaturesEXT+ { -- | #features-imageCompressionControlSwapchain#+ -- @imageCompressionControlSwapchain@ indicates that the implementation+ -- supports controlling image controls per swapchain and querying image+ -- compression properties per surface.+ imageCompressionControlSwapchain :: Bool }+ deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (PhysicalDeviceImageCompressionControlSwapchainFeaturesEXT)+#endif+deriving instance Show PhysicalDeviceImageCompressionControlSwapchainFeaturesEXT++instance ToCStruct PhysicalDeviceImageCompressionControlSwapchainFeaturesEXT where+ withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)+ pokeCStruct p PhysicalDeviceImageCompressionControlSwapchainFeaturesEXT{..} f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_FEATURES_EXT)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (imageCompressionControlSwapchain))+ f+ cStructSize = 24+ cStructAlignment = 8+ pokeZeroCStruct p f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_FEATURES_EXT)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (zero))+ f++instance FromCStruct PhysicalDeviceImageCompressionControlSwapchainFeaturesEXT where+ peekCStruct p = do+ imageCompressionControlSwapchain <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))+ pure $ PhysicalDeviceImageCompressionControlSwapchainFeaturesEXT+ (bool32ToBool imageCompressionControlSwapchain)++instance Storable PhysicalDeviceImageCompressionControlSwapchainFeaturesEXT where+ sizeOf ~_ = 24+ alignment ~_ = 8+ peek = peekCStruct+ poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero PhysicalDeviceImageCompressionControlSwapchainFeaturesEXT where+ zero = PhysicalDeviceImageCompressionControlSwapchainFeaturesEXT+ zero+++type EXT_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_SPEC_VERSION = 1++-- No documentation found for TopLevel "VK_EXT_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_SPEC_VERSION"+pattern EXT_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_SPEC_VERSION :: forall a . Integral a => a+pattern EXT_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_SPEC_VERSION = 1+++type EXT_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_EXTENSION_NAME = "VK_EXT_image_compression_control_swapchain"++-- No documentation found for TopLevel "VK_EXT_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_EXTENSION_NAME"+pattern EXT_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_EXTENSION_NAME :: forall a . (Eq a, IsString a) => a+pattern EXT_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_EXTENSION_NAME = "VK_EXT_image_compression_control_swapchain"+
+ src/Vulkan/Extensions/VK_EXT_image_compression_control_swapchain.hs-boot view
@@ -0,0 +1,107 @@+{-# language CPP #-}+-- | = Name+--+-- VK_EXT_image_compression_control_swapchain - device extension+--+-- == VK_EXT_image_compression_control_swapchain+--+-- [__Name String__]+-- @VK_EXT_image_compression_control_swapchain@+--+-- [__Extension Type__]+-- Device extension+--+-- [__Registered Extension Number__]+-- 438+--+-- [__Revision__]+-- 1+--+-- [__Extension and Version Dependencies__]+--+-- - Requires support for Vulkan 1.0+--+-- - Requires @VK_EXT_image_compression_control@ to be enabled for+-- any device-level functionality+--+-- [__Contact__]+--+-- - Jan-Harald Fredriksen+-- <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_EXT_image_compression_control_swapchain] @janharaldfredriksen-arm%0A<<Here describe the issue or question you have about the VK_EXT_image_compression_control_swapchain extension>> >+--+-- == Other Extension Metadata+--+-- [__Last Modified Date__]+-- 2022-05-02+--+-- [__IP Status__]+-- No known IP claims.+--+-- [__Contributors__]+--+-- - Jan-Harald Fredriksen, Arm+--+-- - Graeme Leese, Broadcom+--+-- - Andrew Garrard, Imagination+--+-- - Lisa Wu, Arm+--+-- - Peter Kohaut, Arm+--+-- - Ian Elliott, Google+--+-- == Description+--+-- This extension enables fixed-rate image compression and adds the ability+-- to control when this kind of compression can be applied to swapchain+-- images.+--+-- == New Structures+--+-- - Extending+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',+-- 'Vulkan.Core10.Device.DeviceCreateInfo':+--+-- - 'PhysicalDeviceImageCompressionControlSwapchainFeaturesEXT'+--+-- == New Enum Constants+--+-- - 'EXT_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_EXTENSION_NAME'+--+-- - 'EXT_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_SPEC_VERSION'+--+-- - Extending 'Vulkan.Core10.Enums.StructureType.StructureType':+--+-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_FEATURES_EXT'+--+-- == Version History+--+-- - Revision 1, 2022-05-02 (Jan-Harald Fredriksen)+--+-- - Initial draft+--+-- == See Also+--+-- 'PhysicalDeviceImageCompressionControlSwapchainFeaturesEXT'+--+-- == Document Notes+--+-- For more information, see the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_image_compression_control_swapchain Vulkan Specification>+--+-- This page is a generated document. Fixes and changes should be made to+-- the generator scripts, not directly.+module Vulkan.Extensions.VK_EXT_image_compression_control_swapchain (PhysicalDeviceImageCompressionControlSwapchainFeaturesEXT) where++import Vulkan.CStruct (FromCStruct)+import Vulkan.CStruct (ToCStruct)+import Data.Kind (Type)++data PhysicalDeviceImageCompressionControlSwapchainFeaturesEXT++instance ToCStruct PhysicalDeviceImageCompressionControlSwapchainFeaturesEXT+instance Show PhysicalDeviceImageCompressionControlSwapchainFeaturesEXT++instance FromCStruct PhysicalDeviceImageCompressionControlSwapchainFeaturesEXT+
src/Vulkan/Extensions/VK_EXT_image_drm_format_modifier.hs view
@@ -19,15 +19,19 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_bind_memory2@+-- - Requires @VK_KHR_bind_memory2@ to be enabled for any+-- device-level functionality ----- - Requires @VK_KHR_get_physical_device_properties2@+-- - Requires @VK_KHR_get_physical_device_properties2@ to be enabled+-- for any device-level functionality ----- - Requires @VK_KHR_image_format_list@+-- - Requires @VK_KHR_image_format_list@ to be enabled for any+-- device-level functionality ----- - Requires @VK_KHR_sampler_ycbcr_conversion@+-- - Requires @VK_KHR_sampler_ycbcr_conversion@ to be enabled for any+-- device-level functionality -- -- [__Contact__] --@@ -67,9 +71,9 @@ -- graphics, video, and display APIs. -- -- Its functionality closely overlaps with--- @EGL_EXT_image_dma_buf_import_modifiers@<https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_image_drm_format_modifier-fn2 2>^+-- @EGL_EXT_image_dma_buf_import_modifiers@<https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_image_drm_format_modifier-fn2 2>^ -- and--- @EGL_MESA_image_dma_buf_export@<https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_image_drm_format_modifier-fn3 3>^.+-- @EGL_MESA_image_dma_buf_export@<https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_image_drm_format_modifier-fn3 3>^. -- Unlike the EGL extensions, this extension does not require the use of a -- specific handle type (such as a dma_buf) for external memory and -- provides more explicit control of image creation.@@ -165,10 +169,10 @@ -- drmFormatModifier)/, where each participating component supports all -- tuples in the set. ----- Many details of this negotiation—such as the protocol used during--- negotiation, the set of image creation parameters expressable in the+-- Many details of this negotiation - such as the protocol used during+-- negotiation, the set of image creation parameters expressible in the -- protocol, and how the protocol chooses which process and which API--- will create the image—are outside the scope of this specification.+-- will create the image - are outside the scope of this specification. -- -- In this extension, -- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceFormatProperties2'@@ -250,33 +254,33 @@ -- == Prior Art -- -- Extension--- @EGL_EXT_image_dma_buf_import@<https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_image_drm_format_modifier-fn1 1>^+-- @EGL_EXT_image_dma_buf_import@<https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_image_drm_format_modifier-fn1 1>^ -- introduced the ability to create an @EGLImage@ by importing for each -- plane a dma_buf, offset, and row pitch. -- -- Later, extension--- @EGL_EXT_image_dma_buf_import_modifiers@<https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_image_drm_format_modifier-fn2 2>^+-- @EGL_EXT_image_dma_buf_import_modifiers@<https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_image_drm_format_modifier-fn2 2>^ -- introduced the ability to query which combination of formats and -- /modifiers/ the implementation supports and to specify /modifiers/ -- during creation of the @EGLImage@. -- -- Extension--- @EGL_MESA_image_dma_buf_export@<https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_image_drm_format_modifier-fn3 3>^+-- @EGL_MESA_image_dma_buf_export@<https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_image_drm_format_modifier-fn3 3>^ -- is the inverse of @EGL_EXT_image_dma_buf_import_modifiers@. -- -- The Linux kernel modesetting API (KMS), when configuring the display’s -- framebuffer with @struct--- drm_mode_fb_cmd2@<https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_image_drm_format_modifier-fn4 4>^,+-- drm_mode_fb_cmd2@<https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_image_drm_format_modifier-fn4 4>^, -- allows one to specify the frambuffer’s /modifier/ as well as a per-plane -- memory handle, offset, and row pitch. -- -- GBM, a graphics buffer manager for Linux, allows creation of a @gbm_bo@ -- (that is, a graphics /buffer object/) by importing data similar to that -- in--- @EGL_EXT_image_dma_buf_import_modifiers@<https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_image_drm_format_modifier-fn1 1>^;+-- @EGL_EXT_image_dma_buf_import_modifiers@<https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_image_drm_format_modifier-fn1 1>^; -- and symmetrically allows exporting the same data from the @gbm_bo@. See -- the references to /modifier/ and /plane/ in--- @gbm.h@<https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_image_drm_format_modifier-fn5 5>^.+-- @gbm.h@<https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_image_drm_format_modifier-fn5 5>^. -- -- == New Commands --@@ -371,10 +375,10 @@ -- 'Vulkan.Core10.Handles.Image'. -- -- __DISCUSSION__: Prior art, such as--- @EGL_EXT_image_dma_buf_import_modifiers@<https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_image_drm_format_modifier-fn2 2>^,--- @struct drm_mode_fb_cmd2@<https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_image_drm_format_modifier-fn4 4>^,+-- @EGL_EXT_image_dma_buf_import_modifiers@<https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_image_drm_format_modifier-fn2 2>^,+-- @struct drm_mode_fb_cmd2@<https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_image_drm_format_modifier-fn4 4>^, -- and @struct--- gbm_import_fd_modifier_data@<https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_image_drm_format_modifier-fn5 5>^,+-- gbm_import_fd_modifier_data@<https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_image_drm_format_modifier-fn5 5>^, -- allows defining one /modifier/ per plane. However, developers of the GBM -- and kernel APIs concede it was a mistake. Beginning in Linux 4.10, the -- kernel requires that the application provide the same DRM format@@ -397,10 +401,10 @@ -- /must/ be 0. -- -- __DISCUSSION__: Prior art, such as--- @EGL_EXT_image_dma_buf_import_modifiers@<https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_image_drm_format_modifier-fn2 2>^,--- @struct drm_mode_fb_cmd2@<https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_image_drm_format_modifier-fn4 4>^,+-- @EGL_EXT_image_dma_buf_import_modifiers@<https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_image_drm_format_modifier-fn2 2>^,+-- @struct drm_mode_fb_cmd2@<https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_image_drm_format_modifier-fn4 4>^, -- and @struct--- gbm_import_fd_modifier_data@<https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_image_drm_format_modifier-fn5 5>^,+-- gbm_import_fd_modifier_data@<https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_image_drm_format_modifier-fn5 5>^, -- omits from the API the size of each plane. Instead, the APIs infer each -- plane’s size from the import parameters, which include the image’s pixel -- format and a dma_buf, offset, and row pitch for each plane.@@ -508,13 +512,13 @@ -- === References -- -- 1. #VK_EXT_image_drm_format_modifier-fn1#--- <https://www.khronos.org/registry/EGL/extensions/EXT/EGL_EXT_image_dma_buf_import.txt EGL_EXT_image_dma_buf_import>+-- <https://registry.khronos.org/EGL/extensions/EXT/EGL_EXT_image_dma_buf_import.txt EGL_EXT_image_dma_buf_import> -- -- 2. #VK_EXT_image_drm_format_modifier-fn2#--- <https://www.khronos.org/registry/EGL/extensions/EXT/EGL_EXT_image_dma_buf_import_modifiers.txt EGL_EXT_image_dma_buf_import_modifiers>+-- <https://registry.khronos.org/EGL/extensions/EXT/EGL_EXT_image_dma_buf_import_modifiers.txt EGL_EXT_image_dma_buf_import_modifiers> -- -- 3. #VK_EXT_image_drm_format_modifier-fn3#--- <https://www.khronos.org/registry/EGL/extensions/MESA/EGL_MESA_image_dma_buf_export.txt EGL_MESA_image_dma_buf_export>+-- <https://registry.khronos.org/EGL/extensions/MESA/EGL_MESA_image_dma_buf_export.txt EGL_MESA_image_dma_buf_export> -- -- 4. #VK_EXT_image_drm_format_modifier-fn4# -- <https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/include/uapi/drm/drm_mode.h?id=refs/tags/v4.10#n392 struct@@ -545,7 +549,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_image_drm_format_modifier Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_image_drm_format_modifier Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.@@ -765,7 +769,7 @@ -- An image’s /memory planecount/ (as returned by -- @drmFormatModifierPlaneCount@) is distinct from its /format planecount/ -- (in the sense of--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar> -- Y′CBCR formats). In -- 'Vulkan.Core10.Enums.ImageAspectFlagBits.ImageAspectFlags', each -- @VK_IMAGE_ASPECT_MEMORY_PLANE_i_BIT_EXT@ represents a /memory plane/ and@@ -792,7 +796,7 @@ -- not necessarily contiguous. -- -- If an image is--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#glossary-linear-resource linear>,+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#glossary-linear-resource linear>, -- then the partition is the same for /memory planes/ and for /format -- planes/. Therefore, if the returned @drmFormatModifier@ is -- @DRM_FORMAT_MOD_LINEAR@, then @drmFormatModifierPlaneCount@ /must/ equal@@ -802,7 +806,7 @@ -- returned in the same @pNext@ chain. -- -- If an image is--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#glossary-linear-resource non-linear>,+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#glossary-linear-resource non-linear>, -- then the partition of the image’s __memory__ into /memory planes/ is -- implementation-specific and /may/ be unrelated to the partition of the -- image’s __content__ into /format planes/. For example, consider an image@@ -1211,7 +1215,7 @@ -- 'getImageDrmFormatModifierPropertiesEXT' data ImageDrmFormatModifierPropertiesEXT = ImageDrmFormatModifierPropertiesEXT { -- | @drmFormatModifier@ returns the image’s- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#glossary-drm-format-modifier Linux DRM format modifier>.+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#glossary-drm-format-modifier Linux DRM format modifier>. drmFormatModifier :: Word64 } deriving (Typeable, Eq) #if defined(GENERIC_INSTANCES)
src/Vulkan/Extensions/VK_EXT_image_drm_format_modifier.hs-boot view
@@ -19,15 +19,19 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_bind_memory2@+-- - Requires @VK_KHR_bind_memory2@ to be enabled for any+-- device-level functionality ----- - Requires @VK_KHR_get_physical_device_properties2@+-- - Requires @VK_KHR_get_physical_device_properties2@ to be enabled+-- for any device-level functionality ----- - Requires @VK_KHR_image_format_list@+-- - Requires @VK_KHR_image_format_list@ to be enabled for any+-- device-level functionality ----- - Requires @VK_KHR_sampler_ycbcr_conversion@+-- - Requires @VK_KHR_sampler_ycbcr_conversion@ to be enabled for any+-- device-level functionality -- -- [__Contact__] --@@ -67,9 +71,9 @@ -- graphics, video, and display APIs. -- -- Its functionality closely overlaps with--- @EGL_EXT_image_dma_buf_import_modifiers@<https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_image_drm_format_modifier-fn2 2>^+-- @EGL_EXT_image_dma_buf_import_modifiers@<https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_image_drm_format_modifier-fn2 2>^ -- and--- @EGL_MESA_image_dma_buf_export@<https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_image_drm_format_modifier-fn3 3>^.+-- @EGL_MESA_image_dma_buf_export@<https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_image_drm_format_modifier-fn3 3>^. -- Unlike the EGL extensions, this extension does not require the use of a -- specific handle type (such as a dma_buf) for external memory and -- provides more explicit control of image creation.@@ -165,10 +169,10 @@ -- drmFormatModifier)/, where each participating component supports all -- tuples in the set. ----- Many details of this negotiation—such as the protocol used during--- negotiation, the set of image creation parameters expressable in the+-- Many details of this negotiation - such as the protocol used during+-- negotiation, the set of image creation parameters expressible in the -- protocol, and how the protocol chooses which process and which API--- will create the image—are outside the scope of this specification.+-- will create the image - are outside the scope of this specification. -- -- In this extension, -- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceFormatProperties2'@@ -250,33 +254,33 @@ -- == Prior Art -- -- Extension--- @EGL_EXT_image_dma_buf_import@<https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_image_drm_format_modifier-fn1 1>^+-- @EGL_EXT_image_dma_buf_import@<https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_image_drm_format_modifier-fn1 1>^ -- introduced the ability to create an @EGLImage@ by importing for each -- plane a dma_buf, offset, and row pitch. -- -- Later, extension--- @EGL_EXT_image_dma_buf_import_modifiers@<https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_image_drm_format_modifier-fn2 2>^+-- @EGL_EXT_image_dma_buf_import_modifiers@<https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_image_drm_format_modifier-fn2 2>^ -- introduced the ability to query which combination of formats and -- /modifiers/ the implementation supports and to specify /modifiers/ -- during creation of the @EGLImage@. -- -- Extension--- @EGL_MESA_image_dma_buf_export@<https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_image_drm_format_modifier-fn3 3>^+-- @EGL_MESA_image_dma_buf_export@<https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_image_drm_format_modifier-fn3 3>^ -- is the inverse of @EGL_EXT_image_dma_buf_import_modifiers@. -- -- The Linux kernel modesetting API (KMS), when configuring the display’s -- framebuffer with @struct--- drm_mode_fb_cmd2@<https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_image_drm_format_modifier-fn4 4>^,+-- drm_mode_fb_cmd2@<https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_image_drm_format_modifier-fn4 4>^, -- allows one to specify the frambuffer’s /modifier/ as well as a per-plane -- memory handle, offset, and row pitch. -- -- GBM, a graphics buffer manager for Linux, allows creation of a @gbm_bo@ -- (that is, a graphics /buffer object/) by importing data similar to that -- in--- @EGL_EXT_image_dma_buf_import_modifiers@<https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_image_drm_format_modifier-fn1 1>^;+-- @EGL_EXT_image_dma_buf_import_modifiers@<https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_image_drm_format_modifier-fn1 1>^; -- and symmetrically allows exporting the same data from the @gbm_bo@. See -- the references to /modifier/ and /plane/ in--- @gbm.h@<https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_image_drm_format_modifier-fn5 5>^.+-- @gbm.h@<https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_image_drm_format_modifier-fn5 5>^. -- -- == New Commands --@@ -371,10 +375,10 @@ -- 'Vulkan.Core10.Handles.Image'. -- -- __DISCUSSION__: Prior art, such as--- @EGL_EXT_image_dma_buf_import_modifiers@<https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_image_drm_format_modifier-fn2 2>^,--- @struct drm_mode_fb_cmd2@<https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_image_drm_format_modifier-fn4 4>^,+-- @EGL_EXT_image_dma_buf_import_modifiers@<https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_image_drm_format_modifier-fn2 2>^,+-- @struct drm_mode_fb_cmd2@<https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_image_drm_format_modifier-fn4 4>^, -- and @struct--- gbm_import_fd_modifier_data@<https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_image_drm_format_modifier-fn5 5>^,+-- gbm_import_fd_modifier_data@<https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_image_drm_format_modifier-fn5 5>^, -- allows defining one /modifier/ per plane. However, developers of the GBM -- and kernel APIs concede it was a mistake. Beginning in Linux 4.10, the -- kernel requires that the application provide the same DRM format@@ -397,10 +401,10 @@ -- /must/ be 0. -- -- __DISCUSSION__: Prior art, such as--- @EGL_EXT_image_dma_buf_import_modifiers@<https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_image_drm_format_modifier-fn2 2>^,--- @struct drm_mode_fb_cmd2@<https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_image_drm_format_modifier-fn4 4>^,+-- @EGL_EXT_image_dma_buf_import_modifiers@<https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_image_drm_format_modifier-fn2 2>^,+-- @struct drm_mode_fb_cmd2@<https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_image_drm_format_modifier-fn4 4>^, -- and @struct--- gbm_import_fd_modifier_data@<https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_image_drm_format_modifier-fn5 5>^,+-- gbm_import_fd_modifier_data@<https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_image_drm_format_modifier-fn5 5>^, -- omits from the API the size of each plane. Instead, the APIs infer each -- plane’s size from the import parameters, which include the image’s pixel -- format and a dma_buf, offset, and row pitch for each plane.@@ -508,13 +512,13 @@ -- === References -- -- 1. #VK_EXT_image_drm_format_modifier-fn1#--- <https://www.khronos.org/registry/EGL/extensions/EXT/EGL_EXT_image_dma_buf_import.txt EGL_EXT_image_dma_buf_import>+-- <https://registry.khronos.org/EGL/extensions/EXT/EGL_EXT_image_dma_buf_import.txt EGL_EXT_image_dma_buf_import> -- -- 2. #VK_EXT_image_drm_format_modifier-fn2#--- <https://www.khronos.org/registry/EGL/extensions/EXT/EGL_EXT_image_dma_buf_import_modifiers.txt EGL_EXT_image_dma_buf_import_modifiers>+-- <https://registry.khronos.org/EGL/extensions/EXT/EGL_EXT_image_dma_buf_import_modifiers.txt EGL_EXT_image_dma_buf_import_modifiers> -- -- 3. #VK_EXT_image_drm_format_modifier-fn3#--- <https://www.khronos.org/registry/EGL/extensions/MESA/EGL_MESA_image_dma_buf_export.txt EGL_MESA_image_dma_buf_export>+-- <https://registry.khronos.org/EGL/extensions/MESA/EGL_MESA_image_dma_buf_export.txt EGL_MESA_image_dma_buf_export> -- -- 4. #VK_EXT_image_drm_format_modifier-fn4# -- <https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/include/uapi/drm/drm_mode.h?id=refs/tags/v4.10#n392 struct@@ -545,7 +549,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_image_drm_format_modifier Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_image_drm_format_modifier Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_EXT_image_robustness.hs view
@@ -19,9 +19,10 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_get_physical_device_properties2@+-- - Requires @VK_KHR_get_physical_device_properties2@ to be enabled+-- for any device-level functionality -- -- [__Deprecation state__] --@@ -66,7 +67,7 @@ -- out of bounds reads return R, G, and B values of zero and alpha values -- of either zero or one. Components not present in the image format may be -- set to zero or to values based on the format as described in--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#textures-conversion-to-rgba Conversion to RGBA>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#textures-conversion-to-rgba Conversion to RGBA>. -- -- == New Structures --@@ -111,7 +112,7 @@ -- -- - Revision 1, 2020-04-27 (Graeme Leese) ----- - Initial draft+-- - Initial draft -- -- == See Also --@@ -120,7 +121,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_image_robustness Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_image_robustness Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_EXT_image_view_min_lod.hs view
@@ -19,9 +19,10 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_get_physical_device_properties2@+-- - Requires @VK_KHR_get_physical_device_properties2@ to be enabled+-- for any device-level functionality -- -- [__Contact__] --@@ -53,9 +54,9 @@ -- == Description -- -- This extension allows applications to clamp the minimum LOD value during--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#textures-image-level-selection Image Level(s) Selection>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#textures-image-level-selection Image Level(s) Selection> -- and--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#textures-integer-coordinate-operations Integer Texel Coordinate Operations>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#textures-integer-coordinate-operations Integer Texel Coordinate Operations> -- with a given 'Vulkan.Core10.Handles.ImageView' by -- 'ImageViewMinLodCreateInfoEXT'::@minLod@. --@@ -102,7 +103,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_image_view_min_lod Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_image_view_min_lod Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.@@ -147,7 +148,7 @@ -- -- = Members ----- This structure describes the following features:+-- This structure describes the following feature: -- -- = Description --@@ -171,9 +172,9 @@ data PhysicalDeviceImageViewMinLodFeaturesEXT = PhysicalDeviceImageViewMinLodFeaturesEXT { -- | #features-minLod# @minLod@ indicates whether the implementation supports -- clamping the minimum LOD value during- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#textures-image-level-selection Image Level(s) Selection>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#textures-image-level-selection Image Level(s) Selection> -- and- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#textures-integer-coordinate-operations Integer Texel Coordinate Operations>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#textures-integer-coordinate-operations Integer Texel Coordinate Operations> -- with a given 'Vulkan.Core10.Handles.ImageView' by -- 'ImageViewMinLodCreateInfoEXT'::@minLod@. minLod :: Bool }@@ -221,7 +222,7 @@ -- == Valid Usage -- -- - #VUID-VkImageViewMinLodCreateInfoEXT-minLod-06455# If the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-minLod minLod>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-minLod minLod> -- feature is not enabled, @minLod@ /must/ be @0.0@. -- -- - #VUID-VkImageViewMinLodCreateInfoEXT-minLod-06456# @minLod@ /must/
src/Vulkan/Extensions/VK_EXT_image_view_min_lod.hs-boot view
@@ -19,9 +19,10 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_get_physical_device_properties2@+-- - Requires @VK_KHR_get_physical_device_properties2@ to be enabled+-- for any device-level functionality -- -- [__Contact__] --@@ -53,9 +54,9 @@ -- == Description -- -- This extension allows applications to clamp the minimum LOD value during--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#textures-image-level-selection Image Level(s) Selection>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#textures-image-level-selection Image Level(s) Selection> -- and--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#textures-integer-coordinate-operations Integer Texel Coordinate Operations>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#textures-integer-coordinate-operations Integer Texel Coordinate Operations> -- with a given 'Vulkan.Core10.Handles.ImageView' by -- 'ImageViewMinLodCreateInfoEXT'::@minLod@. --@@ -102,7 +103,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_image_view_min_lod Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_image_view_min_lod Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_EXT_index_type_uint8.hs view
@@ -19,7 +19,7 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 -- -- [__Contact__] --@@ -78,7 +78,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_index_type_uint8 Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_index_type_uint8 Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_EXT_index_type_uint8.hs-boot view
@@ -19,7 +19,7 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 -- -- [__Contact__] --@@ -78,7 +78,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_index_type_uint8 Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_index_type_uint8 Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_EXT_inline_uniform_block.hs view
@@ -19,11 +19,13 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_get_physical_device_properties2@+-- - Requires @VK_KHR_get_physical_device_properties2@ to be enabled+-- for any device-level functionality ----- - Requires @VK_KHR_maintenance1@+-- - Requires @VK_KHR_maintenance1@ to be enabled for any+-- device-level functionality -- -- [__Deprecation state__] --@@ -114,9 +116,9 @@ -- available as aliases of the core functionality. -- -- Vulkan 1.3 adds--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#versions-1.3-new-features additional functionality related to this extension>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#versions-1.3-new-features additional functionality related to this extension> -- in the form of the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxInlineUniformTotalSize maxInlineUniformTotalSize>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxInlineUniformTotalSize maxInlineUniformTotalSize> -- limit. -- -- == Issues@@ -191,7 +193,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_inline_uniform_block Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_inline_uniform_block Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_EXT_line_rasterization.hs view
@@ -19,9 +19,10 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_get_physical_device_properties2@+-- - Requires @VK_KHR_get_physical_device_properties2@ to be enabled+-- for any device-level functionality -- -- [__Special Use__] --@@ -127,7 +128,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_line_rasterization Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_line_rasterization Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.@@ -235,6 +236,9 @@ -- 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was -- allocated from /must/ support graphics operations --+-- - #VUID-vkCmdSetLineStippleEXT-videocoding# This command /must/ only+-- be called outside of a video coding scope+-- -- == Host Synchronization -- -- - Host access to @commandBuffer@ /must/ be externally synchronized@@ -246,12 +250,12 @@ -- -- \' ----- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | Primary | Both | Graphics |--- | Secondary | | |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================++-- | Primary | Both | Outside | Graphics |+-- | Secondary | | | |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+ -- -- = See Also --@@ -307,32 +311,29 @@ data PhysicalDeviceLineRasterizationFeaturesEXT = PhysicalDeviceLineRasterizationFeaturesEXT { -- | #features-rectangularLines# @rectangularLines@ indicates whether the -- implementation supports- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-lines rectangular line rasterization>.+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-lines rectangular line rasterization>. rectangularLines :: Bool , -- | #features-bresenhamLines# @bresenhamLines@ indicates whether the -- implementation supports- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-lines-bresenham Bresenham-style line rasterization>.+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-lines-bresenham Bresenham-style line rasterization>. bresenhamLines :: Bool , -- | #features-smoothLines# @smoothLines@ indicates whether the -- implementation supports- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-lines-smooth smooth line rasterization>.+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-lines-smooth smooth line rasterization>. smoothLines :: Bool , -- | #features-stippledRectangularLines# @stippledRectangularLines@ indicates -- whether the implementation supports- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-lines-stipple stippled line rasterization>- -- with 'LINE_RASTERIZATION_MODE_RECTANGULAR_EXT' lines, or with- -- 'LINE_RASTERIZATION_MODE_DEFAULT_EXT' lines if- -- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@strictLines@- -- is 'Vulkan.Core10.FundamentalTypes.TRUE'.+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-lines-stipple stippled line rasterization>+ -- with 'LINE_RASTERIZATION_MODE_RECTANGULAR_EXT' lines. stippledRectangularLines :: Bool , -- | #features-stippledBresenhamLines# @stippledBresenhamLines@ indicates -- whether the implementation supports- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-lines-stipple stippled line rasterization>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-lines-stipple stippled line rasterization> -- with 'LINE_RASTERIZATION_MODE_BRESENHAM_EXT' lines. stippledBresenhamLines :: Bool , -- | #features-stippledSmoothLines# @stippledSmoothLines@ indicates whether -- the implementation supports- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-lines-stipple stippled line rasterization>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-lines-stipple stippled line rasterization> -- with 'LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT' lines. stippledSmoothLines :: Bool }@@ -417,7 +418,7 @@ { -- | #limits-lineSubPixelPrecisionBits# @lineSubPixelPrecisionBits@ is the -- number of bits of subpixel precision in framebuffer coordinates xf and -- yf when rasterizing- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-lines line segments>.+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-lines line segments>. lineSubPixelPrecisionBits :: Word32 } deriving (Typeable, Eq) #if defined(GENERIC_INSTANCES)@@ -470,47 +471,47 @@ -- - #VUID-VkPipelineRasterizationLineStateCreateInfoEXT-lineRasterizationMode-02768# -- If @lineRasterizationMode@ is -- 'LINE_RASTERIZATION_MODE_RECTANGULAR_EXT', then the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-rectangularLines rectangularLines>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-rectangularLines rectangularLines> -- feature /must/ be enabled -- -- - #VUID-VkPipelineRasterizationLineStateCreateInfoEXT-lineRasterizationMode-02769# -- If @lineRasterizationMode@ is -- 'LINE_RASTERIZATION_MODE_BRESENHAM_EXT', then the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-bresenhamLines bresenhamLines>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-bresenhamLines bresenhamLines> -- feature /must/ be enabled -- -- - #VUID-VkPipelineRasterizationLineStateCreateInfoEXT-lineRasterizationMode-02770# -- If @lineRasterizationMode@ is -- 'LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT', then the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-bresenhamLines smoothLines>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-smoothLines smoothLines> -- feature /must/ be enabled -- -- - #VUID-VkPipelineRasterizationLineStateCreateInfoEXT-stippledLineEnable-02771# -- If @stippledLineEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE' and -- @lineRasterizationMode@ is -- 'LINE_RASTERIZATION_MODE_RECTANGULAR_EXT', then the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-stippledRectangularLines stippledRectangularLines>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-stippledRectangularLines stippledRectangularLines> -- feature /must/ be enabled -- -- - #VUID-VkPipelineRasterizationLineStateCreateInfoEXT-stippledLineEnable-02772# -- If @stippledLineEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE' and -- @lineRasterizationMode@ is 'LINE_RASTERIZATION_MODE_BRESENHAM_EXT', -- then the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-stippledBresenhamLines stippledBresenhamLines>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-stippledBresenhamLines stippledBresenhamLines> -- feature /must/ be enabled -- -- - #VUID-VkPipelineRasterizationLineStateCreateInfoEXT-stippledLineEnable-02773# -- If @stippledLineEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE' and -- @lineRasterizationMode@ is -- 'LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT', then the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-stippledSmoothLines stippledSmoothLines>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-stippledSmoothLines stippledSmoothLines> -- feature /must/ be enabled -- -- - #VUID-VkPipelineRasterizationLineStateCreateInfoEXT-stippledLineEnable-02774# -- If @stippledLineEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE' and -- @lineRasterizationMode@ is 'LINE_RASTERIZATION_MODE_DEFAULT_EXT', -- then the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-stippledRectangularLines stippledRectangularLines>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-stippledRectangularLines stippledRectangularLines> -- feature /must/ be enabled and -- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@strictLines@ -- /must/ be 'Vulkan.Core10.FundamentalTypes.TRUE'@@ -535,7 +536,7 @@ -- the style of line rasterization. lineRasterizationMode :: LineRasterizationModeEXT , -- | @stippledLineEnable@ enables- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-lines-stipple stippled line rasterization>.+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-lines-stipple stippled line rasterization>. stippledLineEnable :: Bool , -- | @lineStippleFactor@ is the repeat factor used in stippled line -- rasterization.@@ -608,7 +609,7 @@ -- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@strictLines@ -- is 'Vulkan.Core10.FundamentalTypes.TRUE', otherwise lines are drawn as -- non-@strictLines@ parallelograms. Both of these modes are defined in--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-lines-basic Basic Line Segment Rasterization>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-lines-basic Basic Line Segment Rasterization>. pattern LINE_RASTERIZATION_MODE_DEFAULT_EXT = LineRasterizationModeEXT 0 -- | 'LINE_RASTERIZATION_MODE_RECTANGULAR_EXT' specifies lines drawn as if -- they were rectangles extruded from the line@@ -616,12 +617,12 @@ -- | 'LINE_RASTERIZATION_MODE_BRESENHAM_EXT' specifies lines drawn by -- determining which pixel diamonds the line intersects and exits, as -- defined in--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-lines-bresenham Bresenham Line Segment Rasterization>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-lines-bresenham Bresenham Line Segment Rasterization>. pattern LINE_RASTERIZATION_MODE_BRESENHAM_EXT = LineRasterizationModeEXT 2 -- | 'LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT' specifies lines drawn -- if they were rectangles extruded from the line, with alpha falloff, as -- defined in--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-lines-smooth Smooth Lines>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-lines-smooth Smooth Lines>. pattern LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT = LineRasterizationModeEXT 3 {-# complete LINE_RASTERIZATION_MODE_DEFAULT_EXT, LINE_RASTERIZATION_MODE_RECTANGULAR_EXT,
src/Vulkan/Extensions/VK_EXT_line_rasterization.hs-boot view
@@ -19,9 +19,10 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_get_physical_device_properties2@+-- - Requires @VK_KHR_get_physical_device_properties2@ to be enabled+-- for any device-level functionality -- -- [__Special Use__] --@@ -127,7 +128,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_line_rasterization Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_line_rasterization Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_EXT_load_store_op_none.hs view
@@ -19,7 +19,7 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 -- -- [__Contact__] --@@ -84,7 +84,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_load_store_op_none Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_load_store_op_none Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_EXT_memory_budget.hs view
@@ -19,9 +19,10 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_get_physical_device_properties2@+-- - Requires @VK_KHR_get_physical_device_properties2@ to be enabled+-- for any device-level functionality -- -- [__Contact__] --@@ -96,7 +97,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_memory_budget Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_memory_budget Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_EXT_memory_budget.hs-boot view
@@ -19,9 +19,10 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_get_physical_device_properties2@+-- - Requires @VK_KHR_get_physical_device_properties2@ to be enabled+-- for any device-level functionality -- -- [__Contact__] --@@ -96,7 +97,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_memory_budget Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_memory_budget Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_EXT_memory_priority.hs view
@@ -19,9 +19,10 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_get_physical_device_properties2@+-- - Requires @VK_KHR_get_physical_device_properties2@ to be enabled+-- for any device-level functionality -- -- [__Contact__] --@@ -87,7 +88,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_memory_priority Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_memory_priority Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_EXT_memory_priority.hs-boot view
@@ -19,9 +19,10 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_get_physical_device_properties2@+-- - Requires @VK_KHR_get_physical_device_properties2@ to be enabled+-- for any device-level functionality -- -- [__Contact__] --@@ -87,7 +88,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_memory_priority Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_memory_priority Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
+ src/Vulkan/Extensions/VK_EXT_mesh_shader.hs view
@@ -0,0 +1,4009 @@+{-# language CPP #-}+-- | = Name+--+-- VK_EXT_mesh_shader - device extension+--+-- == VK_EXT_mesh_shader+--+-- [__Name String__]+-- @VK_EXT_mesh_shader@+--+-- [__Extension Type__]+-- Device extension+--+-- [__Registered Extension Number__]+-- 329+--+-- [__Revision__]+-- 1+--+-- [__Extension and Version Dependencies__]+--+-- - Requires support for Vulkan 1.0+--+-- - Requires @VK_KHR_get_physical_device_properties2@ to be enabled+-- for any device-level functionality+--+-- [__Contact__]+--+-- - Christoph Kubisch+-- <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_EXT_mesh_shader] @pixeljetstream%0A<<Here describe the issue or question you have about the VK_EXT_mesh_shader extension>> >+--+-- [__Extension Proposal__]+-- <https://github.com/KhronosGroup/Vulkan-Docs/tree/main/proposals/VK_EXT_mesh_shader.adoc VK_EXT_mesh_shader>+--+-- == Other Extension Metadata+--+-- [__Last Modified Date__]+-- 2022-01-20+--+-- [__Interactions and External Dependencies__]+--+-- - This extension requires+-- <https://htmlpreview.github.io/?https://github.com/KhronosGroup/SPIRV-Registry/blob/master/extensions/EXT/SPV_EXT_mesh_shader.html SPV_EXT_mesh_shader>+--+-- - This extension provides API support for+-- <https://github.com/KhronosGroup/GLSL/blob/master/extensions/ext/GLSL_EXT_mesh_shader.txt GLSL_EXT_mesh_shader>+--+-- - Interacts with Vulkan 1.1+--+-- - Interacts with @VK_KHR_multiview@+--+-- - Interacts with @VK_KHR_fragment_shading_rate@+--+-- [__Contributors__]+--+-- - Christoph Kubisch, NVIDIA+--+-- - Pat Brown, NVIDIA+--+-- - Jeff Bolz, NVIDIA+--+-- - Daniel Koch, NVIDIA+--+-- - Piers Daniell, NVIDIA+--+-- - Pierre Boudier, NVIDIA+--+-- - Patrick Mours, NVIDIA+--+-- - David Zhao Akeley, NVIDIA+--+-- - Kedarnath Thangudu, NVIDIA+--+-- - Timur Kristóf, Valve+--+-- - Hans-Kristian Arntzen, Valve+--+-- - Philip Rebohle, Valve+--+-- - Mike Blumenkrantz, Valve+--+-- - Slawomir Grajewski, Intel+--+-- - Michal Pietrasiuk, Intel+--+-- - Mariusz Merecki, Intel+--+-- - Tom Olson, ARM+--+-- - Jan-Harald Fredriksen, ARM+--+-- - Sandeep Kakarlapudi, ARM+--+-- - Ruihao Zhang, QUALCOMM+--+-- - Ricardo Garcia, Igalia, S.L.+--+-- - Tobias Hector, AMD+--+-- - Stu Smith, AMD+--+-- == Description+--+-- This extension provides a new mechanism allowing applications to+-- generate collections of geometric primitives via programmable mesh+-- shading. It is an alternative to the existing programmable primitive+-- shading pipeline, which relied on generating input primitives by a fixed+-- function assembler as well as fixed function vertex fetch.+--+-- This extension also adds support for the following SPIR-V extension in+-- Vulkan:+--+-- - <https://htmlpreview.github.io/?https://github.com/KhronosGroup/SPIRV-Registry/blob/master/extensions/EXT/SPV_EXT_mesh_shader.html SPV_EXT_mesh_shader>+--+-- == New Commands+--+-- - 'cmdDrawMeshTasksEXT'+--+-- - 'cmdDrawMeshTasksIndirectCountEXT'+--+-- - 'cmdDrawMeshTasksIndirectEXT'+--+-- == New Structures+--+-- - 'DrawMeshTasksIndirectCommandEXT'+--+-- - Extending+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',+-- 'Vulkan.Core10.Device.DeviceCreateInfo':+--+-- - 'PhysicalDeviceMeshShaderFeaturesEXT'+--+-- - Extending+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2':+--+-- - 'PhysicalDeviceMeshShaderPropertiesEXT'+--+-- == New Enum Constants+--+-- - 'EXT_MESH_SHADER_EXTENSION_NAME'+--+-- - 'EXT_MESH_SHADER_SPEC_VERSION'+--+-- - Extending+-- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlagBits':+--+-- - 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_MESH_SHADER_BIT_EXT'+--+-- - 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TASK_SHADER_BIT_EXT'+--+-- - Extending+-- 'Vulkan.Core10.Enums.QueryPipelineStatisticFlagBits.QueryPipelineStatisticFlagBits':+--+-- - 'Vulkan.Core10.Enums.QueryPipelineStatisticFlagBits.QUERY_PIPELINE_STATISTIC_MESH_SHADER_INVOCATIONS_BIT_EXT'+--+-- - 'Vulkan.Core10.Enums.QueryPipelineStatisticFlagBits.QUERY_PIPELINE_STATISTIC_TASK_SHADER_INVOCATIONS_BIT_EXT'+--+-- - Extending 'Vulkan.Core10.Enums.QueryType.QueryType':+--+-- - 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_MESH_PRIMITIVES_GENERATED_EXT'+--+-- - Extending+-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.ShaderStageFlagBits':+--+-- - 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'+--+-- - 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT'+--+-- - Extending 'Vulkan.Core10.Enums.StructureType.StructureType':+--+-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_EXT'+--+-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_EXT'+--+-- If+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_device_generated_commands VK_NV_device_generated_commands>+-- is supported:+--+-- - Extending+-- 'Vulkan.Extensions.VK_NV_device_generated_commands.IndirectCommandsTokenTypeNV':+--+-- - 'Vulkan.Extensions.VK_NV_device_generated_commands.INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_NV'+--+-- == New or Modified Built-In Variables+--+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-cullprimitive CullPrimitiveEXT>+--+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-primitivepointindices PrimitivePointIndicesEXT>+--+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-primitivelineindices PrimitiveLineIndicesEXT>+--+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-primitivetriangleindices PrimitiveTriangleIndicesEXT>+--+-- - (modified)@Position@+--+-- - (modified)@PointSize@+--+-- - (modified)@ClipDistance@+--+-- - (modified)@CullDistance@+--+-- - (modified)@PrimitiveId@+--+-- - (modified)@Layer@+--+-- - (modified)@ViewportIndex@+--+-- - (modified)@NumWorkgroups@+--+-- - (modified)@WorkgroupSize@+--+-- - (modified)@WorkgroupId@+--+-- - (modified)@LocalInvocationId@+--+-- - (modified)@GlobalInvocationId@+--+-- - (modified)@LocalInvocationIndex@+--+-- - (modified)@NumSubgroups@+--+-- - (modified)@SubgroupId@+--+-- - (modified)@DrawIndex@+--+-- - (modified)@PrimitiveShadingRateKHR@+--+-- - (modified)@ViewIndex@+--+-- == New SPIR-V Capability+--+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-meshshading MeshShadingEXT>+--+-- == Version History+--+-- - Revision 1, 2022-03-08 (Christoph Kubisch, Daniel Koch, Patrick+-- Mours)+--+-- - Initial revision+--+-- == See Also+--+-- 'DrawMeshTasksIndirectCommandEXT',+-- 'PhysicalDeviceMeshShaderFeaturesEXT',+-- 'PhysicalDeviceMeshShaderPropertiesEXT', 'cmdDrawMeshTasksEXT',+-- 'cmdDrawMeshTasksIndirectCountEXT', 'cmdDrawMeshTasksIndirectEXT'+--+-- == Document Notes+--+-- For more information, see the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_mesh_shader Vulkan Specification>+--+-- This page is a generated document. Fixes and changes should be made to+-- the generator scripts, not directly.+module Vulkan.Extensions.VK_EXT_mesh_shader ( cmdDrawMeshTasksEXT+ , cmdDrawMeshTasksIndirectEXT+ , cmdDrawMeshTasksIndirectCountEXT+ , PhysicalDeviceMeshShaderFeaturesEXT(..)+ , PhysicalDeviceMeshShaderPropertiesEXT(..)+ , DrawMeshTasksIndirectCommandEXT(..)+ , EXT_MESH_SHADER_SPEC_VERSION+ , pattern EXT_MESH_SHADER_SPEC_VERSION+ , EXT_MESH_SHADER_EXTENSION_NAME+ , pattern EXT_MESH_SHADER_EXTENSION_NAME+ , IndirectCommandsTokenTypeNV(..)+ ) where++import Vulkan.CStruct.Utils (FixedArray)+import Vulkan.Internal.Utils (traceAroundEvent)+import Control.Monad (unless)+import Control.Monad.IO.Class (liftIO)+import Foreign.Marshal.Alloc (allocaBytes)+import GHC.IO (throwIO)+import GHC.Ptr (nullFunPtr)+import Foreign.Ptr (nullPtr)+import Foreign.Ptr (plusPtr)+import Vulkan.CStruct (FromCStruct)+import Vulkan.CStruct (FromCStruct(..))+import Vulkan.CStruct (ToCStruct)+import Vulkan.CStruct (ToCStruct(..))+import Vulkan.Zero (Zero(..))+import Control.Monad.IO.Class (MonadIO)+import Data.String (IsString)+import Data.Typeable (Typeable)+import Foreign.Storable (Storable)+import Foreign.Storable (Storable(peek))+import Foreign.Storable (Storable(poke))+import qualified Foreign.Storable (Storable(..))+import GHC.Generics (Generic)+import GHC.IO.Exception (IOErrorType(..))+import GHC.IO.Exception (IOException(..))+import Foreign.Ptr (FunPtr)+import Foreign.Ptr (Ptr)+import Data.Word (Word32)+import Data.Kind (Type)+import Vulkan.CStruct.Utils (advancePtrBytes)+import Vulkan.Core10.FundamentalTypes (bool32ToBool)+import Vulkan.Core10.FundamentalTypes (boolToBool32)+import Vulkan.CStruct.Utils (lowerArrayPtr)+import Vulkan.NamedType ((:::))+import Vulkan.Core10.FundamentalTypes (Bool32)+import Vulkan.Core10.Handles (Buffer)+import Vulkan.Core10.Handles (Buffer(..))+import Vulkan.Core10.Handles (CommandBuffer)+import Vulkan.Core10.Handles (CommandBuffer(..))+import Vulkan.Core10.Handles (CommandBuffer(CommandBuffer))+import Vulkan.Core10.Handles (CommandBuffer_T)+import Vulkan.Dynamic (DeviceCmds(pVkCmdDrawMeshTasksEXT))+import Vulkan.Dynamic (DeviceCmds(pVkCmdDrawMeshTasksIndirectCountEXT))+import Vulkan.Dynamic (DeviceCmds(pVkCmdDrawMeshTasksIndirectEXT))+import Vulkan.Core10.FundamentalTypes (DeviceSize)+import Vulkan.Core10.Enums.StructureType (StructureType)+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_EXT))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_EXT))+import Vulkan.Extensions.VK_NV_device_generated_commands (IndirectCommandsTokenTypeNV(..))+foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+ unsafe+#endif+ "dynamic" mkVkCmdDrawMeshTasksEXT+ :: FunPtr (Ptr CommandBuffer_T -> Word32 -> Word32 -> Word32 -> IO ()) -> Ptr CommandBuffer_T -> Word32 -> Word32 -> Word32 -> IO ()++-- | vkCmdDrawMeshTasksEXT - Draw mesh task work items+--+-- = Description+--+-- When the command is executed, a global workgroup consisting of+-- @groupCountX@ × @groupCountY@ × @groupCountZ@ local workgroups is+-- assembled.+--+-- == Valid Usage+--+-- - #VUID-vkCmdDrawMeshTasksEXT-magFilter-04553# If a+-- 'Vulkan.Core10.Handles.Sampler' created with @magFilter@ or+-- @minFilter@ equal to 'Vulkan.Core10.Enums.Filter.FILTER_LINEAR' and+-- @compareEnable@ equal to 'Vulkan.Core10.FundamentalTypes.FALSE' is+-- used to sample a 'Vulkan.Core10.Handles.ImageView' as a result of+-- this command, then the image view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain+-- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT'+--+-- - #VUID-vkCmdDrawMeshTasksEXT-mipmapMode-04770# If a+-- 'Vulkan.Core10.Handles.Sampler' created with @mipmapMode@ equal to+-- 'Vulkan.Core10.Enums.SamplerMipmapMode.SAMPLER_MIPMAP_MODE_LINEAR'+-- and @compareEnable@ equal to 'Vulkan.Core10.FundamentalTypes.FALSE'+-- is used to sample a 'Vulkan.Core10.Handles.ImageView' as a result of+-- this command, then the image view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain+-- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT'+--+-- - #VUID-vkCmdDrawMeshTasksEXT-None-06479# If a+-- 'Vulkan.Core10.Handles.ImageView' is sampled with+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-depth-compare-operation depth comparison>,+-- the image view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT'+--+-- - #VUID-vkCmdDrawMeshTasksEXT-None-02691# If a+-- 'Vulkan.Core10.Handles.ImageView' is accessed using atomic+-- operations as a result of this command, then the image view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain+-- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT'+--+-- - #VUID-vkCmdDrawMeshTasksEXT-None-02692# If a+-- 'Vulkan.Core10.Handles.ImageView' is sampled with+-- 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as a result of this+-- command, then the image view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain+-- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT'+--+-- - #VUID-vkCmdDrawMeshTasksEXT-filterCubic-02694# Any+-- 'Vulkan.Core10.Handles.ImageView' being sampled with+-- 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as a result of this+-- command /must/ have a+-- 'Vulkan.Core10.Enums.ImageViewType.ImageViewType' and format that+-- supports cubic filtering, as specified by+-- 'Vulkan.Extensions.VK_EXT_filter_cubic.FilterCubicImageViewImageFormatPropertiesEXT'::@filterCubic@+-- returned by+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceImageFormatProperties2'+--+-- - #VUID-vkCmdDrawMeshTasksEXT-filterCubicMinmax-02695# Any+-- 'Vulkan.Core10.Handles.ImageView' being sampled with+-- 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' with a reduction mode+-- of either+-- 'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MIN'+-- or+-- 'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MAX'+-- as a result of this command /must/ have a+-- 'Vulkan.Core10.Enums.ImageViewType.ImageViewType' and format that+-- supports cubic filtering together with minmax filtering, as+-- specified by+-- 'Vulkan.Extensions.VK_EXT_filter_cubic.FilterCubicImageViewImageFormatPropertiesEXT'::@filterCubicMinmax@+-- returned by+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceImageFormatProperties2'+--+-- - #VUID-vkCmdDrawMeshTasksEXT-flags-02696# Any+-- 'Vulkan.Core10.Handles.Image' created with a+-- 'Vulkan.Core10.Image.ImageCreateInfo'::@flags@ containing+-- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_CORNER_SAMPLED_BIT_NV'+-- sampled as a result of this command /must/ only be sampled using a+-- 'Vulkan.Core10.Enums.SamplerAddressMode.SamplerAddressMode' of+-- 'Vulkan.Core10.Enums.SamplerAddressMode.SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE'+--+-- - #VUID-vkCmdDrawMeshTasksEXT-OpTypeImage-07027# For any+-- 'Vulkan.Core10.Handles.ImageView' being written as a storage image+-- where the image format field of the @OpTypeImage@ is @Unknown@, the+-- view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT'+--+-- - #VUID-vkCmdDrawMeshTasksEXT-OpTypeImage-07028# For any+-- 'Vulkan.Core10.Handles.ImageView' being read as a storage image+-- where the image format field of the @OpTypeImage@ is @Unknown@, the+-- view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT'+--+-- - #VUID-vkCmdDrawMeshTasksEXT-OpTypeImage-07029# For any+-- 'Vulkan.Core10.Handles.BufferView' being written as a storage texel+-- buffer where the image format field of the @OpTypeImage@ is+-- @Unknown@, the view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkFormatProperties3 buffer features>+-- /must/ contain+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT'+--+-- - #VUID-vkCmdDrawMeshTasksEXT-OpTypeImage-07030# Any+-- 'Vulkan.Core10.Handles.BufferView' being read as a storage texel+-- buffer where the image format field of the @OpTypeImage@ is+-- @Unknown@ then the view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkFormatProperties3 buffer features>+-- /must/ contain+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT'+--+-- - #VUID-vkCmdDrawMeshTasksEXT-None-02697# For each set /n/ that is+-- statically used by the 'Vulkan.Core10.Handles.Pipeline' bound to the+-- pipeline bind point used by this command, a descriptor set /must/+-- have been bound to /n/ at the same pipeline bind point, with a+-- 'Vulkan.Core10.Handles.PipelineLayout' that is compatible for set+-- /n/, with the 'Vulkan.Core10.Handles.PipelineLayout' used to create+-- the current 'Vulkan.Core10.Handles.Pipeline', as described in+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>+--+-- - #VUID-vkCmdDrawMeshTasksEXT-maintenance4-06425# If the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-maintenance4 maintenance4>+-- feature is not enabled, then for each push constant that is+-- statically used by the 'Vulkan.Core10.Handles.Pipeline' bound to the+-- pipeline bind point used by this command, a push constant value+-- /must/ have been set for the same pipeline bind point, with a+-- 'Vulkan.Core10.Handles.PipelineLayout' that is compatible for push+-- constants, with the 'Vulkan.Core10.Handles.PipelineLayout' used to+-- create the current 'Vulkan.Core10.Handles.Pipeline', as described in+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>+--+-- - #VUID-vkCmdDrawMeshTasksEXT-None-02699# Descriptors in each bound+-- descriptor set, specified via+-- 'Vulkan.Core10.CommandBufferBuilding.cmdBindDescriptorSets', /must/+-- be valid if they are statically used by the+-- 'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind point+-- used by this command+--+-- - #VUID-vkCmdDrawMeshTasksEXT-None-02700# A valid pipeline /must/ be+-- bound to the pipeline bind point used by this command+--+-- - #VUID-vkCmdDrawMeshTasksEXT-commandBuffer-02701# If the+-- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind+-- point used by this command requires any dynamic state, that state+-- /must/ have been set or inherited (if the+-- @VK_NV_inherited_viewport_scissor@ extension is enabled) for+-- @commandBuffer@, and done so after any previously bound pipeline+-- with the corresponding state not specified as dynamic+--+-- - #VUID-vkCmdDrawMeshTasksEXT-None-02859# There /must/ not have been+-- any calls to dynamic state setting commands for any state not+-- specified as dynamic in the 'Vulkan.Core10.Handles.Pipeline' object+-- bound to the pipeline bind point used by this command, since that+-- pipeline was bound+--+-- - #VUID-vkCmdDrawMeshTasksEXT-None-02702# If the+-- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind+-- point used by this command accesses a+-- 'Vulkan.Core10.Handles.Sampler' object that uses unnormalized+-- coordinates, that sampler /must/ not be used to sample from any+-- 'Vulkan.Core10.Handles.Image' with a+-- 'Vulkan.Core10.Handles.ImageView' of the type+-- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_3D',+-- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE',+-- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_1D_ARRAY',+-- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_2D_ARRAY' or+-- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE_ARRAY', in+-- any shader stage+--+-- - #VUID-vkCmdDrawMeshTasksEXT-None-02703# If the+-- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind+-- point used by this command accesses a+-- 'Vulkan.Core10.Handles.Sampler' object that uses unnormalized+-- coordinates, that sampler /must/ not be used with any of the SPIR-V+-- @OpImageSample*@ or @OpImageSparseSample*@ instructions with+-- @ImplicitLod@, @Dref@ or @Proj@ in their name, in any shader stage+--+-- - #VUID-vkCmdDrawMeshTasksEXT-None-02704# If the+-- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind+-- point used by this command accesses a+-- 'Vulkan.Core10.Handles.Sampler' object that uses unnormalized+-- coordinates, that sampler /must/ not be used with any of the SPIR-V+-- @OpImageSample*@ or @OpImageSparseSample*@ instructions that+-- includes a LOD bias or any offset values, in any shader stage+--+-- - #VUID-vkCmdDrawMeshTasksEXT-uniformBuffers-06935# If any stage of+-- the 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline+-- bind point used by this command accesses a uniform buffer, and that+-- stage was created without enabling either+-- 'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT'+-- or+-- 'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT'+-- for @uniformBuffers@, and the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>+-- feature is not enabled, that stage /must/ not access values outside+-- of the range of the buffer as specified in the descriptor set bound+-- to the same pipeline bind point+--+-- - #VUID-vkCmdDrawMeshTasksEXT-storageBuffers-06936# If any stage of+-- the 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline+-- bind point used by this command accesses a storage buffer, and that+-- stage was created without enabling either+-- 'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT'+-- or+-- 'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT'+-- for @storageBuffers@, and the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>+-- feature is not enabled, that stage /must/ not access values outside+-- of the range of the buffer as specified in the descriptor set bound+-- to the same pipeline bind point+--+-- - #VUID-vkCmdDrawMeshTasksEXT-commandBuffer-02707# If @commandBuffer@+-- is an unprotected command buffer and+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>+-- is not supported, any resource accessed by the+-- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind+-- point used by this command /must/ not be a protected resource+--+-- - #VUID-vkCmdDrawMeshTasksEXT-None-06550# If the+-- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind+-- point used by this command accesses a+-- 'Vulkan.Core10.Handles.Sampler' or 'Vulkan.Core10.Handles.ImageView'+-- object that enables+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion>,+-- that object /must/ only be used with @OpImageSample*@ or+-- @OpImageSparseSample*@ instructions+--+-- - #VUID-vkCmdDrawMeshTasksEXT-ConstOffset-06551# If the+-- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind+-- point used by this command accesses a+-- 'Vulkan.Core10.Handles.Sampler' or 'Vulkan.Core10.Handles.ImageView'+-- object that enables+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion>,+-- that object /must/ not use the @ConstOffset@ and @Offset@ operands+--+-- - #VUID-vkCmdDrawMeshTasksEXT-None-04115# If a+-- 'Vulkan.Core10.Handles.ImageView' is accessed using @OpImageWrite@+-- as a result of this command, then the @Type@ of the @Texel@ operand+-- of that instruction /must/ have at least as many components as the+-- image view’s format+--+-- - #VUID-vkCmdDrawMeshTasksEXT-OpImageWrite-04469# If a+-- 'Vulkan.Core10.Handles.BufferView' is accessed using @OpImageWrite@+-- as a result of this command, then the @Type@ of the @Texel@ operand+-- of that instruction /must/ have at least as many components as the+-- buffer view’s format+--+-- - #VUID-vkCmdDrawMeshTasksEXT-SampledType-04470# If a+-- 'Vulkan.Core10.Handles.ImageView' with a+-- 'Vulkan.Core10.Enums.Format.Format' that has a 64-bit component+-- width is accessed as a result of this command, the @SampledType@ of+-- the @OpTypeImage@ operand of that instruction /must/ have a @Width@+-- of 64+--+-- - #VUID-vkCmdDrawMeshTasksEXT-SampledType-04471# If a+-- 'Vulkan.Core10.Handles.ImageView' with a+-- 'Vulkan.Core10.Enums.Format.Format' that has a component width less+-- than 64-bit is accessed as a result of this command, the+-- @SampledType@ of the @OpTypeImage@ operand of that instruction+-- /must/ have a @Width@ of 32+--+-- - #VUID-vkCmdDrawMeshTasksEXT-SampledType-04472# If a+-- 'Vulkan.Core10.Handles.BufferView' with a+-- 'Vulkan.Core10.Enums.Format.Format' that has a 64-bit component+-- width is accessed as a result of this command, the @SampledType@ of+-- the @OpTypeImage@ operand of that instruction /must/ have a @Width@+-- of 64+--+-- - #VUID-vkCmdDrawMeshTasksEXT-SampledType-04473# If a+-- 'Vulkan.Core10.Handles.BufferView' with a+-- 'Vulkan.Core10.Enums.Format.Format' that has a component width less+-- than 64-bit is accessed as a result of this command, the+-- @SampledType@ of the @OpTypeImage@ operand of that instruction+-- /must/ have a @Width@ of 32+--+-- - #VUID-vkCmdDrawMeshTasksEXT-sparseImageInt64Atomics-04474# If the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-sparseImageInt64Atomics sparseImageInt64Atomics>+-- feature is not enabled, 'Vulkan.Core10.Handles.Image' objects+-- created with the+-- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SPARSE_RESIDENCY_BIT'+-- flag /must/ not be accessed by atomic instructions through an+-- @OpTypeImage@ with a @SampledType@ with a @Width@ of 64 by this+-- command+--+-- - #VUID-vkCmdDrawMeshTasksEXT-sparseImageInt64Atomics-04475# If the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-sparseImageInt64Atomics sparseImageInt64Atomics>+-- feature is not enabled, 'Vulkan.Core10.Handles.Buffer' objects+-- created with the+-- 'Vulkan.Core10.Enums.BufferCreateFlagBits.BUFFER_CREATE_SPARSE_RESIDENCY_BIT'+-- flag /must/ not be accessed by atomic instructions through an+-- @OpTypeImage@ with a @SampledType@ with a @Width@ of 64 by this+-- command+--+-- - #VUID-vkCmdDrawMeshTasksEXT-OpImageWeightedSampleQCOM-06971# If+-- @OpImageWeightedSampleQCOM@ is used to sample a+-- 'Vulkan.Core10.Handles.ImageView' as a result of this command, then+-- the image view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM'+--+-- - #VUID-vkCmdDrawMeshTasksEXT-OpImageWeightedSampleQCOM-06972# If+-- @OpImageWeightedSampleQCOM@ uses a 'Vulkan.Core10.Handles.ImageView'+-- as a sample weight image as a result of this command, then the image+-- view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM'+--+-- - #VUID-vkCmdDrawMeshTasksEXT-OpImageBoxFilterQCOM-06973# If+-- @OpImageBoxFilterQCOM@ is used to sample a+-- 'Vulkan.Core10.Handles.ImageView' as a result of this command, then+-- the image view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM'+--+-- - #VUID-vkCmdDrawMeshTasksEXT-OpImageBlockMatchSSDQCOM-06974# If+-- @OpImageBlockMatchSSDQCOM@ is used to read from an+-- 'Vulkan.Core10.Handles.ImageView' as a result of this command, then+-- the image view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM'+--+-- - #VUID-vkCmdDrawMeshTasksEXT-OpImageBlockMatchSADQCOM-06975# If+-- @OpImageBlockMatchSADQCOM@ is used to read from an+-- 'Vulkan.Core10.Handles.ImageView' as a result of this command, then+-- the image view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM'+--+-- - #VUID-vkCmdDrawMeshTasksEXT-OpImageBlockMatchSADQCOM-06976# If+-- @OpImageBlockMatchSADQCOM@ or OpImageBlockMatchSSDQCOM is used to+-- read from a reference image as result of this command, then the+-- specified reference coordinates /must/ not fail+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-integer-coordinate-validation integer texel coordinate validation>.+--+-- - #VUID-vkCmdDrawMeshTasksEXT-OpImageWeightedSampleQCOM-06977# If+-- @OpImageWeightedSampleQCOM@, @OpImageBoxFilterQCOM@,+-- @OpImageBlockMatchSSDQCOM@, or @OpImageBlockMatchSADQCOM@ uses a+-- 'Vulkan.Core10.Handles.Sampler' as a result of this command, then+-- the sampler /must/ have been created with+-- 'Vulkan.Core10.Enums.SamplerCreateFlagBits.SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM'.+--+-- - #VUID-vkCmdDrawMeshTasksEXT-OpImageWeightedSampleQCOM-06978# If any+-- command other than @OpImageWeightedSampleQCOM@,+-- @OpImageBoxFilterQCOM@, @OpImageBlockMatchSSDQCOM@, or+-- @OpImageBlockMatchSADQCOM@ uses a 'Vulkan.Core10.Handles.Sampler' as+-- a result of this command, then the sampler /must/ not have been+-- created with+-- 'Vulkan.Core10.Enums.SamplerCreateFlagBits.SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM'.+--+-- - #VUID-vkCmdDrawMeshTasksEXT-renderPass-02684# The current render+-- pass /must/ be+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-compatibility compatible>+-- with the @renderPass@ member of the+-- 'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo' structure+-- specified when creating the 'Vulkan.Core10.Handles.Pipeline' bound+-- to+-- 'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_GRAPHICS'+--+-- - #VUID-vkCmdDrawMeshTasksEXT-subpass-02685# The subpass index of the+-- current render pass /must/ be equal to the @subpass@ member of the+-- 'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo' structure+-- specified when creating the 'Vulkan.Core10.Handles.Pipeline' bound+-- to+-- 'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_GRAPHICS'+--+-- - #VUID-vkCmdDrawMeshTasksEXT-None-02686# Every input attachment used+-- by the current subpass /must/ be bound to the pipeline via a+-- descriptor set+--+-- - #VUID-vkCmdDrawMeshTasksEXT-None-06537# Memory backing image+-- subresources used as attachments in the current render pass /must/+-- not be written in any way other than as an attachment by this+-- command+--+-- - #VUID-vkCmdDrawMeshTasksEXT-None-06538# If any recorded command in+-- the current subpass will write to an image subresource as an+-- attachment, this command /must/ not read from the memory backing+-- that image subresource in any other way than as an attachment+--+-- - #VUID-vkCmdDrawMeshTasksEXT-None-06539# If any recorded command in+-- the current subpass will read from an image subresource used as an+-- attachment in any way other than as an attachment, this command+-- /must/ not write to that image subresource as an attachment+--+-- - #VUID-vkCmdDrawMeshTasksEXT-None-06886# If the current render pass+-- instance uses a depth\/stencil attachment with a read-only layout+-- for the depth aspect,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragops-depth-write depth writes>+-- /must/ be disabled+--+-- - #VUID-vkCmdDrawMeshTasksEXT-None-06887# If the current render pass+-- instance uses a depth\/stencil attachment with a read-only layout+-- for the stencil aspect and stencil test is enabled,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragops-stencil all stencil ops>+-- /must/ be 'Vulkan.Core10.Enums.StencilOp.STENCIL_OP_KEEP'+--+-- - #VUID-vkCmdDrawMeshTasksEXT-maxMultiviewInstanceIndex-02688# If the+-- draw is recorded in a render pass instance with multiview enabled,+-- the maximum instance index /must/ be less than or equal to+-- 'Vulkan.Core11.Promoted_From_VK_KHR_multiview.PhysicalDeviceMultiviewProperties'::@maxMultiviewInstanceIndex@+--+-- - #VUID-vkCmdDrawMeshTasksEXT-sampleLocationsEnable-02689# If the+-- bound graphics pipeline was created with+-- 'Vulkan.Extensions.VK_EXT_sample_locations.PipelineSampleLocationsStateCreateInfoEXT'::@sampleLocationsEnable@+-- set to 'Vulkan.Core10.FundamentalTypes.TRUE' and the current subpass+-- has a depth\/stencil attachment, then that attachment /must/ have+-- been created with the+-- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT'+-- bit set+--+-- - #VUID-vkCmdDrawMeshTasksEXT-None-06666# If the bound graphics+-- pipeline state was created with the+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'+-- dynamic state enabled then+-- 'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT'+-- /must/ have been called in the current command buffer prior to this+-- drawing command+--+-- - #VUID-vkCmdDrawMeshTasksEXT-viewportCount-03417# If the bound+-- graphics pipeline state was created with the+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'+-- dynamic state enabled, but not the+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT'+-- dynamic state enabled, then+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'+-- /must/ have been called in the current command buffer prior to this+-- drawing command, and the @viewportCount@ parameter of+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'+-- /must/ match the+-- 'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo'::@scissorCount@+-- of the pipeline+--+-- - #VUID-vkCmdDrawMeshTasksEXT-scissorCount-03418# If the bound+-- graphics pipeline state was created with the+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT'+-- dynamic state enabled, but not the+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'+-- dynamic state enabled, then+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetScissorWithCount'+-- /must/ have been called in the current command buffer prior to this+-- drawing command, and the @scissorCount@ parameter of+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetScissorWithCount'+-- /must/ match the+-- 'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo'::@viewportCount@+-- of the pipeline+--+-- - #VUID-vkCmdDrawMeshTasksEXT-viewportCount-03419# If the bound+-- graphics pipeline state was created with both the+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT'+-- and+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'+-- dynamic states enabled then both+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'+-- and+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetScissorWithCount'+-- /must/ have been called in the current command buffer prior to this+-- drawing command, and the @viewportCount@ parameter of+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'+-- /must/ match the @scissorCount@ parameter of+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetScissorWithCount'+--+-- - #VUID-vkCmdDrawMeshTasksEXT-viewportCount-04137# If the bound+-- graphics pipeline state was created with the+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'+-- dynamic state enabled, but not the+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_W_SCALING_NV'+-- dynamic state enabled, then the bound graphics pipeline /must/ have+-- been created with+-- 'Vulkan.Extensions.VK_NV_clip_space_w_scaling.PipelineViewportWScalingStateCreateInfoNV'::@viewportCount@+-- greater or equal to the @viewportCount@ parameter in the last call+-- to+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'+--+-- - #VUID-vkCmdDrawMeshTasksEXT-viewportCount-04138# If the bound+-- graphics pipeline state was created with the+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'+-- and+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_W_SCALING_NV'+-- dynamic states enabled then the @viewportCount@ parameter in the+-- last call to+-- 'Vulkan.Extensions.VK_NV_clip_space_w_scaling.cmdSetViewportWScalingNV'+-- /must/ be greater than or equal to the @viewportCount@ parameter in+-- the last call to+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'+--+-- - #VUID-vkCmdDrawMeshTasksEXT-viewportCount-04139# If the bound+-- graphics pipeline state was created with the+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'+-- dynamic state enabled, but not the+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV'+-- dynamic state enabled, then the bound graphics pipeline /must/ have+-- been created with+-- 'Vulkan.Extensions.VK_NV_shading_rate_image.PipelineViewportShadingRateImageStateCreateInfoNV'::@viewportCount@+-- greater or equal to the @viewportCount@ parameter in the last call+-- to+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'+--+-- - #VUID-vkCmdDrawMeshTasksEXT-viewportCount-04140# If the bound+-- graphics pipeline state was created with the+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'+-- and+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV'+-- dynamic states enabled then the @viewportCount@ parameter in the+-- last call to+-- 'Vulkan.Extensions.VK_NV_shading_rate_image.cmdSetViewportShadingRatePaletteNV'+-- /must/ be greater than or equal to the @viewportCount@ parameter in+-- the last call to+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'+--+-- - #VUID-vkCmdDrawMeshTasksEXT-VkPipelineVieportCreateInfo-04141# If+-- the bound graphics pipeline state was created with the+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'+-- dynamic state enabled and a+-- 'Vulkan.Extensions.VK_NV_viewport_swizzle.PipelineViewportSwizzleStateCreateInfoNV'+-- structure chained from+-- 'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo', then the+-- bound graphics pipeline /must/ have been created with+-- 'Vulkan.Extensions.VK_NV_viewport_swizzle.PipelineViewportSwizzleStateCreateInfoNV'::@viewportCount@+-- greater or equal to the @viewportCount@ parameter in the last call+-- to+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'+--+-- - #VUID-vkCmdDrawMeshTasksEXT-VkPipelineVieportCreateInfo-04142# If+-- the bound graphics pipeline state was created with the+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'+-- dynamic state enabled and a+-- 'Vulkan.Extensions.VK_NV_scissor_exclusive.PipelineViewportExclusiveScissorStateCreateInfoNV'+-- structure chained from+-- 'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo', then the+-- bound graphics pipeline /must/ have been created with+-- 'Vulkan.Extensions.VK_NV_scissor_exclusive.PipelineViewportExclusiveScissorStateCreateInfoNV'::@exclusiveScissorCount@+-- greater or equal to the @viewportCount@ parameter in the last call+-- to+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'+--+-- - #VUID-vkCmdDrawMeshTasksEXT-None-04876# If the bound graphics+-- pipeline state was created with the+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE'+-- dynamic state enabled then+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'+-- /must/ have been called in the current command buffer prior to this+-- drawing command+--+-- - #VUID-vkCmdDrawMeshTasksEXT-None-04877# If the bound graphics+-- pipeline state was created with the+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BIAS_ENABLE'+-- dynamic state enabled then+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetDepthBiasEnable'+-- /must/ have been called in the current command buffer prior to this+-- drawing command+--+-- - #VUID-vkCmdDrawMeshTasksEXT-logicOp-04878# If the bound graphics+-- pipeline state was created with the+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LOGIC_OP_EXT'+-- dynamic state enabled then+-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetLogicOpEXT'+-- /must/ have been called in the current command buffer prior to this+-- drawing command and the @logicOp@ /must/ be a valid+-- 'Vulkan.Core10.Enums.LogicOp.LogicOp' value+--+-- - #VUID-vkCmdDrawMeshTasksEXT-primitiveFragmentShadingRateWithMultipleViewports-04552#+-- If the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-primitiveFragmentShadingRateWithMultipleViewports primitiveFragmentShadingRateWithMultipleViewports>+-- limit is not supported, the bound graphics pipeline was created with+-- the+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'+-- dynamic state enabled, and any of the shader stages of the bound+-- graphics pipeline write to the @PrimitiveShadingRateKHR@ built-in,+-- then+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'+-- /must/ have been called in the current command buffer prior to this+-- drawing command, and the @viewportCount@ parameter of+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'+-- /must/ be @1@+--+-- - #VUID-vkCmdDrawMeshTasksEXT-blendEnable-04727# If rasterization is+-- not disabled in the bound graphics pipeline, then for each color+-- attachment in the subpass, if the corresponding image view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- do not contain+-- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT',+-- then the @blendEnable@ member of the corresponding element of the+-- @pAttachments@ member of @pColorBlendState@ /must/ be+-- 'Vulkan.Core10.FundamentalTypes.FALSE'+--+-- - #VUID-vkCmdDrawMeshTasksEXT-rasterizationSamples-04740# If+-- rasterization is not disabled in the bound graphics pipeline, and+-- neither the @VK_AMD_mixed_attachment_samples@ nor the+-- @VK_NV_framebuffer_mixed_samples@ extensions are enabled, then+-- 'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'::@rasterizationSamples@+-- /must/ be the same as the current subpass color and\/or+-- depth\/stencil attachments+--+-- - #VUID-vkCmdDrawMeshTasksEXT-imageView-06172# If the current render+-- pass instance was begun with+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+-- the @imageView@ member of @pDepthAttachment@ is not+-- 'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of+-- @pDepthAttachment@ is+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL',+-- this command /must/ not write any values to the depth attachment+--+-- - #VUID-vkCmdDrawMeshTasksEXT-imageView-06173# If the current render+-- pass instance was begun with+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+-- the @imageView@ member of @pStencilAttachment@ is not+-- 'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of+-- @pStencilAttachment@ is+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL',+-- this command /must/ not write any values to the stencil attachment+--+-- - #VUID-vkCmdDrawMeshTasksEXT-imageView-06174# If the current render+-- pass instance was begun with+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+-- the @imageView@ member of @pDepthAttachment@ is not+-- 'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of+-- @pDepthAttachment@ is+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL',+-- this command /must/ not write any values to the depth attachment+--+-- - #VUID-vkCmdDrawMeshTasksEXT-imageView-06175# If the current render+-- pass instance was begun with+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+-- the @imageView@ member of @pStencilAttachment@ is not+-- 'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of+-- @pStencilAttachment@ is+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL',+-- this command /must/ not write any values to the stencil attachment+--+-- - #VUID-vkCmdDrawMeshTasksEXT-imageView-06176# If the current render+-- pass instance was begun with+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+-- the @imageView@ member of @pDepthAttachment@ is not+-- 'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of+-- @pDepthAttachment@ is+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL',+-- this command /must/ not write any values to the depth attachment+--+-- - #VUID-vkCmdDrawMeshTasksEXT-imageView-06177# If the current render+-- pass instance was begun with+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+-- the @imageView@ member of @pStencilAttachment@ is not+-- 'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of+-- @pStencilAttachment@ is+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL',+-- this command /must/ not write any values to the stencil attachment+--+-- - #VUID-vkCmdDrawMeshTasksEXT-viewMask-06178# If the current render+-- pass instance was begun with+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+-- the currently bound graphics pipeline /must/ have been created with+-- a+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@viewMask@+-- equal to+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@viewMask@+--+-- - #VUID-vkCmdDrawMeshTasksEXT-colorAttachmentCount-06179# If the+-- current render pass instance was begun with+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+-- the currently bound graphics pipeline /must/ have been created with+-- a+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@colorAttachmentCount@+-- equal to+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@+--+-- - #VUID-vkCmdDrawMeshTasksEXT-colorAttachmentCount-06180# If the+-- current render pass instance was begun with+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'+-- and+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@+-- greater than @0@, then each element of the+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@+-- array with a @imageView@ not equal to+-- 'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created+-- with a 'Vulkan.Core10.Enums.Format.Format' equal to the+-- corresponding element of+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@+-- used to create the currently bound graphics pipeline+--+-- - #VUID-vkCmdDrawMeshTasksEXT-attachmentCount-06667# If the bound+-- graphics pipeline state was created with the+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT'+-- dynamic state enabled then+-- 'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'+-- /must/ have been called in the current command buffer prior to this+-- drawing command, and the @attachmentCount@ parameter of+-- 'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'+-- /must/ be greater than or equal to the+-- 'Vulkan.Core10.Pipeline.PipelineColorBlendStateCreateInfo'::@attachmentCount@+-- of the currently bound graphics pipeline+--+-- - #VUID-vkCmdDrawMeshTasksEXT-attachmentCount-06815# If the bound+-- graphics pipeline state was created with the+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT'+-- dynamic state enabled then+-- 'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'+-- /must/ have been called in the current command buffer prior to this+-- drawing command, and the @attachmentCount@ parameter of+-- 'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'+-- /must/ be less than or equal to the @maxColorAttachments@ member of+-- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'+--+-- - #VUID-vkCmdDrawMeshTasksEXT-pDepthAttachment-06181# If the current+-- render pass instance was begun with+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'+-- and+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@+-- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@depthAttachmentFormat@+-- used to create the currently bound graphics pipeline /must/ be equal+-- to the 'Vulkan.Core10.Enums.Format.Format' used to create+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@+--+-- - #VUID-vkCmdDrawMeshTasksEXT-pStencilAttachment-06182# If the current+-- render pass instance was begun with+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'+-- and+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@+-- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@stencilAttachmentFormat@+-- used to create the currently bound graphics pipeline /must/ be equal+-- to the 'Vulkan.Core10.Enums.Format.Format' used to create+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@+--+-- - #VUID-vkCmdDrawMeshTasksEXT-imageView-06183# If the current render+-- pass instance was begun with+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'+-- and+-- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingFragmentShadingRateAttachmentInfoKHR'::@imageView@+-- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the currently+-- bound graphics pipeline /must/ have been created with+-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR'+--+-- - #VUID-vkCmdDrawMeshTasksEXT-imageView-06184# If the current render+-- pass instance was begun with+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'+-- and+-- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingFragmentDensityMapAttachmentInfoEXT'::@imageView@+-- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the currently+-- bound graphics pipeline /must/ have been created with+-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT'+--+-- - #VUID-vkCmdDrawMeshTasksEXT-colorAttachmentCount-06185# If the+-- currently bound pipeline was created with a+-- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'+-- or+-- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'+-- structure, and the current render pass instance was begun with+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'+-- with a+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@+-- parameter greater than @0@, then each element of the+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@+-- array with a @imageView@ not equal to+-- 'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created+-- with a sample count equal to the corresponding element of the+-- @pColorAttachmentSamples@ member of+-- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'+-- or+-- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'+-- used to create the currently bound graphics pipeline+--+-- - #VUID-vkCmdDrawMeshTasksEXT-pDepthAttachment-06186# If the current+-- render pass instance was begun with+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+-- the currently bound pipeline was created with a+-- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'+-- or+-- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'+-- structure, and+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@+-- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of the+-- @depthStencilAttachmentSamples@ member of+-- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'+-- or+-- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'+-- used to create the currently bound graphics pipeline /must/ be equal+-- to the sample count used to create+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@+--+-- - #VUID-vkCmdDrawMeshTasksEXT-pStencilAttachment-06187# If the current+-- render pass instance was begun with+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+-- the currently bound pipeline was created with a+-- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'+-- or+-- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'+-- structure, and+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@+-- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of the+-- @depthStencilAttachmentSamples@ member of+-- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'+-- or+-- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'+-- used to create the currently bound graphics pipeline /must/ be equal+-- to the sample count used to create+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@+--+-- - #VUID-vkCmdDrawMeshTasksEXT-colorAttachmentCount-06188# If the+-- currently bound pipeline was created without a+-- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'+-- or+-- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'+-- structure, and the current render pass instance was begun with+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'+-- with a+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@+-- parameter greater than @0@, then each element of the+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@+-- array with a @imageView@ not equal to+-- 'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created+-- with a sample count equal to the value of+-- 'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'::@rasterizationSamples@+-- used to create the currently bound graphics pipeline+--+-- - #VUID-vkCmdDrawMeshTasksEXT-pDepthAttachment-06189# If the current+-- render pass instance was begun with+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+-- the currently bound pipeline was created without a+-- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'+-- or+-- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'+-- structure, and+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@+-- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of+-- 'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'::@rasterizationSamples@+-- used to create the currently bound graphics pipeline /must/ be equal+-- to the sample count used to create+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@+--+-- - #VUID-vkCmdDrawMeshTasksEXT-pStencilAttachment-06190# If the current+-- render pass instance was begun with+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+-- the currently bound pipeline was created without a+-- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'+-- or+-- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'+-- structure, and+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@+-- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of+-- 'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'::@rasterizationSamples@+-- used to create the currently bound graphics pipeline /must/ be equal+-- to the sample count used to create+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@+--+-- - #VUID-vkCmdDrawMeshTasksEXT-renderPass-06198# If the current render+-- pass instance was begun with+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+-- the currently bound pipeline /must/ have been created with a+-- 'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo'::@renderPass@+-- equal to 'Vulkan.Core10.APIConstants.NULL_HANDLE'+--+-- - #VUID-vkCmdDrawMeshTasksEXT-primitivesGeneratedQueryWithRasterizerDiscard-06708#+-- If the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-primitivesGeneratedQueryWithRasterizerDiscard primitivesGeneratedQueryWithRasterizerDiscard>+-- feature is not enabled and the+-- 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PRIMITIVES_GENERATED_EXT'+-- query is active,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-discard rasterization discard>+-- /must/ not be enabled.+--+-- - #VUID-vkCmdDrawMeshTasksEXT-primitivesGeneratedQueryWithNonZeroStreams-06709#+-- If the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-primitivesGeneratedQueryWithNonZeroStreams primitivesGeneratedQueryWithNonZeroStreams>+-- feature is not enabled and the+-- 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PRIMITIVES_GENERATED_EXT'+-- query is active, the bound graphics pipeline /must/ not have been+-- created with a non-zero value in+-- 'Vulkan.Extensions.VK_EXT_transform_feedback.PipelineRasterizationStateStreamCreateInfoEXT'::@rasterizationStream@.+--+-- - #VUID-vkCmdDrawMeshTasksEXT-stage-07073# If the currently bound+-- pipeline was created with the+-- 'Vulkan.Core10.Pipeline.PipelineShaderStageCreateInfo'::@stage@+-- member of an element of+-- 'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo'::@pStages@ set+-- to+-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT',+-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_CONTROL_BIT',+-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT'+-- or+-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT',+-- then+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#queries-mesh-shader Mesh Shader Queries>+-- must not be active+--+-- - #VUID-vkCmdDrawMeshTasksEXT-groupCountX-07083# @groupCountX@ /must/+-- be less than or equal to+-- 'PhysicalDeviceMeshShaderPropertiesEXT'::@maxTaskWorkGroupCount@[0]+--+-- - #VUID-vkCmdDrawMeshTasksEXT-groupCountY-07084# @groupCountY@ /must/+-- be less than or equal to+-- 'PhysicalDeviceMeshShaderPropertiesEXT'::@maxTaskWorkGroupCount@[1]+--+-- - #VUID-vkCmdDrawMeshTasksEXT-groupCountZ-07085# @groupCountZ@ /must/+-- be less than or equal to+-- 'PhysicalDeviceMeshShaderPropertiesEXT'::@maxTaskWorkGroupCount@[2]+--+-- - #VUID-vkCmdDrawMeshTasksEXT-groupCountX-07086# The product of+-- @groupCountX@, @groupCountY@ and @groupCountZ@ /must/ be less than+-- or equal to+-- 'PhysicalDeviceMeshShaderPropertiesEXT'::@maxTaskWorkGroupTotalCount@+--+-- - #VUID-vkCmdDrawMeshTasksEXT-MeshEXT-07087# The current pipeline+-- bound to+-- 'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_GRAPHICS'+-- /must/ contain a shader stage using the @MeshEXT@ @Execution@+-- @Model@.+--+-- == Valid Usage (Implicit)+--+-- - #VUID-vkCmdDrawMeshTasksEXT-commandBuffer-parameter# @commandBuffer@+-- /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- - #VUID-vkCmdDrawMeshTasksEXT-commandBuffer-recording# @commandBuffer@+-- /must/ be in the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording state>+--+-- - #VUID-vkCmdDrawMeshTasksEXT-commandBuffer-cmdpool# The+-- 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+-- allocated from /must/ support graphics operations+--+-- - #VUID-vkCmdDrawMeshTasksEXT-renderpass# This command /must/ only be+-- called inside of a render pass instance+--+-- - #VUID-vkCmdDrawMeshTasksEXT-videocoding# This command /must/ only be+-- called outside of a video coding scope+--+-- == Host Synchronization+--+-- - Host access to @commandBuffer@ /must/ be externally synchronized+--+-- - Host access to the 'Vulkan.Core10.Handles.CommandPool' that+-- @commandBuffer@ was allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- \'+--+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================++-- | Primary | Inside | Outside | Graphics |+-- | Secondary | | | |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_mesh_shader VK_EXT_mesh_shader>,+-- 'Vulkan.Core10.Handles.CommandBuffer'+cmdDrawMeshTasksEXT :: forall io+ . (MonadIO io)+ => -- | @commandBuffer@ is the command buffer into which the command will be+ -- recorded.+ CommandBuffer+ -> -- | @groupCountX@ is the number of local workgroups to dispatch in the X+ -- dimension.+ ("groupCountX" ::: Word32)+ -> -- | @groupCountY@ is the number of local workgroups to dispatch in the Y+ -- dimension.+ ("groupCountY" ::: Word32)+ -> -- | @groupCountZ@ is the number of local workgroups to dispatch in the Z+ -- dimension.+ ("groupCountZ" ::: Word32)+ -> io ()+cmdDrawMeshTasksEXT commandBuffer groupCountX groupCountY groupCountZ = liftIO $ do+ let vkCmdDrawMeshTasksEXTPtr = pVkCmdDrawMeshTasksEXT (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)+ unless (vkCmdDrawMeshTasksEXTPtr /= nullFunPtr) $+ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdDrawMeshTasksEXT is null" Nothing Nothing+ let vkCmdDrawMeshTasksEXT' = mkVkCmdDrawMeshTasksEXT vkCmdDrawMeshTasksEXTPtr+ traceAroundEvent "vkCmdDrawMeshTasksEXT" (vkCmdDrawMeshTasksEXT' (commandBufferHandle (commandBuffer)) (groupCountX) (groupCountY) (groupCountZ))+ pure $ ()+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+ unsafe+#endif+ "dynamic" mkVkCmdDrawMeshTasksIndirectEXT+ :: FunPtr (Ptr CommandBuffer_T -> Buffer -> DeviceSize -> Word32 -> Word32 -> IO ()) -> Ptr CommandBuffer_T -> Buffer -> DeviceSize -> Word32 -> Word32 -> IO ()++-- | vkCmdDrawMeshTasksIndirectEXT - Issue an indirect mesh tasks draw into a+-- command buffer+--+-- = Description+--+-- 'cmdDrawMeshTasksIndirectEXT' behaves similarly to 'cmdDrawMeshTasksEXT'+-- except that the parameters are read by the device from a buffer during+-- execution. @drawCount@ draws are executed by the command, with+-- parameters taken from @buffer@ starting at @offset@ and increasing by+-- @stride@ bytes for each successive draw. The parameters of each draw are+-- encoded in an array of 'DrawMeshTasksIndirectCommandEXT' structures. If+-- @drawCount@ is less than or equal to one, @stride@ is ignored.+--+-- == Valid Usage+--+-- - #VUID-vkCmdDrawMeshTasksIndirectEXT-magFilter-04553# If a+-- 'Vulkan.Core10.Handles.Sampler' created with @magFilter@ or+-- @minFilter@ equal to 'Vulkan.Core10.Enums.Filter.FILTER_LINEAR' and+-- @compareEnable@ equal to 'Vulkan.Core10.FundamentalTypes.FALSE' is+-- used to sample a 'Vulkan.Core10.Handles.ImageView' as a result of+-- this command, then the image view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain+-- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT'+--+-- - #VUID-vkCmdDrawMeshTasksIndirectEXT-mipmapMode-04770# If a+-- 'Vulkan.Core10.Handles.Sampler' created with @mipmapMode@ equal to+-- 'Vulkan.Core10.Enums.SamplerMipmapMode.SAMPLER_MIPMAP_MODE_LINEAR'+-- and @compareEnable@ equal to 'Vulkan.Core10.FundamentalTypes.FALSE'+-- is used to sample a 'Vulkan.Core10.Handles.ImageView' as a result of+-- this command, then the image view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain+-- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT'+--+-- - #VUID-vkCmdDrawMeshTasksIndirectEXT-None-06479# If a+-- 'Vulkan.Core10.Handles.ImageView' is sampled with+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-depth-compare-operation depth comparison>,+-- the image view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT'+--+-- - #VUID-vkCmdDrawMeshTasksIndirectEXT-None-02691# If a+-- 'Vulkan.Core10.Handles.ImageView' is accessed using atomic+-- operations as a result of this command, then the image view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain+-- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT'+--+-- - #VUID-vkCmdDrawMeshTasksIndirectEXT-None-02692# If a+-- 'Vulkan.Core10.Handles.ImageView' is sampled with+-- 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as a result of this+-- command, then the image view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain+-- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT'+--+-- - #VUID-vkCmdDrawMeshTasksIndirectEXT-filterCubic-02694# Any+-- 'Vulkan.Core10.Handles.ImageView' being sampled with+-- 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as a result of this+-- command /must/ have a+-- 'Vulkan.Core10.Enums.ImageViewType.ImageViewType' and format that+-- supports cubic filtering, as specified by+-- 'Vulkan.Extensions.VK_EXT_filter_cubic.FilterCubicImageViewImageFormatPropertiesEXT'::@filterCubic@+-- returned by+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceImageFormatProperties2'+--+-- - #VUID-vkCmdDrawMeshTasksIndirectEXT-filterCubicMinmax-02695# Any+-- 'Vulkan.Core10.Handles.ImageView' being sampled with+-- 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' with a reduction mode+-- of either+-- 'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MIN'+-- or+-- 'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MAX'+-- as a result of this command /must/ have a+-- 'Vulkan.Core10.Enums.ImageViewType.ImageViewType' and format that+-- supports cubic filtering together with minmax filtering, as+-- specified by+-- 'Vulkan.Extensions.VK_EXT_filter_cubic.FilterCubicImageViewImageFormatPropertiesEXT'::@filterCubicMinmax@+-- returned by+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceImageFormatProperties2'+--+-- - #VUID-vkCmdDrawMeshTasksIndirectEXT-flags-02696# Any+-- 'Vulkan.Core10.Handles.Image' created with a+-- 'Vulkan.Core10.Image.ImageCreateInfo'::@flags@ containing+-- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_CORNER_SAMPLED_BIT_NV'+-- sampled as a result of this command /must/ only be sampled using a+-- 'Vulkan.Core10.Enums.SamplerAddressMode.SamplerAddressMode' of+-- 'Vulkan.Core10.Enums.SamplerAddressMode.SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE'+--+-- - #VUID-vkCmdDrawMeshTasksIndirectEXT-OpTypeImage-07027# For any+-- 'Vulkan.Core10.Handles.ImageView' being written as a storage image+-- where the image format field of the @OpTypeImage@ is @Unknown@, the+-- view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT'+--+-- - #VUID-vkCmdDrawMeshTasksIndirectEXT-OpTypeImage-07028# For any+-- 'Vulkan.Core10.Handles.ImageView' being read as a storage image+-- where the image format field of the @OpTypeImage@ is @Unknown@, the+-- view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT'+--+-- - #VUID-vkCmdDrawMeshTasksIndirectEXT-OpTypeImage-07029# For any+-- 'Vulkan.Core10.Handles.BufferView' being written as a storage texel+-- buffer where the image format field of the @OpTypeImage@ is+-- @Unknown@, the view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkFormatProperties3 buffer features>+-- /must/ contain+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT'+--+-- - #VUID-vkCmdDrawMeshTasksIndirectEXT-OpTypeImage-07030# Any+-- 'Vulkan.Core10.Handles.BufferView' being read as a storage texel+-- buffer where the image format field of the @OpTypeImage@ is+-- @Unknown@ then the view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkFormatProperties3 buffer features>+-- /must/ contain+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT'+--+-- - #VUID-vkCmdDrawMeshTasksIndirectEXT-None-02697# For each set /n/+-- that is statically used by the 'Vulkan.Core10.Handles.Pipeline'+-- bound to the pipeline bind point used by this command, a descriptor+-- set /must/ have been bound to /n/ at the same pipeline bind point,+-- with a 'Vulkan.Core10.Handles.PipelineLayout' that is compatible for+-- set /n/, with the 'Vulkan.Core10.Handles.PipelineLayout' used to+-- create the current 'Vulkan.Core10.Handles.Pipeline', as described in+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>+--+-- - #VUID-vkCmdDrawMeshTasksIndirectEXT-maintenance4-06425# If the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-maintenance4 maintenance4>+-- feature is not enabled, then for each push constant that is+-- statically used by the 'Vulkan.Core10.Handles.Pipeline' bound to the+-- pipeline bind point used by this command, a push constant value+-- /must/ have been set for the same pipeline bind point, with a+-- 'Vulkan.Core10.Handles.PipelineLayout' that is compatible for push+-- constants, with the 'Vulkan.Core10.Handles.PipelineLayout' used to+-- create the current 'Vulkan.Core10.Handles.Pipeline', as described in+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>+--+-- - #VUID-vkCmdDrawMeshTasksIndirectEXT-None-02699# Descriptors in each+-- bound descriptor set, specified via+-- 'Vulkan.Core10.CommandBufferBuilding.cmdBindDescriptorSets', /must/+-- be valid if they are statically used by the+-- 'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind point+-- used by this command+--+-- - #VUID-vkCmdDrawMeshTasksIndirectEXT-None-02700# A valid pipeline+-- /must/ be bound to the pipeline bind point used by this command+--+-- - #VUID-vkCmdDrawMeshTasksIndirectEXT-commandBuffer-02701# If the+-- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind+-- point used by this command requires any dynamic state, that state+-- /must/ have been set or inherited (if the+-- @VK_NV_inherited_viewport_scissor@ extension is enabled) for+-- @commandBuffer@, and done so after any previously bound pipeline+-- with the corresponding state not specified as dynamic+--+-- - #VUID-vkCmdDrawMeshTasksIndirectEXT-None-02859# There /must/ not+-- have been any calls to dynamic state setting commands for any state+-- not specified as dynamic in the 'Vulkan.Core10.Handles.Pipeline'+-- object bound to the pipeline bind point used by this command, since+-- that pipeline was bound+--+-- - #VUID-vkCmdDrawMeshTasksIndirectEXT-None-02702# If the+-- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind+-- point used by this command accesses a+-- 'Vulkan.Core10.Handles.Sampler' object that uses unnormalized+-- coordinates, that sampler /must/ not be used to sample from any+-- 'Vulkan.Core10.Handles.Image' with a+-- 'Vulkan.Core10.Handles.ImageView' of the type+-- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_3D',+-- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE',+-- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_1D_ARRAY',+-- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_2D_ARRAY' or+-- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE_ARRAY', in+-- any shader stage+--+-- - #VUID-vkCmdDrawMeshTasksIndirectEXT-None-02703# If the+-- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind+-- point used by this command accesses a+-- 'Vulkan.Core10.Handles.Sampler' object that uses unnormalized+-- coordinates, that sampler /must/ not be used with any of the SPIR-V+-- @OpImageSample*@ or @OpImageSparseSample*@ instructions with+-- @ImplicitLod@, @Dref@ or @Proj@ in their name, in any shader stage+--+-- - #VUID-vkCmdDrawMeshTasksIndirectEXT-None-02704# If the+-- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind+-- point used by this command accesses a+-- 'Vulkan.Core10.Handles.Sampler' object that uses unnormalized+-- coordinates, that sampler /must/ not be used with any of the SPIR-V+-- @OpImageSample*@ or @OpImageSparseSample*@ instructions that+-- includes a LOD bias or any offset values, in any shader stage+--+-- - #VUID-vkCmdDrawMeshTasksIndirectEXT-uniformBuffers-06935# If any+-- stage of the 'Vulkan.Core10.Handles.Pipeline' object bound to the+-- pipeline bind point used by this command accesses a uniform buffer,+-- and that stage was created without enabling either+-- 'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT'+-- or+-- 'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT'+-- for @uniformBuffers@, and the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>+-- feature is not enabled, that stage /must/ not access values outside+-- of the range of the buffer as specified in the descriptor set bound+-- to the same pipeline bind point+--+-- - #VUID-vkCmdDrawMeshTasksIndirectEXT-storageBuffers-06936# If any+-- stage of the 'Vulkan.Core10.Handles.Pipeline' object bound to the+-- pipeline bind point used by this command accesses a storage buffer,+-- and that stage was created without enabling either+-- 'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT'+-- or+-- 'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT'+-- for @storageBuffers@, and the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>+-- feature is not enabled, that stage /must/ not access values outside+-- of the range of the buffer as specified in the descriptor set bound+-- to the same pipeline bind point+--+-- - #VUID-vkCmdDrawMeshTasksIndirectEXT-commandBuffer-02707# If+-- @commandBuffer@ is an unprotected command buffer and+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>+-- is not supported, any resource accessed by the+-- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind+-- point used by this command /must/ not be a protected resource+--+-- - #VUID-vkCmdDrawMeshTasksIndirectEXT-None-06550# If the+-- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind+-- point used by this command accesses a+-- 'Vulkan.Core10.Handles.Sampler' or 'Vulkan.Core10.Handles.ImageView'+-- object that enables+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion>,+-- that object /must/ only be used with @OpImageSample*@ or+-- @OpImageSparseSample*@ instructions+--+-- - #VUID-vkCmdDrawMeshTasksIndirectEXT-ConstOffset-06551# If the+-- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind+-- point used by this command accesses a+-- 'Vulkan.Core10.Handles.Sampler' or 'Vulkan.Core10.Handles.ImageView'+-- object that enables+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion>,+-- that object /must/ not use the @ConstOffset@ and @Offset@ operands+--+-- - #VUID-vkCmdDrawMeshTasksIndirectEXT-None-04115# If a+-- 'Vulkan.Core10.Handles.ImageView' is accessed using @OpImageWrite@+-- as a result of this command, then the @Type@ of the @Texel@ operand+-- of that instruction /must/ have at least as many components as the+-- image view’s format+--+-- - #VUID-vkCmdDrawMeshTasksIndirectEXT-OpImageWrite-04469# If a+-- 'Vulkan.Core10.Handles.BufferView' is accessed using @OpImageWrite@+-- as a result of this command, then the @Type@ of the @Texel@ operand+-- of that instruction /must/ have at least as many components as the+-- buffer view’s format+--+-- - #VUID-vkCmdDrawMeshTasksIndirectEXT-SampledType-04470# If a+-- 'Vulkan.Core10.Handles.ImageView' with a+-- 'Vulkan.Core10.Enums.Format.Format' that has a 64-bit component+-- width is accessed as a result of this command, the @SampledType@ of+-- the @OpTypeImage@ operand of that instruction /must/ have a @Width@+-- of 64+--+-- - #VUID-vkCmdDrawMeshTasksIndirectEXT-SampledType-04471# If a+-- 'Vulkan.Core10.Handles.ImageView' with a+-- 'Vulkan.Core10.Enums.Format.Format' that has a component width less+-- than 64-bit is accessed as a result of this command, the+-- @SampledType@ of the @OpTypeImage@ operand of that instruction+-- /must/ have a @Width@ of 32+--+-- - #VUID-vkCmdDrawMeshTasksIndirectEXT-SampledType-04472# If a+-- 'Vulkan.Core10.Handles.BufferView' with a+-- 'Vulkan.Core10.Enums.Format.Format' that has a 64-bit component+-- width is accessed as a result of this command, the @SampledType@ of+-- the @OpTypeImage@ operand of that instruction /must/ have a @Width@+-- of 64+--+-- - #VUID-vkCmdDrawMeshTasksIndirectEXT-SampledType-04473# If a+-- 'Vulkan.Core10.Handles.BufferView' with a+-- 'Vulkan.Core10.Enums.Format.Format' that has a component width less+-- than 64-bit is accessed as a result of this command, the+-- @SampledType@ of the @OpTypeImage@ operand of that instruction+-- /must/ have a @Width@ of 32+--+-- - #VUID-vkCmdDrawMeshTasksIndirectEXT-sparseImageInt64Atomics-04474#+-- If the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-sparseImageInt64Atomics sparseImageInt64Atomics>+-- feature is not enabled, 'Vulkan.Core10.Handles.Image' objects+-- created with the+-- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SPARSE_RESIDENCY_BIT'+-- flag /must/ not be accessed by atomic instructions through an+-- @OpTypeImage@ with a @SampledType@ with a @Width@ of 64 by this+-- command+--+-- - #VUID-vkCmdDrawMeshTasksIndirectEXT-sparseImageInt64Atomics-04475#+-- If the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-sparseImageInt64Atomics sparseImageInt64Atomics>+-- feature is not enabled, 'Vulkan.Core10.Handles.Buffer' objects+-- created with the+-- 'Vulkan.Core10.Enums.BufferCreateFlagBits.BUFFER_CREATE_SPARSE_RESIDENCY_BIT'+-- flag /must/ not be accessed by atomic instructions through an+-- @OpTypeImage@ with a @SampledType@ with a @Width@ of 64 by this+-- command+--+-- - #VUID-vkCmdDrawMeshTasksIndirectEXT-OpImageWeightedSampleQCOM-06971#+-- If @OpImageWeightedSampleQCOM@ is used to sample a+-- 'Vulkan.Core10.Handles.ImageView' as a result of this command, then+-- the image view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM'+--+-- - #VUID-vkCmdDrawMeshTasksIndirectEXT-OpImageWeightedSampleQCOM-06972#+-- If @OpImageWeightedSampleQCOM@ uses a+-- 'Vulkan.Core10.Handles.ImageView' as a sample weight image as a+-- result of this command, then the image view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM'+--+-- - #VUID-vkCmdDrawMeshTasksIndirectEXT-OpImageBoxFilterQCOM-06973# If+-- @OpImageBoxFilterQCOM@ is used to sample a+-- 'Vulkan.Core10.Handles.ImageView' as a result of this command, then+-- the image view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM'+--+-- - #VUID-vkCmdDrawMeshTasksIndirectEXT-OpImageBlockMatchSSDQCOM-06974#+-- If @OpImageBlockMatchSSDQCOM@ is used to read from an+-- 'Vulkan.Core10.Handles.ImageView' as a result of this command, then+-- the image view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM'+--+-- - #VUID-vkCmdDrawMeshTasksIndirectEXT-OpImageBlockMatchSADQCOM-06975#+-- If @OpImageBlockMatchSADQCOM@ is used to read from an+-- 'Vulkan.Core10.Handles.ImageView' as a result of this command, then+-- the image view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM'+--+-- - #VUID-vkCmdDrawMeshTasksIndirectEXT-OpImageBlockMatchSADQCOM-06976#+-- If @OpImageBlockMatchSADQCOM@ or OpImageBlockMatchSSDQCOM is used to+-- read from a reference image as result of this command, then the+-- specified reference coordinates /must/ not fail+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-integer-coordinate-validation integer texel coordinate validation>.+--+-- - #VUID-vkCmdDrawMeshTasksIndirectEXT-OpImageWeightedSampleQCOM-06977#+-- If @OpImageWeightedSampleQCOM@, @OpImageBoxFilterQCOM@,+-- @OpImageBlockMatchSSDQCOM@, or @OpImageBlockMatchSADQCOM@ uses a+-- 'Vulkan.Core10.Handles.Sampler' as a result of this command, then+-- the sampler /must/ have been created with+-- 'Vulkan.Core10.Enums.SamplerCreateFlagBits.SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM'.+--+-- - #VUID-vkCmdDrawMeshTasksIndirectEXT-OpImageWeightedSampleQCOM-06978#+-- If any command other than @OpImageWeightedSampleQCOM@,+-- @OpImageBoxFilterQCOM@, @OpImageBlockMatchSSDQCOM@, or+-- @OpImageBlockMatchSADQCOM@ uses a 'Vulkan.Core10.Handles.Sampler' as+-- a result of this command, then the sampler /must/ not have been+-- created with+-- 'Vulkan.Core10.Enums.SamplerCreateFlagBits.SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM'.+--+-- - #VUID-vkCmdDrawMeshTasksIndirectEXT-renderPass-02684# The current+-- render pass /must/ be+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-compatibility compatible>+-- with the @renderPass@ member of the+-- 'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo' structure+-- specified when creating the 'Vulkan.Core10.Handles.Pipeline' bound+-- to+-- 'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_GRAPHICS'+--+-- - #VUID-vkCmdDrawMeshTasksIndirectEXT-subpass-02685# The subpass index+-- of the current render pass /must/ be equal to the @subpass@ member+-- of the 'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo' structure+-- specified when creating the 'Vulkan.Core10.Handles.Pipeline' bound+-- to+-- 'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_GRAPHICS'+--+-- - #VUID-vkCmdDrawMeshTasksIndirectEXT-None-02686# Every input+-- attachment used by the current subpass /must/ be bound to the+-- pipeline via a descriptor set+--+-- - #VUID-vkCmdDrawMeshTasksIndirectEXT-None-06537# Memory backing image+-- subresources used as attachments in the current render pass /must/+-- not be written in any way other than as an attachment by this+-- command+--+-- - #VUID-vkCmdDrawMeshTasksIndirectEXT-None-06538# If any recorded+-- command in the current subpass will write to an image subresource as+-- an attachment, this command /must/ not read from the memory backing+-- that image subresource in any other way than as an attachment+--+-- - #VUID-vkCmdDrawMeshTasksIndirectEXT-None-06539# If any recorded+-- command in the current subpass will read from an image subresource+-- used as an attachment in any way other than as an attachment, this+-- command /must/ not write to that image subresource as an attachment+--+-- - #VUID-vkCmdDrawMeshTasksIndirectEXT-None-06886# If the current+-- render pass instance uses a depth\/stencil attachment with a+-- read-only layout for the depth aspect,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragops-depth-write depth writes>+-- /must/ be disabled+--+-- - #VUID-vkCmdDrawMeshTasksIndirectEXT-None-06887# If the current+-- render pass instance uses a depth\/stencil attachment with a+-- read-only layout for the stencil aspect and stencil test is enabled,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragops-stencil all stencil ops>+-- /must/ be 'Vulkan.Core10.Enums.StencilOp.STENCIL_OP_KEEP'+--+-- - #VUID-vkCmdDrawMeshTasksIndirectEXT-maxMultiviewInstanceIndex-02688#+-- If the draw is recorded in a render pass instance with multiview+-- enabled, the maximum instance index /must/ be less than or equal to+-- 'Vulkan.Core11.Promoted_From_VK_KHR_multiview.PhysicalDeviceMultiviewProperties'::@maxMultiviewInstanceIndex@+--+-- - #VUID-vkCmdDrawMeshTasksIndirectEXT-sampleLocationsEnable-02689# If+-- the bound graphics pipeline was created with+-- 'Vulkan.Extensions.VK_EXT_sample_locations.PipelineSampleLocationsStateCreateInfoEXT'::@sampleLocationsEnable@+-- set to 'Vulkan.Core10.FundamentalTypes.TRUE' and the current subpass+-- has a depth\/stencil attachment, then that attachment /must/ have+-- been created with the+-- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT'+-- bit set+--+-- - #VUID-vkCmdDrawMeshTasksIndirectEXT-None-06666# If the bound+-- graphics pipeline state was created with the+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'+-- dynamic state enabled then+-- 'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT'+-- /must/ have been called in the current command buffer prior to this+-- drawing command+--+-- - #VUID-vkCmdDrawMeshTasksIndirectEXT-viewportCount-03417# If the+-- bound graphics pipeline state was created with the+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'+-- dynamic state enabled, but not the+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT'+-- dynamic state enabled, then+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'+-- /must/ have been called in the current command buffer prior to this+-- drawing command, and the @viewportCount@ parameter of+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'+-- /must/ match the+-- 'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo'::@scissorCount@+-- of the pipeline+--+-- - #VUID-vkCmdDrawMeshTasksIndirectEXT-scissorCount-03418# If the bound+-- graphics pipeline state was created with the+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT'+-- dynamic state enabled, but not the+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'+-- dynamic state enabled, then+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetScissorWithCount'+-- /must/ have been called in the current command buffer prior to this+-- drawing command, and the @scissorCount@ parameter of+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetScissorWithCount'+-- /must/ match the+-- 'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo'::@viewportCount@+-- of the pipeline+--+-- - #VUID-vkCmdDrawMeshTasksIndirectEXT-viewportCount-03419# If the+-- bound graphics pipeline state was created with both the+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT'+-- and+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'+-- dynamic states enabled then both+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'+-- and+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetScissorWithCount'+-- /must/ have been called in the current command buffer prior to this+-- drawing command, and the @viewportCount@ parameter of+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'+-- /must/ match the @scissorCount@ parameter of+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetScissorWithCount'+--+-- - #VUID-vkCmdDrawMeshTasksIndirectEXT-viewportCount-04137# If the+-- bound graphics pipeline state was created with the+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'+-- dynamic state enabled, but not the+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_W_SCALING_NV'+-- dynamic state enabled, then the bound graphics pipeline /must/ have+-- been created with+-- 'Vulkan.Extensions.VK_NV_clip_space_w_scaling.PipelineViewportWScalingStateCreateInfoNV'::@viewportCount@+-- greater or equal to the @viewportCount@ parameter in the last call+-- to+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'+--+-- - #VUID-vkCmdDrawMeshTasksIndirectEXT-viewportCount-04138# If the+-- bound graphics pipeline state was created with the+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'+-- and+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_W_SCALING_NV'+-- dynamic states enabled then the @viewportCount@ parameter in the+-- last call to+-- 'Vulkan.Extensions.VK_NV_clip_space_w_scaling.cmdSetViewportWScalingNV'+-- /must/ be greater than or equal to the @viewportCount@ parameter in+-- the last call to+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'+--+-- - #VUID-vkCmdDrawMeshTasksIndirectEXT-viewportCount-04139# If the+-- bound graphics pipeline state was created with the+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'+-- dynamic state enabled, but not the+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV'+-- dynamic state enabled, then the bound graphics pipeline /must/ have+-- been created with+-- 'Vulkan.Extensions.VK_NV_shading_rate_image.PipelineViewportShadingRateImageStateCreateInfoNV'::@viewportCount@+-- greater or equal to the @viewportCount@ parameter in the last call+-- to+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'+--+-- - #VUID-vkCmdDrawMeshTasksIndirectEXT-viewportCount-04140# If the+-- bound graphics pipeline state was created with the+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'+-- and+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV'+-- dynamic states enabled then the @viewportCount@ parameter in the+-- last call to+-- 'Vulkan.Extensions.VK_NV_shading_rate_image.cmdSetViewportShadingRatePaletteNV'+-- /must/ be greater than or equal to the @viewportCount@ parameter in+-- the last call to+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'+--+-- - #VUID-vkCmdDrawMeshTasksIndirectEXT-VkPipelineVieportCreateInfo-04141#+-- If the bound graphics pipeline state was created with the+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'+-- dynamic state enabled and a+-- 'Vulkan.Extensions.VK_NV_viewport_swizzle.PipelineViewportSwizzleStateCreateInfoNV'+-- structure chained from+-- 'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo', then the+-- bound graphics pipeline /must/ have been created with+-- 'Vulkan.Extensions.VK_NV_viewport_swizzle.PipelineViewportSwizzleStateCreateInfoNV'::@viewportCount@+-- greater or equal to the @viewportCount@ parameter in the last call+-- to+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'+--+-- - #VUID-vkCmdDrawMeshTasksIndirectEXT-VkPipelineVieportCreateInfo-04142#+-- If the bound graphics pipeline state was created with the+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'+-- dynamic state enabled and a+-- 'Vulkan.Extensions.VK_NV_scissor_exclusive.PipelineViewportExclusiveScissorStateCreateInfoNV'+-- structure chained from+-- 'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo', then the+-- bound graphics pipeline /must/ have been created with+-- 'Vulkan.Extensions.VK_NV_scissor_exclusive.PipelineViewportExclusiveScissorStateCreateInfoNV'::@exclusiveScissorCount@+-- greater or equal to the @viewportCount@ parameter in the last call+-- to+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'+--+-- - #VUID-vkCmdDrawMeshTasksIndirectEXT-None-04876# If the bound+-- graphics pipeline state was created with the+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE'+-- dynamic state enabled then+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'+-- /must/ have been called in the current command buffer prior to this+-- drawing command+--+-- - #VUID-vkCmdDrawMeshTasksIndirectEXT-None-04877# If the bound+-- graphics pipeline state was created with the+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BIAS_ENABLE'+-- dynamic state enabled then+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetDepthBiasEnable'+-- /must/ have been called in the current command buffer prior to this+-- drawing command+--+-- - #VUID-vkCmdDrawMeshTasksIndirectEXT-logicOp-04878# If the bound+-- graphics pipeline state was created with the+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LOGIC_OP_EXT'+-- dynamic state enabled then+-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetLogicOpEXT'+-- /must/ have been called in the current command buffer prior to this+-- drawing command and the @logicOp@ /must/ be a valid+-- 'Vulkan.Core10.Enums.LogicOp.LogicOp' value+--+-- - #VUID-vkCmdDrawMeshTasksIndirectEXT-primitiveFragmentShadingRateWithMultipleViewports-04552#+-- If the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-primitiveFragmentShadingRateWithMultipleViewports primitiveFragmentShadingRateWithMultipleViewports>+-- limit is not supported, the bound graphics pipeline was created with+-- the+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'+-- dynamic state enabled, and any of the shader stages of the bound+-- graphics pipeline write to the @PrimitiveShadingRateKHR@ built-in,+-- then+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'+-- /must/ have been called in the current command buffer prior to this+-- drawing command, and the @viewportCount@ parameter of+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'+-- /must/ be @1@+--+-- - #VUID-vkCmdDrawMeshTasksIndirectEXT-blendEnable-04727# If+-- rasterization is not disabled in the bound graphics pipeline, then+-- for each color attachment in the subpass, if the corresponding image+-- view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- do not contain+-- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT',+-- then the @blendEnable@ member of the corresponding element of the+-- @pAttachments@ member of @pColorBlendState@ /must/ be+-- 'Vulkan.Core10.FundamentalTypes.FALSE'+--+-- - #VUID-vkCmdDrawMeshTasksIndirectEXT-rasterizationSamples-04740# If+-- rasterization is not disabled in the bound graphics pipeline, and+-- neither the @VK_AMD_mixed_attachment_samples@ nor the+-- @VK_NV_framebuffer_mixed_samples@ extensions are enabled, then+-- 'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'::@rasterizationSamples@+-- /must/ be the same as the current subpass color and\/or+-- depth\/stencil attachments+--+-- - #VUID-vkCmdDrawMeshTasksIndirectEXT-imageView-06172# If the current+-- render pass instance was begun with+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+-- the @imageView@ member of @pDepthAttachment@ is not+-- 'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of+-- @pDepthAttachment@ is+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL',+-- this command /must/ not write any values to the depth attachment+--+-- - #VUID-vkCmdDrawMeshTasksIndirectEXT-imageView-06173# If the current+-- render pass instance was begun with+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+-- the @imageView@ member of @pStencilAttachment@ is not+-- 'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of+-- @pStencilAttachment@ is+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL',+-- this command /must/ not write any values to the stencil attachment+--+-- - #VUID-vkCmdDrawMeshTasksIndirectEXT-imageView-06174# If the current+-- render pass instance was begun with+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+-- the @imageView@ member of @pDepthAttachment@ is not+-- 'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of+-- @pDepthAttachment@ is+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL',+-- this command /must/ not write any values to the depth attachment+--+-- - #VUID-vkCmdDrawMeshTasksIndirectEXT-imageView-06175# If the current+-- render pass instance was begun with+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+-- the @imageView@ member of @pStencilAttachment@ is not+-- 'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of+-- @pStencilAttachment@ is+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL',+-- this command /must/ not write any values to the stencil attachment+--+-- - #VUID-vkCmdDrawMeshTasksIndirectEXT-imageView-06176# If the current+-- render pass instance was begun with+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+-- the @imageView@ member of @pDepthAttachment@ is not+-- 'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of+-- @pDepthAttachment@ is+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL',+-- this command /must/ not write any values to the depth attachment+--+-- - #VUID-vkCmdDrawMeshTasksIndirectEXT-imageView-06177# If the current+-- render pass instance was begun with+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+-- the @imageView@ member of @pStencilAttachment@ is not+-- 'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of+-- @pStencilAttachment@ is+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL',+-- this command /must/ not write any values to the stencil attachment+--+-- - #VUID-vkCmdDrawMeshTasksIndirectEXT-viewMask-06178# If the current+-- render pass instance was begun with+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+-- the currently bound graphics pipeline /must/ have been created with+-- a+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@viewMask@+-- equal to+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@viewMask@+--+-- - #VUID-vkCmdDrawMeshTasksIndirectEXT-colorAttachmentCount-06179# If+-- the current render pass instance was begun with+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+-- the currently bound graphics pipeline /must/ have been created with+-- a+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@colorAttachmentCount@+-- equal to+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@+--+-- - #VUID-vkCmdDrawMeshTasksIndirectEXT-colorAttachmentCount-06180# If+-- the current render pass instance was begun with+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'+-- and+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@+-- greater than @0@, then each element of the+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@+-- array with a @imageView@ not equal to+-- 'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created+-- with a 'Vulkan.Core10.Enums.Format.Format' equal to the+-- corresponding element of+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@+-- used to create the currently bound graphics pipeline+--+-- - #VUID-vkCmdDrawMeshTasksIndirectEXT-attachmentCount-06667# If the+-- bound graphics pipeline state was created with the+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT'+-- dynamic state enabled then+-- 'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'+-- /must/ have been called in the current command buffer prior to this+-- drawing command, and the @attachmentCount@ parameter of+-- 'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'+-- /must/ be greater than or equal to the+-- 'Vulkan.Core10.Pipeline.PipelineColorBlendStateCreateInfo'::@attachmentCount@+-- of the currently bound graphics pipeline+--+-- - #VUID-vkCmdDrawMeshTasksIndirectEXT-attachmentCount-06815# If the+-- bound graphics pipeline state was created with the+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT'+-- dynamic state enabled then+-- 'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'+-- /must/ have been called in the current command buffer prior to this+-- drawing command, and the @attachmentCount@ parameter of+-- 'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'+-- /must/ be less than or equal to the @maxColorAttachments@ member of+-- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'+--+-- - #VUID-vkCmdDrawMeshTasksIndirectEXT-pDepthAttachment-06181# If the+-- current render pass instance was begun with+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'+-- and+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@+-- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@depthAttachmentFormat@+-- used to create the currently bound graphics pipeline /must/ be equal+-- to the 'Vulkan.Core10.Enums.Format.Format' used to create+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@+--+-- - #VUID-vkCmdDrawMeshTasksIndirectEXT-pStencilAttachment-06182# If the+-- current render pass instance was begun with+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'+-- and+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@+-- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@stencilAttachmentFormat@+-- used to create the currently bound graphics pipeline /must/ be equal+-- to the 'Vulkan.Core10.Enums.Format.Format' used to create+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@+--+-- - #VUID-vkCmdDrawMeshTasksIndirectEXT-imageView-06183# If the current+-- render pass instance was begun with+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'+-- and+-- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingFragmentShadingRateAttachmentInfoKHR'::@imageView@+-- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the currently+-- bound graphics pipeline /must/ have been created with+-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR'+--+-- - #VUID-vkCmdDrawMeshTasksIndirectEXT-imageView-06184# If the current+-- render pass instance was begun with+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'+-- and+-- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingFragmentDensityMapAttachmentInfoEXT'::@imageView@+-- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the currently+-- bound graphics pipeline /must/ have been created with+-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT'+--+-- - #VUID-vkCmdDrawMeshTasksIndirectEXT-colorAttachmentCount-06185# If+-- the currently bound pipeline was created with a+-- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'+-- or+-- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'+-- structure, and the current render pass instance was begun with+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'+-- with a+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@+-- parameter greater than @0@, then each element of the+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@+-- array with a @imageView@ not equal to+-- 'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created+-- with a sample count equal to the corresponding element of the+-- @pColorAttachmentSamples@ member of+-- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'+-- or+-- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'+-- used to create the currently bound graphics pipeline+--+-- - #VUID-vkCmdDrawMeshTasksIndirectEXT-pDepthAttachment-06186# If the+-- current render pass instance was begun with+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+-- the currently bound pipeline was created with a+-- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'+-- or+-- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'+-- structure, and+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@+-- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of the+-- @depthStencilAttachmentSamples@ member of+-- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'+-- or+-- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'+-- used to create the currently bound graphics pipeline /must/ be equal+-- to the sample count used to create+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@+--+-- - #VUID-vkCmdDrawMeshTasksIndirectEXT-pStencilAttachment-06187# If the+-- current render pass instance was begun with+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+-- the currently bound pipeline was created with a+-- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'+-- or+-- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'+-- structure, and+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@+-- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of the+-- @depthStencilAttachmentSamples@ member of+-- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'+-- or+-- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'+-- used to create the currently bound graphics pipeline /must/ be equal+-- to the sample count used to create+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@+--+-- - #VUID-vkCmdDrawMeshTasksIndirectEXT-colorAttachmentCount-06188# If+-- the currently bound pipeline was created without a+-- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'+-- or+-- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'+-- structure, and the current render pass instance was begun with+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'+-- with a+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@+-- parameter greater than @0@, then each element of the+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@+-- array with a @imageView@ not equal to+-- 'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created+-- with a sample count equal to the value of+-- 'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'::@rasterizationSamples@+-- used to create the currently bound graphics pipeline+--+-- - #VUID-vkCmdDrawMeshTasksIndirectEXT-pDepthAttachment-06189# If the+-- current render pass instance was begun with+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+-- the currently bound pipeline was created without a+-- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'+-- or+-- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'+-- structure, and+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@+-- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of+-- 'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'::@rasterizationSamples@+-- used to create the currently bound graphics pipeline /must/ be equal+-- to the sample count used to create+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@+--+-- - #VUID-vkCmdDrawMeshTasksIndirectEXT-pStencilAttachment-06190# If the+-- current render pass instance was begun with+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+-- the currently bound pipeline was created without a+-- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'+-- or+-- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'+-- structure, and+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@+-- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of+-- 'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'::@rasterizationSamples@+-- used to create the currently bound graphics pipeline /must/ be equal+-- to the sample count used to create+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@+--+-- - #VUID-vkCmdDrawMeshTasksIndirectEXT-renderPass-06198# If the current+-- render pass instance was begun with+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+-- the currently bound pipeline /must/ have been created with a+-- 'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo'::@renderPass@+-- equal to 'Vulkan.Core10.APIConstants.NULL_HANDLE'+--+-- - #VUID-vkCmdDrawMeshTasksIndirectEXT-primitivesGeneratedQueryWithRasterizerDiscard-06708#+-- If the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-primitivesGeneratedQueryWithRasterizerDiscard primitivesGeneratedQueryWithRasterizerDiscard>+-- feature is not enabled and the+-- 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PRIMITIVES_GENERATED_EXT'+-- query is active,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-discard rasterization discard>+-- /must/ not be enabled.+--+-- - #VUID-vkCmdDrawMeshTasksIndirectEXT-primitivesGeneratedQueryWithNonZeroStreams-06709#+-- If the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-primitivesGeneratedQueryWithNonZeroStreams primitivesGeneratedQueryWithNonZeroStreams>+-- feature is not enabled and the+-- 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PRIMITIVES_GENERATED_EXT'+-- query is active, the bound graphics pipeline /must/ not have been+-- created with a non-zero value in+-- 'Vulkan.Extensions.VK_EXT_transform_feedback.PipelineRasterizationStateStreamCreateInfoEXT'::@rasterizationStream@.+--+-- - #VUID-vkCmdDrawMeshTasksIndirectEXT-stage-07073# If the currently+-- bound pipeline was created with the+-- 'Vulkan.Core10.Pipeline.PipelineShaderStageCreateInfo'::@stage@+-- member of an element of+-- 'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo'::@pStages@ set+-- to+-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT',+-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_CONTROL_BIT',+-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT'+-- or+-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT',+-- then+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#queries-mesh-shader Mesh Shader Queries>+-- must not be active+--+-- - #VUID-vkCmdDrawMeshTasksIndirectEXT-buffer-02708# If @buffer@ is+-- non-sparse then it /must/ be bound completely and contiguously to a+-- single 'Vulkan.Core10.Handles.DeviceMemory' object+--+-- - #VUID-vkCmdDrawMeshTasksIndirectEXT-buffer-02709# @buffer@ /must/+-- have been created with the+-- 'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_INDIRECT_BUFFER_BIT'+-- bit set+--+-- - #VUID-vkCmdDrawMeshTasksIndirectEXT-offset-02710# @offset@ /must/ be+-- a multiple of @4@+--+-- - #VUID-vkCmdDrawMeshTasksIndirectEXT-commandBuffer-02711#+-- @commandBuffer@ /must/ not be a protected command buffer+--+-- - #VUID-vkCmdDrawMeshTasksIndirectEXT-drawCount-02718# If the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multiDrawIndirect multiDrawIndirect>+-- feature is not enabled, @drawCount@ /must/ be @0@ or @1@+--+-- - #VUID-vkCmdDrawMeshTasksIndirectEXT-drawCount-02719# @drawCount@+-- /must/ be less than or equal to+-- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxDrawIndirectCount@+--+-- - #VUID-vkCmdDrawMeshTasksIndirectEXT-drawCount-07088# If @drawCount@+-- is greater than @1@, @stride@ /must/ be a multiple of @4@ and /must/+-- be greater than or equal to+-- @sizeof@('DrawMeshTasksIndirectCommandEXT')+--+-- - #VUID-vkCmdDrawMeshTasksIndirectEXT-drawCount-07089# If @drawCount@+-- is equal to @1@, (@offset@ ++-- @sizeof@('DrawMeshTasksIndirectCommandEXT')) /must/ be less than or+-- equal to the size of @buffer@+--+-- - #VUID-vkCmdDrawMeshTasksIndirectEXT-drawCount-07090# If @drawCount@+-- is greater than @1@, (@stride@ × (@drawCount@ - 1) + @offset@ ++-- @sizeof@('DrawMeshTasksIndirectCommandEXT')) /must/ be less than or+-- equal to the size of @buffer@+--+-- - #VUID-vkCmdDrawMeshTasksIndirectEXT-MeshEXT-07091# The current+-- pipeline bound to+-- 'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_GRAPHICS'+-- /must/ contain a shader stage using the @MeshEXT@ @Execution@+-- @Model@.+--+-- == Valid Usage (Implicit)+--+-- - #VUID-vkCmdDrawMeshTasksIndirectEXT-commandBuffer-parameter#+-- @commandBuffer@ /must/ be a valid+-- 'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- - #VUID-vkCmdDrawMeshTasksIndirectEXT-buffer-parameter# @buffer@+-- /must/ be a valid 'Vulkan.Core10.Handles.Buffer' handle+--+-- - #VUID-vkCmdDrawMeshTasksIndirectEXT-commandBuffer-recording#+-- @commandBuffer@ /must/ be in the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording state>+--+-- - #VUID-vkCmdDrawMeshTasksIndirectEXT-commandBuffer-cmdpool# The+-- 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+-- allocated from /must/ support graphics operations+--+-- - #VUID-vkCmdDrawMeshTasksIndirectEXT-renderpass# This command /must/+-- only be called inside of a render pass instance+--+-- - #VUID-vkCmdDrawMeshTasksIndirectEXT-videocoding# This command /must/+-- only be called outside of a video coding scope+--+-- - #VUID-vkCmdDrawMeshTasksIndirectEXT-commonparent# Both of @buffer@,+-- and @commandBuffer@ /must/ have been created, allocated, or+-- retrieved from the same 'Vulkan.Core10.Handles.Device'+--+-- == Host Synchronization+--+-- - Host access to @commandBuffer@ /must/ be externally synchronized+--+-- - Host access to the 'Vulkan.Core10.Handles.CommandPool' that+-- @commandBuffer@ was allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- \'+--+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================++-- | Primary | Inside | Outside | Graphics |+-- | Secondary | | | |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_mesh_shader VK_EXT_mesh_shader>,+-- 'Vulkan.Core10.Handles.Buffer', 'Vulkan.Core10.Handles.CommandBuffer',+-- 'Vulkan.Core10.FundamentalTypes.DeviceSize'+cmdDrawMeshTasksIndirectEXT :: forall io+ . (MonadIO io)+ => -- | @commandBuffer@ is the command buffer into which the command is+ -- recorded.+ CommandBuffer+ -> -- | @buffer@ is the buffer containing draw parameters.+ Buffer+ -> -- | @offset@ is the byte offset into @buffer@ where parameters begin.+ ("offset" ::: DeviceSize)+ -> -- | @drawCount@ is the number of draws to execute, and /can/ be zero.+ ("drawCount" ::: Word32)+ -> -- | @stride@ is the byte stride between successive sets of draw parameters.+ ("stride" ::: Word32)+ -> io ()+cmdDrawMeshTasksIndirectEXT commandBuffer buffer offset drawCount stride = liftIO $ do+ let vkCmdDrawMeshTasksIndirectEXTPtr = pVkCmdDrawMeshTasksIndirectEXT (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)+ unless (vkCmdDrawMeshTasksIndirectEXTPtr /= nullFunPtr) $+ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdDrawMeshTasksIndirectEXT is null" Nothing Nothing+ let vkCmdDrawMeshTasksIndirectEXT' = mkVkCmdDrawMeshTasksIndirectEXT vkCmdDrawMeshTasksIndirectEXTPtr+ traceAroundEvent "vkCmdDrawMeshTasksIndirectEXT" (vkCmdDrawMeshTasksIndirectEXT' (commandBufferHandle (commandBuffer)) (buffer) (offset) (drawCount) (stride))+ pure $ ()+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+ unsafe+#endif+ "dynamic" mkVkCmdDrawMeshTasksIndirectCountEXT+ :: FunPtr (Ptr CommandBuffer_T -> Buffer -> DeviceSize -> Buffer -> DeviceSize -> Word32 -> Word32 -> IO ()) -> Ptr CommandBuffer_T -> Buffer -> DeviceSize -> Buffer -> DeviceSize -> Word32 -> Word32 -> IO ()++-- | vkCmdDrawMeshTasksIndirectCountEXT - Perform an indirect mesh tasks draw+-- with the draw count sourced from a buffer+--+-- = Description+--+-- 'cmdDrawMeshTasksIndirectCountEXT' behaves similarly to+-- 'cmdDrawMeshTasksIndirectEXT' except that the draw count is read by the+-- device from a buffer during execution. The command will read an unsigned+-- 32-bit integer from @countBuffer@ located at @countBufferOffset@ and use+-- this as the draw count.+--+-- == Valid Usage+--+-- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-magFilter-04553# If a+-- 'Vulkan.Core10.Handles.Sampler' created with @magFilter@ or+-- @minFilter@ equal to 'Vulkan.Core10.Enums.Filter.FILTER_LINEAR' and+-- @compareEnable@ equal to 'Vulkan.Core10.FundamentalTypes.FALSE' is+-- used to sample a 'Vulkan.Core10.Handles.ImageView' as a result of+-- this command, then the image view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain+-- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT'+--+-- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-mipmapMode-04770# If a+-- 'Vulkan.Core10.Handles.Sampler' created with @mipmapMode@ equal to+-- 'Vulkan.Core10.Enums.SamplerMipmapMode.SAMPLER_MIPMAP_MODE_LINEAR'+-- and @compareEnable@ equal to 'Vulkan.Core10.FundamentalTypes.FALSE'+-- is used to sample a 'Vulkan.Core10.Handles.ImageView' as a result of+-- this command, then the image view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain+-- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT'+--+-- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-06479# If a+-- 'Vulkan.Core10.Handles.ImageView' is sampled with+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-depth-compare-operation depth comparison>,+-- the image view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT'+--+-- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-02691# If a+-- 'Vulkan.Core10.Handles.ImageView' is accessed using atomic+-- operations as a result of this command, then the image view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain+-- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT'+--+-- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-02692# If a+-- 'Vulkan.Core10.Handles.ImageView' is sampled with+-- 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as a result of this+-- command, then the image view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain+-- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT'+--+-- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-filterCubic-02694# Any+-- 'Vulkan.Core10.Handles.ImageView' being sampled with+-- 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as a result of this+-- command /must/ have a+-- 'Vulkan.Core10.Enums.ImageViewType.ImageViewType' and format that+-- supports cubic filtering, as specified by+-- 'Vulkan.Extensions.VK_EXT_filter_cubic.FilterCubicImageViewImageFormatPropertiesEXT'::@filterCubic@+-- returned by+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceImageFormatProperties2'+--+-- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-filterCubicMinmax-02695#+-- Any 'Vulkan.Core10.Handles.ImageView' being sampled with+-- 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' with a reduction mode+-- of either+-- 'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MIN'+-- or+-- 'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MAX'+-- as a result of this command /must/ have a+-- 'Vulkan.Core10.Enums.ImageViewType.ImageViewType' and format that+-- supports cubic filtering together with minmax filtering, as+-- specified by+-- 'Vulkan.Extensions.VK_EXT_filter_cubic.FilterCubicImageViewImageFormatPropertiesEXT'::@filterCubicMinmax@+-- returned by+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceImageFormatProperties2'+--+-- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-flags-02696# Any+-- 'Vulkan.Core10.Handles.Image' created with a+-- 'Vulkan.Core10.Image.ImageCreateInfo'::@flags@ containing+-- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_CORNER_SAMPLED_BIT_NV'+-- sampled as a result of this command /must/ only be sampled using a+-- 'Vulkan.Core10.Enums.SamplerAddressMode.SamplerAddressMode' of+-- 'Vulkan.Core10.Enums.SamplerAddressMode.SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE'+--+-- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-OpTypeImage-07027# For any+-- 'Vulkan.Core10.Handles.ImageView' being written as a storage image+-- where the image format field of the @OpTypeImage@ is @Unknown@, the+-- view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT'+--+-- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-OpTypeImage-07028# For any+-- 'Vulkan.Core10.Handles.ImageView' being read as a storage image+-- where the image format field of the @OpTypeImage@ is @Unknown@, the+-- view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT'+--+-- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-OpTypeImage-07029# For any+-- 'Vulkan.Core10.Handles.BufferView' being written as a storage texel+-- buffer where the image format field of the @OpTypeImage@ is+-- @Unknown@, the view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkFormatProperties3 buffer features>+-- /must/ contain+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT'+--+-- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-OpTypeImage-07030# Any+-- 'Vulkan.Core10.Handles.BufferView' being read as a storage texel+-- buffer where the image format field of the @OpTypeImage@ is+-- @Unknown@ then the view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkFormatProperties3 buffer features>+-- /must/ contain+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT'+--+-- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-02697# For each set+-- /n/ that is statically used by the 'Vulkan.Core10.Handles.Pipeline'+-- bound to the pipeline bind point used by this command, a descriptor+-- set /must/ have been bound to /n/ at the same pipeline bind point,+-- with a 'Vulkan.Core10.Handles.PipelineLayout' that is compatible for+-- set /n/, with the 'Vulkan.Core10.Handles.PipelineLayout' used to+-- create the current 'Vulkan.Core10.Handles.Pipeline', as described in+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>+--+-- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-maintenance4-06425# If the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-maintenance4 maintenance4>+-- feature is not enabled, then for each push constant that is+-- statically used by the 'Vulkan.Core10.Handles.Pipeline' bound to the+-- pipeline bind point used by this command, a push constant value+-- /must/ have been set for the same pipeline bind point, with a+-- 'Vulkan.Core10.Handles.PipelineLayout' that is compatible for push+-- constants, with the 'Vulkan.Core10.Handles.PipelineLayout' used to+-- create the current 'Vulkan.Core10.Handles.Pipeline', as described in+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>+--+-- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-02699# Descriptors in+-- each bound descriptor set, specified via+-- 'Vulkan.Core10.CommandBufferBuilding.cmdBindDescriptorSets', /must/+-- be valid if they are statically used by the+-- 'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind point+-- used by this command+--+-- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-02700# A valid+-- pipeline /must/ be bound to the pipeline bind point used by this+-- command+--+-- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-commandBuffer-02701# If the+-- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind+-- point used by this command requires any dynamic state, that state+-- /must/ have been set or inherited (if the+-- @VK_NV_inherited_viewport_scissor@ extension is enabled) for+-- @commandBuffer@, and done so after any previously bound pipeline+-- with the corresponding state not specified as dynamic+--+-- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-02859# There /must/+-- not have been any calls to dynamic state setting commands for any+-- state not specified as dynamic in the+-- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind+-- point used by this command, since that pipeline was bound+--+-- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-02702# If the+-- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind+-- point used by this command accesses a+-- 'Vulkan.Core10.Handles.Sampler' object that uses unnormalized+-- coordinates, that sampler /must/ not be used to sample from any+-- 'Vulkan.Core10.Handles.Image' with a+-- 'Vulkan.Core10.Handles.ImageView' of the type+-- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_3D',+-- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE',+-- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_1D_ARRAY',+-- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_2D_ARRAY' or+-- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE_ARRAY', in+-- any shader stage+--+-- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-02703# If the+-- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind+-- point used by this command accesses a+-- 'Vulkan.Core10.Handles.Sampler' object that uses unnormalized+-- coordinates, that sampler /must/ not be used with any of the SPIR-V+-- @OpImageSample*@ or @OpImageSparseSample*@ instructions with+-- @ImplicitLod@, @Dref@ or @Proj@ in their name, in any shader stage+--+-- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-02704# If the+-- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind+-- point used by this command accesses a+-- 'Vulkan.Core10.Handles.Sampler' object that uses unnormalized+-- coordinates, that sampler /must/ not be used with any of the SPIR-V+-- @OpImageSample*@ or @OpImageSparseSample*@ instructions that+-- includes a LOD bias or any offset values, in any shader stage+--+-- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-uniformBuffers-06935# If+-- any stage of the 'Vulkan.Core10.Handles.Pipeline' object bound to+-- the pipeline bind point used by this command accesses a uniform+-- buffer, and that stage was created without enabling either+-- 'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT'+-- or+-- 'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT'+-- for @uniformBuffers@, and the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>+-- feature is not enabled, that stage /must/ not access values outside+-- of the range of the buffer as specified in the descriptor set bound+-- to the same pipeline bind point+--+-- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-storageBuffers-06936# If+-- any stage of the 'Vulkan.Core10.Handles.Pipeline' object bound to+-- the pipeline bind point used by this command accesses a storage+-- buffer, and that stage was created without enabling either+-- 'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT'+-- or+-- 'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT'+-- for @storageBuffers@, and the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>+-- feature is not enabled, that stage /must/ not access values outside+-- of the range of the buffer as specified in the descriptor set bound+-- to the same pipeline bind point+--+-- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-commandBuffer-02707# If+-- @commandBuffer@ is an unprotected command buffer and+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>+-- is not supported, any resource accessed by the+-- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind+-- point used by this command /must/ not be a protected resource+--+-- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-06550# If the+-- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind+-- point used by this command accesses a+-- 'Vulkan.Core10.Handles.Sampler' or 'Vulkan.Core10.Handles.ImageView'+-- object that enables+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion>,+-- that object /must/ only be used with @OpImageSample*@ or+-- @OpImageSparseSample*@ instructions+--+-- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-ConstOffset-06551# If the+-- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind+-- point used by this command accesses a+-- 'Vulkan.Core10.Handles.Sampler' or 'Vulkan.Core10.Handles.ImageView'+-- object that enables+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion>,+-- that object /must/ not use the @ConstOffset@ and @Offset@ operands+--+-- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-04115# If a+-- 'Vulkan.Core10.Handles.ImageView' is accessed using @OpImageWrite@+-- as a result of this command, then the @Type@ of the @Texel@ operand+-- of that instruction /must/ have at least as many components as the+-- image view’s format+--+-- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-OpImageWrite-04469# If a+-- 'Vulkan.Core10.Handles.BufferView' is accessed using @OpImageWrite@+-- as a result of this command, then the @Type@ of the @Texel@ operand+-- of that instruction /must/ have at least as many components as the+-- buffer view’s format+--+-- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-SampledType-04470# If a+-- 'Vulkan.Core10.Handles.ImageView' with a+-- 'Vulkan.Core10.Enums.Format.Format' that has a 64-bit component+-- width is accessed as a result of this command, the @SampledType@ of+-- the @OpTypeImage@ operand of that instruction /must/ have a @Width@+-- of 64+--+-- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-SampledType-04471# If a+-- 'Vulkan.Core10.Handles.ImageView' with a+-- 'Vulkan.Core10.Enums.Format.Format' that has a component width less+-- than 64-bit is accessed as a result of this command, the+-- @SampledType@ of the @OpTypeImage@ operand of that instruction+-- /must/ have a @Width@ of 32+--+-- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-SampledType-04472# If a+-- 'Vulkan.Core10.Handles.BufferView' with a+-- 'Vulkan.Core10.Enums.Format.Format' that has a 64-bit component+-- width is accessed as a result of this command, the @SampledType@ of+-- the @OpTypeImage@ operand of that instruction /must/ have a @Width@+-- of 64+--+-- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-SampledType-04473# If a+-- 'Vulkan.Core10.Handles.BufferView' with a+-- 'Vulkan.Core10.Enums.Format.Format' that has a component width less+-- than 64-bit is accessed as a result of this command, the+-- @SampledType@ of the @OpTypeImage@ operand of that instruction+-- /must/ have a @Width@ of 32+--+-- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-sparseImageInt64Atomics-04474#+-- If the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-sparseImageInt64Atomics sparseImageInt64Atomics>+-- feature is not enabled, 'Vulkan.Core10.Handles.Image' objects+-- created with the+-- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SPARSE_RESIDENCY_BIT'+-- flag /must/ not be accessed by atomic instructions through an+-- @OpTypeImage@ with a @SampledType@ with a @Width@ of 64 by this+-- command+--+-- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-sparseImageInt64Atomics-04475#+-- If the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-sparseImageInt64Atomics sparseImageInt64Atomics>+-- feature is not enabled, 'Vulkan.Core10.Handles.Buffer' objects+-- created with the+-- 'Vulkan.Core10.Enums.BufferCreateFlagBits.BUFFER_CREATE_SPARSE_RESIDENCY_BIT'+-- flag /must/ not be accessed by atomic instructions through an+-- @OpTypeImage@ with a @SampledType@ with a @Width@ of 64 by this+-- command+--+-- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-OpImageWeightedSampleQCOM-06971#+-- If @OpImageWeightedSampleQCOM@ is used to sample a+-- 'Vulkan.Core10.Handles.ImageView' as a result of this command, then+-- the image view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM'+--+-- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-OpImageWeightedSampleQCOM-06972#+-- If @OpImageWeightedSampleQCOM@ uses a+-- 'Vulkan.Core10.Handles.ImageView' as a sample weight image as a+-- result of this command, then the image view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM'+--+-- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-OpImageBoxFilterQCOM-06973#+-- If @OpImageBoxFilterQCOM@ is used to sample a+-- 'Vulkan.Core10.Handles.ImageView' as a result of this command, then+-- the image view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM'+--+-- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-OpImageBlockMatchSSDQCOM-06974#+-- If @OpImageBlockMatchSSDQCOM@ is used to read from an+-- 'Vulkan.Core10.Handles.ImageView' as a result of this command, then+-- the image view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM'+--+-- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-OpImageBlockMatchSADQCOM-06975#+-- If @OpImageBlockMatchSADQCOM@ is used to read from an+-- 'Vulkan.Core10.Handles.ImageView' as a result of this command, then+-- the image view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM'+--+-- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-OpImageBlockMatchSADQCOM-06976#+-- If @OpImageBlockMatchSADQCOM@ or OpImageBlockMatchSSDQCOM is used to+-- read from a reference image as result of this command, then the+-- specified reference coordinates /must/ not fail+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-integer-coordinate-validation integer texel coordinate validation>.+--+-- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-OpImageWeightedSampleQCOM-06977#+-- If @OpImageWeightedSampleQCOM@, @OpImageBoxFilterQCOM@,+-- @OpImageBlockMatchSSDQCOM@, or @OpImageBlockMatchSADQCOM@ uses a+-- 'Vulkan.Core10.Handles.Sampler' as a result of this command, then+-- the sampler /must/ have been created with+-- 'Vulkan.Core10.Enums.SamplerCreateFlagBits.SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM'.+--+-- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-OpImageWeightedSampleQCOM-06978#+-- If any command other than @OpImageWeightedSampleQCOM@,+-- @OpImageBoxFilterQCOM@, @OpImageBlockMatchSSDQCOM@, or+-- @OpImageBlockMatchSADQCOM@ uses a 'Vulkan.Core10.Handles.Sampler' as+-- a result of this command, then the sampler /must/ not have been+-- created with+-- 'Vulkan.Core10.Enums.SamplerCreateFlagBits.SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM'.+--+-- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-renderPass-02684# The+-- current render pass /must/ be+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-compatibility compatible>+-- with the @renderPass@ member of the+-- 'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo' structure+-- specified when creating the 'Vulkan.Core10.Handles.Pipeline' bound+-- to+-- 'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_GRAPHICS'+--+-- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-subpass-02685# The subpass+-- index of the current render pass /must/ be equal to the @subpass@+-- member of the 'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo'+-- structure specified when creating the+-- 'Vulkan.Core10.Handles.Pipeline' bound to+-- 'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_GRAPHICS'+--+-- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-02686# Every input+-- attachment used by the current subpass /must/ be bound to the+-- pipeline via a descriptor set+--+-- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-06537# Memory backing+-- image subresources used as attachments in the current render pass+-- /must/ not be written in any way other than as an attachment by this+-- command+--+-- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-06538# If any recorded+-- command in the current subpass will write to an image subresource as+-- an attachment, this command /must/ not read from the memory backing+-- that image subresource in any other way than as an attachment+--+-- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-06539# If any recorded+-- command in the current subpass will read from an image subresource+-- used as an attachment in any way other than as an attachment, this+-- command /must/ not write to that image subresource as an attachment+--+-- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-06886# If the current+-- render pass instance uses a depth\/stencil attachment with a+-- read-only layout for the depth aspect,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragops-depth-write depth writes>+-- /must/ be disabled+--+-- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-06887# If the current+-- render pass instance uses a depth\/stencil attachment with a+-- read-only layout for the stencil aspect and stencil test is enabled,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragops-stencil all stencil ops>+-- /must/ be 'Vulkan.Core10.Enums.StencilOp.STENCIL_OP_KEEP'+--+-- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-maxMultiviewInstanceIndex-02688#+-- If the draw is recorded in a render pass instance with multiview+-- enabled, the maximum instance index /must/ be less than or equal to+-- 'Vulkan.Core11.Promoted_From_VK_KHR_multiview.PhysicalDeviceMultiviewProperties'::@maxMultiviewInstanceIndex@+--+-- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-sampleLocationsEnable-02689#+-- If the bound graphics pipeline was created with+-- 'Vulkan.Extensions.VK_EXT_sample_locations.PipelineSampleLocationsStateCreateInfoEXT'::@sampleLocationsEnable@+-- set to 'Vulkan.Core10.FundamentalTypes.TRUE' and the current subpass+-- has a depth\/stencil attachment, then that attachment /must/ have+-- been created with the+-- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT'+-- bit set+--+-- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-06666# If the bound+-- graphics pipeline state was created with the+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'+-- dynamic state enabled then+-- 'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT'+-- /must/ have been called in the current command buffer prior to this+-- drawing command+--+-- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-viewportCount-03417# If the+-- bound graphics pipeline state was created with the+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'+-- dynamic state enabled, but not the+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT'+-- dynamic state enabled, then+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'+-- /must/ have been called in the current command buffer prior to this+-- drawing command, and the @viewportCount@ parameter of+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'+-- /must/ match the+-- 'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo'::@scissorCount@+-- of the pipeline+--+-- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-scissorCount-03418# If the+-- bound graphics pipeline state was created with the+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT'+-- dynamic state enabled, but not the+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'+-- dynamic state enabled, then+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetScissorWithCount'+-- /must/ have been called in the current command buffer prior to this+-- drawing command, and the @scissorCount@ parameter of+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetScissorWithCount'+-- /must/ match the+-- 'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo'::@viewportCount@+-- of the pipeline+--+-- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-viewportCount-03419# If the+-- bound graphics pipeline state was created with both the+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT'+-- and+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'+-- dynamic states enabled then both+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'+-- and+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetScissorWithCount'+-- /must/ have been called in the current command buffer prior to this+-- drawing command, and the @viewportCount@ parameter of+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'+-- /must/ match the @scissorCount@ parameter of+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetScissorWithCount'+--+-- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-viewportCount-04137# If the+-- bound graphics pipeline state was created with the+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'+-- dynamic state enabled, but not the+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_W_SCALING_NV'+-- dynamic state enabled, then the bound graphics pipeline /must/ have+-- been created with+-- 'Vulkan.Extensions.VK_NV_clip_space_w_scaling.PipelineViewportWScalingStateCreateInfoNV'::@viewportCount@+-- greater or equal to the @viewportCount@ parameter in the last call+-- to+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'+--+-- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-viewportCount-04138# If the+-- bound graphics pipeline state was created with the+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'+-- and+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_W_SCALING_NV'+-- dynamic states enabled then the @viewportCount@ parameter in the+-- last call to+-- 'Vulkan.Extensions.VK_NV_clip_space_w_scaling.cmdSetViewportWScalingNV'+-- /must/ be greater than or equal to the @viewportCount@ parameter in+-- the last call to+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'+--+-- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-viewportCount-04139# If the+-- bound graphics pipeline state was created with the+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'+-- dynamic state enabled, but not the+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV'+-- dynamic state enabled, then the bound graphics pipeline /must/ have+-- been created with+-- 'Vulkan.Extensions.VK_NV_shading_rate_image.PipelineViewportShadingRateImageStateCreateInfoNV'::@viewportCount@+-- greater or equal to the @viewportCount@ parameter in the last call+-- to+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'+--+-- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-viewportCount-04140# If the+-- bound graphics pipeline state was created with the+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'+-- and+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV'+-- dynamic states enabled then the @viewportCount@ parameter in the+-- last call to+-- 'Vulkan.Extensions.VK_NV_shading_rate_image.cmdSetViewportShadingRatePaletteNV'+-- /must/ be greater than or equal to the @viewportCount@ parameter in+-- the last call to+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'+--+-- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-VkPipelineVieportCreateInfo-04141#+-- If the bound graphics pipeline state was created with the+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'+-- dynamic state enabled and a+-- 'Vulkan.Extensions.VK_NV_viewport_swizzle.PipelineViewportSwizzleStateCreateInfoNV'+-- structure chained from+-- 'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo', then the+-- bound graphics pipeline /must/ have been created with+-- 'Vulkan.Extensions.VK_NV_viewport_swizzle.PipelineViewportSwizzleStateCreateInfoNV'::@viewportCount@+-- greater or equal to the @viewportCount@ parameter in the last call+-- to+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'+--+-- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-VkPipelineVieportCreateInfo-04142#+-- If the bound graphics pipeline state was created with the+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'+-- dynamic state enabled and a+-- 'Vulkan.Extensions.VK_NV_scissor_exclusive.PipelineViewportExclusiveScissorStateCreateInfoNV'+-- structure chained from+-- 'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo', then the+-- bound graphics pipeline /must/ have been created with+-- 'Vulkan.Extensions.VK_NV_scissor_exclusive.PipelineViewportExclusiveScissorStateCreateInfoNV'::@exclusiveScissorCount@+-- greater or equal to the @viewportCount@ parameter in the last call+-- to+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'+--+-- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-04876# If the bound+-- graphics pipeline state was created with the+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE'+-- dynamic state enabled then+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'+-- /must/ have been called in the current command buffer prior to this+-- drawing command+--+-- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-04877# If the bound+-- graphics pipeline state was created with the+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BIAS_ENABLE'+-- dynamic state enabled then+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetDepthBiasEnable'+-- /must/ have been called in the current command buffer prior to this+-- drawing command+--+-- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-logicOp-04878# If the bound+-- graphics pipeline state was created with the+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LOGIC_OP_EXT'+-- dynamic state enabled then+-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetLogicOpEXT'+-- /must/ have been called in the current command buffer prior to this+-- drawing command and the @logicOp@ /must/ be a valid+-- 'Vulkan.Core10.Enums.LogicOp.LogicOp' value+--+-- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-primitiveFragmentShadingRateWithMultipleViewports-04552#+-- If the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-primitiveFragmentShadingRateWithMultipleViewports primitiveFragmentShadingRateWithMultipleViewports>+-- limit is not supported, the bound graphics pipeline was created with+-- the+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'+-- dynamic state enabled, and any of the shader stages of the bound+-- graphics pipeline write to the @PrimitiveShadingRateKHR@ built-in,+-- then+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'+-- /must/ have been called in the current command buffer prior to this+-- drawing command, and the @viewportCount@ parameter of+-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'+-- /must/ be @1@+--+-- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-blendEnable-04727# If+-- rasterization is not disabled in the bound graphics pipeline, then+-- for each color attachment in the subpass, if the corresponding image+-- view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- do not contain+-- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT',+-- then the @blendEnable@ member of the corresponding element of the+-- @pAttachments@ member of @pColorBlendState@ /must/ be+-- 'Vulkan.Core10.FundamentalTypes.FALSE'+--+-- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-rasterizationSamples-04740#+-- If rasterization is not disabled in the bound graphics pipeline, and+-- neither the @VK_AMD_mixed_attachment_samples@ nor the+-- @VK_NV_framebuffer_mixed_samples@ extensions are enabled, then+-- 'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'::@rasterizationSamples@+-- /must/ be the same as the current subpass color and\/or+-- depth\/stencil attachments+--+-- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-imageView-06172# If the+-- current render pass instance was begun with+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+-- the @imageView@ member of @pDepthAttachment@ is not+-- 'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of+-- @pDepthAttachment@ is+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL',+-- this command /must/ not write any values to the depth attachment+--+-- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-imageView-06173# If the+-- current render pass instance was begun with+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+-- the @imageView@ member of @pStencilAttachment@ is not+-- 'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of+-- @pStencilAttachment@ is+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL',+-- this command /must/ not write any values to the stencil attachment+--+-- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-imageView-06174# If the+-- current render pass instance was begun with+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+-- the @imageView@ member of @pDepthAttachment@ is not+-- 'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of+-- @pDepthAttachment@ is+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL',+-- this command /must/ not write any values to the depth attachment+--+-- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-imageView-06175# If the+-- current render pass instance was begun with+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+-- the @imageView@ member of @pStencilAttachment@ is not+-- 'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of+-- @pStencilAttachment@ is+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL',+-- this command /must/ not write any values to the stencil attachment+--+-- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-imageView-06176# If the+-- current render pass instance was begun with+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+-- the @imageView@ member of @pDepthAttachment@ is not+-- 'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of+-- @pDepthAttachment@ is+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL',+-- this command /must/ not write any values to the depth attachment+--+-- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-imageView-06177# If the+-- current render pass instance was begun with+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+-- the @imageView@ member of @pStencilAttachment@ is not+-- 'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of+-- @pStencilAttachment@ is+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL',+-- this command /must/ not write any values to the stencil attachment+--+-- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-viewMask-06178# If the+-- current render pass instance was begun with+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+-- the currently bound graphics pipeline /must/ have been created with+-- a+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@viewMask@+-- equal to+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@viewMask@+--+-- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-colorAttachmentCount-06179#+-- If the current render pass instance was begun with+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+-- the currently bound graphics pipeline /must/ have been created with+-- a+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@colorAttachmentCount@+-- equal to+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@+--+-- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-colorAttachmentCount-06180#+-- If the current render pass instance was begun with+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'+-- and+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@+-- greater than @0@, then each element of the+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@+-- array with a @imageView@ not equal to+-- 'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created+-- with a 'Vulkan.Core10.Enums.Format.Format' equal to the+-- corresponding element of+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@+-- used to create the currently bound graphics pipeline+--+-- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-attachmentCount-06667# If+-- the bound graphics pipeline state was created with the+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT'+-- dynamic state enabled then+-- 'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'+-- /must/ have been called in the current command buffer prior to this+-- drawing command, and the @attachmentCount@ parameter of+-- 'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'+-- /must/ be greater than or equal to the+-- 'Vulkan.Core10.Pipeline.PipelineColorBlendStateCreateInfo'::@attachmentCount@+-- of the currently bound graphics pipeline+--+-- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-attachmentCount-06815# If+-- the bound graphics pipeline state was created with the+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT'+-- dynamic state enabled then+-- 'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'+-- /must/ have been called in the current command buffer prior to this+-- drawing command, and the @attachmentCount@ parameter of+-- 'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'+-- /must/ be less than or equal to the @maxColorAttachments@ member of+-- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'+--+-- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-pDepthAttachment-06181# If+-- the current render pass instance was begun with+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'+-- and+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@+-- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@depthAttachmentFormat@+-- used to create the currently bound graphics pipeline /must/ be equal+-- to the 'Vulkan.Core10.Enums.Format.Format' used to create+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@+--+-- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-pStencilAttachment-06182#+-- If the current render pass instance was begun with+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'+-- and+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@+-- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@stencilAttachmentFormat@+-- used to create the currently bound graphics pipeline /must/ be equal+-- to the 'Vulkan.Core10.Enums.Format.Format' used to create+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@+--+-- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-imageView-06183# If the+-- current render pass instance was begun with+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'+-- and+-- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingFragmentShadingRateAttachmentInfoKHR'::@imageView@+-- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the currently+-- bound graphics pipeline /must/ have been created with+-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR'+--+-- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-imageView-06184# If the+-- current render pass instance was begun with+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'+-- and+-- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingFragmentDensityMapAttachmentInfoEXT'::@imageView@+-- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the currently+-- bound graphics pipeline /must/ have been created with+-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT'+--+-- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-colorAttachmentCount-06185#+-- If the currently bound pipeline was created with a+-- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'+-- or+-- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'+-- structure, and the current render pass instance was begun with+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'+-- with a+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@+-- parameter greater than @0@, then each element of the+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@+-- array with a @imageView@ not equal to+-- 'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created+-- with a sample count equal to the corresponding element of the+-- @pColorAttachmentSamples@ member of+-- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'+-- or+-- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'+-- used to create the currently bound graphics pipeline+--+-- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-pDepthAttachment-06186# If+-- the current render pass instance was begun with+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+-- the currently bound pipeline was created with a+-- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'+-- or+-- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'+-- structure, and+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@+-- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of the+-- @depthStencilAttachmentSamples@ member of+-- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'+-- or+-- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'+-- used to create the currently bound graphics pipeline /must/ be equal+-- to the sample count used to create+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@+--+-- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-pStencilAttachment-06187#+-- If the current render pass instance was begun with+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+-- the currently bound pipeline was created with a+-- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'+-- or+-- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'+-- structure, and+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@+-- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of the+-- @depthStencilAttachmentSamples@ member of+-- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'+-- or+-- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'+-- used to create the currently bound graphics pipeline /must/ be equal+-- to the sample count used to create+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@+--+-- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-colorAttachmentCount-06188#+-- If the currently bound pipeline was created without a+-- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'+-- or+-- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'+-- structure, and the current render pass instance was begun with+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'+-- with a+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@+-- parameter greater than @0@, then each element of the+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@+-- array with a @imageView@ not equal to+-- 'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created+-- with a sample count equal to the value of+-- 'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'::@rasterizationSamples@+-- used to create the currently bound graphics pipeline+--+-- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-pDepthAttachment-06189# If+-- the current render pass instance was begun with+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+-- the currently bound pipeline was created without a+-- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'+-- or+-- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'+-- structure, and+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@+-- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of+-- 'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'::@rasterizationSamples@+-- used to create the currently bound graphics pipeline /must/ be equal+-- to the sample count used to create+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@+--+-- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-pStencilAttachment-06190#+-- If the current render pass instance was begun with+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+-- the currently bound pipeline was created without a+-- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'+-- or+-- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'+-- structure, and+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@+-- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of+-- 'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'::@rasterizationSamples@+-- used to create the currently bound graphics pipeline /must/ be equal+-- to the sample count used to create+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@+--+-- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-renderPass-06198# If the+-- current render pass instance was begun with+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+-- the currently bound pipeline /must/ have been created with a+-- 'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo'::@renderPass@+-- equal to 'Vulkan.Core10.APIConstants.NULL_HANDLE'+--+-- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-primitivesGeneratedQueryWithRasterizerDiscard-06708#+-- If the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-primitivesGeneratedQueryWithRasterizerDiscard primitivesGeneratedQueryWithRasterizerDiscard>+-- feature is not enabled and the+-- 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PRIMITIVES_GENERATED_EXT'+-- query is active,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-discard rasterization discard>+-- /must/ not be enabled.+--+-- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-primitivesGeneratedQueryWithNonZeroStreams-06709#+-- If the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-primitivesGeneratedQueryWithNonZeroStreams primitivesGeneratedQueryWithNonZeroStreams>+-- feature is not enabled and the+-- 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PRIMITIVES_GENERATED_EXT'+-- query is active, the bound graphics pipeline /must/ not have been+-- created with a non-zero value in+-- 'Vulkan.Extensions.VK_EXT_transform_feedback.PipelineRasterizationStateStreamCreateInfoEXT'::@rasterizationStream@.+--+-- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-stage-07073# If the+-- currently bound pipeline was created with the+-- 'Vulkan.Core10.Pipeline.PipelineShaderStageCreateInfo'::@stage@+-- member of an element of+-- 'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo'::@pStages@ set+-- to+-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT',+-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_CONTROL_BIT',+-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT'+-- or+-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT',+-- then+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#queries-mesh-shader Mesh Shader Queries>+-- must not be active+--+-- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-buffer-02708# If @buffer@+-- is non-sparse then it /must/ be bound completely and contiguously to+-- a single 'Vulkan.Core10.Handles.DeviceMemory' object+--+-- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-buffer-02709# @buffer@+-- /must/ have been created with the+-- 'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_INDIRECT_BUFFER_BIT'+-- bit set+--+-- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-offset-02710# @offset@+-- /must/ be a multiple of @4@+--+-- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-commandBuffer-02711#+-- @commandBuffer@ /must/ not be a protected command buffer+--+-- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-countBuffer-02714# If+-- @countBuffer@ is non-sparse then it /must/ be bound completely and+-- contiguously to a single 'Vulkan.Core10.Handles.DeviceMemory' object+--+-- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-countBuffer-02715#+-- @countBuffer@ /must/ have been created with the+-- 'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_INDIRECT_BUFFER_BIT'+-- bit set+--+-- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-countBufferOffset-02716#+-- @countBufferOffset@ /must/ be a multiple of @4@+--+-- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-countBuffer-02717# The+-- count stored in @countBuffer@ /must/ be less than or equal to+-- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxDrawIndirectCount@+--+-- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-countBufferOffset-04129#+-- (@countBufferOffset@ + @sizeof@(uint32_t)) /must/ be less than or+-- equal to the size of @countBuffer@+--+-- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-04445# If+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-drawIndirectCount drawIndirectCount>+-- is not enabled this function /must/ not be used+--+-- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-stride-07096# @stride@+-- /must/ be a multiple of @4@ and /must/ be greater than or equal to+-- @sizeof@('DrawMeshTasksIndirectCommandEXT')+--+-- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-maxDrawCount-07097# If+-- @maxDrawCount@ is greater than or equal to @1@, (@stride@ ×+-- (@maxDrawCount@ - 1) + @offset@ ++-- @sizeof@('DrawMeshTasksIndirectCommandEXT')) /must/ be less than or+-- equal to the size of @buffer@+--+-- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-countBuffer-07098# If the+-- count stored in @countBuffer@ is equal to @1@, (@offset@ ++-- @sizeof@('DrawMeshTasksIndirectCommandEXT')) /must/ be less than or+-- equal to the size of @buffer@+--+-- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-countBuffer-07099# If the+-- count stored in @countBuffer@ is greater than @1@, (@stride@ ×+-- (@drawCount@ - 1) + @offset@ ++-- @sizeof@('DrawMeshTasksIndirectCommandEXT')) /must/ be less than or+-- equal to the size of @buffer@+--+-- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-MeshEXT-07100# The current+-- pipeline bound to+-- 'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_GRAPHICS'+-- /must/ contain a shader stage using the @MeshEXT@ @Execution@+-- @Model@.+--+-- == Valid Usage (Implicit)+--+-- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-commandBuffer-parameter#+-- @commandBuffer@ /must/ be a valid+-- 'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-buffer-parameter# @buffer@+-- /must/ be a valid 'Vulkan.Core10.Handles.Buffer' handle+--+-- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-countBuffer-parameter#+-- @countBuffer@ /must/ be a valid 'Vulkan.Core10.Handles.Buffer'+-- handle+--+-- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-commandBuffer-recording#+-- @commandBuffer@ /must/ be in the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording state>+--+-- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-commandBuffer-cmdpool# The+-- 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+-- allocated from /must/ support graphics operations+--+-- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-renderpass# This command+-- /must/ only be called inside of a render pass instance+--+-- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-videocoding# This command+-- /must/ only be called outside of a video coding scope+--+-- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-commonparent# Each of+-- @buffer@, @commandBuffer@, and @countBuffer@ /must/ have been+-- created, allocated, or retrieved from the same+-- 'Vulkan.Core10.Handles.Device'+--+-- == Host Synchronization+--+-- - Host access to @commandBuffer@ /must/ be externally synchronized+--+-- - Host access to the 'Vulkan.Core10.Handles.CommandPool' that+-- @commandBuffer@ was allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- \'+--+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================++-- | Primary | Inside | Outside | Graphics |+-- | Secondary | | | |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_mesh_shader VK_EXT_mesh_shader>,+-- 'Vulkan.Core10.Handles.Buffer', 'Vulkan.Core10.Handles.CommandBuffer',+-- 'Vulkan.Core10.FundamentalTypes.DeviceSize'+cmdDrawMeshTasksIndirectCountEXT :: forall io+ . (MonadIO io)+ => -- | @commandBuffer@ is the command buffer into which the command is+ -- recorded.+ CommandBuffer+ -> -- | @buffer@ is the buffer containing draw parameters.+ Buffer+ -> -- | @offset@ is the byte offset into @buffer@ where parameters begin.+ ("offset" ::: DeviceSize)+ -> -- | @countBuffer@ is the buffer containing the draw count.+ ("countBuffer" ::: Buffer)+ -> -- | @countBufferOffset@ is the byte offset into @countBuffer@ where the draw+ -- count begins.+ ("countBufferOffset" ::: DeviceSize)+ -> -- | @maxDrawCount@ specifies the maximum number of draws that will be+ -- executed. The actual number of executed draw calls is the minimum of the+ -- count specified in @countBuffer@ and @maxDrawCount@.+ ("maxDrawCount" ::: Word32)+ -> -- | @stride@ is the byte stride between successive sets of draw parameters.+ ("stride" ::: Word32)+ -> io ()+cmdDrawMeshTasksIndirectCountEXT commandBuffer buffer offset countBuffer countBufferOffset maxDrawCount stride = liftIO $ do+ let vkCmdDrawMeshTasksIndirectCountEXTPtr = pVkCmdDrawMeshTasksIndirectCountEXT (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)+ unless (vkCmdDrawMeshTasksIndirectCountEXTPtr /= nullFunPtr) $+ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdDrawMeshTasksIndirectCountEXT is null" Nothing Nothing+ let vkCmdDrawMeshTasksIndirectCountEXT' = mkVkCmdDrawMeshTasksIndirectCountEXT vkCmdDrawMeshTasksIndirectCountEXTPtr+ traceAroundEvent "vkCmdDrawMeshTasksIndirectCountEXT" (vkCmdDrawMeshTasksIndirectCountEXT' (commandBufferHandle (commandBuffer)) (buffer) (offset) (countBuffer) (countBufferOffset) (maxDrawCount) (stride))+ pure $ ()+++-- | VkPhysicalDeviceMeshShaderFeaturesEXT - Structure describing mesh+-- shading features that can be supported by an implementation+--+-- = Description+--+-- If the 'PhysicalDeviceMeshShaderFeaturesEXT' structure is included in+-- the @pNext@ chain of the+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2'+-- structure passed to+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceFeatures2',+-- it is filled in to indicate whether each corresponding feature is+-- supported. 'PhysicalDeviceMeshShaderFeaturesEXT' /can/ also be used in+-- the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to+-- selectively enable these features.+--+-- The corresponding features of the+-- 'Vulkan.Extensions.VK_NV_mesh_shader.PhysicalDeviceMeshShaderFeaturesNV'+-- structure /must/ match those in 'PhysicalDeviceMeshShaderFeaturesEXT'.+--+-- == Valid Usage+--+-- - #VUID-VkPhysicalDeviceMeshShaderFeaturesEXT-multiviewMeshShader-07032#+-- If @multiviewMeshShader@ is enabled then+-- 'Vulkan.Extensions.VK_KHR_multiview.PhysicalDeviceMultiviewFeaturesKHR'::@multiview@+-- /must/ also be enabled+--+-- - #VUID-VkPhysicalDeviceMeshShaderFeaturesEXT-primitiveFragmentShadingRateMeshShader-07033#+-- If @primitiveFragmentShadingRateMeshShader@ is enabled then+-- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.PhysicalDeviceFragmentShadingRateFeaturesKHR'::@primitiveFragmentShadingRate@+-- /must/ also be enabled+--+-- == Valid Usage (Implicit)+--+-- - #VUID-VkPhysicalDeviceMeshShaderFeaturesEXT-sType-sType# @sType@+-- /must/ be+-- 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_EXT'+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_mesh_shader VK_EXT_mesh_shader>,+-- 'Vulkan.Core10.FundamentalTypes.Bool32',+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data PhysicalDeviceMeshShaderFeaturesEXT = PhysicalDeviceMeshShaderFeaturesEXT+ { -- | #features-taskShader# @taskShader@ specifies whether task shaders are+ -- supported. If this feature is not enabled, the+ -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT' and+ -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TASK_SHADER_BIT_EXT'+ -- enum values /must/ not be used.+ taskShader :: Bool+ , -- | #features-meshShader# @meshShader@ specifies whether mesh shaders are+ -- supported. If this feature is not enabled, the+ -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT' and+ -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_MESH_SHADER_BIT_EXT'+ -- enum values /must/ not be used.+ meshShader :: Bool+ , -- | #features-multiview-mesh# @multiviewMeshShader@ specifies whether the+ -- implementation supports+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-multiview multiview>+ -- rendering within a render pass, with mesh shaders. If this feature is+ -- not enabled, then a pipeline compiled against a subpass with a non-zero+ -- view mask /must/ not include a mesh shader.+ multiviewMeshShader :: Bool+ , -- | #features-primitiveFragmentShadingRate-mesh#+ -- @primitiveFragmentShadingRateMeshShader@ indicates that the+ -- implementation supports the+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-fragment-shading-rate-primitive primitive fragment shading rate>+ -- in mesh shaders.+ primitiveFragmentShadingRateMeshShader :: Bool+ , -- | #features-meshShaderQueries# @meshShaderQueries@ indicates that the+ -- implementation supports creating query pools using the+ -- 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_MESH_PRIMITIVES_GENERATED_EXT'+ -- query type and statistic queries containing the+ -- 'Vulkan.Core10.Enums.QueryPipelineStatisticFlagBits.QUERY_PIPELINE_STATISTIC_TASK_SHADER_INVOCATIONS_BIT_EXT'+ -- and+ -- 'Vulkan.Core10.Enums.QueryPipelineStatisticFlagBits.QUERY_PIPELINE_STATISTIC_MESH_SHADER_INVOCATIONS_BIT_EXT'+ -- flags+ meshShaderQueries :: Bool+ }+ deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (PhysicalDeviceMeshShaderFeaturesEXT)+#endif+deriving instance Show PhysicalDeviceMeshShaderFeaturesEXT++instance ToCStruct PhysicalDeviceMeshShaderFeaturesEXT where+ withCStruct x f = allocaBytes 40 $ \p -> pokeCStruct p x (f p)+ pokeCStruct p PhysicalDeviceMeshShaderFeaturesEXT{..} f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_EXT)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (taskShader))+ poke ((p `plusPtr` 20 :: Ptr Bool32)) (boolToBool32 (meshShader))+ poke ((p `plusPtr` 24 :: Ptr Bool32)) (boolToBool32 (multiviewMeshShader))+ poke ((p `plusPtr` 28 :: Ptr Bool32)) (boolToBool32 (primitiveFragmentShadingRateMeshShader))+ poke ((p `plusPtr` 32 :: Ptr Bool32)) (boolToBool32 (meshShaderQueries))+ f+ cStructSize = 40+ cStructAlignment = 8+ pokeZeroCStruct p f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_EXT)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (zero))+ poke ((p `plusPtr` 20 :: Ptr Bool32)) (boolToBool32 (zero))+ poke ((p `plusPtr` 24 :: Ptr Bool32)) (boolToBool32 (zero))+ poke ((p `plusPtr` 28 :: Ptr Bool32)) (boolToBool32 (zero))+ poke ((p `plusPtr` 32 :: Ptr Bool32)) (boolToBool32 (zero))+ f++instance FromCStruct PhysicalDeviceMeshShaderFeaturesEXT where+ peekCStruct p = do+ taskShader <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))+ meshShader <- peek @Bool32 ((p `plusPtr` 20 :: Ptr Bool32))+ multiviewMeshShader <- peek @Bool32 ((p `plusPtr` 24 :: Ptr Bool32))+ primitiveFragmentShadingRateMeshShader <- peek @Bool32 ((p `plusPtr` 28 :: Ptr Bool32))+ meshShaderQueries <- peek @Bool32 ((p `plusPtr` 32 :: Ptr Bool32))+ pure $ PhysicalDeviceMeshShaderFeaturesEXT+ (bool32ToBool taskShader) (bool32ToBool meshShader) (bool32ToBool multiviewMeshShader) (bool32ToBool primitiveFragmentShadingRateMeshShader) (bool32ToBool meshShaderQueries)++instance Storable PhysicalDeviceMeshShaderFeaturesEXT where+ sizeOf ~_ = 40+ alignment ~_ = 8+ peek = peekCStruct+ poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero PhysicalDeviceMeshShaderFeaturesEXT where+ zero = PhysicalDeviceMeshShaderFeaturesEXT+ zero+ zero+ zero+ zero+ zero+++-- | VkPhysicalDeviceMeshShaderPropertiesEXT - Structure describing mesh+-- shading properties+--+-- = Members+--+-- The members of the 'PhysicalDeviceMeshShaderPropertiesEXT' structure+-- describe the following implementation-dependent limits:+--+-- = Description+--+-- If the 'PhysicalDeviceMeshShaderPropertiesEXT' structure is included in+-- the @pNext@ chain of+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2',+-- it is filled with the implementation-dependent limits.+--+-- == Valid Usage (Implicit)+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_mesh_shader VK_EXT_mesh_shader>,+-- 'Vulkan.Core10.FundamentalTypes.Bool32',+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data PhysicalDeviceMeshShaderPropertiesEXT = PhysicalDeviceMeshShaderPropertiesEXT+ { -- | #limits-maxTaskWorkGroupTotalCount# @maxTaskWorkGroupTotalCount@ is the+ -- maximum number of total local workgroups that /can/ be launched by a+ -- single mesh tasks drawing command. See+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#drawing-mesh-shading>.+ maxTaskWorkGroupTotalCount :: Word32+ , -- | #limits-maxTaskWorkGroupCount# @maxTaskWorkGroupCount@[3] is the maximum+ -- number of local workgroups that /can/ be launched by a single mesh tasks+ -- drawing command. These three values represent the maximum number of+ -- local workgroups for the X, Y, and Z dimensions, respectively. The+ -- workgroup count parameters to the drawing commands /must/ be less than+ -- or equal to the corresponding limit. The product of these dimensions+ -- /must/ be less than or equal to @maxTaskWorkGroupTotalCount@.+ maxTaskWorkGroupCount :: (Word32, Word32, Word32)+ , -- | #limits-maxTaskWorkGroupInvocations# @maxTaskWorkGroupInvocations@ is+ -- the maximum total number of task shader invocations in a single local+ -- workgroup. The product of the X, Y, and Z sizes, as specified by the+ -- @LocalSize@ or @LocalSizeId@ execution mode in shader modules or by the+ -- object decorated by the @WorkgroupSize@ decoration, /must/ be less than+ -- or equal to this limit.+ maxTaskWorkGroupInvocations :: Word32+ , -- | #limits-maxTaskWorkGroupSize# @maxTaskWorkGroupSize@[3] is the maximum+ -- size of a local task workgroup, per dimension. These three values+ -- represent the maximum local workgroup size in the X, Y, and Z+ -- dimensions, respectively. The @x@, @y@, and @z@ sizes, as specified by+ -- the @LocalSize@ or @LocalSizeId@ execution mode or by the object+ -- decorated by the @WorkgroupSize@ decoration in shader modules, /must/ be+ -- less than or equal to the corresponding limit.+ maxTaskWorkGroupSize :: (Word32, Word32, Word32)+ , -- | #limits-maxTaskPayloadSize# @maxTaskPayloadSize@ is the maximum total+ -- storage size, in bytes, available for variables declared with the+ -- @TaskPayloadWorkgroupEXT@ storage class in shader modules in the task+ -- shader stage.+ maxTaskPayloadSize :: Word32+ , -- | #limits-maxTaskSharedMemorySize# @maxTaskSharedMemorySize@ is the+ -- maximum total storage size, in bytes, available for variables declared+ -- with the @Workgroup@ storage class in shader modules in the task shader+ -- stage.+ maxTaskSharedMemorySize :: Word32+ , -- | #limits-maxTaskPayloadAndSharedMemorySize#+ -- @maxTaskPayloadAndSharedMemorySize@ is the maximum total storage size,+ -- in bytes, available for variables that are declared with the+ -- @TaskPayloadWorkgroupEXT@ or @Workgroup@ storage class, in shader+ -- modules in the task shader stage.+ maxTaskPayloadAndSharedMemorySize :: Word32+ , -- | #limits-maxMeshWorkGroupTotalCount# @maxMeshWorkGroupTotalCount@ is the+ -- maximum number of local output tasks a single task shader workgroup can+ -- emit.+ maxMeshWorkGroupTotalCount :: Word32+ , -- | #limits-maxMeshWorkGroupCount# @maxMeshWorkGroupCount@[3] is the maximum+ -- number of local output tasks a single task shader workgroup can emit,+ -- per dimension. These three values represent the maximum number of local+ -- output tasks for the X, Y, and Z dimensions, respectively. The workgroup+ -- count parameters to the @OpEmitMeshTasksEXT@ /must/ be less than or+ -- equal to the corresponding limit. The product of these dimensions /must/+ -- be less than or equal to @maxMeshWorkGroupTotalCount@.+ maxMeshWorkGroupCount :: (Word32, Word32, Word32)+ , -- | #limits-maxMeshWorkGroupInvocations# @maxMeshWorkGroupInvocations@ is+ -- the maximum total number of mesh shader invocations in a single local+ -- workgroup. The product of the X, Y, and Z sizes, as specified by the+ -- @LocalSize@ or @LocalSizeId@ execution mode in shader modules or by the+ -- object decorated by the @WorkgroupSize@ decoration, /must/ be less than+ -- or equal to this limit.+ maxMeshWorkGroupInvocations :: Word32+ , -- | #limits-maxMeshWorkGroupSize# @maxMeshWorkGroupSize@[3] is the maximum+ -- size of a local mesh workgroup, per dimension. These three values+ -- represent the maximum local workgroup size in the X, Y, and Z+ -- dimensions, respectively. The @x@, @y@, and @z@ sizes, as specified by+ -- the @LocalSize@ or @LocalSizeId@ execution mode or by the object+ -- decorated by the @WorkgroupSize@ decoration in shader modules, /must/ be+ -- less than or equal to the corresponding limit.+ maxMeshWorkGroupSize :: (Word32, Word32, Word32)+ , -- | #limits-maxMeshSharedMemorySize# @maxMeshSharedMemorySize@ is the+ -- maximum total storage size, in bytes, available for variables declared+ -- with the @Workgroup@ storage class in shader modules in the mesh shader+ -- stage.+ maxMeshSharedMemorySize :: Word32+ , -- | #limits-maxMeshPayloadAndSharedMemorySize#+ -- @maxMeshPayloadAndSharedMemorySize@ is the maximum total storage size,+ -- in bytes, available for variables that are declared with the+ -- @TaskPayloadWorkgroupEXT@ or @Workgroup@ storage class in shader modules+ -- in the mesh shader stage.+ maxMeshPayloadAndSharedMemorySize :: Word32+ , -- | #limits-maxMeshOutputMemorySize# @maxMeshOutputMemorySize@ is the+ -- maximum total storage size, in bytes, available for output variables in+ -- shader modules in the mesh shader stage, according to the formula in+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#mesh-output Mesh Shader Output>.+ maxMeshOutputMemorySize :: Word32+ , -- | #limits-maxMeshPayloadAndOutputMemorySize#+ -- @maxMeshPayloadAndOutputMemorySize@ is the maximum total storage size,+ -- in bytes, available for variables that are declared with the+ -- @TaskPayloadWorkgroupEXT@ storage class, or output variables in shader+ -- modules in the mesh shader stage, according to the formula in+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#mesh-output Mesh Shader Output>.+ maxMeshPayloadAndOutputMemorySize :: Word32+ , -- | #limits-maxMeshOutputComponents# @maxMeshOutputComponents@ is the+ -- maximum number of components of output variables which /can/ be output+ -- from the mesh shader stage.+ maxMeshOutputComponents :: Word32+ , -- | #limits-maxMeshOutputVertices# @maxMeshOutputVertices@ is the maximum+ -- number of vertices which /can/ be emitted by a single mesh shader+ -- workgroup.+ maxMeshOutputVertices :: Word32+ , -- | #limits-maxMeshOutputPrimitives# @maxMeshOutputPrimitives@ is the+ -- maximum number of primitives which /can/ be emitted by a single mesh+ -- shader workgroup.+ maxMeshOutputPrimitives :: Word32+ , -- | #limits-maxMeshOutputLayers# @maxMeshOutputLayers@ is one greater than+ -- the maximum layer index that /can/ be output from the mesh shader stage.+ maxMeshOutputLayers :: Word32+ , -- | #limits-maxMeshMultiviewViewCount# @maxMeshMultiviewViewCount@ is one+ -- greater than the maximum view index that /can/ be used by any mesh+ -- shader.+ maxMeshMultiviewViewCount :: Word32+ , -- | #limits-meshOutputPerVertexGranularity# @meshOutputPerVertexGranularity@+ -- is the granularity of vertex allocation. The number of output vertices+ -- allocated for the mesh shader stage is padded to a multiple of this+ -- number. The value can be used to calculate the required storage size for+ -- output variables in shader modules in the mesh shader stage, which+ -- /must/ be less than or equal to @maxMeshOutputMemorySize@.+ meshOutputPerVertexGranularity :: Word32+ , -- | #limits-meshOutputPerPrimitiveGranularity#+ -- @meshOutputPerPrimitiveGranularity@ is the granularity of primitive+ -- allocation. The number of output primitives allocated for the mesh+ -- shader stage is padded to a multiple of this number. The value can be+ -- used to calculate the required storage size for output variables in+ -- shader modules in the mesh shader stage, which /must/ be less than or+ -- equal to @maxMeshOutputMemorySize@.+ meshOutputPerPrimitiveGranularity :: Word32+ , -- | #limits-maxPreferredTaskWorkGroupInvocations#+ -- @maxPreferredTaskWorkGroupInvocations@ is the maximum number of task+ -- shader invocations in a single workgroup that is preferred by the+ -- implementation for optimal performance. The value is guaranteed to be a+ -- multiple of a supported subgroup size for the task shader stage.+ maxPreferredTaskWorkGroupInvocations :: Word32+ , -- | #limits-maxPreferredMeshWorkGroupInvocations#+ -- @maxPreferredMeshWorkGroupInvocations@ is the maximum number of mesh+ -- shader invocations in a single workgroup that is preferred by the+ -- implementation for optimal performance. The value is guaranteed to be a+ -- multiple of a supported subgroup size for the mesh shader stage.+ maxPreferredMeshWorkGroupInvocations :: Word32+ , -- | #limits-prefersLocalInvocationVertexOutput#+ -- @prefersLocalInvocationVertexOutput@ specifies whether writes to the+ -- vertex output array in a mesh shader yield best performance when the+ -- array index matches @LocalInvocationIndex@.+ prefersLocalInvocationVertexOutput :: Bool+ , -- | #limits-prefersLocalInvocationPrimitiveOutput#+ -- @prefersLocalInvocationPrimitiveOutput@ specifies whether writes to the+ -- primitive output array in a mesh shader yield best performance when the+ -- array index matches @LocalInvocationIndex@.+ prefersLocalInvocationPrimitiveOutput :: Bool+ , -- | #limits-prefersCompactVertexOutput# @prefersCompactVertexOutput@+ -- specifies whether output vertices should be compacted after custom+ -- culling in the mesh shader for best performance, otherwise keeping the+ -- vertices at their original location may be better.+ prefersCompactVertexOutput :: Bool+ , -- | #limits-prefersCompactPrimitiveOutput# @prefersCompactPrimitiveOutput@+ -- specifies whether output primitives should be compacted after custom+ -- culling in the mesh shader for best performance, otherwise the use of+ -- @CullPrimitiveEXT@ may be better.+ prefersCompactPrimitiveOutput :: Bool+ }+ deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (PhysicalDeviceMeshShaderPropertiesEXT)+#endif+deriving instance Show PhysicalDeviceMeshShaderPropertiesEXT++instance ToCStruct PhysicalDeviceMeshShaderPropertiesEXT where+ withCStruct x f = allocaBytes 160 $ \p -> pokeCStruct p x (f p)+ pokeCStruct p PhysicalDeviceMeshShaderPropertiesEXT{..} f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_EXT)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr Word32)) (maxTaskWorkGroupTotalCount)+ let pMaxTaskWorkGroupCount' = lowerArrayPtr ((p `plusPtr` 20 :: Ptr (FixedArray 3 Word32)))+ case (maxTaskWorkGroupCount) of+ (e0, e1, e2) -> do+ poke (pMaxTaskWorkGroupCount' :: Ptr Word32) (e0)+ poke (pMaxTaskWorkGroupCount' `plusPtr` 4 :: Ptr Word32) (e1)+ poke (pMaxTaskWorkGroupCount' `plusPtr` 8 :: Ptr Word32) (e2)+ poke ((p `plusPtr` 32 :: Ptr Word32)) (maxTaskWorkGroupInvocations)+ let pMaxTaskWorkGroupSize' = lowerArrayPtr ((p `plusPtr` 36 :: Ptr (FixedArray 3 Word32)))+ case (maxTaskWorkGroupSize) of+ (e0, e1, e2) -> do+ poke (pMaxTaskWorkGroupSize' :: Ptr Word32) (e0)+ poke (pMaxTaskWorkGroupSize' `plusPtr` 4 :: Ptr Word32) (e1)+ poke (pMaxTaskWorkGroupSize' `plusPtr` 8 :: Ptr Word32) (e2)+ poke ((p `plusPtr` 48 :: Ptr Word32)) (maxTaskPayloadSize)+ poke ((p `plusPtr` 52 :: Ptr Word32)) (maxTaskSharedMemorySize)+ poke ((p `plusPtr` 56 :: Ptr Word32)) (maxTaskPayloadAndSharedMemorySize)+ poke ((p `plusPtr` 60 :: Ptr Word32)) (maxMeshWorkGroupTotalCount)+ let pMaxMeshWorkGroupCount' = lowerArrayPtr ((p `plusPtr` 64 :: Ptr (FixedArray 3 Word32)))+ case (maxMeshWorkGroupCount) of+ (e0, e1, e2) -> do+ poke (pMaxMeshWorkGroupCount' :: Ptr Word32) (e0)+ poke (pMaxMeshWorkGroupCount' `plusPtr` 4 :: Ptr Word32) (e1)+ poke (pMaxMeshWorkGroupCount' `plusPtr` 8 :: Ptr Word32) (e2)+ poke ((p `plusPtr` 76 :: Ptr Word32)) (maxMeshWorkGroupInvocations)+ let pMaxMeshWorkGroupSize' = lowerArrayPtr ((p `plusPtr` 80 :: Ptr (FixedArray 3 Word32)))+ case (maxMeshWorkGroupSize) of+ (e0, e1, e2) -> do+ poke (pMaxMeshWorkGroupSize' :: Ptr Word32) (e0)+ poke (pMaxMeshWorkGroupSize' `plusPtr` 4 :: Ptr Word32) (e1)+ poke (pMaxMeshWorkGroupSize' `plusPtr` 8 :: Ptr Word32) (e2)+ poke ((p `plusPtr` 92 :: Ptr Word32)) (maxMeshSharedMemorySize)+ poke ((p `plusPtr` 96 :: Ptr Word32)) (maxMeshPayloadAndSharedMemorySize)+ poke ((p `plusPtr` 100 :: Ptr Word32)) (maxMeshOutputMemorySize)+ poke ((p `plusPtr` 104 :: Ptr Word32)) (maxMeshPayloadAndOutputMemorySize)+ poke ((p `plusPtr` 108 :: Ptr Word32)) (maxMeshOutputComponents)+ poke ((p `plusPtr` 112 :: Ptr Word32)) (maxMeshOutputVertices)+ poke ((p `plusPtr` 116 :: Ptr Word32)) (maxMeshOutputPrimitives)+ poke ((p `plusPtr` 120 :: Ptr Word32)) (maxMeshOutputLayers)+ poke ((p `plusPtr` 124 :: Ptr Word32)) (maxMeshMultiviewViewCount)+ poke ((p `plusPtr` 128 :: Ptr Word32)) (meshOutputPerVertexGranularity)+ poke ((p `plusPtr` 132 :: Ptr Word32)) (meshOutputPerPrimitiveGranularity)+ poke ((p `plusPtr` 136 :: Ptr Word32)) (maxPreferredTaskWorkGroupInvocations)+ poke ((p `plusPtr` 140 :: Ptr Word32)) (maxPreferredMeshWorkGroupInvocations)+ poke ((p `plusPtr` 144 :: Ptr Bool32)) (boolToBool32 (prefersLocalInvocationVertexOutput))+ poke ((p `plusPtr` 148 :: Ptr Bool32)) (boolToBool32 (prefersLocalInvocationPrimitiveOutput))+ poke ((p `plusPtr` 152 :: Ptr Bool32)) (boolToBool32 (prefersCompactVertexOutput))+ poke ((p `plusPtr` 156 :: Ptr Bool32)) (boolToBool32 (prefersCompactPrimitiveOutput))+ f+ cStructSize = 160+ cStructAlignment = 8+ pokeZeroCStruct p f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_EXT)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr Word32)) (zero)+ let pMaxTaskWorkGroupCount' = lowerArrayPtr ((p `plusPtr` 20 :: Ptr (FixedArray 3 Word32)))+ case ((zero, zero, zero)) of+ (e0, e1, e2) -> do+ poke (pMaxTaskWorkGroupCount' :: Ptr Word32) (e0)+ poke (pMaxTaskWorkGroupCount' `plusPtr` 4 :: Ptr Word32) (e1)+ poke (pMaxTaskWorkGroupCount' `plusPtr` 8 :: Ptr Word32) (e2)+ poke ((p `plusPtr` 32 :: Ptr Word32)) (zero)+ let pMaxTaskWorkGroupSize' = lowerArrayPtr ((p `plusPtr` 36 :: Ptr (FixedArray 3 Word32)))+ case ((zero, zero, zero)) of+ (e0, e1, e2) -> do+ poke (pMaxTaskWorkGroupSize' :: Ptr Word32) (e0)+ poke (pMaxTaskWorkGroupSize' `plusPtr` 4 :: Ptr Word32) (e1)+ poke (pMaxTaskWorkGroupSize' `plusPtr` 8 :: Ptr Word32) (e2)+ poke ((p `plusPtr` 48 :: Ptr Word32)) (zero)+ poke ((p `plusPtr` 52 :: Ptr Word32)) (zero)+ poke ((p `plusPtr` 56 :: Ptr Word32)) (zero)+ poke ((p `plusPtr` 60 :: Ptr Word32)) (zero)+ let pMaxMeshWorkGroupCount' = lowerArrayPtr ((p `plusPtr` 64 :: Ptr (FixedArray 3 Word32)))+ case ((zero, zero, zero)) of+ (e0, e1, e2) -> do+ poke (pMaxMeshWorkGroupCount' :: Ptr Word32) (e0)+ poke (pMaxMeshWorkGroupCount' `plusPtr` 4 :: Ptr Word32) (e1)+ poke (pMaxMeshWorkGroupCount' `plusPtr` 8 :: Ptr Word32) (e2)+ poke ((p `plusPtr` 76 :: Ptr Word32)) (zero)+ let pMaxMeshWorkGroupSize' = lowerArrayPtr ((p `plusPtr` 80 :: Ptr (FixedArray 3 Word32)))+ case ((zero, zero, zero)) of+ (e0, e1, e2) -> do+ poke (pMaxMeshWorkGroupSize' :: Ptr Word32) (e0)+ poke (pMaxMeshWorkGroupSize' `plusPtr` 4 :: Ptr Word32) (e1)+ poke (pMaxMeshWorkGroupSize' `plusPtr` 8 :: Ptr Word32) (e2)+ poke ((p `plusPtr` 92 :: Ptr Word32)) (zero)+ poke ((p `plusPtr` 96 :: Ptr Word32)) (zero)+ poke ((p `plusPtr` 100 :: Ptr Word32)) (zero)+ poke ((p `plusPtr` 104 :: Ptr Word32)) (zero)+ poke ((p `plusPtr` 108 :: Ptr Word32)) (zero)+ poke ((p `plusPtr` 112 :: Ptr Word32)) (zero)+ poke ((p `plusPtr` 116 :: Ptr Word32)) (zero)+ poke ((p `plusPtr` 120 :: Ptr Word32)) (zero)+ poke ((p `plusPtr` 124 :: Ptr Word32)) (zero)+ poke ((p `plusPtr` 128 :: Ptr Word32)) (zero)+ poke ((p `plusPtr` 132 :: Ptr Word32)) (zero)+ poke ((p `plusPtr` 136 :: Ptr Word32)) (zero)+ poke ((p `plusPtr` 140 :: Ptr Word32)) (zero)+ poke ((p `plusPtr` 144 :: Ptr Bool32)) (boolToBool32 (zero))+ poke ((p `plusPtr` 148 :: Ptr Bool32)) (boolToBool32 (zero))+ poke ((p `plusPtr` 152 :: Ptr Bool32)) (boolToBool32 (zero))+ poke ((p `plusPtr` 156 :: Ptr Bool32)) (boolToBool32 (zero))+ f++instance FromCStruct PhysicalDeviceMeshShaderPropertiesEXT where+ peekCStruct p = do+ maxTaskWorkGroupTotalCount <- peek @Word32 ((p `plusPtr` 16 :: Ptr Word32))+ let pmaxTaskWorkGroupCount = lowerArrayPtr @Word32 ((p `plusPtr` 20 :: Ptr (FixedArray 3 Word32)))+ maxTaskWorkGroupCount0 <- peek @Word32 ((pmaxTaskWorkGroupCount `advancePtrBytes` 0 :: Ptr Word32))+ maxTaskWorkGroupCount1 <- peek @Word32 ((pmaxTaskWorkGroupCount `advancePtrBytes` 4 :: Ptr Word32))+ maxTaskWorkGroupCount2 <- peek @Word32 ((pmaxTaskWorkGroupCount `advancePtrBytes` 8 :: Ptr Word32))+ maxTaskWorkGroupInvocations <- peek @Word32 ((p `plusPtr` 32 :: Ptr Word32))+ let pmaxTaskWorkGroupSize = lowerArrayPtr @Word32 ((p `plusPtr` 36 :: Ptr (FixedArray 3 Word32)))+ maxTaskWorkGroupSize0 <- peek @Word32 ((pmaxTaskWorkGroupSize `advancePtrBytes` 0 :: Ptr Word32))+ maxTaskWorkGroupSize1 <- peek @Word32 ((pmaxTaskWorkGroupSize `advancePtrBytes` 4 :: Ptr Word32))+ maxTaskWorkGroupSize2 <- peek @Word32 ((pmaxTaskWorkGroupSize `advancePtrBytes` 8 :: Ptr Word32))+ maxTaskPayloadSize <- peek @Word32 ((p `plusPtr` 48 :: Ptr Word32))+ maxTaskSharedMemorySize <- peek @Word32 ((p `plusPtr` 52 :: Ptr Word32))+ maxTaskPayloadAndSharedMemorySize <- peek @Word32 ((p `plusPtr` 56 :: Ptr Word32))+ maxMeshWorkGroupTotalCount <- peek @Word32 ((p `plusPtr` 60 :: Ptr Word32))+ let pmaxMeshWorkGroupCount = lowerArrayPtr @Word32 ((p `plusPtr` 64 :: Ptr (FixedArray 3 Word32)))+ maxMeshWorkGroupCount0 <- peek @Word32 ((pmaxMeshWorkGroupCount `advancePtrBytes` 0 :: Ptr Word32))+ maxMeshWorkGroupCount1 <- peek @Word32 ((pmaxMeshWorkGroupCount `advancePtrBytes` 4 :: Ptr Word32))+ maxMeshWorkGroupCount2 <- peek @Word32 ((pmaxMeshWorkGroupCount `advancePtrBytes` 8 :: Ptr Word32))+ maxMeshWorkGroupInvocations <- peek @Word32 ((p `plusPtr` 76 :: Ptr Word32))+ let pmaxMeshWorkGroupSize = lowerArrayPtr @Word32 ((p `plusPtr` 80 :: Ptr (FixedArray 3 Word32)))+ maxMeshWorkGroupSize0 <- peek @Word32 ((pmaxMeshWorkGroupSize `advancePtrBytes` 0 :: Ptr Word32))+ maxMeshWorkGroupSize1 <- peek @Word32 ((pmaxMeshWorkGroupSize `advancePtrBytes` 4 :: Ptr Word32))+ maxMeshWorkGroupSize2 <- peek @Word32 ((pmaxMeshWorkGroupSize `advancePtrBytes` 8 :: Ptr Word32))+ maxMeshSharedMemorySize <- peek @Word32 ((p `plusPtr` 92 :: Ptr Word32))+ maxMeshPayloadAndSharedMemorySize <- peek @Word32 ((p `plusPtr` 96 :: Ptr Word32))+ maxMeshOutputMemorySize <- peek @Word32 ((p `plusPtr` 100 :: Ptr Word32))+ maxMeshPayloadAndOutputMemorySize <- peek @Word32 ((p `plusPtr` 104 :: Ptr Word32))+ maxMeshOutputComponents <- peek @Word32 ((p `plusPtr` 108 :: Ptr Word32))+ maxMeshOutputVertices <- peek @Word32 ((p `plusPtr` 112 :: Ptr Word32))+ maxMeshOutputPrimitives <- peek @Word32 ((p `plusPtr` 116 :: Ptr Word32))+ maxMeshOutputLayers <- peek @Word32 ((p `plusPtr` 120 :: Ptr Word32))+ maxMeshMultiviewViewCount <- peek @Word32 ((p `plusPtr` 124 :: Ptr Word32))+ meshOutputPerVertexGranularity <- peek @Word32 ((p `plusPtr` 128 :: Ptr Word32))+ meshOutputPerPrimitiveGranularity <- peek @Word32 ((p `plusPtr` 132 :: Ptr Word32))+ maxPreferredTaskWorkGroupInvocations <- peek @Word32 ((p `plusPtr` 136 :: Ptr Word32))+ maxPreferredMeshWorkGroupInvocations <- peek @Word32 ((p `plusPtr` 140 :: Ptr Word32))+ prefersLocalInvocationVertexOutput <- peek @Bool32 ((p `plusPtr` 144 :: Ptr Bool32))+ prefersLocalInvocationPrimitiveOutput <- peek @Bool32 ((p `plusPtr` 148 :: Ptr Bool32))+ prefersCompactVertexOutput <- peek @Bool32 ((p `plusPtr` 152 :: Ptr Bool32))+ prefersCompactPrimitiveOutput <- peek @Bool32 ((p `plusPtr` 156 :: Ptr Bool32))+ pure $ PhysicalDeviceMeshShaderPropertiesEXT+ maxTaskWorkGroupTotalCount ((maxTaskWorkGroupCount0, maxTaskWorkGroupCount1, maxTaskWorkGroupCount2)) maxTaskWorkGroupInvocations ((maxTaskWorkGroupSize0, maxTaskWorkGroupSize1, maxTaskWorkGroupSize2)) maxTaskPayloadSize maxTaskSharedMemorySize maxTaskPayloadAndSharedMemorySize maxMeshWorkGroupTotalCount ((maxMeshWorkGroupCount0, maxMeshWorkGroupCount1, maxMeshWorkGroupCount2)) maxMeshWorkGroupInvocations ((maxMeshWorkGroupSize0, maxMeshWorkGroupSize1, maxMeshWorkGroupSize2)) maxMeshSharedMemorySize maxMeshPayloadAndSharedMemorySize maxMeshOutputMemorySize maxMeshPayloadAndOutputMemorySize maxMeshOutputComponents maxMeshOutputVertices maxMeshOutputPrimitives maxMeshOutputLayers maxMeshMultiviewViewCount meshOutputPerVertexGranularity meshOutputPerPrimitiveGranularity maxPreferredTaskWorkGroupInvocations maxPreferredMeshWorkGroupInvocations (bool32ToBool prefersLocalInvocationVertexOutput) (bool32ToBool prefersLocalInvocationPrimitiveOutput) (bool32ToBool prefersCompactVertexOutput) (bool32ToBool prefersCompactPrimitiveOutput)++instance Storable PhysicalDeviceMeshShaderPropertiesEXT where+ sizeOf ~_ = 160+ alignment ~_ = 8+ peek = peekCStruct+ poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero PhysicalDeviceMeshShaderPropertiesEXT where+ zero = PhysicalDeviceMeshShaderPropertiesEXT+ zero+ (zero, zero, zero)+ zero+ (zero, zero, zero)+ zero+ zero+ zero+ zero+ (zero, zero, zero)+ zero+ (zero, zero, zero)+ zero+ zero+ zero+ zero+ zero+ zero+ zero+ zero+ zero+ zero+ zero+ zero+ zero+ zero+ zero+ zero+ zero+++-- | VkDrawMeshTasksIndirectCommandEXT - Structure specifying a mesh tasks+-- draw indirect command+--+-- = Description+--+-- The members of 'DrawMeshTasksIndirectCommandEXT' have the same meaning+-- as the similarly named parameters of 'cmdDrawMeshTasksEXT'.+--+-- == Valid Usage+--+-- - #VUID-VkDrawMeshTasksIndirectCommandEXT-groupCountX-07092#+-- @groupCountX@ /must/ be less than or equal to+-- 'PhysicalDeviceMeshShaderPropertiesEXT'::@maxTaskWorkGroupCount@[0]+--+-- - #VUID-VkDrawMeshTasksIndirectCommandEXT-groupCountY-07093#+-- @groupCountY@ /must/ be less than or equal to+-- 'PhysicalDeviceMeshShaderPropertiesEXT'::@maxTaskWorkGroupCount@[1]+--+-- - #VUID-VkDrawMeshTasksIndirectCommandEXT-groupCountZ-07094#+-- @groupCountZ@ /must/ be less than or equal to+-- 'PhysicalDeviceMeshShaderPropertiesEXT'::@maxTaskWorkGroupCount@[2]+--+-- - #VUID-VkDrawMeshTasksIndirectCommandEXT-groupCountX-07095# The+-- product of @groupCountX@, @groupCountY@ and @groupCountZ@ /must/ be+-- less than or equal to+-- 'PhysicalDeviceMeshShaderPropertiesEXT'::@maxTaskWorkGroupTotalCount@+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_mesh_shader VK_EXT_mesh_shader>,+-- 'cmdDrawMeshTasksIndirectEXT'+data DrawMeshTasksIndirectCommandEXT = DrawMeshTasksIndirectCommandEXT+ { -- | @groupCountX@ is the number of local workgroups to dispatch in the X+ -- dimension.+ groupCountX :: Word32+ , -- | @groupCountY@ is the number of local workgroups to dispatch in the Y+ -- dimension.+ groupCountY :: Word32+ , -- | @groupCountZ@ is the number of local workgroups to dispatch in the Z+ -- dimension.+ groupCountZ :: Word32+ }+ deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (DrawMeshTasksIndirectCommandEXT)+#endif+deriving instance Show DrawMeshTasksIndirectCommandEXT++instance ToCStruct DrawMeshTasksIndirectCommandEXT where+ withCStruct x f = allocaBytes 12 $ \p -> pokeCStruct p x (f p)+ pokeCStruct p DrawMeshTasksIndirectCommandEXT{..} f = do+ poke ((p `plusPtr` 0 :: Ptr Word32)) (groupCountX)+ poke ((p `plusPtr` 4 :: Ptr Word32)) (groupCountY)+ poke ((p `plusPtr` 8 :: Ptr Word32)) (groupCountZ)+ f+ cStructSize = 12+ cStructAlignment = 4+ pokeZeroCStruct p f = do+ poke ((p `plusPtr` 0 :: Ptr Word32)) (zero)+ poke ((p `plusPtr` 4 :: Ptr Word32)) (zero)+ poke ((p `plusPtr` 8 :: Ptr Word32)) (zero)+ f++instance FromCStruct DrawMeshTasksIndirectCommandEXT where+ peekCStruct p = do+ groupCountX <- peek @Word32 ((p `plusPtr` 0 :: Ptr Word32))+ groupCountY <- peek @Word32 ((p `plusPtr` 4 :: Ptr Word32))+ groupCountZ <- peek @Word32 ((p `plusPtr` 8 :: Ptr Word32))+ pure $ DrawMeshTasksIndirectCommandEXT+ groupCountX groupCountY groupCountZ++instance Storable DrawMeshTasksIndirectCommandEXT where+ sizeOf ~_ = 12+ alignment ~_ = 4+ peek = peekCStruct+ poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero DrawMeshTasksIndirectCommandEXT where+ zero = DrawMeshTasksIndirectCommandEXT+ zero+ zero+ zero+++type EXT_MESH_SHADER_SPEC_VERSION = 1++-- No documentation found for TopLevel "VK_EXT_MESH_SHADER_SPEC_VERSION"+pattern EXT_MESH_SHADER_SPEC_VERSION :: forall a . Integral a => a+pattern EXT_MESH_SHADER_SPEC_VERSION = 1+++type EXT_MESH_SHADER_EXTENSION_NAME = "VK_EXT_mesh_shader"++-- No documentation found for TopLevel "VK_EXT_MESH_SHADER_EXTENSION_NAME"+pattern EXT_MESH_SHADER_EXTENSION_NAME :: forall a . (Eq a, IsString a) => a+pattern EXT_MESH_SHADER_EXTENSION_NAME = "VK_EXT_mesh_shader"+
+ src/Vulkan/Extensions/VK_EXT_mesh_shader.hs-boot view
@@ -0,0 +1,286 @@+{-# language CPP #-}+-- | = Name+--+-- VK_EXT_mesh_shader - device extension+--+-- == VK_EXT_mesh_shader+--+-- [__Name String__]+-- @VK_EXT_mesh_shader@+--+-- [__Extension Type__]+-- Device extension+--+-- [__Registered Extension Number__]+-- 329+--+-- [__Revision__]+-- 1+--+-- [__Extension and Version Dependencies__]+--+-- - Requires support for Vulkan 1.0+--+-- - Requires @VK_KHR_get_physical_device_properties2@ to be enabled+-- for any device-level functionality+--+-- [__Contact__]+--+-- - Christoph Kubisch+-- <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_EXT_mesh_shader] @pixeljetstream%0A<<Here describe the issue or question you have about the VK_EXT_mesh_shader extension>> >+--+-- [__Extension Proposal__]+-- <https://github.com/KhronosGroup/Vulkan-Docs/tree/main/proposals/VK_EXT_mesh_shader.adoc VK_EXT_mesh_shader>+--+-- == Other Extension Metadata+--+-- [__Last Modified Date__]+-- 2022-01-20+--+-- [__Interactions and External Dependencies__]+--+-- - This extension requires+-- <https://htmlpreview.github.io/?https://github.com/KhronosGroup/SPIRV-Registry/blob/master/extensions/EXT/SPV_EXT_mesh_shader.html SPV_EXT_mesh_shader>+--+-- - This extension provides API support for+-- <https://github.com/KhronosGroup/GLSL/blob/master/extensions/ext/GLSL_EXT_mesh_shader.txt GLSL_EXT_mesh_shader>+--+-- - Interacts with Vulkan 1.1+--+-- - Interacts with @VK_KHR_multiview@+--+-- - Interacts with @VK_KHR_fragment_shading_rate@+--+-- [__Contributors__]+--+-- - Christoph Kubisch, NVIDIA+--+-- - Pat Brown, NVIDIA+--+-- - Jeff Bolz, NVIDIA+--+-- - Daniel Koch, NVIDIA+--+-- - Piers Daniell, NVIDIA+--+-- - Pierre Boudier, NVIDIA+--+-- - Patrick Mours, NVIDIA+--+-- - David Zhao Akeley, NVIDIA+--+-- - Kedarnath Thangudu, NVIDIA+--+-- - Timur Kristóf, Valve+--+-- - Hans-Kristian Arntzen, Valve+--+-- - Philip Rebohle, Valve+--+-- - Mike Blumenkrantz, Valve+--+-- - Slawomir Grajewski, Intel+--+-- - Michal Pietrasiuk, Intel+--+-- - Mariusz Merecki, Intel+--+-- - Tom Olson, ARM+--+-- - Jan-Harald Fredriksen, ARM+--+-- - Sandeep Kakarlapudi, ARM+--+-- - Ruihao Zhang, QUALCOMM+--+-- - Ricardo Garcia, Igalia, S.L.+--+-- - Tobias Hector, AMD+--+-- - Stu Smith, AMD+--+-- == Description+--+-- This extension provides a new mechanism allowing applications to+-- generate collections of geometric primitives via programmable mesh+-- shading. It is an alternative to the existing programmable primitive+-- shading pipeline, which relied on generating input primitives by a fixed+-- function assembler as well as fixed function vertex fetch.+--+-- This extension also adds support for the following SPIR-V extension in+-- Vulkan:+--+-- - <https://htmlpreview.github.io/?https://github.com/KhronosGroup/SPIRV-Registry/blob/master/extensions/EXT/SPV_EXT_mesh_shader.html SPV_EXT_mesh_shader>+--+-- == New Commands+--+-- - 'cmdDrawMeshTasksEXT'+--+-- - 'cmdDrawMeshTasksIndirectCountEXT'+--+-- - 'cmdDrawMeshTasksIndirectEXT'+--+-- == New Structures+--+-- - 'DrawMeshTasksIndirectCommandEXT'+--+-- - Extending+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',+-- 'Vulkan.Core10.Device.DeviceCreateInfo':+--+-- - 'PhysicalDeviceMeshShaderFeaturesEXT'+--+-- - Extending+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2':+--+-- - 'PhysicalDeviceMeshShaderPropertiesEXT'+--+-- == New Enum Constants+--+-- - 'EXT_MESH_SHADER_EXTENSION_NAME'+--+-- - 'EXT_MESH_SHADER_SPEC_VERSION'+--+-- - Extending+-- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlagBits':+--+-- - 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_MESH_SHADER_BIT_EXT'+--+-- - 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TASK_SHADER_BIT_EXT'+--+-- - Extending+-- 'Vulkan.Core10.Enums.QueryPipelineStatisticFlagBits.QueryPipelineStatisticFlagBits':+--+-- - 'Vulkan.Core10.Enums.QueryPipelineStatisticFlagBits.QUERY_PIPELINE_STATISTIC_MESH_SHADER_INVOCATIONS_BIT_EXT'+--+-- - 'Vulkan.Core10.Enums.QueryPipelineStatisticFlagBits.QUERY_PIPELINE_STATISTIC_TASK_SHADER_INVOCATIONS_BIT_EXT'+--+-- - Extending 'Vulkan.Core10.Enums.QueryType.QueryType':+--+-- - 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_MESH_PRIMITIVES_GENERATED_EXT'+--+-- - Extending+-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.ShaderStageFlagBits':+--+-- - 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'+--+-- - 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT'+--+-- - Extending 'Vulkan.Core10.Enums.StructureType.StructureType':+--+-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_EXT'+--+-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_EXT'+--+-- If+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_device_generated_commands VK_NV_device_generated_commands>+-- is supported:+--+-- - Extending+-- 'Vulkan.Extensions.VK_NV_device_generated_commands.IndirectCommandsTokenTypeNV':+--+-- - 'Vulkan.Extensions.VK_NV_device_generated_commands.INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_NV'+--+-- == New or Modified Built-In Variables+--+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-cullprimitive CullPrimitiveEXT>+--+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-primitivepointindices PrimitivePointIndicesEXT>+--+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-primitivelineindices PrimitiveLineIndicesEXT>+--+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-primitivetriangleindices PrimitiveTriangleIndicesEXT>+--+-- - (modified)@Position@+--+-- - (modified)@PointSize@+--+-- - (modified)@ClipDistance@+--+-- - (modified)@CullDistance@+--+-- - (modified)@PrimitiveId@+--+-- - (modified)@Layer@+--+-- - (modified)@ViewportIndex@+--+-- - (modified)@NumWorkgroups@+--+-- - (modified)@WorkgroupSize@+--+-- - (modified)@WorkgroupId@+--+-- - (modified)@LocalInvocationId@+--+-- - (modified)@GlobalInvocationId@+--+-- - (modified)@LocalInvocationIndex@+--+-- - (modified)@NumSubgroups@+--+-- - (modified)@SubgroupId@+--+-- - (modified)@DrawIndex@+--+-- - (modified)@PrimitiveShadingRateKHR@+--+-- - (modified)@ViewIndex@+--+-- == New SPIR-V Capability+--+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-meshshading MeshShadingEXT>+--+-- == Version History+--+-- - Revision 1, 2022-03-08 (Christoph Kubisch, Daniel Koch, Patrick+-- Mours)+--+-- - Initial revision+--+-- == See Also+--+-- 'DrawMeshTasksIndirectCommandEXT',+-- 'PhysicalDeviceMeshShaderFeaturesEXT',+-- 'PhysicalDeviceMeshShaderPropertiesEXT', 'cmdDrawMeshTasksEXT',+-- 'cmdDrawMeshTasksIndirectCountEXT', 'cmdDrawMeshTasksIndirectEXT'+--+-- == Document Notes+--+-- For more information, see the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_mesh_shader Vulkan Specification>+--+-- This page is a generated document. Fixes and changes should be made to+-- the generator scripts, not directly.+module Vulkan.Extensions.VK_EXT_mesh_shader ( DrawMeshTasksIndirectCommandEXT+ , PhysicalDeviceMeshShaderFeaturesEXT+ , PhysicalDeviceMeshShaderPropertiesEXT+ ) where++import Vulkan.CStruct (FromCStruct)+import Vulkan.CStruct (ToCStruct)+import Data.Kind (Type)++data DrawMeshTasksIndirectCommandEXT++instance ToCStruct DrawMeshTasksIndirectCommandEXT+instance Show DrawMeshTasksIndirectCommandEXT++instance FromCStruct DrawMeshTasksIndirectCommandEXT+++data PhysicalDeviceMeshShaderFeaturesEXT++instance ToCStruct PhysicalDeviceMeshShaderFeaturesEXT+instance Show PhysicalDeviceMeshShaderFeaturesEXT++instance FromCStruct PhysicalDeviceMeshShaderFeaturesEXT+++data PhysicalDeviceMeshShaderPropertiesEXT++instance ToCStruct PhysicalDeviceMeshShaderPropertiesEXT+instance Show PhysicalDeviceMeshShaderPropertiesEXT++instance FromCStruct PhysicalDeviceMeshShaderPropertiesEXT+
+ src/Vulkan/Extensions/VK_EXT_metal_objects.hs view
@@ -0,0 +1,1423 @@+{-# language CPP #-}+-- | = Name+--+-- VK_EXT_metal_objects - device extension+--+-- == VK_EXT_metal_objects+--+-- [__Name String__]+-- @VK_EXT_metal_objects@+--+-- [__Extension Type__]+-- Device extension+--+-- [__Registered Extension Number__]+-- 312+--+-- [__Revision__]+-- 1+--+-- [__Extension and Version Dependencies__]+--+-- - Requires support for Vulkan 1.0+--+-- [__Contact__]+--+-- - Bill Hollings+-- <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_EXT_metal_objects] @billhollings%0A<<Here describe the issue or question you have about the VK_EXT_metal_objects extension>> >+--+-- [__Extension Proposal__]+-- <https://github.com/KhronosGroup/Vulkan-Docs/tree/main/proposals/VK_EXT_metal_objects.adoc VK_EXT_metal_objects>+--+-- == Other Extension Metadata+--+-- [__Last Modified Date__]+-- 2022-05-28+--+-- [__IP Status__]+-- No known IP claims.+--+-- [__Contributors__]+--+-- - Bill Hollings, The Brenwill Workshop Ltd.+--+-- - Dzmitry Malyshau, Mozilla Corp.+--+-- == Description+--+-- In a Vulkan implementation that is layered on top of Metal on Apple+-- device platforms, this extension provides the ability to import and+-- export the underlying Metal objects associated with specific Vulkan+-- objects.+--+-- As detailed in the+-- <https://github.com/KhronosGroup/Vulkan-Docs/tree/main/proposals/VK_EXT_metal_objects.adoc extension proposal document>,+-- this extension adds one new Vulkan command, 'exportMetalObjectsEXT', to+-- export underlying Metal objects from Vulkan objects, and supports+-- importing the appropriate existing Metal objects when creating Vulkan+-- objects of types 'Vulkan.Core10.Handles.DeviceMemory',+-- 'Vulkan.Core10.Handles.Image', 'Vulkan.Core10.Handles.Semaphore', and+-- 'Vulkan.Core10.Handles.Event',+--+-- The intent is that this extension will be advertised and supported only+-- on implementations that are layered on top of Metal on Apple device+-- platforms.+--+-- == New Base Types+--+-- - 'IOSurfaceRef'+--+-- - 'MTLBuffer_id'+--+-- - 'MTLCommandQueue_id'+--+-- - 'MTLDevice_id'+--+-- - 'MTLSharedEvent_id'+--+-- - 'MTLTexture_id'+--+-- == New Commands+--+-- - 'exportMetalObjectsEXT'+--+-- == New Structures+--+-- - 'ExportMetalObjectsInfoEXT'+--+-- - Extending 'ExportMetalObjectsInfoEXT':+--+-- - 'ExportMetalBufferInfoEXT'+--+-- - 'ExportMetalCommandQueueInfoEXT'+--+-- - 'ExportMetalDeviceInfoEXT'+--+-- - 'ExportMetalIOSurfaceInfoEXT'+--+-- - 'ExportMetalSharedEventInfoEXT'+--+-- - 'ExportMetalTextureInfoEXT'+--+-- - Extending 'Vulkan.Core10.Image.ImageCreateInfo':+--+-- - 'ImportMetalIOSurfaceInfoEXT'+--+-- - 'ImportMetalTextureInfoEXT'+--+-- - Extending 'Vulkan.Core10.DeviceInitialization.InstanceCreateInfo',+-- 'Vulkan.Core10.Memory.MemoryAllocateInfo',+-- 'Vulkan.Core10.Image.ImageCreateInfo',+-- 'Vulkan.Core10.ImageView.ImageViewCreateInfo',+-- 'Vulkan.Core10.BufferView.BufferViewCreateInfo',+-- 'Vulkan.Core10.QueueSemaphore.SemaphoreCreateInfo',+-- 'Vulkan.Core10.Event.EventCreateInfo':+--+-- - 'ExportMetalObjectCreateInfoEXT'+--+-- - Extending 'Vulkan.Core10.Memory.MemoryAllocateInfo':+--+-- - 'ImportMetalBufferInfoEXT'+--+-- - Extending 'Vulkan.Core10.QueueSemaphore.SemaphoreCreateInfo',+-- 'Vulkan.Core10.Event.EventCreateInfo':+--+-- - 'ImportMetalSharedEventInfoEXT'+--+-- == New Enums+--+-- - 'ExportMetalObjectTypeFlagBitsEXT'+--+-- == New Bitmasks+--+-- - 'ExportMetalObjectTypeFlagsEXT'+--+-- == New Enum Constants+--+-- - 'EXT_METAL_OBJECTS_EXTENSION_NAME'+--+-- - 'EXT_METAL_OBJECTS_SPEC_VERSION'+--+-- - Extending 'Vulkan.Core10.Enums.StructureType.StructureType':+--+-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_EXPORT_METAL_BUFFER_INFO_EXT'+--+-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_EXPORT_METAL_COMMAND_QUEUE_INFO_EXT'+--+-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_EXPORT_METAL_DEVICE_INFO_EXT'+--+-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_EXPORT_METAL_IO_SURFACE_INFO_EXT'+--+-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_EXPORT_METAL_OBJECTS_INFO_EXT'+--+-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_EXPORT_METAL_OBJECT_CREATE_INFO_EXT'+--+-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_EXPORT_METAL_SHARED_EVENT_INFO_EXT'+--+-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_EXPORT_METAL_TEXTURE_INFO_EXT'+--+-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_IMPORT_METAL_BUFFER_INFO_EXT'+--+-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_IMPORT_METAL_IO_SURFACE_INFO_EXT'+--+-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_IMPORT_METAL_SHARED_EVENT_INFO_EXT'+--+-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_IMPORT_METAL_TEXTURE_INFO_EXT'+--+-- == Issues+--+-- None.+--+-- == Version History+--+-- - Revision 1, 2022-05-28 (Bill Hollings)+--+-- - Initial draft.+--+-- - Incorporated feedback from review by the Vulkan Working Group.+-- Renamed many structures, moved import\/export of MTLBuffer to+-- VkDeviceMemory, added export of MTLSharedEvent, added import of+-- MTLSharedEvent for VkSemaphore and VkEvent, and changed used bit+-- mask fields to individual bit fields to simplify Valid Usage+-- rules.+--+-- == See Also+--+-- 'IOSurfaceRef', 'MTLBuffer_id', 'MTLCommandQueue_id', 'MTLDevice_id',+-- 'MTLSharedEvent_id', 'MTLTexture_id', 'ExportMetalBufferInfoEXT',+-- 'ExportMetalCommandQueueInfoEXT', 'ExportMetalDeviceInfoEXT',+-- 'ExportMetalIOSurfaceInfoEXT', 'ExportMetalObjectCreateInfoEXT',+-- 'ExportMetalObjectTypeFlagBitsEXT', 'ExportMetalObjectTypeFlagsEXT',+-- 'ExportMetalObjectsInfoEXT', 'ExportMetalSharedEventInfoEXT',+-- 'ExportMetalTextureInfoEXT', 'ImportMetalBufferInfoEXT',+-- 'ImportMetalIOSurfaceInfoEXT', 'ImportMetalSharedEventInfoEXT',+-- 'ImportMetalTextureInfoEXT', 'exportMetalObjectsEXT'+--+-- == Document Notes+--+-- For more information, see the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_metal_objects Vulkan Specification>+--+-- This page is a generated document. Fixes and changes should be made to+-- the generator scripts, not directly.+module Vulkan.Extensions.VK_EXT_metal_objects ( exportMetalObjectsEXT+ , ExportMetalObjectCreateInfoEXT(..)+ , ExportMetalObjectsInfoEXT(..)+ , ExportMetalDeviceInfoEXT(..)+ , ExportMetalCommandQueueInfoEXT(..)+ , ExportMetalBufferInfoEXT(..)+ , ImportMetalBufferInfoEXT(..)+ , ExportMetalTextureInfoEXT(..)+ , ImportMetalTextureInfoEXT(..)+ , ExportMetalIOSurfaceInfoEXT(..)+ , ImportMetalIOSurfaceInfoEXT(..)+ , ExportMetalSharedEventInfoEXT(..)+ , ImportMetalSharedEventInfoEXT(..)+ , ExportMetalObjectTypeFlagsEXT+ , ExportMetalObjectTypeFlagBitsEXT( EXPORT_METAL_OBJECT_TYPE_METAL_DEVICE_BIT_EXT+ , EXPORT_METAL_OBJECT_TYPE_METAL_COMMAND_QUEUE_BIT_EXT+ , EXPORT_METAL_OBJECT_TYPE_METAL_BUFFER_BIT_EXT+ , EXPORT_METAL_OBJECT_TYPE_METAL_TEXTURE_BIT_EXT+ , EXPORT_METAL_OBJECT_TYPE_METAL_IOSURFACE_BIT_EXT+ , EXPORT_METAL_OBJECT_TYPE_METAL_SHARED_EVENT_BIT_EXT+ , ..+ )+ , EXT_METAL_OBJECTS_SPEC_VERSION+ , pattern EXT_METAL_OBJECTS_SPEC_VERSION+ , EXT_METAL_OBJECTS_EXTENSION_NAME+ , pattern EXT_METAL_OBJECTS_EXTENSION_NAME+ , MTLDevice_id+ , MTLCommandQueue_id+ , MTLBuffer_id+ , MTLTexture_id+ , IOSurfaceRef+ , MTLSharedEvent_id+ ) where++import Vulkan.Internal.Utils (enumReadPrec)+import Vulkan.Internal.Utils (enumShowsPrec)+import Vulkan.Internal.Utils (traceAroundEvent)+import Control.Monad (unless)+import Control.Monad.IO.Class (liftIO)+import Data.Typeable (eqT)+import Foreign.Marshal.Alloc (allocaBytes)+import GHC.IO (throwIO)+import GHC.Ptr (castPtr)+import GHC.Ptr (nullFunPtr)+import Foreign.Ptr (nullPtr)+import Foreign.Ptr (plusPtr)+import GHC.Show (showString)+import Numeric (showHex)+import Control.Monad.Trans.Class (lift)+import Control.Monad.Trans.Cont (evalContT)+import Vulkan.CStruct (FromCStruct)+import Vulkan.CStruct (FromCStruct(..))+import Vulkan.CStruct (ToCStruct)+import Vulkan.CStruct (ToCStruct(..))+import Vulkan.Zero (Zero)+import Vulkan.Zero (Zero(..))+import Control.Monad.IO.Class (MonadIO)+import Data.Bits (Bits)+import Data.Bits (FiniteBits)+import Data.String (IsString)+import Data.Type.Equality ((:~:)(Refl))+import Data.Typeable (Typeable)+import Foreign.Storable (Storable)+import Foreign.Storable (Storable(peek))+import Foreign.Storable (Storable(poke))+import qualified Foreign.Storable (Storable(..))+import GHC.Generics (Generic)+import GHC.IO.Exception (IOErrorType(..))+import GHC.IO.Exception (IOException(..))+import Foreign.Ptr (FunPtr)+import Foreign.Ptr (Ptr)+import GHC.Read (Read(readPrec))+import GHC.Show (Show(showsPrec))+import Data.Kind (Type)+import Control.Monad.Trans.Cont (ContT(..))+import Vulkan.CStruct.Extends (forgetExtensions)+import Vulkan.Core10.Handles (BufferView)+import Vulkan.CStruct.Extends (Chain)+import Vulkan.Core10.Handles (Device)+import Vulkan.Core10.Handles (Device(..))+import Vulkan.Core10.Handles (Device(Device))+import Vulkan.Dynamic (DeviceCmds(pVkExportMetalObjectsEXT))+import Vulkan.Core10.Handles (DeviceMemory)+import Vulkan.Core10.Handles (Device_T)+import Vulkan.Core10.Handles (Event)+import Vulkan.CStruct.Extends (Extends)+import Vulkan.CStruct.Extends (Extendss)+import Vulkan.CStruct.Extends (Extensible(..))+import Vulkan.Core10.FundamentalTypes (Flags)+import Vulkan.Core10.Handles (Image)+import Vulkan.Core10.Enums.ImageAspectFlagBits (ImageAspectFlagBits)+import Vulkan.Core10.Handles (ImageView)+import Vulkan.CStruct.Extends (PeekChain)+import Vulkan.CStruct.Extends (PeekChain(..))+import Vulkan.CStruct.Extends (PokeChain)+import Vulkan.CStruct.Extends (PokeChain(..))+import Vulkan.Core10.Handles (Queue_T)+import Vulkan.Core10.Handles (Semaphore)+import Vulkan.CStruct.Extends (SomeStruct)+import Vulkan.Core10.Enums.StructureType (StructureType)+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_EXPORT_METAL_BUFFER_INFO_EXT))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_EXPORT_METAL_COMMAND_QUEUE_INFO_EXT))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_EXPORT_METAL_DEVICE_INFO_EXT))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_EXPORT_METAL_IO_SURFACE_INFO_EXT))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_EXPORT_METAL_OBJECTS_INFO_EXT))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_EXPORT_METAL_OBJECT_CREATE_INFO_EXT))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_EXPORT_METAL_SHARED_EVENT_INFO_EXT))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_EXPORT_METAL_TEXTURE_INFO_EXT))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_IMPORT_METAL_BUFFER_INFO_EXT))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_IMPORT_METAL_IO_SURFACE_INFO_EXT))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_IMPORT_METAL_SHARED_EVENT_INFO_EXT))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_IMPORT_METAL_TEXTURE_INFO_EXT))+foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+ unsafe+#endif+ "dynamic" mkVkExportMetalObjectsEXT+ :: FunPtr (Ptr Device_T -> Ptr (SomeStruct ExportMetalObjectsInfoEXT) -> IO ()) -> Ptr Device_T -> Ptr (SomeStruct ExportMetalObjectsInfoEXT) -> IO ()++-- | vkExportMetalObjectsEXT - Export Metal objects from the corresponding+-- Vulkan objects+--+-- == Valid Usage (Implicit)+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_metal_objects VK_EXT_metal_objects>,+-- 'Vulkan.Core10.Handles.Device', 'ExportMetalObjectsInfoEXT'+exportMetalObjectsEXT :: forall a io+ . (Extendss ExportMetalObjectsInfoEXT a, PokeChain a, PeekChain a, MonadIO io)+ => -- | @device@ is the device that created the Vulkan objects.+ --+ -- #VUID-vkExportMetalObjectsEXT-device-parameter# @device@ /must/ be a+ -- valid 'Vulkan.Core10.Handles.Device' handle+ Device+ -> io (ExportMetalObjectsInfoEXT a)+exportMetalObjectsEXT device = liftIO . evalContT $ do+ let vkExportMetalObjectsEXTPtr = pVkExportMetalObjectsEXT (case device of Device{deviceCmds} -> deviceCmds)+ lift $ unless (vkExportMetalObjectsEXTPtr /= nullFunPtr) $+ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkExportMetalObjectsEXT is null" Nothing Nothing+ let vkExportMetalObjectsEXT' = mkVkExportMetalObjectsEXT vkExportMetalObjectsEXTPtr+ pPMetalObjectsInfo <- ContT (withZeroCStruct @(ExportMetalObjectsInfoEXT _))+ lift $ traceAroundEvent "vkExportMetalObjectsEXT" (vkExportMetalObjectsEXT' (deviceHandle (device)) (forgetExtensions (pPMetalObjectsInfo)))+ pMetalObjectsInfo <- lift $ peekCStruct @(ExportMetalObjectsInfoEXT _) pPMetalObjectsInfo+ pure $ (pMetalObjectsInfo)+++-- | VkExportMetalObjectCreateInfoEXT - Structure that identifies the Metal+-- objects that can be exported from Vulkan objects+--+-- == Valid Usage (Implicit)+--+-- - #VUID-VkExportMetalObjectCreateInfoEXT-sType-sType# @sType@ /must/+-- be+-- 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_EXPORT_METAL_OBJECT_CREATE_INFO_EXT'+--+-- - #VUID-VkExportMetalObjectCreateInfoEXT-exportObjectType-parameter#+-- If @exportObjectType@ is not @0@, @exportObjectType@ /must/ be a+-- valid 'ExportMetalObjectTypeFlagBitsEXT' value+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_metal_objects VK_EXT_metal_objects>,+-- 'ExportMetalObjectTypeFlagBitsEXT',+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data ExportMetalObjectCreateInfoEXT = ExportMetalObjectCreateInfoEXT+ { -- | @exportObjectType@ is a 'ExportMetalObjectTypeFlagBitsEXT' indicating+ -- the type of Metal object that the application may request to be exported+ -- from the Vulkan object.+ exportObjectType :: ExportMetalObjectTypeFlagBitsEXT }+ deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (ExportMetalObjectCreateInfoEXT)+#endif+deriving instance Show ExportMetalObjectCreateInfoEXT++instance ToCStruct ExportMetalObjectCreateInfoEXT where+ withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)+ pokeCStruct p ExportMetalObjectCreateInfoEXT{..} f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_EXPORT_METAL_OBJECT_CREATE_INFO_EXT)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr ExportMetalObjectTypeFlagBitsEXT)) (exportObjectType)+ f+ cStructSize = 24+ cStructAlignment = 8+ pokeZeroCStruct p f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_EXPORT_METAL_OBJECT_CREATE_INFO_EXT)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ f++instance FromCStruct ExportMetalObjectCreateInfoEXT where+ peekCStruct p = do+ exportObjectType <- peek @ExportMetalObjectTypeFlagBitsEXT ((p `plusPtr` 16 :: Ptr ExportMetalObjectTypeFlagBitsEXT))+ pure $ ExportMetalObjectCreateInfoEXT+ exportObjectType++instance Storable ExportMetalObjectCreateInfoEXT where+ sizeOf ~_ = 24+ alignment ~_ = 8+ peek = peekCStruct+ poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero ExportMetalObjectCreateInfoEXT where+ zero = ExportMetalObjectCreateInfoEXT+ zero+++-- | VkExportMetalObjectsInfoEXT - Structure whose pNext chain identifies+-- Vulkan objects and corresponding Metal objects+--+-- == Valid Usage+--+-- - #VUID-VkExportMetalObjectsInfoEXT-pNext-06791# If the @pNext@ chain+-- includes a 'ExportMetalDeviceInfoEXT' structure, the+-- 'Vulkan.Core10.Handles.Instance' /must/ have been created with+-- 'EXPORT_METAL_OBJECT_TYPE_METAL_DEVICE_BIT_EXT' in the+-- @exportObjectType@ member of a 'ExportMetalObjectCreateInfoEXT'+-- structure in the @pNext@ chain of the+-- 'Vulkan.Core10.DeviceInitialization.InstanceCreateInfo' structure in+-- the 'Vulkan.Core10.DeviceInitialization.createInstance' command.+--+-- - #VUID-VkExportMetalObjectsInfoEXT-pNext-06792# If the @pNext@ chain+-- includes a 'ExportMetalCommandQueueInfoEXT' structure, the+-- 'Vulkan.Core10.Handles.Instance' /must/ have been created with+-- 'EXPORT_METAL_OBJECT_TYPE_METAL_COMMAND_QUEUE_BIT_EXT' in the+-- @exportObjectType@ member of a 'ExportMetalObjectCreateInfoEXT'+-- structure in the @pNext@ chain of the+-- 'Vulkan.Core10.DeviceInitialization.InstanceCreateInfo' structure in+-- the 'Vulkan.Core10.DeviceInitialization.createInstance' command.+--+-- - #VUID-VkExportMetalObjectsInfoEXT-pNext-06793# If the @pNext@ chain+-- includes a 'ExportMetalBufferInfoEXT' structure, the+-- 'Vulkan.Core10.Handles.DeviceMemory' in its @memory@ member /must/+-- have been allocated with+-- 'EXPORT_METAL_OBJECT_TYPE_METAL_BUFFER_BIT_EXT' in the+-- @exportObjectType@ member of a 'ExportMetalObjectCreateInfoEXT'+-- structure in the @pNext@ chain of the+-- 'Vulkan.Core10.Memory.MemoryAllocateInfo' structure in the+-- 'Vulkan.Core10.Memory.allocateMemory' command.+--+-- - #VUID-VkExportMetalObjectsInfoEXT-pNext-06794# If the @pNext@ chain+-- includes a 'ExportMetalTextureInfoEXT' structure, exactly one of its+-- @image@, @imageView@, or @bufferView@ members /must/ not be+-- 'Vulkan.Core10.APIConstants.NULL_HANDLE'.+--+-- - #VUID-VkExportMetalObjectsInfoEXT-pNext-06795# If the @pNext@ chain+-- includes a 'ExportMetalTextureInfoEXT' structure, and its @image@+-- member is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the+-- 'Vulkan.Core10.Handles.Image' in its @image@ member /must/ have been+-- created with 'EXPORT_METAL_OBJECT_TYPE_METAL_TEXTURE_BIT_EXT' in the+-- @exportObjectType@ member of a 'ExportMetalObjectCreateInfoEXT'+-- structure in the @pNext@ chain of the+-- 'Vulkan.Core10.Image.ImageCreateInfo' structure in the+-- 'Vulkan.Core10.Image.createImage' command.+--+-- - #VUID-VkExportMetalObjectsInfoEXT-pNext-06796# If the @pNext@ chain+-- includes a 'ExportMetalTextureInfoEXT' structure, and its+-- @imageView@ member is not 'Vulkan.Core10.APIConstants.NULL_HANDLE',+-- the 'Vulkan.Core10.Handles.ImageView' in its @imageView@ member+-- /must/ have been created with+-- 'EXPORT_METAL_OBJECT_TYPE_METAL_TEXTURE_BIT_EXT' in the+-- @exportObjectType@ member of a 'ExportMetalObjectCreateInfoEXT'+-- structure in the @pNext@ chain of the+-- 'Vulkan.Core10.ImageView.ImageViewCreateInfo' structure in the+-- 'Vulkan.Core10.ImageView.createImageView' command.+--+-- - #VUID-VkExportMetalObjectsInfoEXT-pNext-06797# If the @pNext@ chain+-- includes a 'ExportMetalTextureInfoEXT' structure, and its+-- @bufferView@ member is not 'Vulkan.Core10.APIConstants.NULL_HANDLE',+-- the 'Vulkan.Core10.Handles.BufferView' in its @bufferView@ member+-- /must/ have been created with+-- 'EXPORT_METAL_OBJECT_TYPE_METAL_TEXTURE_BIT_EXT' in the+-- @exportObjectType@ member of a 'ExportMetalObjectCreateInfoEXT'+-- structure in the @pNext@ chain of the+-- 'Vulkan.Core10.BufferView.BufferViewCreateInfo' structure in the+-- 'Vulkan.Core10.BufferView.createBufferView' command.+--+-- - #VUID-VkExportMetalObjectsInfoEXT-pNext-06798# If the @pNext@ chain+-- includes a 'ExportMetalTextureInfoEXT' structure, and if either its+-- @image@ or @imageView@ member is not+-- 'Vulkan.Core10.APIConstants.NULL_HANDLE', then @plane@ /must/ be+-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_0_BIT',+-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_1_BIT',+-- or+-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_2_BIT'.+--+-- - #VUID-VkExportMetalObjectsInfoEXT-pNext-06799# If the @pNext@ chain+-- includes a 'ExportMetalTextureInfoEXT' structure, and if the+-- 'Vulkan.Core10.Handles.Image' in its @image@ member does not have a+-- multi-planar format, then its @plane@ member /must/ be+-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_0_BIT'.+--+-- - #VUID-VkExportMetalObjectsInfoEXT-pNext-06800# If the @pNext@ chain+-- includes a 'ExportMetalTextureInfoEXT' structure, and if the+-- 'Vulkan.Core10.Handles.Image' in its @image@ member has a+-- multi-planar format with only two planes, then its @plane@ member+-- /must/ not be+-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_2_BIT'+--+-- - #VUID-VkExportMetalObjectsInfoEXT-pNext-06801# If the @pNext@ chain+-- includes a 'ExportMetalTextureInfoEXT' structure, and if the+-- 'Vulkan.Core10.Handles.ImageView' in its @imageView@ member does not+-- have a multi-planar format, then its @plane@ member /must/ be+-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_0_BIT'.+--+-- - #VUID-VkExportMetalObjectsInfoEXT-pNext-06802# If the @pNext@ chain+-- includes a 'ExportMetalTextureInfoEXT' structure, and if the+-- 'Vulkan.Core10.Handles.ImageView' in its @imageView@ member has a+-- multi-planar format with only two planes, then its @plane@ member+-- /must/ not be+-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_2_BIT'+--+-- - #VUID-VkExportMetalObjectsInfoEXT-pNext-06803# If the @pNext@ chain+-- includes a 'ExportMetalIOSurfaceInfoEXT' structure, the+-- 'Vulkan.Core10.Handles.Image' in its @image@ member /must/ have been+-- created with 'EXPORT_METAL_OBJECT_TYPE_METAL_IOSURFACE_BIT_EXT' in+-- the @exportObjectType@ member of a 'ExportMetalObjectCreateInfoEXT'+-- structure in the @pNext@ chain of the+-- 'Vulkan.Core10.Image.ImageCreateInfo' structure in the+-- 'Vulkan.Core10.Image.createImage' command.+--+-- - #VUID-VkExportMetalObjectsInfoEXT-pNext-06804# If the @pNext@ chain+-- includes a 'ExportMetalSharedEventInfoEXT' structure, exactly one of+-- its @semaphore@ or @event@ members /must/ not be+-- 'Vulkan.Core10.APIConstants.NULL_HANDLE'.+--+-- - #VUID-VkExportMetalObjectsInfoEXT-pNext-06805# If the @pNext@ chain+-- includes a 'ExportMetalSharedEventInfoEXT' structure, and its+-- @semaphore@ member is not 'Vulkan.Core10.APIConstants.NULL_HANDLE',+-- the 'Vulkan.Core10.Handles.Semaphore' in its @semaphore@ member+-- /must/ have been created with+-- 'EXPORT_METAL_OBJECT_TYPE_METAL_SHARED_EVENT_BIT_EXT' in the+-- @exportObjectType@ member of a 'ExportMetalObjectCreateInfoEXT'+-- structure in the @pNext@ chain of the+-- 'Vulkan.Core10.QueueSemaphore.SemaphoreCreateInfo' structure in the+-- 'Vulkan.Core10.QueueSemaphore.createSemaphore' command.+--+-- - #VUID-VkExportMetalObjectsInfoEXT-pNext-06806# If the @pNext@ chain+-- includes a 'ExportMetalSharedEventInfoEXT' structure, and its+-- @event@ member is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the+-- 'Vulkan.Core10.Handles.Event' in its @event@ member /must/ have been+-- created with 'EXPORT_METAL_OBJECT_TYPE_METAL_SHARED_EVENT_BIT_EXT'+-- in the @exportObjectType@ member of a+-- 'ExportMetalObjectCreateInfoEXT' structure in the @pNext@ chain of+-- the 'Vulkan.Core10.Event.EventCreateInfo' structure in the+-- 'Vulkan.Core10.Event.createEvent' command.+--+-- == Valid Usage (Implicit)+--+-- - #VUID-VkExportMetalObjectsInfoEXT-sType-sType# @sType@ /must/ be+-- 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_EXPORT_METAL_OBJECTS_INFO_EXT'+--+-- - #VUID-VkExportMetalObjectsInfoEXT-pNext-pNext# Each @pNext@ member+-- of any structure (including this one) in the @pNext@ chain /must/ be+-- either @NULL@ or a pointer to a valid instance of+-- 'ExportMetalBufferInfoEXT', 'ExportMetalCommandQueueInfoEXT',+-- 'ExportMetalDeviceInfoEXT', 'ExportMetalIOSurfaceInfoEXT',+-- 'ExportMetalSharedEventInfoEXT', or 'ExportMetalTextureInfoEXT'+--+-- - #VUID-VkExportMetalObjectsInfoEXT-sType-unique# The @sType@ value of+-- each struct in the @pNext@ chain /must/ be unique, with the+-- exception of structures of type 'ExportMetalBufferInfoEXT',+-- 'ExportMetalCommandQueueInfoEXT', 'ExportMetalIOSurfaceInfoEXT',+-- 'ExportMetalSharedEventInfoEXT', or 'ExportMetalTextureInfoEXT'+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_metal_objects VK_EXT_metal_objects>,+-- 'Vulkan.Core10.Enums.StructureType.StructureType',+-- 'exportMetalObjectsEXT'+data ExportMetalObjectsInfoEXT (es :: [Type]) = ExportMetalObjectsInfoEXT+ { -- | @pNext@ is @NULL@ or a pointer to a structure extending this structure.+ next :: Chain es }+ deriving (Typeable)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (ExportMetalObjectsInfoEXT (es :: [Type]))+#endif+deriving instance Show (Chain es) => Show (ExportMetalObjectsInfoEXT es)++instance Extensible ExportMetalObjectsInfoEXT where+ extensibleTypeName = "ExportMetalObjectsInfoEXT"+ setNext _ next' = ExportMetalObjectsInfoEXT{next = next'}+ getNext ExportMetalObjectsInfoEXT{..} = next+ extends :: forall e b proxy. Typeable e => proxy e -> (Extends ExportMetalObjectsInfoEXT e => b) -> Maybe b+ extends _ f+ | Just Refl <- eqT @e @ExportMetalSharedEventInfoEXT = Just f+ | Just Refl <- eqT @e @ExportMetalIOSurfaceInfoEXT = Just f+ | Just Refl <- eqT @e @ExportMetalTextureInfoEXT = Just f+ | Just Refl <- eqT @e @ExportMetalBufferInfoEXT = Just f+ | Just Refl <- eqT @e @ExportMetalCommandQueueInfoEXT = Just f+ | Just Refl <- eqT @e @ExportMetalDeviceInfoEXT = Just f+ | otherwise = Nothing++instance (Extendss ExportMetalObjectsInfoEXT es, PokeChain es) => ToCStruct (ExportMetalObjectsInfoEXT es) where+ withCStruct x f = allocaBytes 16 $ \p -> pokeCStruct p x (f p)+ pokeCStruct p ExportMetalObjectsInfoEXT{..} f = evalContT $ do+ lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_EXPORT_METAL_OBJECTS_INFO_EXT)+ pNext'' <- fmap castPtr . ContT $ withChain (next)+ lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext''+ lift $ f+ cStructSize = 16+ cStructAlignment = 8+ pokeZeroCStruct p f = evalContT $ do+ lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_EXPORT_METAL_OBJECTS_INFO_EXT)+ pNext' <- fmap castPtr . ContT $ withZeroChain @es+ lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext'+ lift $ f++instance (Extendss ExportMetalObjectsInfoEXT es, PeekChain es) => FromCStruct (ExportMetalObjectsInfoEXT es) where+ peekCStruct p = do+ pNext <- peek @(Ptr ()) ((p `plusPtr` 8 :: Ptr (Ptr ())))+ next <- peekChain (castPtr pNext)+ pure $ ExportMetalObjectsInfoEXT+ next++instance es ~ '[] => Zero (ExportMetalObjectsInfoEXT es) where+ zero = ExportMetalObjectsInfoEXT+ ()+++-- | VkExportMetalDeviceInfoEXT - Structure that identifies a VkDevice object+-- and corresponding Metal MTLDevice object+--+-- == Valid Usage (Implicit)+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_metal_objects VK_EXT_metal_objects>,+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data ExportMetalDeviceInfoEXT = ExportMetalDeviceInfoEXT+ { -- | @mtlDevice@ is the Metal @id\<MTLDevice>@ object underlying the+ -- 'Vulkan.Core10.Handles.PhysicalDevice' associated with the+ -- 'Vulkan.Core10.Handles.Device' object identified in the call. The+ -- implementation will return the @MTLDevice@ in this member, or it will+ -- return @NULL@ if no @MTLDevice@ could be found underlying the+ -- 'Vulkan.Core10.Handles.PhysicalDevice' object.+ mtlDevice :: MTLDevice_id }+ deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (ExportMetalDeviceInfoEXT)+#endif+deriving instance Show ExportMetalDeviceInfoEXT++instance ToCStruct ExportMetalDeviceInfoEXT where+ withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)+ pokeCStruct p ExportMetalDeviceInfoEXT{..} f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_EXPORT_METAL_DEVICE_INFO_EXT)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr MTLDevice_id)) (mtlDevice)+ f+ cStructSize = 24+ cStructAlignment = 8+ pokeZeroCStruct p f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_EXPORT_METAL_DEVICE_INFO_EXT)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr MTLDevice_id)) (zero)+ f++instance FromCStruct ExportMetalDeviceInfoEXT where+ peekCStruct p = do+ mtlDevice <- peek @MTLDevice_id ((p `plusPtr` 16 :: Ptr MTLDevice_id))+ pure $ ExportMetalDeviceInfoEXT+ mtlDevice++instance Storable ExportMetalDeviceInfoEXT where+ sizeOf ~_ = 24+ alignment ~_ = 8+ peek = peekCStruct+ poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero ExportMetalDeviceInfoEXT where+ zero = ExportMetalDeviceInfoEXT+ zero+++-- | VkExportMetalCommandQueueInfoEXT - Structure that identifies a VkQueue+-- object and corresponding Metal MTLCommandQueue object+--+-- == Valid Usage (Implicit)+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_metal_objects VK_EXT_metal_objects>,+-- 'Vulkan.Core10.Handles.Queue',+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data ExportMetalCommandQueueInfoEXT = ExportMetalCommandQueueInfoEXT+ { -- | @queue@ is a 'Vulkan.Core10.Handles.Queue'.+ --+ -- #VUID-VkExportMetalCommandQueueInfoEXT-queue-parameter# @queue@ /must/+ -- be a valid 'Vulkan.Core10.Handles.Queue' handle+ queue :: Ptr Queue_T+ , -- | @mtlCommandQueue@ is the Metal @id\<MTLCommandQueue>@ object underlying+ -- the 'Vulkan.Core10.Handles.Queue' object in @queue@. The implementation+ -- will return the @MTLCommandQueue@ in this member, or it will return+ -- @NULL@ if no @MTLCommandQueue@ could be found underlying the+ -- 'Vulkan.Core10.Handles.Queue' object.+ mtlCommandQueue :: MTLCommandQueue_id+ }+ deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (ExportMetalCommandQueueInfoEXT)+#endif+deriving instance Show ExportMetalCommandQueueInfoEXT++instance ToCStruct ExportMetalCommandQueueInfoEXT where+ withCStruct x f = allocaBytes 32 $ \p -> pokeCStruct p x (f p)+ pokeCStruct p ExportMetalCommandQueueInfoEXT{..} f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_EXPORT_METAL_COMMAND_QUEUE_INFO_EXT)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr (Ptr Queue_T))) (queue)+ poke ((p `plusPtr` 24 :: Ptr MTLCommandQueue_id)) (mtlCommandQueue)+ f+ cStructSize = 32+ cStructAlignment = 8+ pokeZeroCStruct p f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_EXPORT_METAL_COMMAND_QUEUE_INFO_EXT)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr (Ptr Queue_T))) (zero)+ poke ((p `plusPtr` 24 :: Ptr MTLCommandQueue_id)) (zero)+ f++instance FromCStruct ExportMetalCommandQueueInfoEXT where+ peekCStruct p = do+ queue <- peek @(Ptr Queue_T) ((p `plusPtr` 16 :: Ptr (Ptr Queue_T)))+ mtlCommandQueue <- peek @MTLCommandQueue_id ((p `plusPtr` 24 :: Ptr MTLCommandQueue_id))+ pure $ ExportMetalCommandQueueInfoEXT+ queue mtlCommandQueue++instance Storable ExportMetalCommandQueueInfoEXT where+ sizeOf ~_ = 32+ alignment ~_ = 8+ peek = peekCStruct+ poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero ExportMetalCommandQueueInfoEXT where+ zero = ExportMetalCommandQueueInfoEXT+ zero+ zero+++-- | VkExportMetalBufferInfoEXT - Structure that identifies a VkDeviceMemory+-- object and corresponding Metal MTLBuffer object+--+-- == Valid Usage (Implicit)+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_metal_objects VK_EXT_metal_objects>,+-- 'Vulkan.Core10.Handles.DeviceMemory',+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data ExportMetalBufferInfoEXT = ExportMetalBufferInfoEXT+ { -- | @memory@ is a 'Vulkan.Core10.Handles.DeviceMemory'.+ --+ -- #VUID-VkExportMetalBufferInfoEXT-memory-parameter# @memory@ /must/ be a+ -- valid 'Vulkan.Core10.Handles.DeviceMemory' handle+ memory :: DeviceMemory+ , -- | @mtlBuffer@ is the Metal @id\<MTLBuffer>@ object underlying the+ -- 'Vulkan.Core10.Handles.DeviceMemory' object in @memory@. The+ -- implementation will return the @MTLBuffer@ in this member, or it will+ -- return @NULL@ if no @MTLBuffer@ could be found underlying the+ -- 'Vulkan.Core10.Handles.DeviceMemory' object.+ mtlBuffer :: MTLBuffer_id+ }+ deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (ExportMetalBufferInfoEXT)+#endif+deriving instance Show ExportMetalBufferInfoEXT++instance ToCStruct ExportMetalBufferInfoEXT where+ withCStruct x f = allocaBytes 32 $ \p -> pokeCStruct p x (f p)+ pokeCStruct p ExportMetalBufferInfoEXT{..} f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_EXPORT_METAL_BUFFER_INFO_EXT)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr DeviceMemory)) (memory)+ poke ((p `plusPtr` 24 :: Ptr MTLBuffer_id)) (mtlBuffer)+ f+ cStructSize = 32+ cStructAlignment = 8+ pokeZeroCStruct p f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_EXPORT_METAL_BUFFER_INFO_EXT)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr DeviceMemory)) (zero)+ poke ((p `plusPtr` 24 :: Ptr MTLBuffer_id)) (zero)+ f++instance FromCStruct ExportMetalBufferInfoEXT where+ peekCStruct p = do+ memory <- peek @DeviceMemory ((p `plusPtr` 16 :: Ptr DeviceMemory))+ mtlBuffer <- peek @MTLBuffer_id ((p `plusPtr` 24 :: Ptr MTLBuffer_id))+ pure $ ExportMetalBufferInfoEXT+ memory mtlBuffer++instance Storable ExportMetalBufferInfoEXT where+ sizeOf ~_ = 32+ alignment ~_ = 8+ peek = peekCStruct+ poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero ExportMetalBufferInfoEXT where+ zero = ExportMetalBufferInfoEXT+ zero+ zero+++-- | VkImportMetalBufferInfoEXT - Structure that identifies a Metal MTLBuffer+-- object to use when creating a VkDeviceMemory object.+--+-- = Description+--+-- The app /must/ ensure that the configuration of the @id\<MTLBuffer>@+-- object is compatible with the configuration of the+-- 'Vulkan.Core10.Handles.DeviceMemory'. Failure to do so results in+-- undefined behavior.+--+-- == Valid Usage (Implicit)+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_metal_objects VK_EXT_metal_objects>,+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data ImportMetalBufferInfoEXT = ImportMetalBufferInfoEXT+ { -- | @mtlBuffer@ is the Metal @id\<MTLBuffer>@ object that is to underlie the+ -- 'Vulkan.Core10.Handles.DeviceMemory'.+ mtlBuffer :: MTLBuffer_id }+ deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (ImportMetalBufferInfoEXT)+#endif+deriving instance Show ImportMetalBufferInfoEXT++instance ToCStruct ImportMetalBufferInfoEXT where+ withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)+ pokeCStruct p ImportMetalBufferInfoEXT{..} f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_IMPORT_METAL_BUFFER_INFO_EXT)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr MTLBuffer_id)) (mtlBuffer)+ f+ cStructSize = 24+ cStructAlignment = 8+ pokeZeroCStruct p f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_IMPORT_METAL_BUFFER_INFO_EXT)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr MTLBuffer_id)) (zero)+ f++instance FromCStruct ImportMetalBufferInfoEXT where+ peekCStruct p = do+ mtlBuffer <- peek @MTLBuffer_id ((p `plusPtr` 16 :: Ptr MTLBuffer_id))+ pure $ ImportMetalBufferInfoEXT+ mtlBuffer++instance Storable ImportMetalBufferInfoEXT where+ sizeOf ~_ = 24+ alignment ~_ = 8+ peek = peekCStruct+ poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero ImportMetalBufferInfoEXT where+ zero = ImportMetalBufferInfoEXT+ zero+++-- | VkExportMetalTextureInfoEXT - Structure that identifies a VkImage,+-- VkImageView, or VkBufferView object and corresponding Metal MTLTexture+-- object+--+-- == Valid Usage (Implicit)+--+-- - #VUID-VkExportMetalTextureInfoEXT-sType-sType# @sType@ /must/ be+-- 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_EXPORT_METAL_TEXTURE_INFO_EXT'+--+-- - #VUID-VkExportMetalTextureInfoEXT-image-parameter# If @image@ is not+-- 'Vulkan.Core10.APIConstants.NULL_HANDLE', @image@ /must/ be a valid+-- 'Vulkan.Core10.Handles.Image' handle+--+-- - #VUID-VkExportMetalTextureInfoEXT-imageView-parameter# If+-- @imageView@ is not 'Vulkan.Core10.APIConstants.NULL_HANDLE',+-- @imageView@ /must/ be a valid 'Vulkan.Core10.Handles.ImageView'+-- handle+--+-- - #VUID-VkExportMetalTextureInfoEXT-bufferView-parameter# If+-- @bufferView@ is not 'Vulkan.Core10.APIConstants.NULL_HANDLE',+-- @bufferView@ /must/ be a valid 'Vulkan.Core10.Handles.BufferView'+-- handle+--+-- - #VUID-VkExportMetalTextureInfoEXT-plane-parameter# @plane@ /must/ be+-- a valid+-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.ImageAspectFlagBits' value+--+-- - #VUID-VkExportMetalTextureInfoEXT-commonparent# Each of+-- @bufferView@, @image@, and @imageView@ that are valid handles of+-- non-ignored parameters /must/ have been created, allocated, or+-- retrieved from the same 'Vulkan.Core10.Handles.Device'+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_metal_objects VK_EXT_metal_objects>,+-- 'Vulkan.Core10.Handles.BufferView', 'Vulkan.Core10.Handles.Image',+-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.ImageAspectFlagBits',+-- 'Vulkan.Core10.Handles.ImageView',+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data ExportMetalTextureInfoEXT = ExportMetalTextureInfoEXT+ { -- | @image@ is 'Vulkan.Core10.APIConstants.NULL_HANDLE' or a+ -- 'Vulkan.Core10.Handles.Image'.+ image :: Image+ , -- | @imageView@ is 'Vulkan.Core10.APIConstants.NULL_HANDLE' or a+ -- 'Vulkan.Core10.Handles.ImageView'.+ imageView :: ImageView+ , -- | @bufferView@ is 'Vulkan.Core10.APIConstants.NULL_HANDLE' or a+ -- 'Vulkan.Core10.Handles.BufferView'.+ bufferView :: BufferView+ , -- | @plane@ indicates the plane of a multi-planar+ -- 'Vulkan.Core10.Handles.Image' or 'Vulkan.Core10.Handles.ImageView'.+ plane :: ImageAspectFlagBits+ , -- | @mtlTexture@ is the Metal @id\<MTLTexture>@ object underlying the+ -- 'Vulkan.Core10.Handles.Image', 'Vulkan.Core10.Handles.ImageView', or+ -- 'Vulkan.Core10.Handles.BufferView' object in @image@, @imageView@, or+ -- @bufferView@, respectively, at the plane indicated in @aspectMask@. The+ -- implementation will return the @MTLTexture@ in this member, or it will+ -- return @NULL@ if no @MTLTexture@ could be found underlying the+ -- 'Vulkan.Core10.Handles.Image', 'Vulkan.Core10.Handles.ImageView', or+ -- 'Vulkan.Core10.Handles.BufferView' object, at the plane indicated in+ -- @aspectMask@.+ mtlTexture :: MTLTexture_id+ }+ deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (ExportMetalTextureInfoEXT)+#endif+deriving instance Show ExportMetalTextureInfoEXT++instance ToCStruct ExportMetalTextureInfoEXT where+ withCStruct x f = allocaBytes 56 $ \p -> pokeCStruct p x (f p)+ pokeCStruct p ExportMetalTextureInfoEXT{..} f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_EXPORT_METAL_TEXTURE_INFO_EXT)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr Image)) (image)+ poke ((p `plusPtr` 24 :: Ptr ImageView)) (imageView)+ poke ((p `plusPtr` 32 :: Ptr BufferView)) (bufferView)+ poke ((p `plusPtr` 40 :: Ptr ImageAspectFlagBits)) (plane)+ poke ((p `plusPtr` 48 :: Ptr MTLTexture_id)) (mtlTexture)+ f+ cStructSize = 56+ cStructAlignment = 8+ pokeZeroCStruct p f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_EXPORT_METAL_TEXTURE_INFO_EXT)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 40 :: Ptr ImageAspectFlagBits)) (zero)+ poke ((p `plusPtr` 48 :: Ptr MTLTexture_id)) (zero)+ f++instance FromCStruct ExportMetalTextureInfoEXT where+ peekCStruct p = do+ image <- peek @Image ((p `plusPtr` 16 :: Ptr Image))+ imageView <- peek @ImageView ((p `plusPtr` 24 :: Ptr ImageView))+ bufferView <- peek @BufferView ((p `plusPtr` 32 :: Ptr BufferView))+ plane <- peek @ImageAspectFlagBits ((p `plusPtr` 40 :: Ptr ImageAspectFlagBits))+ mtlTexture <- peek @MTLTexture_id ((p `plusPtr` 48 :: Ptr MTLTexture_id))+ pure $ ExportMetalTextureInfoEXT+ image imageView bufferView plane mtlTexture++instance Storable ExportMetalTextureInfoEXT where+ sizeOf ~_ = 56+ alignment ~_ = 8+ peek = peekCStruct+ poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero ExportMetalTextureInfoEXT where+ zero = ExportMetalTextureInfoEXT+ zero+ zero+ zero+ zero+ zero+++-- | VkImportMetalTextureInfoEXT - Structure that identifies Metal MTLTexture+-- objects to use when creating a VkImage.+--+-- = Description+--+-- The @pNext@ chain /must/ include one 'ImportMetalTextureInfoEXT'+-- structure for each plane in the 'Vulkan.Core10.Handles.Image'. The app+-- /must/ ensure that the configuration of the Metal @id\<MTLTexture>@+-- objects are compatible with the configuration of the+-- 'Vulkan.Core10.Handles.Image'. Failure to do so results in undefined+-- behavior.+--+-- == Valid Usage (Implicit)+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_metal_objects VK_EXT_metal_objects>,+-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.ImageAspectFlagBits',+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data ImportMetalTextureInfoEXT = ImportMetalTextureInfoEXT+ { -- | @plane@ indicates the plane of the 'Vulkan.Core10.Handles.Image' that+ -- the @id\<MTLTexture>@ object should be attached to.+ --+ -- #VUID-VkImportMetalTextureInfoEXT-plane-parameter# @plane@ /must/ be a+ -- valid 'Vulkan.Core10.Enums.ImageAspectFlagBits.ImageAspectFlagBits'+ -- value+ plane :: ImageAspectFlagBits+ , -- | @mtlTexture@ is a the Metal @id\<MTLTexture>@ object that is to underlie+ -- the 'Vulkan.Core10.Handles.Image' plane.+ mtlTexture :: MTLTexture_id+ }+ deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (ImportMetalTextureInfoEXT)+#endif+deriving instance Show ImportMetalTextureInfoEXT++instance ToCStruct ImportMetalTextureInfoEXT where+ withCStruct x f = allocaBytes 32 $ \p -> pokeCStruct p x (f p)+ pokeCStruct p ImportMetalTextureInfoEXT{..} f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_IMPORT_METAL_TEXTURE_INFO_EXT)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr ImageAspectFlagBits)) (plane)+ poke ((p `plusPtr` 24 :: Ptr MTLTexture_id)) (mtlTexture)+ f+ cStructSize = 32+ cStructAlignment = 8+ pokeZeroCStruct p f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_IMPORT_METAL_TEXTURE_INFO_EXT)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr ImageAspectFlagBits)) (zero)+ poke ((p `plusPtr` 24 :: Ptr MTLTexture_id)) (zero)+ f++instance FromCStruct ImportMetalTextureInfoEXT where+ peekCStruct p = do+ plane <- peek @ImageAspectFlagBits ((p `plusPtr` 16 :: Ptr ImageAspectFlagBits))+ mtlTexture <- peek @MTLTexture_id ((p `plusPtr` 24 :: Ptr MTLTexture_id))+ pure $ ImportMetalTextureInfoEXT+ plane mtlTexture++instance Storable ImportMetalTextureInfoEXT where+ sizeOf ~_ = 32+ alignment ~_ = 8+ peek = peekCStruct+ poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero ImportMetalTextureInfoEXT where+ zero = ImportMetalTextureInfoEXT+ zero+ zero+++-- | VkExportMetalIOSurfaceInfoEXT - Structure that identifies a VkImage+-- object and corresponding Metal IOSurfaceRef object+--+-- == Valid Usage (Implicit)+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_metal_objects VK_EXT_metal_objects>,+-- 'Vulkan.Core10.Handles.Image',+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data ExportMetalIOSurfaceInfoEXT = ExportMetalIOSurfaceInfoEXT+ { -- | @image@ is a 'Vulkan.Core10.Handles.Image'.+ --+ -- #VUID-VkExportMetalIOSurfaceInfoEXT-image-parameter# @image@ /must/ be a+ -- valid 'Vulkan.Core10.Handles.Image' handle+ image :: Image+ , -- | @ioSurface@ is the Metal 'IOSurfaceRef' object underlying the+ -- 'Vulkan.Core10.Handles.Image' object in @image@. The implementation will+ -- return the 'IOSurfaceRef' in this member, or it will return @NULL@ if no+ -- 'IOSurfaceRef' could be found underlying the+ -- 'Vulkan.Core10.Handles.Image' object.+ ioSurface :: IOSurfaceRef+ }+ deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (ExportMetalIOSurfaceInfoEXT)+#endif+deriving instance Show ExportMetalIOSurfaceInfoEXT++instance ToCStruct ExportMetalIOSurfaceInfoEXT where+ withCStruct x f = allocaBytes 32 $ \p -> pokeCStruct p x (f p)+ pokeCStruct p ExportMetalIOSurfaceInfoEXT{..} f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_EXPORT_METAL_IO_SURFACE_INFO_EXT)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr Image)) (image)+ poke ((p `plusPtr` 24 :: Ptr IOSurfaceRef)) (ioSurface)+ f+ cStructSize = 32+ cStructAlignment = 8+ pokeZeroCStruct p f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_EXPORT_METAL_IO_SURFACE_INFO_EXT)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr Image)) (zero)+ poke ((p `plusPtr` 24 :: Ptr IOSurfaceRef)) (zero)+ f++instance FromCStruct ExportMetalIOSurfaceInfoEXT where+ peekCStruct p = do+ image <- peek @Image ((p `plusPtr` 16 :: Ptr Image))+ ioSurface <- peek @IOSurfaceRef ((p `plusPtr` 24 :: Ptr IOSurfaceRef))+ pure $ ExportMetalIOSurfaceInfoEXT+ image ioSurface++instance Storable ExportMetalIOSurfaceInfoEXT where+ sizeOf ~_ = 32+ alignment ~_ = 8+ peek = peekCStruct+ poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero ExportMetalIOSurfaceInfoEXT where+ zero = ExportMetalIOSurfaceInfoEXT+ zero+ zero+++-- | VkImportMetalIOSurfaceInfoEXT - Structure that identifies a VkImage+-- object and corresponding Metal IOSurfaceRef object to use.+--+-- = Description+--+-- If @ioSurface@ is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', it will+-- be used to underlie the 'Vulkan.Core10.Handles.Image'. If @ioSurface@ is+-- 'Vulkan.Core10.APIConstants.NULL_HANDLE', the implementation will create+-- a new @IOSurface@ to underlie the 'Vulkan.Core10.Handles.Image'.+--+-- If provided, the app /must/ ensure that the configuration of the+-- 'IOSurfaceRef' object is compatible with the configuration of the+-- 'Vulkan.Core10.Handles.Image'. Failure to do so results in undefined+-- behavior.+--+-- == Valid Usage (Implicit)+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_metal_objects VK_EXT_metal_objects>,+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data ImportMetalIOSurfaceInfoEXT = ImportMetalIOSurfaceInfoEXT+ { -- | @ioSurface@ is 'Vulkan.Core10.APIConstants.NULL_HANDLE' or the Metal+ -- 'IOSurfaceRef' object that is to underlie the+ -- 'Vulkan.Core10.Handles.Image'.+ ioSurface :: IOSurfaceRef }+ deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (ImportMetalIOSurfaceInfoEXT)+#endif+deriving instance Show ImportMetalIOSurfaceInfoEXT++instance ToCStruct ImportMetalIOSurfaceInfoEXT where+ withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)+ pokeCStruct p ImportMetalIOSurfaceInfoEXT{..} f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_IMPORT_METAL_IO_SURFACE_INFO_EXT)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr IOSurfaceRef)) (ioSurface)+ f+ cStructSize = 24+ cStructAlignment = 8+ pokeZeroCStruct p f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_IMPORT_METAL_IO_SURFACE_INFO_EXT)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ f++instance FromCStruct ImportMetalIOSurfaceInfoEXT where+ peekCStruct p = do+ ioSurface <- peek @IOSurfaceRef ((p `plusPtr` 16 :: Ptr IOSurfaceRef))+ pure $ ImportMetalIOSurfaceInfoEXT+ ioSurface++instance Storable ImportMetalIOSurfaceInfoEXT where+ sizeOf ~_ = 24+ alignment ~_ = 8+ peek = peekCStruct+ poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero ImportMetalIOSurfaceInfoEXT where+ zero = ImportMetalIOSurfaceInfoEXT+ zero+++-- | VkExportMetalSharedEventInfoEXT - Structure that identifies a+-- VkSemaphore or VkEvent object and corresponding Metal MTLSharedEvent+-- object+--+-- == Valid Usage (Implicit)+--+-- - #VUID-VkExportMetalSharedEventInfoEXT-sType-sType# @sType@ /must/ be+-- 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_EXPORT_METAL_SHARED_EVENT_INFO_EXT'+--+-- - #VUID-VkExportMetalSharedEventInfoEXT-semaphore-parameter# If+-- @semaphore@ is not 'Vulkan.Core10.APIConstants.NULL_HANDLE',+-- @semaphore@ /must/ be a valid 'Vulkan.Core10.Handles.Semaphore'+-- handle+--+-- - #VUID-VkExportMetalSharedEventInfoEXT-event-parameter# If @event@ is+-- not 'Vulkan.Core10.APIConstants.NULL_HANDLE', @event@ /must/ be a+-- valid 'Vulkan.Core10.Handles.Event' handle+--+-- - #VUID-VkExportMetalSharedEventInfoEXT-commonparent# Both of @event@,+-- and @semaphore@ that are valid handles of non-ignored parameters+-- /must/ have been created, allocated, or retrieved from the same+-- 'Vulkan.Core10.Handles.Device'+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_metal_objects VK_EXT_metal_objects>,+-- 'Vulkan.Core10.Handles.Event', 'Vulkan.Core10.Handles.Semaphore',+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data ExportMetalSharedEventInfoEXT = ExportMetalSharedEventInfoEXT+ { -- | @semaphore@ is 'Vulkan.Core10.APIConstants.NULL_HANDLE' or a+ -- 'Vulkan.Core10.Handles.Semaphore'.+ semaphore :: Semaphore+ , -- | @event@ is 'Vulkan.Core10.APIConstants.NULL_HANDLE' or a+ -- 'Vulkan.Core10.Handles.Event'.+ event :: Event+ , -- | @mtlSharedEvent@ is the Metal @id\<MTLSharedEvent>@ object underlying+ -- the 'Vulkan.Core10.Handles.Semaphore' or 'Vulkan.Core10.Handles.Event'+ -- object in @semaphore@ or @event@, respectively. The implementation will+ -- return the @MTLSharedEvent@ in this member, or it will return @NULL@ if+ -- no @MTLSharedEvent@ could be found underlying the+ -- 'Vulkan.Core10.Handles.Semaphore' or 'Vulkan.Core10.Handles.Event'+ -- object.+ mtlSharedEvent :: MTLSharedEvent_id+ }+ deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (ExportMetalSharedEventInfoEXT)+#endif+deriving instance Show ExportMetalSharedEventInfoEXT++instance ToCStruct ExportMetalSharedEventInfoEXT where+ withCStruct x f = allocaBytes 40 $ \p -> pokeCStruct p x (f p)+ pokeCStruct p ExportMetalSharedEventInfoEXT{..} f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_EXPORT_METAL_SHARED_EVENT_INFO_EXT)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr Semaphore)) (semaphore)+ poke ((p `plusPtr` 24 :: Ptr Event)) (event)+ poke ((p `plusPtr` 32 :: Ptr MTLSharedEvent_id)) (mtlSharedEvent)+ f+ cStructSize = 40+ cStructAlignment = 8+ pokeZeroCStruct p f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_EXPORT_METAL_SHARED_EVENT_INFO_EXT)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 32 :: Ptr MTLSharedEvent_id)) (zero)+ f++instance FromCStruct ExportMetalSharedEventInfoEXT where+ peekCStruct p = do+ semaphore <- peek @Semaphore ((p `plusPtr` 16 :: Ptr Semaphore))+ event <- peek @Event ((p `plusPtr` 24 :: Ptr Event))+ mtlSharedEvent <- peek @MTLSharedEvent_id ((p `plusPtr` 32 :: Ptr MTLSharedEvent_id))+ pure $ ExportMetalSharedEventInfoEXT+ semaphore event mtlSharedEvent++instance Storable ExportMetalSharedEventInfoEXT where+ sizeOf ~_ = 40+ alignment ~_ = 8+ peek = peekCStruct+ poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero ExportMetalSharedEventInfoEXT where+ zero = ExportMetalSharedEventInfoEXT+ zero+ zero+ zero+++-- | VkImportMetalSharedEventInfoEXT - Structure that identifies a+-- VkSemaphore or VkEvent object and corresponding Metal Shared Event+-- object to use.+--+-- = Description+--+-- If the @pNext@ chain of the+-- 'Vulkan.Core10.QueueSemaphore.SemaphoreCreateInfo' structure includes+-- both 'ImportMetalSharedEventInfoEXT' and+-- 'Vulkan.Core12.Promoted_From_VK_KHR_timeline_semaphore.SemaphoreTypeCreateInfo',+-- the @signaledValue@ property of the imported @MTLSharedEvent@ object+-- will be set to @initialValue@ of+-- 'Vulkan.Core12.Promoted_From_VK_KHR_timeline_semaphore.SemaphoreTypeCreateInfo'.+--+-- == Valid Usage (Implicit)+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_metal_objects VK_EXT_metal_objects>,+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data ImportMetalSharedEventInfoEXT = ImportMetalSharedEventInfoEXT+ { -- | @mtlSharedEvent@ is the Metal @id\<MTLSharedEvent>@ object that is to+ -- underlie the 'Vulkan.Core10.Handles.Semaphore' or+ -- 'Vulkan.Core10.Handles.Event'.+ mtlSharedEvent :: MTLSharedEvent_id }+ deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (ImportMetalSharedEventInfoEXT)+#endif+deriving instance Show ImportMetalSharedEventInfoEXT++instance ToCStruct ImportMetalSharedEventInfoEXT where+ withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)+ pokeCStruct p ImportMetalSharedEventInfoEXT{..} f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_IMPORT_METAL_SHARED_EVENT_INFO_EXT)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr MTLSharedEvent_id)) (mtlSharedEvent)+ f+ cStructSize = 24+ cStructAlignment = 8+ pokeZeroCStruct p f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_IMPORT_METAL_SHARED_EVENT_INFO_EXT)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr MTLSharedEvent_id)) (zero)+ f++instance FromCStruct ImportMetalSharedEventInfoEXT where+ peekCStruct p = do+ mtlSharedEvent <- peek @MTLSharedEvent_id ((p `plusPtr` 16 :: Ptr MTLSharedEvent_id))+ pure $ ImportMetalSharedEventInfoEXT+ mtlSharedEvent++instance Storable ImportMetalSharedEventInfoEXT where+ sizeOf ~_ = 24+ alignment ~_ = 8+ peek = peekCStruct+ poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero ImportMetalSharedEventInfoEXT where+ zero = ImportMetalSharedEventInfoEXT+ zero+++type ExportMetalObjectTypeFlagsEXT = ExportMetalObjectTypeFlagBitsEXT++-- | VkExportMetalObjectTypeFlagBitsEXT - Bitmask specifying Metal object+-- types that can be exported from a Vulkan object+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_metal_objects VK_EXT_metal_objects>,+-- 'ExportMetalObjectCreateInfoEXT', 'ExportMetalObjectTypeFlagsEXT'+newtype ExportMetalObjectTypeFlagBitsEXT = ExportMetalObjectTypeFlagBitsEXT Flags+ deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits)++-- | 'EXPORT_METAL_OBJECT_TYPE_METAL_DEVICE_BIT_EXT' indicates a Metal+-- @MTLDevice@ may be exported.+pattern EXPORT_METAL_OBJECT_TYPE_METAL_DEVICE_BIT_EXT = ExportMetalObjectTypeFlagBitsEXT 0x00000001+-- | 'EXPORT_METAL_OBJECT_TYPE_METAL_COMMAND_QUEUE_BIT_EXT' indicates a Metal+-- @MTLCommandQueue@ may be exported.+pattern EXPORT_METAL_OBJECT_TYPE_METAL_COMMAND_QUEUE_BIT_EXT = ExportMetalObjectTypeFlagBitsEXT 0x00000002+-- | 'EXPORT_METAL_OBJECT_TYPE_METAL_BUFFER_BIT_EXT' indicates a Metal+-- @MTLBuffer@ may be exported.+pattern EXPORT_METAL_OBJECT_TYPE_METAL_BUFFER_BIT_EXT = ExportMetalObjectTypeFlagBitsEXT 0x00000004+-- | 'EXPORT_METAL_OBJECT_TYPE_METAL_TEXTURE_BIT_EXT' indicates a Metal+-- @MTLTexture@ may be exported.+pattern EXPORT_METAL_OBJECT_TYPE_METAL_TEXTURE_BIT_EXT = ExportMetalObjectTypeFlagBitsEXT 0x00000008+-- | 'EXPORT_METAL_OBJECT_TYPE_METAL_IOSURFACE_BIT_EXT' indicates a Metal+-- @IOSurface@ may be exported.+pattern EXPORT_METAL_OBJECT_TYPE_METAL_IOSURFACE_BIT_EXT = ExportMetalObjectTypeFlagBitsEXT 0x00000010+-- | 'EXPORT_METAL_OBJECT_TYPE_METAL_SHARED_EVENT_BIT_EXT' indicates a Metal+-- @MTLSharedEvent@ may be exported.+pattern EXPORT_METAL_OBJECT_TYPE_METAL_SHARED_EVENT_BIT_EXT = ExportMetalObjectTypeFlagBitsEXT 0x00000020++conNameExportMetalObjectTypeFlagBitsEXT :: String+conNameExportMetalObjectTypeFlagBitsEXT = "ExportMetalObjectTypeFlagBitsEXT"++enumPrefixExportMetalObjectTypeFlagBitsEXT :: String+enumPrefixExportMetalObjectTypeFlagBitsEXT = "EXPORT_METAL_OBJECT_TYPE_METAL_"++showTableExportMetalObjectTypeFlagBitsEXT :: [(ExportMetalObjectTypeFlagBitsEXT, String)]+showTableExportMetalObjectTypeFlagBitsEXT =+ [ (EXPORT_METAL_OBJECT_TYPE_METAL_DEVICE_BIT_EXT , "DEVICE_BIT_EXT")+ , (EXPORT_METAL_OBJECT_TYPE_METAL_COMMAND_QUEUE_BIT_EXT, "COMMAND_QUEUE_BIT_EXT")+ , (EXPORT_METAL_OBJECT_TYPE_METAL_BUFFER_BIT_EXT , "BUFFER_BIT_EXT")+ , (EXPORT_METAL_OBJECT_TYPE_METAL_TEXTURE_BIT_EXT , "TEXTURE_BIT_EXT")+ , (EXPORT_METAL_OBJECT_TYPE_METAL_IOSURFACE_BIT_EXT , "IOSURFACE_BIT_EXT")+ , (EXPORT_METAL_OBJECT_TYPE_METAL_SHARED_EVENT_BIT_EXT , "SHARED_EVENT_BIT_EXT")+ ]++instance Show ExportMetalObjectTypeFlagBitsEXT where+ showsPrec = enumShowsPrec enumPrefixExportMetalObjectTypeFlagBitsEXT+ showTableExportMetalObjectTypeFlagBitsEXT+ conNameExportMetalObjectTypeFlagBitsEXT+ (\(ExportMetalObjectTypeFlagBitsEXT x) -> x)+ (\x -> showString "0x" . showHex x)++instance Read ExportMetalObjectTypeFlagBitsEXT where+ readPrec = enumReadPrec enumPrefixExportMetalObjectTypeFlagBitsEXT+ showTableExportMetalObjectTypeFlagBitsEXT+ conNameExportMetalObjectTypeFlagBitsEXT+ ExportMetalObjectTypeFlagBitsEXT+++type EXT_METAL_OBJECTS_SPEC_VERSION = 1++-- No documentation found for TopLevel "VK_EXT_METAL_OBJECTS_SPEC_VERSION"+pattern EXT_METAL_OBJECTS_SPEC_VERSION :: forall a . Integral a => a+pattern EXT_METAL_OBJECTS_SPEC_VERSION = 1+++type EXT_METAL_OBJECTS_EXTENSION_NAME = "VK_EXT_metal_objects"++-- No documentation found for TopLevel "VK_EXT_METAL_OBJECTS_EXTENSION_NAME"+pattern EXT_METAL_OBJECTS_EXTENSION_NAME :: forall a . (Eq a, IsString a) => a+pattern EXT_METAL_OBJECTS_EXTENSION_NAME = "VK_EXT_metal_objects"+++type MTLDevice_id = Ptr ()+++type MTLCommandQueue_id = Ptr ()+++type MTLBuffer_id = Ptr ()+++type MTLTexture_id = Ptr ()+++type IOSurfaceRef = Ptr ()+++type MTLSharedEvent_id = Ptr ()+
+ src/Vulkan/Extensions/VK_EXT_metal_objects.hs-boot view
@@ -0,0 +1,319 @@+{-# language CPP #-}+-- | = Name+--+-- VK_EXT_metal_objects - device extension+--+-- == VK_EXT_metal_objects+--+-- [__Name String__]+-- @VK_EXT_metal_objects@+--+-- [__Extension Type__]+-- Device extension+--+-- [__Registered Extension Number__]+-- 312+--+-- [__Revision__]+-- 1+--+-- [__Extension and Version Dependencies__]+--+-- - Requires support for Vulkan 1.0+--+-- [__Contact__]+--+-- - Bill Hollings+-- <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_EXT_metal_objects] @billhollings%0A<<Here describe the issue or question you have about the VK_EXT_metal_objects extension>> >+--+-- [__Extension Proposal__]+-- <https://github.com/KhronosGroup/Vulkan-Docs/tree/main/proposals/VK_EXT_metal_objects.adoc VK_EXT_metal_objects>+--+-- == Other Extension Metadata+--+-- [__Last Modified Date__]+-- 2022-05-28+--+-- [__IP Status__]+-- No known IP claims.+--+-- [__Contributors__]+--+-- - Bill Hollings, The Brenwill Workshop Ltd.+--+-- - Dzmitry Malyshau, Mozilla Corp.+--+-- == Description+--+-- In a Vulkan implementation that is layered on top of Metal on Apple+-- device platforms, this extension provides the ability to import and+-- export the underlying Metal objects associated with specific Vulkan+-- objects.+--+-- As detailed in the+-- <https://github.com/KhronosGroup/Vulkan-Docs/tree/main/proposals/VK_EXT_metal_objects.adoc extension proposal document>,+-- this extension adds one new Vulkan command, 'exportMetalObjectsEXT', to+-- export underlying Metal objects from Vulkan objects, and supports+-- importing the appropriate existing Metal objects when creating Vulkan+-- objects of types 'Vulkan.Core10.Handles.DeviceMemory',+-- 'Vulkan.Core10.Handles.Image', 'Vulkan.Core10.Handles.Semaphore', and+-- 'Vulkan.Core10.Handles.Event',+--+-- The intent is that this extension will be advertised and supported only+-- on implementations that are layered on top of Metal on Apple device+-- platforms.+--+-- == New Base Types+--+-- - 'IOSurfaceRef'+--+-- - 'MTLBuffer_id'+--+-- - 'MTLCommandQueue_id'+--+-- - 'MTLDevice_id'+--+-- - 'MTLSharedEvent_id'+--+-- - 'MTLTexture_id'+--+-- == New Commands+--+-- - 'exportMetalObjectsEXT'+--+-- == New Structures+--+-- - 'ExportMetalObjectsInfoEXT'+--+-- - Extending 'ExportMetalObjectsInfoEXT':+--+-- - 'ExportMetalBufferInfoEXT'+--+-- - 'ExportMetalCommandQueueInfoEXT'+--+-- - 'ExportMetalDeviceInfoEXT'+--+-- - 'ExportMetalIOSurfaceInfoEXT'+--+-- - 'ExportMetalSharedEventInfoEXT'+--+-- - 'ExportMetalTextureInfoEXT'+--+-- - Extending 'Vulkan.Core10.Image.ImageCreateInfo':+--+-- - 'ImportMetalIOSurfaceInfoEXT'+--+-- - 'ImportMetalTextureInfoEXT'+--+-- - Extending 'Vulkan.Core10.DeviceInitialization.InstanceCreateInfo',+-- 'Vulkan.Core10.Memory.MemoryAllocateInfo',+-- 'Vulkan.Core10.Image.ImageCreateInfo',+-- 'Vulkan.Core10.ImageView.ImageViewCreateInfo',+-- 'Vulkan.Core10.BufferView.BufferViewCreateInfo',+-- 'Vulkan.Core10.QueueSemaphore.SemaphoreCreateInfo',+-- 'Vulkan.Core10.Event.EventCreateInfo':+--+-- - 'ExportMetalObjectCreateInfoEXT'+--+-- - Extending 'Vulkan.Core10.Memory.MemoryAllocateInfo':+--+-- - 'ImportMetalBufferInfoEXT'+--+-- - Extending 'Vulkan.Core10.QueueSemaphore.SemaphoreCreateInfo',+-- 'Vulkan.Core10.Event.EventCreateInfo':+--+-- - 'ImportMetalSharedEventInfoEXT'+--+-- == New Enums+--+-- - 'ExportMetalObjectTypeFlagBitsEXT'+--+-- == New Bitmasks+--+-- - 'ExportMetalObjectTypeFlagsEXT'+--+-- == New Enum Constants+--+-- - 'EXT_METAL_OBJECTS_EXTENSION_NAME'+--+-- - 'EXT_METAL_OBJECTS_SPEC_VERSION'+--+-- - Extending 'Vulkan.Core10.Enums.StructureType.StructureType':+--+-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_EXPORT_METAL_BUFFER_INFO_EXT'+--+-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_EXPORT_METAL_COMMAND_QUEUE_INFO_EXT'+--+-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_EXPORT_METAL_DEVICE_INFO_EXT'+--+-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_EXPORT_METAL_IO_SURFACE_INFO_EXT'+--+-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_EXPORT_METAL_OBJECTS_INFO_EXT'+--+-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_EXPORT_METAL_OBJECT_CREATE_INFO_EXT'+--+-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_EXPORT_METAL_SHARED_EVENT_INFO_EXT'+--+-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_EXPORT_METAL_TEXTURE_INFO_EXT'+--+-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_IMPORT_METAL_BUFFER_INFO_EXT'+--+-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_IMPORT_METAL_IO_SURFACE_INFO_EXT'+--+-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_IMPORT_METAL_SHARED_EVENT_INFO_EXT'+--+-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_IMPORT_METAL_TEXTURE_INFO_EXT'+--+-- == Issues+--+-- None.+--+-- == Version History+--+-- - Revision 1, 2022-05-28 (Bill Hollings)+--+-- - Initial draft.+--+-- - Incorporated feedback from review by the Vulkan Working Group.+-- Renamed many structures, moved import\/export of MTLBuffer to+-- VkDeviceMemory, added export of MTLSharedEvent, added import of+-- MTLSharedEvent for VkSemaphore and VkEvent, and changed used bit+-- mask fields to individual bit fields to simplify Valid Usage+-- rules.+--+-- == See Also+--+-- 'IOSurfaceRef', 'MTLBuffer_id', 'MTLCommandQueue_id', 'MTLDevice_id',+-- 'MTLSharedEvent_id', 'MTLTexture_id', 'ExportMetalBufferInfoEXT',+-- 'ExportMetalCommandQueueInfoEXT', 'ExportMetalDeviceInfoEXT',+-- 'ExportMetalIOSurfaceInfoEXT', 'ExportMetalObjectCreateInfoEXT',+-- 'ExportMetalObjectTypeFlagBitsEXT', 'ExportMetalObjectTypeFlagsEXT',+-- 'ExportMetalObjectsInfoEXT', 'ExportMetalSharedEventInfoEXT',+-- 'ExportMetalTextureInfoEXT', 'ImportMetalBufferInfoEXT',+-- 'ImportMetalIOSurfaceInfoEXT', 'ImportMetalSharedEventInfoEXT',+-- 'ImportMetalTextureInfoEXT', 'exportMetalObjectsEXT'+--+-- == Document Notes+--+-- For more information, see the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_metal_objects Vulkan Specification>+--+-- This page is a generated document. Fixes and changes should be made to+-- the generator scripts, not directly.+module Vulkan.Extensions.VK_EXT_metal_objects ( ExportMetalBufferInfoEXT+ , ExportMetalCommandQueueInfoEXT+ , ExportMetalDeviceInfoEXT+ , ExportMetalIOSurfaceInfoEXT+ , ExportMetalObjectCreateInfoEXT+ , ExportMetalObjectsInfoEXT+ , ExportMetalSharedEventInfoEXT+ , ExportMetalTextureInfoEXT+ , ImportMetalBufferInfoEXT+ , ImportMetalIOSurfaceInfoEXT+ , ImportMetalSharedEventInfoEXT+ , ImportMetalTextureInfoEXT+ ) where++import Vulkan.CStruct (FromCStruct)+import Vulkan.CStruct (ToCStruct)+import Data.Kind (Type)+import {-# SOURCE #-} Vulkan.CStruct.Extends (Chain)+import {-# SOURCE #-} Vulkan.CStruct.Extends (Extendss)+import {-# SOURCE #-} Vulkan.CStruct.Extends (PeekChain)+import {-# SOURCE #-} Vulkan.CStruct.Extends (PokeChain)+data ExportMetalBufferInfoEXT++instance ToCStruct ExportMetalBufferInfoEXT+instance Show ExportMetalBufferInfoEXT++instance FromCStruct ExportMetalBufferInfoEXT+++data ExportMetalCommandQueueInfoEXT++instance ToCStruct ExportMetalCommandQueueInfoEXT+instance Show ExportMetalCommandQueueInfoEXT++instance FromCStruct ExportMetalCommandQueueInfoEXT+++data ExportMetalDeviceInfoEXT++instance ToCStruct ExportMetalDeviceInfoEXT+instance Show ExportMetalDeviceInfoEXT++instance FromCStruct ExportMetalDeviceInfoEXT+++data ExportMetalIOSurfaceInfoEXT++instance ToCStruct ExportMetalIOSurfaceInfoEXT+instance Show ExportMetalIOSurfaceInfoEXT++instance FromCStruct ExportMetalIOSurfaceInfoEXT+++data ExportMetalObjectCreateInfoEXT++instance ToCStruct ExportMetalObjectCreateInfoEXT+instance Show ExportMetalObjectCreateInfoEXT++instance FromCStruct ExportMetalObjectCreateInfoEXT+++type role ExportMetalObjectsInfoEXT nominal+data ExportMetalObjectsInfoEXT (es :: [Type])++instance (Extendss ExportMetalObjectsInfoEXT es, PokeChain es) => ToCStruct (ExportMetalObjectsInfoEXT es)+instance Show (Chain es) => Show (ExportMetalObjectsInfoEXT es)++instance (Extendss ExportMetalObjectsInfoEXT es, PeekChain es) => FromCStruct (ExportMetalObjectsInfoEXT es)+++data ExportMetalSharedEventInfoEXT++instance ToCStruct ExportMetalSharedEventInfoEXT+instance Show ExportMetalSharedEventInfoEXT++instance FromCStruct ExportMetalSharedEventInfoEXT+++data ExportMetalTextureInfoEXT++instance ToCStruct ExportMetalTextureInfoEXT+instance Show ExportMetalTextureInfoEXT++instance FromCStruct ExportMetalTextureInfoEXT+++data ImportMetalBufferInfoEXT++instance ToCStruct ImportMetalBufferInfoEXT+instance Show ImportMetalBufferInfoEXT++instance FromCStruct ImportMetalBufferInfoEXT+++data ImportMetalIOSurfaceInfoEXT++instance ToCStruct ImportMetalIOSurfaceInfoEXT+instance Show ImportMetalIOSurfaceInfoEXT++instance FromCStruct ImportMetalIOSurfaceInfoEXT+++data ImportMetalSharedEventInfoEXT++instance ToCStruct ImportMetalSharedEventInfoEXT+instance Show ImportMetalSharedEventInfoEXT++instance FromCStruct ImportMetalSharedEventInfoEXT+++data ImportMetalTextureInfoEXT++instance ToCStruct ImportMetalTextureInfoEXT+instance Show ImportMetalTextureInfoEXT++instance FromCStruct ImportMetalTextureInfoEXT+
src/Vulkan/Extensions/VK_EXT_metal_surface.hs view
@@ -19,9 +19,9 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_surface@+-- - Requires @VK_KHR_surface@ to be enabled -- -- [__Contact__] --@@ -87,7 +87,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_metal_surface Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_metal_surface Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.@@ -216,7 +216,7 @@ MetalSurfaceCreateInfoEXT -> -- | @pAllocator@ is the allocator used for host memory allocated for the -- surface object when there is no more specific allocator available (see- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>).+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>). ("allocator" ::: Maybe AllocationCallbacks) -> io (SurfaceKHR) createMetalSurfaceEXT instance' createInfo allocator = liftIO . evalContT $ do
src/Vulkan/Extensions/VK_EXT_metal_surface.hs-boot view
@@ -19,9 +19,9 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_surface@+-- - Requires @VK_KHR_surface@ to be enabled -- -- [__Contact__] --@@ -87,7 +87,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_metal_surface Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_metal_surface Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_EXT_multi_draw.hs view
@@ -19,7 +19,7 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 -- -- [__Contact__] --@@ -117,7 +117,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_multi_draw Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_multi_draw Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.@@ -236,16 +236,16 @@ -- -- - #VUID-vkCmdDrawMultiEXT-None-02692# If a -- 'Vulkan.Core10.Handles.ImageView' is sampled with--- 'Vulkan.Extensions.VK_EXT_filter_cubic.FILTER_CUBIC_EXT' as a result--- of this command, then the image view’s+-- 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as a result of this+-- command, then the image view’s -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features> -- /must/ contain--- 'Vulkan.Extensions.VK_EXT_filter_cubic.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT'+-- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT' -- -- - #VUID-vkCmdDrawMultiEXT-filterCubic-02694# Any -- 'Vulkan.Core10.Handles.ImageView' being sampled with--- 'Vulkan.Extensions.VK_EXT_filter_cubic.FILTER_CUBIC_EXT' as a result--- of this command /must/ have a+-- 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as a result of this+-- command /must/ have a -- 'Vulkan.Core10.Enums.ImageViewType.ImageViewType' and format that -- supports cubic filtering, as specified by -- 'Vulkan.Extensions.VK_EXT_filter_cubic.FilterCubicImageViewImageFormatPropertiesEXT'::@filterCubic@@@ -254,8 +254,8 @@ -- -- - #VUID-vkCmdDrawMultiEXT-filterCubicMinmax-02695# Any -- 'Vulkan.Core10.Handles.ImageView' being sampled with--- 'Vulkan.Extensions.VK_EXT_filter_cubic.FILTER_CUBIC_EXT' with a--- reduction mode of either+-- 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' with a reduction mode+-- of either -- 'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MIN' -- or -- 'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MAX'@@ -275,22 +275,38 @@ -- 'Vulkan.Core10.Enums.SamplerAddressMode.SamplerAddressMode' of -- 'Vulkan.Core10.Enums.SamplerAddressMode.SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE' ----- - #VUID-vkCmdDrawMultiEXT-OpTypeImage-06423# Any--- 'Vulkan.Core10.Handles.ImageView' or--- 'Vulkan.Core10.Handles.BufferView' being written as a storage image--- or storage texel buffer where the image format field of the--- @OpTypeImage@ is @Unknown@ then the view’s format feature /must/--- contain+-- - #VUID-vkCmdDrawMultiEXT-OpTypeImage-07027# For any+-- 'Vulkan.Core10.Handles.ImageView' being written as a storage image+-- where the image format field of the @OpTypeImage@ is @Unknown@, the+-- view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain -- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT' ----- - #VUID-vkCmdDrawMultiEXT-OpTypeImage-06424# Any--- 'Vulkan.Core10.Handles.ImageView' or--- 'Vulkan.Core10.Handles.BufferView' being read as a storage image or--- storage texel buffer where the image format field of the--- @OpTypeImage@ is @Unknown@ then the view’s format feature /must/--- contain+-- - #VUID-vkCmdDrawMultiEXT-OpTypeImage-07028# For any+-- 'Vulkan.Core10.Handles.ImageView' being read as a storage image+-- where the image format field of the @OpTypeImage@ is @Unknown@, the+-- view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain -- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT' --+-- - #VUID-vkCmdDrawMultiEXT-OpTypeImage-07029# For any+-- 'Vulkan.Core10.Handles.BufferView' being written as a storage texel+-- buffer where the image format field of the @OpTypeImage@ is+-- @Unknown@, the view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkFormatProperties3 buffer features>+-- /must/ contain+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT'+--+-- - #VUID-vkCmdDrawMultiEXT-OpTypeImage-07030# Any+-- 'Vulkan.Core10.Handles.BufferView' being read as a storage texel+-- buffer where the image format field of the @OpTypeImage@ is+-- @Unknown@ then the view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkFormatProperties3 buffer features>+-- /must/ contain+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT'+-- -- - #VUID-vkCmdDrawMultiEXT-None-02697# For each set /n/ that is -- statically used by the 'Vulkan.Core10.Handles.Pipeline' bound to the -- pipeline bind point used by this command, a descriptor set /must/@@ -365,21 +381,31 @@ -- @OpImageSample*@ or @OpImageSparseSample*@ instructions that -- includes a LOD bias or any offset values, in any shader stage ----- - #VUID-vkCmdDrawMultiEXT-None-02705# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robust buffer access>--- feature is not enabled, and if the 'Vulkan.Core10.Handles.Pipeline'--- object bound to the pipeline bind point used by this command--- accesses a uniform buffer, it /must/ not access values outside of--- the range of the buffer as specified in the descriptor set bound to--- the same pipeline bind point+-- - #VUID-vkCmdDrawMultiEXT-uniformBuffers-06935# If any stage of the+-- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind+-- point used by this command accesses a uniform buffer, and that stage+-- was created without enabling either+-- 'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT'+-- or+-- 'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT'+-- for @uniformBuffers@, and the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>+-- feature is not enabled, that stage /must/ not access values outside+-- of the range of the buffer as specified in the descriptor set bound+-- to the same pipeline bind point ----- - #VUID-vkCmdDrawMultiEXT-None-02706# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robust buffer access>--- feature is not enabled, and if the 'Vulkan.Core10.Handles.Pipeline'--- object bound to the pipeline bind point used by this command--- accesses a storage buffer, it /must/ not access values outside of--- the range of the buffer as specified in the descriptor set bound to--- the same pipeline bind point+-- - #VUID-vkCmdDrawMultiEXT-storageBuffers-06936# If any stage of the+-- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind+-- point used by this command accesses a storage buffer, and that stage+-- was created without enabling either+-- 'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT'+-- or+-- 'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT'+-- for @storageBuffers@, and the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>+-- feature is not enabled, that stage /must/ not access values outside+-- of the range of the buffer as specified in the descriptor set bound+-- to the same pipeline bind point -- -- - #VUID-vkCmdDrawMultiEXT-commandBuffer-02707# If @commandBuffer@ is -- an unprotected command buffer and@@ -463,6 +489,67 @@ -- @OpTypeImage@ with a @SampledType@ with a @Width@ of 64 by this -- command --+-- - #VUID-vkCmdDrawMultiEXT-OpImageWeightedSampleQCOM-06971# If+-- @OpImageWeightedSampleQCOM@ is used to sample a+-- 'Vulkan.Core10.Handles.ImageView' as a result of this command, then+-- the image view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM'+--+-- - #VUID-vkCmdDrawMultiEXT-OpImageWeightedSampleQCOM-06972# If+-- @OpImageWeightedSampleQCOM@ uses a 'Vulkan.Core10.Handles.ImageView'+-- as a sample weight image as a result of this command, then the image+-- view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM'+--+-- - #VUID-vkCmdDrawMultiEXT-OpImageBoxFilterQCOM-06973# If+-- @OpImageBoxFilterQCOM@ is used to sample a+-- 'Vulkan.Core10.Handles.ImageView' as a result of this command, then+-- the image view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM'+--+-- - #VUID-vkCmdDrawMultiEXT-OpImageBlockMatchSSDQCOM-06974# If+-- @OpImageBlockMatchSSDQCOM@ is used to read from an+-- 'Vulkan.Core10.Handles.ImageView' as a result of this command, then+-- the image view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM'+--+-- - #VUID-vkCmdDrawMultiEXT-OpImageBlockMatchSADQCOM-06975# If+-- @OpImageBlockMatchSADQCOM@ is used to read from an+-- 'Vulkan.Core10.Handles.ImageView' as a result of this command, then+-- the image view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM'+--+-- - #VUID-vkCmdDrawMultiEXT-OpImageBlockMatchSADQCOM-06976# If+-- @OpImageBlockMatchSADQCOM@ or OpImageBlockMatchSSDQCOM is used to+-- read from a reference image as result of this command, then the+-- specified reference coordinates /must/ not fail+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-integer-coordinate-validation integer texel coordinate validation>.+--+-- - #VUID-vkCmdDrawMultiEXT-OpImageWeightedSampleQCOM-06977# If+-- @OpImageWeightedSampleQCOM@, @OpImageBoxFilterQCOM@,+-- @OpImageBlockMatchSSDQCOM@, or @OpImageBlockMatchSADQCOM@ uses a+-- 'Vulkan.Core10.Handles.Sampler' as a result of this command, then+-- the sampler /must/ have been created with+-- 'Vulkan.Core10.Enums.SamplerCreateFlagBits.SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM'.+--+-- - #VUID-vkCmdDrawMultiEXT-OpImageWeightedSampleQCOM-06978# If any+-- command other than @OpImageWeightedSampleQCOM@,+-- @OpImageBoxFilterQCOM@, @OpImageBlockMatchSSDQCOM@, or+-- @OpImageBlockMatchSADQCOM@ uses a 'Vulkan.Core10.Handles.Sampler' as+-- a result of this command, then the sampler /must/ not have been+-- created with+-- 'Vulkan.Core10.Enums.SamplerCreateFlagBits.SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM'.+-- -- - #VUID-vkCmdDrawMultiEXT-renderPass-02684# The current render pass -- /must/ be -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-compatibility compatible>@@ -498,6 +585,18 @@ -- attachment in any way other than as an attachment, this command -- /must/ not write to that image subresource as an attachment --+-- - #VUID-vkCmdDrawMultiEXT-None-06886# If the current render pass+-- instance uses a depth\/stencil attachment with a read-only layout+-- for the depth aspect,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragops-depth-write depth writes>+-- /must/ be disabled+--+-- - #VUID-vkCmdDrawMultiEXT-None-06887# If the current render pass+-- instance uses a depth\/stencil attachment with a read-only layout+-- for the stencil aspect and stencil test is enabled,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragops-stencil all stencil ops>+-- /must/ be 'Vulkan.Core10.Enums.StencilOp.STENCIL_OP_KEEP'+-- -- - #VUID-vkCmdDrawMultiEXT-maxMultiviewInstanceIndex-02688# If the draw -- is recorded in a render pass instance with multiview enabled, the -- maximum instance index /must/ be less than or equal to@@ -616,8 +715,9 @@ -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT' -- dynamic state enabled and a -- 'Vulkan.Extensions.VK_NV_viewport_swizzle.PipelineViewportSwizzleStateCreateInfoNV'--- structure chained from @VkPipelineVieportCreateInfo@, then the bound--- graphics pipeline /must/ have been created with+-- structure chained from+-- 'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo', then the+-- bound graphics pipeline /must/ have been created with -- 'Vulkan.Extensions.VK_NV_viewport_swizzle.PipelineViewportSwizzleStateCreateInfoNV'::@viewportCount@ -- greater or equal to the @viewportCount@ parameter in the last call -- to@@ -628,8 +728,9 @@ -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT' -- dynamic state enabled and a -- 'Vulkan.Extensions.VK_NV_scissor_exclusive.PipelineViewportExclusiveScissorStateCreateInfoNV'--- structure chained from @VkPipelineVieportCreateInfo@, then the bound--- graphics pipeline /must/ have been created with+-- structure chained from+-- 'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo', then the+-- bound graphics pipeline /must/ have been created with -- 'Vulkan.Extensions.VK_NV_scissor_exclusive.PipelineViewportExclusiveScissorStateCreateInfoNV'::@exclusiveScissorCount@ -- greater or equal to the @viewportCount@ parameter in the last call -- to@@ -787,31 +888,42 @@ -- /must/ have been called in the current command buffer prior to this -- drawing command, and the @attachmentCount@ parameter of -- 'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'--- /must/ be equal to the+-- /must/ be greater than or equal to the -- 'Vulkan.Core10.Pipeline.PipelineColorBlendStateCreateInfo'::@attachmentCount@ -- of the currently bound graphics pipeline --+-- - #VUID-vkCmdDrawMultiEXT-attachmentCount-06815# If the bound graphics+-- pipeline state was created with the+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT'+-- dynamic state enabled then+-- 'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'+-- /must/ have been called in the current command buffer prior to this+-- drawing command, and the @attachmentCount@ parameter of+-- 'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'+-- /must/ be less than or equal to the @maxColorAttachments@ member of+-- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'+-- -- - #VUID-vkCmdDrawMultiEXT-pDepthAttachment-06181# If the current -- render pass instance was begun with -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' -- and--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->pname@:imageView+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@ -- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@depthAttachmentFormat@ -- used to create the currently bound graphics pipeline /must/ be equal -- to the 'Vulkan.Core10.Enums.Format.Format' used to create--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->pname@:imageView+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@ -- -- - #VUID-vkCmdDrawMultiEXT-pStencilAttachment-06182# If the current -- render pass instance was begun with -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' -- and--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->pname@:imageView+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@ -- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@stencilAttachmentFormat@ -- used to create the currently bound graphics pipeline /must/ be equal -- to the 'Vulkan.Core10.Enums.Format.Format' used to create--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->pname@:imageView+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@ -- -- - #VUID-vkCmdDrawMultiEXT-imageView-06183# If the current render pass -- instance was begun with@@ -859,7 +971,7 @@ -- or -- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV' -- structure, and--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->pname@:imageView+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@ -- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of the -- @depthStencilAttachmentSamples@ member of -- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'@@ -867,7 +979,7 @@ -- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV' -- used to create the currently bound graphics pipeline /must/ be equal -- to the sample count used to create--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->pname@:imageView+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@ -- -- - #VUID-vkCmdDrawMultiEXT-pStencilAttachment-06187# If the current -- render pass instance was begun with@@ -877,7 +989,7 @@ -- or -- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV' -- structure, and--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->pname@:imageView+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@ -- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of the -- @depthStencilAttachmentSamples@ member of -- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'@@ -885,7 +997,7 @@ -- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV' -- used to create the currently bound graphics pipeline /must/ be equal -- to the sample count used to create--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->pname@:imageView+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@ -- -- - #VUID-vkCmdDrawMultiEXT-colorAttachmentCount-06188# If the currently -- bound pipeline was created without a@@ -912,12 +1024,12 @@ -- or -- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV' -- structure, and--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->pname@:imageView+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@ -- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of -- 'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'::@rasterizationSamples@ -- used to create the currently bound graphics pipeline /must/ be equal -- to the sample count used to create--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->pname@:imageView+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@ -- -- - #VUID-vkCmdDrawMultiEXT-pStencilAttachment-06190# If the current -- render pass instance was begun with@@ -927,12 +1039,12 @@ -- or -- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV' -- structure, and--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->pname@:imageView+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@ -- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of -- 'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'::@rasterizationSamples@ -- used to create the currently bound graphics pipeline /must/ be equal -- to the sample count used to create--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->pname@:imageView+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@ -- -- - #VUID-vkCmdDrawMultiEXT-renderPass-06198# If the current render pass -- instance was begun with@@ -959,6 +1071,21 @@ -- created with a non-zero value in -- 'Vulkan.Extensions.VK_EXT_transform_feedback.PipelineRasterizationStateStreamCreateInfoEXT'::@rasterizationStream@. --+-- - #VUID-vkCmdDrawMultiEXT-stage-07073# If the currently bound pipeline+-- was created with the+-- 'Vulkan.Core10.Pipeline.PipelineShaderStageCreateInfo'::@stage@+-- member of an element of+-- 'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo'::@pStages@ set+-- to+-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT',+-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_CONTROL_BIT',+-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT'+-- or+-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT',+-- then+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#queries-mesh-shader Mesh Shader Queries>+-- must not be active+-- -- - #VUID-vkCmdDrawMultiEXT-commandBuffer-02712# If @commandBuffer@ is a -- protected command buffer and -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>@@ -1063,12 +1190,12 @@ -- member of an element of -- 'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo'::@pStages@ set -- to--- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_NV'+-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT' -- or--- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_NV'+-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT' -- -- - #VUID-vkCmdDrawMultiEXT-None-04933# The--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-multiDraw multiDraw>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-multiDraw multiDraw> -- feature /must/ be enabled -- -- - #VUID-vkCmdDrawMultiEXT-drawCount-04934# @drawCount@ /must/ be less@@ -1098,6 +1225,9 @@ -- - #VUID-vkCmdDrawMultiEXT-renderpass# This command /must/ only be -- called inside of a render pass instance --+-- - #VUID-vkCmdDrawMultiEXT-videocoding# This command /must/ only be+-- called outside of a video coding scope+-- -- == Host Synchronization -- -- - Host access to @commandBuffer@ /must/ be externally synchronized@@ -1109,12 +1239,12 @@ -- -- \' ----- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | Primary | Inside | Graphics |--- | Secondary | | |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================++-- | Primary | Inside | Outside | Graphics |+-- | Secondary | | | |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+ -- -- = See Also --@@ -1204,16 +1334,16 @@ -- -- - #VUID-vkCmdDrawMultiIndexedEXT-None-02692# If a -- 'Vulkan.Core10.Handles.ImageView' is sampled with--- 'Vulkan.Extensions.VK_EXT_filter_cubic.FILTER_CUBIC_EXT' as a result--- of this command, then the image view’s+-- 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as a result of this+-- command, then the image view’s -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features> -- /must/ contain--- 'Vulkan.Extensions.VK_EXT_filter_cubic.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT'+-- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT' -- -- - #VUID-vkCmdDrawMultiIndexedEXT-filterCubic-02694# Any -- 'Vulkan.Core10.Handles.ImageView' being sampled with--- 'Vulkan.Extensions.VK_EXT_filter_cubic.FILTER_CUBIC_EXT' as a result--- of this command /must/ have a+-- 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as a result of this+-- command /must/ have a -- 'Vulkan.Core10.Enums.ImageViewType.ImageViewType' and format that -- supports cubic filtering, as specified by -- 'Vulkan.Extensions.VK_EXT_filter_cubic.FilterCubicImageViewImageFormatPropertiesEXT'::@filterCubic@@@ -1222,8 +1352,8 @@ -- -- - #VUID-vkCmdDrawMultiIndexedEXT-filterCubicMinmax-02695# Any -- 'Vulkan.Core10.Handles.ImageView' being sampled with--- 'Vulkan.Extensions.VK_EXT_filter_cubic.FILTER_CUBIC_EXT' with a--- reduction mode of either+-- 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' with a reduction mode+-- of either -- 'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MIN' -- or -- 'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MAX'@@ -1243,22 +1373,38 @@ -- 'Vulkan.Core10.Enums.SamplerAddressMode.SamplerAddressMode' of -- 'Vulkan.Core10.Enums.SamplerAddressMode.SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE' ----- - #VUID-vkCmdDrawMultiIndexedEXT-OpTypeImage-06423# Any--- 'Vulkan.Core10.Handles.ImageView' or--- 'Vulkan.Core10.Handles.BufferView' being written as a storage image--- or storage texel buffer where the image format field of the--- @OpTypeImage@ is @Unknown@ then the view’s format feature /must/--- contain+-- - #VUID-vkCmdDrawMultiIndexedEXT-OpTypeImage-07027# For any+-- 'Vulkan.Core10.Handles.ImageView' being written as a storage image+-- where the image format field of the @OpTypeImage@ is @Unknown@, the+-- view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain -- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT' ----- - #VUID-vkCmdDrawMultiIndexedEXT-OpTypeImage-06424# Any--- 'Vulkan.Core10.Handles.ImageView' or--- 'Vulkan.Core10.Handles.BufferView' being read as a storage image or--- storage texel buffer where the image format field of the--- @OpTypeImage@ is @Unknown@ then the view’s format feature /must/--- contain+-- - #VUID-vkCmdDrawMultiIndexedEXT-OpTypeImage-07028# For any+-- 'Vulkan.Core10.Handles.ImageView' being read as a storage image+-- where the image format field of the @OpTypeImage@ is @Unknown@, the+-- view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain -- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT' --+-- - #VUID-vkCmdDrawMultiIndexedEXT-OpTypeImage-07029# For any+-- 'Vulkan.Core10.Handles.BufferView' being written as a storage texel+-- buffer where the image format field of the @OpTypeImage@ is+-- @Unknown@, the view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkFormatProperties3 buffer features>+-- /must/ contain+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT'+--+-- - #VUID-vkCmdDrawMultiIndexedEXT-OpTypeImage-07030# Any+-- 'Vulkan.Core10.Handles.BufferView' being read as a storage texel+-- buffer where the image format field of the @OpTypeImage@ is+-- @Unknown@ then the view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkFormatProperties3 buffer features>+-- /must/ contain+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT'+-- -- - #VUID-vkCmdDrawMultiIndexedEXT-None-02697# For each set /n/ that is -- statically used by the 'Vulkan.Core10.Handles.Pipeline' bound to the -- pipeline bind point used by this command, a descriptor set /must/@@ -1333,21 +1479,31 @@ -- @OpImageSample*@ or @OpImageSparseSample*@ instructions that -- includes a LOD bias or any offset values, in any shader stage ----- - #VUID-vkCmdDrawMultiIndexedEXT-None-02705# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robust buffer access>--- feature is not enabled, and if the 'Vulkan.Core10.Handles.Pipeline'--- object bound to the pipeline bind point used by this command--- accesses a uniform buffer, it /must/ not access values outside of--- the range of the buffer as specified in the descriptor set bound to--- the same pipeline bind point+-- - #VUID-vkCmdDrawMultiIndexedEXT-uniformBuffers-06935# If any stage of+-- the 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline+-- bind point used by this command accesses a uniform buffer, and that+-- stage was created without enabling either+-- 'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT'+-- or+-- 'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT'+-- for @uniformBuffers@, and the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>+-- feature is not enabled, that stage /must/ not access values outside+-- of the range of the buffer as specified in the descriptor set bound+-- to the same pipeline bind point ----- - #VUID-vkCmdDrawMultiIndexedEXT-None-02706# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robust buffer access>--- feature is not enabled, and if the 'Vulkan.Core10.Handles.Pipeline'--- object bound to the pipeline bind point used by this command--- accesses a storage buffer, it /must/ not access values outside of--- the range of the buffer as specified in the descriptor set bound to--- the same pipeline bind point+-- - #VUID-vkCmdDrawMultiIndexedEXT-storageBuffers-06936# If any stage of+-- the 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline+-- bind point used by this command accesses a storage buffer, and that+-- stage was created without enabling either+-- 'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT'+-- or+-- 'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT'+-- for @storageBuffers@, and the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>+-- feature is not enabled, that stage /must/ not access values outside+-- of the range of the buffer as specified in the descriptor set bound+-- to the same pipeline bind point -- -- - #VUID-vkCmdDrawMultiIndexedEXT-commandBuffer-02707# If -- @commandBuffer@ is an unprotected command buffer and@@ -1431,6 +1587,67 @@ -- @OpTypeImage@ with a @SampledType@ with a @Width@ of 64 by this -- command --+-- - #VUID-vkCmdDrawMultiIndexedEXT-OpImageWeightedSampleQCOM-06971# If+-- @OpImageWeightedSampleQCOM@ is used to sample a+-- 'Vulkan.Core10.Handles.ImageView' as a result of this command, then+-- the image view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM'+--+-- - #VUID-vkCmdDrawMultiIndexedEXT-OpImageWeightedSampleQCOM-06972# If+-- @OpImageWeightedSampleQCOM@ uses a 'Vulkan.Core10.Handles.ImageView'+-- as a sample weight image as a result of this command, then the image+-- view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM'+--+-- - #VUID-vkCmdDrawMultiIndexedEXT-OpImageBoxFilterQCOM-06973# If+-- @OpImageBoxFilterQCOM@ is used to sample a+-- 'Vulkan.Core10.Handles.ImageView' as a result of this command, then+-- the image view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM'+--+-- - #VUID-vkCmdDrawMultiIndexedEXT-OpImageBlockMatchSSDQCOM-06974# If+-- @OpImageBlockMatchSSDQCOM@ is used to read from an+-- 'Vulkan.Core10.Handles.ImageView' as a result of this command, then+-- the image view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM'+--+-- - #VUID-vkCmdDrawMultiIndexedEXT-OpImageBlockMatchSADQCOM-06975# If+-- @OpImageBlockMatchSADQCOM@ is used to read from an+-- 'Vulkan.Core10.Handles.ImageView' as a result of this command, then+-- the image view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM'+--+-- - #VUID-vkCmdDrawMultiIndexedEXT-OpImageBlockMatchSADQCOM-06976# If+-- @OpImageBlockMatchSADQCOM@ or OpImageBlockMatchSSDQCOM is used to+-- read from a reference image as result of this command, then the+-- specified reference coordinates /must/ not fail+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-integer-coordinate-validation integer texel coordinate validation>.+--+-- - #VUID-vkCmdDrawMultiIndexedEXT-OpImageWeightedSampleQCOM-06977# If+-- @OpImageWeightedSampleQCOM@, @OpImageBoxFilterQCOM@,+-- @OpImageBlockMatchSSDQCOM@, or @OpImageBlockMatchSADQCOM@ uses a+-- 'Vulkan.Core10.Handles.Sampler' as a result of this command, then+-- the sampler /must/ have been created with+-- 'Vulkan.Core10.Enums.SamplerCreateFlagBits.SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM'.+--+-- - #VUID-vkCmdDrawMultiIndexedEXT-OpImageWeightedSampleQCOM-06978# If+-- any command other than @OpImageWeightedSampleQCOM@,+-- @OpImageBoxFilterQCOM@, @OpImageBlockMatchSSDQCOM@, or+-- @OpImageBlockMatchSADQCOM@ uses a 'Vulkan.Core10.Handles.Sampler' as+-- a result of this command, then the sampler /must/ not have been+-- created with+-- 'Vulkan.Core10.Enums.SamplerCreateFlagBits.SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM'.+-- -- - #VUID-vkCmdDrawMultiIndexedEXT-renderPass-02684# The current render -- pass /must/ be -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-compatibility compatible>@@ -1466,6 +1683,18 @@ -- an attachment in any way other than as an attachment, this command -- /must/ not write to that image subresource as an attachment --+-- - #VUID-vkCmdDrawMultiIndexedEXT-None-06886# If the current render+-- pass instance uses a depth\/stencil attachment with a read-only+-- layout for the depth aspect,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragops-depth-write depth writes>+-- /must/ be disabled+--+-- - #VUID-vkCmdDrawMultiIndexedEXT-None-06887# If the current render+-- pass instance uses a depth\/stencil attachment with a read-only+-- layout for the stencil aspect and stencil test is enabled,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragops-stencil all stencil ops>+-- /must/ be 'Vulkan.Core10.Enums.StencilOp.STENCIL_OP_KEEP'+-- -- - #VUID-vkCmdDrawMultiIndexedEXT-maxMultiviewInstanceIndex-02688# If -- the draw is recorded in a render pass instance with multiview -- enabled, the maximum instance index /must/ be less than or equal to@@ -1584,8 +1813,9 @@ -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT' -- dynamic state enabled and a -- 'Vulkan.Extensions.VK_NV_viewport_swizzle.PipelineViewportSwizzleStateCreateInfoNV'--- structure chained from @VkPipelineVieportCreateInfo@, then the bound--- graphics pipeline /must/ have been created with+-- structure chained from+-- 'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo', then the+-- bound graphics pipeline /must/ have been created with -- 'Vulkan.Extensions.VK_NV_viewport_swizzle.PipelineViewportSwizzleStateCreateInfoNV'::@viewportCount@ -- greater or equal to the @viewportCount@ parameter in the last call -- to@@ -1596,8 +1826,9 @@ -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT' -- dynamic state enabled and a -- 'Vulkan.Extensions.VK_NV_scissor_exclusive.PipelineViewportExclusiveScissorStateCreateInfoNV'--- structure chained from @VkPipelineVieportCreateInfo@, then the bound--- graphics pipeline /must/ have been created with+-- structure chained from+-- 'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo', then the+-- bound graphics pipeline /must/ have been created with -- 'Vulkan.Extensions.VK_NV_scissor_exclusive.PipelineViewportExclusiveScissorStateCreateInfoNV'::@exclusiveScissorCount@ -- greater or equal to the @viewportCount@ parameter in the last call -- to@@ -1755,31 +1986,42 @@ -- /must/ have been called in the current command buffer prior to this -- drawing command, and the @attachmentCount@ parameter of -- 'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'--- /must/ be equal to the+-- /must/ be greater than or equal to the -- 'Vulkan.Core10.Pipeline.PipelineColorBlendStateCreateInfo'::@attachmentCount@ -- of the currently bound graphics pipeline --+-- - #VUID-vkCmdDrawMultiIndexedEXT-attachmentCount-06815# If the bound+-- graphics pipeline state was created with the+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT'+-- dynamic state enabled then+-- 'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'+-- /must/ have been called in the current command buffer prior to this+-- drawing command, and the @attachmentCount@ parameter of+-- 'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'+-- /must/ be less than or equal to the @maxColorAttachments@ member of+-- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'+-- -- - #VUID-vkCmdDrawMultiIndexedEXT-pDepthAttachment-06181# If the -- current render pass instance was begun with -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' -- and--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->pname@:imageView+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@ -- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@depthAttachmentFormat@ -- used to create the currently bound graphics pipeline /must/ be equal -- to the 'Vulkan.Core10.Enums.Format.Format' used to create--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->pname@:imageView+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@ -- -- - #VUID-vkCmdDrawMultiIndexedEXT-pStencilAttachment-06182# If the -- current render pass instance was begun with -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' -- and--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->pname@:imageView+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@ -- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@stencilAttachmentFormat@ -- used to create the currently bound graphics pipeline /must/ be equal -- to the 'Vulkan.Core10.Enums.Format.Format' used to create--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->pname@:imageView+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@ -- -- - #VUID-vkCmdDrawMultiIndexedEXT-imageView-06183# If the current -- render pass instance was begun with@@ -1827,7 +2069,7 @@ -- or -- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV' -- structure, and--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->pname@:imageView+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@ -- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of the -- @depthStencilAttachmentSamples@ member of -- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'@@ -1835,7 +2077,7 @@ -- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV' -- used to create the currently bound graphics pipeline /must/ be equal -- to the sample count used to create--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->pname@:imageView+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@ -- -- - #VUID-vkCmdDrawMultiIndexedEXT-pStencilAttachment-06187# If the -- current render pass instance was begun with@@ -1845,7 +2087,7 @@ -- or -- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV' -- structure, and--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->pname@:imageView+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@ -- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of the -- @depthStencilAttachmentSamples@ member of -- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'@@ -1853,7 +2095,7 @@ -- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV' -- used to create the currently bound graphics pipeline /must/ be equal -- to the sample count used to create--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->pname@:imageView+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@ -- -- - #VUID-vkCmdDrawMultiIndexedEXT-colorAttachmentCount-06188# If the -- currently bound pipeline was created without a@@ -1880,12 +2122,12 @@ -- or -- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV' -- structure, and--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->pname@:imageView+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@ -- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of -- 'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'::@rasterizationSamples@ -- used to create the currently bound graphics pipeline /must/ be equal -- to the sample count used to create--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->pname@:imageView+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@ -- -- - #VUID-vkCmdDrawMultiIndexedEXT-pStencilAttachment-06190# If the -- current render pass instance was begun with@@ -1895,12 +2137,12 @@ -- or -- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV' -- structure, and--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->pname@:imageView+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@ -- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of -- 'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'::@rasterizationSamples@ -- used to create the currently bound graphics pipeline /must/ be equal -- to the sample count used to create--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->pname@:imageView+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@ -- -- - #VUID-vkCmdDrawMultiIndexedEXT-renderPass-06198# If the current -- render pass instance was begun with@@ -1927,6 +2169,21 @@ -- created with a non-zero value in -- 'Vulkan.Extensions.VK_EXT_transform_feedback.PipelineRasterizationStateStreamCreateInfoEXT'::@rasterizationStream@. --+-- - #VUID-vkCmdDrawMultiIndexedEXT-stage-07073# If the currently bound+-- pipeline was created with the+-- 'Vulkan.Core10.Pipeline.PipelineShaderStageCreateInfo'::@stage@+-- member of an element of+-- 'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo'::@pStages@ set+-- to+-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT',+-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_CONTROL_BIT',+-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT'+-- or+-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT',+-- then+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#queries-mesh-shader Mesh Shader Queries>+-- must not be active+-- -- - #VUID-vkCmdDrawMultiIndexedEXT-commandBuffer-02712# If -- @commandBuffer@ is a protected command buffer and -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>@@ -2031,12 +2288,12 @@ -- member of an element of -- 'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo'::@pStages@ set -- to--- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_NV'+-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT' -- or--- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_NV'+-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT' -- -- - #VUID-vkCmdDrawMultiIndexedEXT-None-04937# The--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-multiDraw multiDraw>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-multiDraw multiDraw> -- feature /must/ be enabled -- -- - #VUID-vkCmdDrawMultiIndexedEXT-firstIndex-04938# (@indexSize@ ×@@ -2079,6 +2336,9 @@ -- - #VUID-vkCmdDrawMultiIndexedEXT-renderpass# This command /must/ only -- be called inside of a render pass instance --+-- - #VUID-vkCmdDrawMultiIndexedEXT-videocoding# This command /must/ only+-- be called outside of a video coding scope+-- -- == Host Synchronization -- -- - Host access to @commandBuffer@ /must/ be externally synchronized@@ -2090,12 +2350,12 @@ -- -- \' ----- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | Primary | Inside | Graphics |--- | Secondary | | |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================++-- | Primary | Inside | Outside | Graphics |+-- | Secondary | | | |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+ -- -- = See Also --@@ -2326,8 +2586,7 @@ -- -- = Members ----- The members of the 'PhysicalDeviceMultiDrawFeaturesEXT' structure--- describe the following features:+-- This structure describes the following features: -- -- = Description --
src/Vulkan/Extensions/VK_EXT_multi_draw.hs-boot view
@@ -19,7 +19,7 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 -- -- [__Contact__] --@@ -117,7 +117,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_multi_draw Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_multi_draw Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
+ src/Vulkan/Extensions/VK_EXT_multisampled_render_to_single_sampled.hs view
@@ -0,0 +1,448 @@+{-# language CPP #-}+-- | = Name+--+-- VK_EXT_multisampled_render_to_single_sampled - device extension+--+-- == VK_EXT_multisampled_render_to_single_sampled+--+-- [__Name String__]+-- @VK_EXT_multisampled_render_to_single_sampled@+--+-- [__Extension Type__]+-- Device extension+--+-- [__Registered Extension Number__]+-- 377+--+-- [__Revision__]+-- 1+--+-- [__Extension and Version Dependencies__]+--+-- - Requires support for Vulkan 1.0+--+-- - Requires @VK_KHR_create_renderpass2@ to be enabled for any+-- device-level functionality+--+-- - Requires @VK_KHR_depth_stencil_resolve@ to be enabled for any+-- device-level functionality+--+-- [__Contact__]+--+-- - Shahbaz Youssefi+-- <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_EXT_multisampled_render_to_single_sampled] @syoussefi%0A<<Here describe the issue or question you have about the VK_EXT_multisampled_render_to_single_sampled extension>> >+--+-- [__Extension Proposal__]+-- <https://github.com/KhronosGroup/Vulkan-Docs/tree/main/proposals/VK_EXT_multisampled_render_to_single_sampled.adoc VK_EXT_multisampled_render_to_single_sampled>+--+-- == Other Extension Metadata+--+-- [__Last Modified Date__]+-- 2021-04-16+--+-- [__IP Status__]+-- No known IP claims.+--+-- [__Contributors__]+--+-- - Shahbaz Youssefi, Google+--+-- - Jan-Harald Fredriksen, Arm+--+-- - Jörg Wagner, Arm+--+-- - Matthew Netsch, Qualcomm Technologies, Inc.+--+-- - Jarred Davies, Imagination Technologies+--+-- == Description+--+-- With careful usage of resolve attachments, multisampled image memory+-- allocated with+-- 'Vulkan.Core10.Enums.MemoryPropertyFlagBits.MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT',+-- @loadOp@ not equal to+-- 'Vulkan.Core10.Enums.AttachmentLoadOp.ATTACHMENT_LOAD_OP_LOAD' and+-- @storeOp@ not equal to+-- 'Vulkan.Core10.Enums.AttachmentStoreOp.ATTACHMENT_STORE_OP_STORE', a+-- Vulkan application is able to efficiently perform multisampled rendering+-- without incurring any additional memory penalty on some implementations.+--+-- Under certain circumstances however, the application may not be able to+-- complete its multisampled rendering within a single render pass; for+-- example if it does partial rasterization from frame to frame, blending+-- on an image from a previous frame, or in emulation of+-- GL_EXT_multisampled_render_to_texture. In such cases, the application+-- can use an initial subpass to effectively load single-sampled data from+-- the next subpass’s resolve attachment and fill in the multisampled+-- attachment which otherwise uses @loadOp@ equal to+-- 'Vulkan.Core10.Enums.AttachmentLoadOp.ATTACHMENT_LOAD_OP_DONT_CARE'.+-- However, this is not always possible (for example for stencil in the+-- absence of VK_EXT_shader_stencil_export) and has multiple drawbacks.+--+-- Some implementations are able to perform said operation efficiently in+-- hardware, effectively loading a multisampled attachment from the+-- contents of a single sampled one. Together with the ability to perform a+-- resolve operation at the end of a subpass, these implementations are+-- able to perform multisampled rendering on single-sampled attachments+-- with no extra memory or bandwidth overhead. This extension exposes this+-- capability by allowing a framebuffer and render pass to include+-- single-sampled attachments while rendering is done with a specified+-- number of samples.+--+-- == New Structures+--+-- - Extending+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.FormatProperties2':+--+-- - 'SubpassResolvePerformanceQueryEXT'+--+-- - Extending+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',+-- 'Vulkan.Core10.Device.DeviceCreateInfo':+--+-- - 'PhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT'+--+-- - Extending+-- 'Vulkan.Core12.Promoted_From_VK_KHR_create_renderpass2.SubpassDescription2',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo':+--+-- - 'MultisampledRenderToSingleSampledInfoEXT'+--+-- == New Enum Constants+--+-- - 'EXT_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_EXTENSION_NAME'+--+-- - 'EXT_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_SPEC_VERSION'+--+-- - Extending+-- 'Vulkan.Core10.Enums.ImageCreateFlagBits.ImageCreateFlagBits':+--+-- - 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_BIT_EXT'+--+-- - Extending 'Vulkan.Core10.Enums.StructureType.StructureType':+--+-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_INFO_EXT'+--+-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_FEATURES_EXT'+--+-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_SUBPASS_RESOLVE_PERFORMANCE_QUERY_EXT'+--+-- == Issues+--+-- 1) Could the multisampled attachment be initialized through some form of+-- copy?+--+-- __RESOLVED__: No. Some implementations do not support copying between+-- attachments in general, and find expressing this operation through a+-- copy unnatural.+--+-- 2) Another way to achieve this is by introducing a new @loadOp@ to load+-- the contents of the multisampled image from a single-sampled one. Why is+-- this extension preferred?+--+-- __RESOLVED__: Using this extension simplifies the application, as it+-- does not need to manage a secondary lazily-allocated image.+-- Additionally, using this extension leaves less room for error; for+-- example a single mistake in @loadOp@ or @storeOp@ would result in the+-- lazily-allocated image to actually take up memory, and remain so until+-- destruction.+--+-- 3) There is no guarantee that multisampled data between two subpasses+-- with the same number of samples will be retained as the implementation+-- may be forced to split the render pass implicitly for various reasons.+-- Should this extension require that every subpass that uses+-- multisampled-render-to-single-sampled end in an implicit render pass+-- split (which results in a resolve operation)?+--+-- __RESOLVED__: No. Not requiring this allows render passes with multiple+-- multisampled-render-to-single-sampled subpasses to potentially execute+-- more efficiently (though there is no guarantee).+--+-- == Version History+--+-- - Revision 1, 2021-04-12 (Shahbaz Youssefi)+--+-- == See Also+--+-- 'MultisampledRenderToSingleSampledInfoEXT',+-- 'PhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT',+-- 'SubpassResolvePerformanceQueryEXT'+--+-- == Document Notes+--+-- For more information, see the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_multisampled_render_to_single_sampled Vulkan Specification>+--+-- This page is a generated document. Fixes and changes should be made to+-- the generator scripts, not directly.+module Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled ( PhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT(..)+ , SubpassResolvePerformanceQueryEXT(..)+ , MultisampledRenderToSingleSampledInfoEXT(..)+ , EXT_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_SPEC_VERSION+ , pattern EXT_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_SPEC_VERSION+ , EXT_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_EXTENSION_NAME+ , pattern EXT_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_EXTENSION_NAME+ ) where++import Foreign.Marshal.Alloc (allocaBytes)+import Foreign.Ptr (nullPtr)+import Foreign.Ptr (plusPtr)+import Vulkan.CStruct (FromCStruct)+import Vulkan.CStruct (FromCStruct(..))+import Vulkan.CStruct (ToCStruct)+import Vulkan.CStruct (ToCStruct(..))+import Vulkan.Zero (Zero(..))+import Data.String (IsString)+import Data.Typeable (Typeable)+import Foreign.Storable (Storable)+import Foreign.Storable (Storable(peek))+import Foreign.Storable (Storable(poke))+import qualified Foreign.Storable (Storable(..))+import GHC.Generics (Generic)+import Foreign.Ptr (Ptr)+import Data.Kind (Type)+import Vulkan.Core10.FundamentalTypes (bool32ToBool)+import Vulkan.Core10.FundamentalTypes (boolToBool32)+import Vulkan.Core10.FundamentalTypes (Bool32)+import Vulkan.Core10.Enums.SampleCountFlagBits (SampleCountFlagBits)+import Vulkan.Core10.Enums.StructureType (StructureType)+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_INFO_EXT))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_FEATURES_EXT))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_SUBPASS_RESOLVE_PERFORMANCE_QUERY_EXT))+-- | VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT - Structure+-- describing whether multisampled rendering to single-sampled attachments+-- is supported+--+-- = Members+--+-- This structure describes the following features:+--+-- = Description+--+-- If the 'PhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT'+-- structure is included in the @pNext@ chain of the+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2'+-- structure passed to+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceFeatures2',+-- it is filled in to indicate whether each corresponding feature is+-- supported. 'PhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT'+-- /can/ also be used in the @pNext@ chain of+-- 'Vulkan.Core10.Device.DeviceCreateInfo' to selectively enable these+-- features.+--+-- == Valid Usage (Implicit)+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_multisampled_render_to_single_sampled VK_EXT_multisampled_render_to_single_sampled>,+-- 'Vulkan.Core10.FundamentalTypes.Bool32',+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data PhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT = PhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT+ { -- | #features-multisampledRenderToSingleSampled#+ -- @multisampledRenderToSingleSampled@ indicates that the implementation+ -- supports multisampled rendering to single-sampled render pass+ -- attachments.+ multisampledRenderToSingleSampled :: Bool }+ deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (PhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT)+#endif+deriving instance Show PhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT++instance ToCStruct PhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT where+ withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)+ pokeCStruct p PhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT{..} f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_FEATURES_EXT)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (multisampledRenderToSingleSampled))+ f+ cStructSize = 24+ cStructAlignment = 8+ pokeZeroCStruct p f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_FEATURES_EXT)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (zero))+ f++instance FromCStruct PhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT where+ peekCStruct p = do+ multisampledRenderToSingleSampled <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))+ pure $ PhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT+ (bool32ToBool multisampledRenderToSingleSampled)++instance Storable PhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT where+ sizeOf ~_ = 24+ alignment ~_ = 8+ peek = peekCStruct+ poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero PhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT where+ zero = PhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT+ zero+++-- | VkSubpassResolvePerformanceQueryEXT - Structure specifying the+-- efficiency of subpass resolve for an attachment with a format+--+-- = Description+--+-- If @optimal@ is 'Vulkan.Core10.FundamentalTypes.FALSE' for a+-- 'Vulkan.Core10.Enums.Format.Format', using a subpass resolve operation+-- on a multisampled attachment with this format can incur additional+-- costs, including additional memory bandwidth usage and a higher memory+-- footprint. If an attachment with such a format is used in a+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#subpass-multisampledrendertosinglesampled multisampled-render-to-single-sampled>+-- subpass, the additional memory and memory bandwidth usage can nullify+-- the benefits of using the @VK_EXT_multisampled_render_to_single_sampled@+-- extension.+--+-- == Valid Usage (Implicit)+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_multisampled_render_to_single_sampled VK_EXT_multisampled_render_to_single_sampled>,+-- 'Vulkan.Core10.FundamentalTypes.Bool32',+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data SubpassResolvePerformanceQueryEXT = SubpassResolvePerformanceQueryEXT+ { -- | @optimal@ specifies that a subpass resolve operation is optimally+ -- performed.+ optimal :: Bool }+ deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (SubpassResolvePerformanceQueryEXT)+#endif+deriving instance Show SubpassResolvePerformanceQueryEXT++instance ToCStruct SubpassResolvePerformanceQueryEXT where+ withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)+ pokeCStruct p SubpassResolvePerformanceQueryEXT{..} f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_SUBPASS_RESOLVE_PERFORMANCE_QUERY_EXT)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (optimal))+ f+ cStructSize = 24+ cStructAlignment = 8+ pokeZeroCStruct p f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_SUBPASS_RESOLVE_PERFORMANCE_QUERY_EXT)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (zero))+ f++instance FromCStruct SubpassResolvePerformanceQueryEXT where+ peekCStruct p = do+ optimal <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))+ pure $ SubpassResolvePerformanceQueryEXT+ (bool32ToBool optimal)++instance Storable SubpassResolvePerformanceQueryEXT where+ sizeOf ~_ = 24+ alignment ~_ = 8+ peek = peekCStruct+ poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero SubpassResolvePerformanceQueryEXT where+ zero = SubpassResolvePerformanceQueryEXT+ zero+++-- | VkMultisampledRenderToSingleSampledInfoEXT - Structure containing info+-- for multisampled rendering to single-sampled attachments in a subpass+--+-- == Valid Usage+--+-- - #VUID-VkMultisampledRenderToSingleSampledInfoEXT-rasterizationSamples-06878#+-- The value of @rasterizationSamples@ /must/ not be+-- 'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT'+--+-- - #VUID-VkMultisampledRenderToSingleSampledInfoEXT-pNext-06880# If+-- added to the @pNext@ chain of+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo',+-- each @imageView@ member of any element of+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@,+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment@,+-- or+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment@+-- that is not 'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have a+-- format that supports the sample count specified in+-- @rasterizationSamples@+--+-- == Valid Usage (Implicit)+--+-- - #VUID-VkMultisampledRenderToSingleSampledInfoEXT-sType-sType#+-- @sType@ /must/ be+-- 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_INFO_EXT'+--+-- - #VUID-VkMultisampledRenderToSingleSampledInfoEXT-rasterizationSamples-parameter#+-- @rasterizationSamples@ /must/ be a valid+-- 'Vulkan.Core10.Enums.SampleCountFlagBits.SampleCountFlagBits' value+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_multisampled_render_to_single_sampled VK_EXT_multisampled_render_to_single_sampled>,+-- 'Vulkan.Core10.FundamentalTypes.Bool32',+-- 'Vulkan.Core10.Enums.SampleCountFlagBits.SampleCountFlagBits',+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data MultisampledRenderToSingleSampledInfoEXT = MultisampledRenderToSingleSampledInfoEXT+ { -- | @multisampledRenderToSingleSampledEnable@ controls whether multisampled+ -- rendering to single-sampled attachments is performed as described+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#multisampled-render-to-single-sampled below>.+ multisampledRenderToSingleSampledEnable :: Bool+ , -- | @rasterizationSamples@ is a VkSampleCountFlagBits specifying the number+ -- of samples used in rasterization.+ rasterizationSamples :: SampleCountFlagBits+ }+ deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (MultisampledRenderToSingleSampledInfoEXT)+#endif+deriving instance Show MultisampledRenderToSingleSampledInfoEXT++instance ToCStruct MultisampledRenderToSingleSampledInfoEXT where+ withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)+ pokeCStruct p MultisampledRenderToSingleSampledInfoEXT{..} f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_INFO_EXT)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (multisampledRenderToSingleSampledEnable))+ poke ((p `plusPtr` 20 :: Ptr SampleCountFlagBits)) (rasterizationSamples)+ f+ cStructSize = 24+ cStructAlignment = 8+ pokeZeroCStruct p f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_INFO_EXT)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (zero))+ poke ((p `plusPtr` 20 :: Ptr SampleCountFlagBits)) (zero)+ f++instance FromCStruct MultisampledRenderToSingleSampledInfoEXT where+ peekCStruct p = do+ multisampledRenderToSingleSampledEnable <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))+ rasterizationSamples <- peek @SampleCountFlagBits ((p `plusPtr` 20 :: Ptr SampleCountFlagBits))+ pure $ MultisampledRenderToSingleSampledInfoEXT+ (bool32ToBool multisampledRenderToSingleSampledEnable) rasterizationSamples++instance Storable MultisampledRenderToSingleSampledInfoEXT where+ sizeOf ~_ = 24+ alignment ~_ = 8+ peek = peekCStruct+ poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero MultisampledRenderToSingleSampledInfoEXT where+ zero = MultisampledRenderToSingleSampledInfoEXT+ zero+ zero+++type EXT_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_SPEC_VERSION = 1++-- No documentation found for TopLevel "VK_EXT_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_SPEC_VERSION"+pattern EXT_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_SPEC_VERSION :: forall a . Integral a => a+pattern EXT_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_SPEC_VERSION = 1+++type EXT_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_EXTENSION_NAME = "VK_EXT_multisampled_render_to_single_sampled"++-- No documentation found for TopLevel "VK_EXT_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_EXTENSION_NAME"+pattern EXT_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_EXTENSION_NAME :: forall a . (Eq a, IsString a) => a+pattern EXT_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_EXTENSION_NAME = "VK_EXT_multisampled_render_to_single_sampled"+
+ src/Vulkan/Extensions/VK_EXT_multisampled_render_to_single_sampled.hs-boot view
@@ -0,0 +1,209 @@+{-# language CPP #-}+-- | = Name+--+-- VK_EXT_multisampled_render_to_single_sampled - device extension+--+-- == VK_EXT_multisampled_render_to_single_sampled+--+-- [__Name String__]+-- @VK_EXT_multisampled_render_to_single_sampled@+--+-- [__Extension Type__]+-- Device extension+--+-- [__Registered Extension Number__]+-- 377+--+-- [__Revision__]+-- 1+--+-- [__Extension and Version Dependencies__]+--+-- - Requires support for Vulkan 1.0+--+-- - Requires @VK_KHR_create_renderpass2@ to be enabled for any+-- device-level functionality+--+-- - Requires @VK_KHR_depth_stencil_resolve@ to be enabled for any+-- device-level functionality+--+-- [__Contact__]+--+-- - Shahbaz Youssefi+-- <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_EXT_multisampled_render_to_single_sampled] @syoussefi%0A<<Here describe the issue or question you have about the VK_EXT_multisampled_render_to_single_sampled extension>> >+--+-- [__Extension Proposal__]+-- <https://github.com/KhronosGroup/Vulkan-Docs/tree/main/proposals/VK_EXT_multisampled_render_to_single_sampled.adoc VK_EXT_multisampled_render_to_single_sampled>+--+-- == Other Extension Metadata+--+-- [__Last Modified Date__]+-- 2021-04-16+--+-- [__IP Status__]+-- No known IP claims.+--+-- [__Contributors__]+--+-- - Shahbaz Youssefi, Google+--+-- - Jan-Harald Fredriksen, Arm+--+-- - Jörg Wagner, Arm+--+-- - Matthew Netsch, Qualcomm Technologies, Inc.+--+-- - Jarred Davies, Imagination Technologies+--+-- == Description+--+-- With careful usage of resolve attachments, multisampled image memory+-- allocated with+-- 'Vulkan.Core10.Enums.MemoryPropertyFlagBits.MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT',+-- @loadOp@ not equal to+-- 'Vulkan.Core10.Enums.AttachmentLoadOp.ATTACHMENT_LOAD_OP_LOAD' and+-- @storeOp@ not equal to+-- 'Vulkan.Core10.Enums.AttachmentStoreOp.ATTACHMENT_STORE_OP_STORE', a+-- Vulkan application is able to efficiently perform multisampled rendering+-- without incurring any additional memory penalty on some implementations.+--+-- Under certain circumstances however, the application may not be able to+-- complete its multisampled rendering within a single render pass; for+-- example if it does partial rasterization from frame to frame, blending+-- on an image from a previous frame, or in emulation of+-- GL_EXT_multisampled_render_to_texture. In such cases, the application+-- can use an initial subpass to effectively load single-sampled data from+-- the next subpass’s resolve attachment and fill in the multisampled+-- attachment which otherwise uses @loadOp@ equal to+-- 'Vulkan.Core10.Enums.AttachmentLoadOp.ATTACHMENT_LOAD_OP_DONT_CARE'.+-- However, this is not always possible (for example for stencil in the+-- absence of VK_EXT_shader_stencil_export) and has multiple drawbacks.+--+-- Some implementations are able to perform said operation efficiently in+-- hardware, effectively loading a multisampled attachment from the+-- contents of a single sampled one. Together with the ability to perform a+-- resolve operation at the end of a subpass, these implementations are+-- able to perform multisampled rendering on single-sampled attachments+-- with no extra memory or bandwidth overhead. This extension exposes this+-- capability by allowing a framebuffer and render pass to include+-- single-sampled attachments while rendering is done with a specified+-- number of samples.+--+-- == New Structures+--+-- - Extending+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.FormatProperties2':+--+-- - 'SubpassResolvePerformanceQueryEXT'+--+-- - Extending+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',+-- 'Vulkan.Core10.Device.DeviceCreateInfo':+--+-- - 'PhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT'+--+-- - Extending+-- 'Vulkan.Core12.Promoted_From_VK_KHR_create_renderpass2.SubpassDescription2',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo':+--+-- - 'MultisampledRenderToSingleSampledInfoEXT'+--+-- == New Enum Constants+--+-- - 'EXT_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_EXTENSION_NAME'+--+-- - 'EXT_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_SPEC_VERSION'+--+-- - Extending+-- 'Vulkan.Core10.Enums.ImageCreateFlagBits.ImageCreateFlagBits':+--+-- - 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_BIT_EXT'+--+-- - Extending 'Vulkan.Core10.Enums.StructureType.StructureType':+--+-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_INFO_EXT'+--+-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_FEATURES_EXT'+--+-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_SUBPASS_RESOLVE_PERFORMANCE_QUERY_EXT'+--+-- == Issues+--+-- 1) Could the multisampled attachment be initialized through some form of+-- copy?+--+-- __RESOLVED__: No. Some implementations do not support copying between+-- attachments in general, and find expressing this operation through a+-- copy unnatural.+--+-- 2) Another way to achieve this is by introducing a new @loadOp@ to load+-- the contents of the multisampled image from a single-sampled one. Why is+-- this extension preferred?+--+-- __RESOLVED__: Using this extension simplifies the application, as it+-- does not need to manage a secondary lazily-allocated image.+-- Additionally, using this extension leaves less room for error; for+-- example a single mistake in @loadOp@ or @storeOp@ would result in the+-- lazily-allocated image to actually take up memory, and remain so until+-- destruction.+--+-- 3) There is no guarantee that multisampled data between two subpasses+-- with the same number of samples will be retained as the implementation+-- may be forced to split the render pass implicitly for various reasons.+-- Should this extension require that every subpass that uses+-- multisampled-render-to-single-sampled end in an implicit render pass+-- split (which results in a resolve operation)?+--+-- __RESOLVED__: No. Not requiring this allows render passes with multiple+-- multisampled-render-to-single-sampled subpasses to potentially execute+-- more efficiently (though there is no guarantee).+--+-- == Version History+--+-- - Revision 1, 2021-04-12 (Shahbaz Youssefi)+--+-- == See Also+--+-- 'MultisampledRenderToSingleSampledInfoEXT',+-- 'PhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT',+-- 'SubpassResolvePerformanceQueryEXT'+--+-- == Document Notes+--+-- For more information, see the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_multisampled_render_to_single_sampled Vulkan Specification>+--+-- This page is a generated document. Fixes and changes should be made to+-- the generator scripts, not directly.+module Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled ( MultisampledRenderToSingleSampledInfoEXT+ , PhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT+ , SubpassResolvePerformanceQueryEXT+ ) where++import Vulkan.CStruct (FromCStruct)+import Vulkan.CStruct (ToCStruct)+import Data.Kind (Type)++data MultisampledRenderToSingleSampledInfoEXT++instance ToCStruct MultisampledRenderToSingleSampledInfoEXT+instance Show MultisampledRenderToSingleSampledInfoEXT++instance FromCStruct MultisampledRenderToSingleSampledInfoEXT+++data PhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT++instance ToCStruct PhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT+instance Show PhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT++instance FromCStruct PhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT+++data SubpassResolvePerformanceQueryEXT++instance ToCStruct SubpassResolvePerformanceQueryEXT+instance Show SubpassResolvePerformanceQueryEXT++instance FromCStruct SubpassResolvePerformanceQueryEXT+
+ src/Vulkan/Extensions/VK_EXT_non_seamless_cube_map.hs view
@@ -0,0 +1,210 @@+{-# language CPP #-}+-- | = Name+--+-- VK_EXT_non_seamless_cube_map - device extension+--+-- == VK_EXT_non_seamless_cube_map+--+-- [__Name String__]+-- @VK_EXT_non_seamless_cube_map@+--+-- [__Extension Type__]+-- Device extension+--+-- [__Registered Extension Number__]+-- 423+--+-- [__Revision__]+-- 1+--+-- [__Extension and Version Dependencies__]+--+-- - Requires support for Vulkan 1.0+--+-- [__Special Uses__]+--+-- - <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#extendingvulkan-compatibility-specialuse D3D support>+--+-- - <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#extendingvulkan-compatibility-specialuse OpenGL \/ ES support>+--+-- [__Contact__]+--+-- - Georg Lehmann+-- <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_EXT_non_seamless_cube_map] @DadSchoorse%0A<<Here describe the issue or question you have about the VK_EXT_non_seamless_cube_map extension>> >+--+-- [__Extension Proposal__]+-- <https://github.com/KhronosGroup/Vulkan-Docs/tree/main/proposals/VK_EXT_non_seamless_cube_map.adoc VK_EXT_non_seamless_cube_map>+--+-- == Other Extension Metadata+--+-- [__Last Modified Date__]+-- 2021-09-04+--+-- [__IP Status__]+-- No known IP claims.+--+-- [__Contributors__]+--+-- - Georg Lehmann+--+-- == Description+--+-- This extension provides functionality to disable+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#textures-cubemapedge cube map edge handling>+-- on a per sampler level which matches the behavior of other graphics+-- APIs.+--+-- This extension may be useful for building translation layers for those+-- APIs or for porting applications that rely on this cube map behavior.+--+-- == New Structures+--+-- - Extending+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',+-- 'Vulkan.Core10.Device.DeviceCreateInfo':+--+-- - 'PhysicalDeviceNonSeamlessCubeMapFeaturesEXT'+--+-- == New Enum Constants+--+-- - 'EXT_NON_SEAMLESS_CUBE_MAP_EXTENSION_NAME'+--+-- - 'EXT_NON_SEAMLESS_CUBE_MAP_SPEC_VERSION'+--+-- - Extending+-- 'Vulkan.Core10.Enums.SamplerCreateFlagBits.SamplerCreateFlagBits':+--+-- - 'Vulkan.Core10.Enums.SamplerCreateFlagBits.SAMPLER_CREATE_NON_SEAMLESS_CUBE_MAP_BIT_EXT'+--+-- - Extending 'Vulkan.Core10.Enums.StructureType.StructureType':+--+-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_NON_SEAMLESS_CUBE_MAP_FEATURES_EXT'+--+-- == Version History+--+-- - Revision 1, 2021-09-04 (Georg Lehmann)+--+-- - First Version+--+-- == See Also+--+-- 'PhysicalDeviceNonSeamlessCubeMapFeaturesEXT'+--+-- == Document Notes+--+-- For more information, see the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_non_seamless_cube_map Vulkan Specification>+--+-- This page is a generated document. Fixes and changes should be made to+-- the generator scripts, not directly.+module Vulkan.Extensions.VK_EXT_non_seamless_cube_map ( PhysicalDeviceNonSeamlessCubeMapFeaturesEXT(..)+ , EXT_NON_SEAMLESS_CUBE_MAP_SPEC_VERSION+ , pattern EXT_NON_SEAMLESS_CUBE_MAP_SPEC_VERSION+ , EXT_NON_SEAMLESS_CUBE_MAP_EXTENSION_NAME+ , pattern EXT_NON_SEAMLESS_CUBE_MAP_EXTENSION_NAME+ ) where++import Foreign.Marshal.Alloc (allocaBytes)+import Foreign.Ptr (nullPtr)+import Foreign.Ptr (plusPtr)+import Vulkan.CStruct (FromCStruct)+import Vulkan.CStruct (FromCStruct(..))+import Vulkan.CStruct (ToCStruct)+import Vulkan.CStruct (ToCStruct(..))+import Vulkan.Zero (Zero(..))+import Data.String (IsString)+import Data.Typeable (Typeable)+import Foreign.Storable (Storable)+import Foreign.Storable (Storable(peek))+import Foreign.Storable (Storable(poke))+import qualified Foreign.Storable (Storable(..))+import GHC.Generics (Generic)+import Foreign.Ptr (Ptr)+import Data.Kind (Type)+import Vulkan.Core10.FundamentalTypes (bool32ToBool)+import Vulkan.Core10.FundamentalTypes (boolToBool32)+import Vulkan.Core10.FundamentalTypes (Bool32)+import Vulkan.Core10.Enums.StructureType (StructureType)+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_NON_SEAMLESS_CUBE_MAP_FEATURES_EXT))+-- | VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT - Structure describing+-- features to disable seamless cube maps+--+-- = Members+--+-- This structure describes the following feature:+--+-- = Description+--+-- If the 'PhysicalDeviceNonSeamlessCubeMapFeaturesEXT' structure is+-- included in the @pNext@ chain of the+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2'+-- structure passed to+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceFeatures2',+-- it is filled in to indicate whether each corresponding feature is+-- supported. 'PhysicalDeviceNonSeamlessCubeMapFeaturesEXT' /can/ also be+-- used in the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to+-- selectively enable these features.+--+-- == Valid Usage (Implicit)+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_non_seamless_cube_map VK_EXT_non_seamless_cube_map>,+-- 'Vulkan.Core10.FundamentalTypes.Bool32',+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data PhysicalDeviceNonSeamlessCubeMapFeaturesEXT = PhysicalDeviceNonSeamlessCubeMapFeaturesEXT+ { -- | #features-nonSeamlessCubeMap# @nonSeamlessCubeMap@ indicates that the+ -- implementation supports+ -- 'Vulkan.Core10.Enums.SamplerCreateFlagBits.SAMPLER_CREATE_NON_SEAMLESS_CUBE_MAP_BIT_EXT'.+ nonSeamlessCubeMap :: Bool }+ deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (PhysicalDeviceNonSeamlessCubeMapFeaturesEXT)+#endif+deriving instance Show PhysicalDeviceNonSeamlessCubeMapFeaturesEXT++instance ToCStruct PhysicalDeviceNonSeamlessCubeMapFeaturesEXT where+ withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)+ pokeCStruct p PhysicalDeviceNonSeamlessCubeMapFeaturesEXT{..} f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_NON_SEAMLESS_CUBE_MAP_FEATURES_EXT)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (nonSeamlessCubeMap))+ f+ cStructSize = 24+ cStructAlignment = 8+ pokeZeroCStruct p f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_NON_SEAMLESS_CUBE_MAP_FEATURES_EXT)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (zero))+ f++instance FromCStruct PhysicalDeviceNonSeamlessCubeMapFeaturesEXT where+ peekCStruct p = do+ nonSeamlessCubeMap <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))+ pure $ PhysicalDeviceNonSeamlessCubeMapFeaturesEXT+ (bool32ToBool nonSeamlessCubeMap)++instance Storable PhysicalDeviceNonSeamlessCubeMapFeaturesEXT where+ sizeOf ~_ = 24+ alignment ~_ = 8+ peek = peekCStruct+ poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero PhysicalDeviceNonSeamlessCubeMapFeaturesEXT where+ zero = PhysicalDeviceNonSeamlessCubeMapFeaturesEXT+ zero+++type EXT_NON_SEAMLESS_CUBE_MAP_SPEC_VERSION = 1++-- No documentation found for TopLevel "VK_EXT_NON_SEAMLESS_CUBE_MAP_SPEC_VERSION"+pattern EXT_NON_SEAMLESS_CUBE_MAP_SPEC_VERSION :: forall a . Integral a => a+pattern EXT_NON_SEAMLESS_CUBE_MAP_SPEC_VERSION = 1+++type EXT_NON_SEAMLESS_CUBE_MAP_EXTENSION_NAME = "VK_EXT_non_seamless_cube_map"++-- No documentation found for TopLevel "VK_EXT_NON_SEAMLESS_CUBE_MAP_EXTENSION_NAME"+pattern EXT_NON_SEAMLESS_CUBE_MAP_EXTENSION_NAME :: forall a . (Eq a, IsString a) => a+pattern EXT_NON_SEAMLESS_CUBE_MAP_EXTENSION_NAME = "VK_EXT_non_seamless_cube_map"+
+ src/Vulkan/Extensions/VK_EXT_non_seamless_cube_map.hs-boot view
@@ -0,0 +1,112 @@+{-# language CPP #-}+-- | = Name+--+-- VK_EXT_non_seamless_cube_map - device extension+--+-- == VK_EXT_non_seamless_cube_map+--+-- [__Name String__]+-- @VK_EXT_non_seamless_cube_map@+--+-- [__Extension Type__]+-- Device extension+--+-- [__Registered Extension Number__]+-- 423+--+-- [__Revision__]+-- 1+--+-- [__Extension and Version Dependencies__]+--+-- - Requires support for Vulkan 1.0+--+-- [__Special Uses__]+--+-- - <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#extendingvulkan-compatibility-specialuse D3D support>+--+-- - <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#extendingvulkan-compatibility-specialuse OpenGL \/ ES support>+--+-- [__Contact__]+--+-- - Georg Lehmann+-- <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_EXT_non_seamless_cube_map] @DadSchoorse%0A<<Here describe the issue or question you have about the VK_EXT_non_seamless_cube_map extension>> >+--+-- [__Extension Proposal__]+-- <https://github.com/KhronosGroup/Vulkan-Docs/tree/main/proposals/VK_EXT_non_seamless_cube_map.adoc VK_EXT_non_seamless_cube_map>+--+-- == Other Extension Metadata+--+-- [__Last Modified Date__]+-- 2021-09-04+--+-- [__IP Status__]+-- No known IP claims.+--+-- [__Contributors__]+--+-- - Georg Lehmann+--+-- == Description+--+-- This extension provides functionality to disable+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#textures-cubemapedge cube map edge handling>+-- on a per sampler level which matches the behavior of other graphics+-- APIs.+--+-- This extension may be useful for building translation layers for those+-- APIs or for porting applications that rely on this cube map behavior.+--+-- == New Structures+--+-- - Extending+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',+-- 'Vulkan.Core10.Device.DeviceCreateInfo':+--+-- - 'PhysicalDeviceNonSeamlessCubeMapFeaturesEXT'+--+-- == New Enum Constants+--+-- - 'EXT_NON_SEAMLESS_CUBE_MAP_EXTENSION_NAME'+--+-- - 'EXT_NON_SEAMLESS_CUBE_MAP_SPEC_VERSION'+--+-- - Extending+-- 'Vulkan.Core10.Enums.SamplerCreateFlagBits.SamplerCreateFlagBits':+--+-- - 'Vulkan.Core10.Enums.SamplerCreateFlagBits.SAMPLER_CREATE_NON_SEAMLESS_CUBE_MAP_BIT_EXT'+--+-- - Extending 'Vulkan.Core10.Enums.StructureType.StructureType':+--+-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_NON_SEAMLESS_CUBE_MAP_FEATURES_EXT'+--+-- == Version History+--+-- - Revision 1, 2021-09-04 (Georg Lehmann)+--+-- - First Version+--+-- == See Also+--+-- 'PhysicalDeviceNonSeamlessCubeMapFeaturesEXT'+--+-- == Document Notes+--+-- For more information, see the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_non_seamless_cube_map Vulkan Specification>+--+-- This page is a generated document. Fixes and changes should be made to+-- the generator scripts, not directly.+module Vulkan.Extensions.VK_EXT_non_seamless_cube_map (PhysicalDeviceNonSeamlessCubeMapFeaturesEXT) where++import Vulkan.CStruct (FromCStruct)+import Vulkan.CStruct (ToCStruct)+import Data.Kind (Type)++data PhysicalDeviceNonSeamlessCubeMapFeaturesEXT++instance ToCStruct PhysicalDeviceNonSeamlessCubeMapFeaturesEXT+instance Show PhysicalDeviceNonSeamlessCubeMapFeaturesEXT++instance FromCStruct PhysicalDeviceNonSeamlessCubeMapFeaturesEXT+
src/Vulkan/Extensions/VK_EXT_pageable_device_local_memory.hs view
@@ -19,9 +19,10 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_EXT_memory_priority@+-- - Requires @VK_EXT_memory_priority@ to be enabled for any+-- device-level functionality -- -- [__Contact__] --@@ -131,7 +132,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_pageable_device_local_memory Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_pageable_device_local_memory Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_EXT_pageable_device_local_memory.hs-boot view
@@ -19,9 +19,10 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_EXT_memory_priority@+-- - Requires @VK_EXT_memory_priority@ to be enabled for any+-- device-level functionality -- -- [__Contact__] --@@ -131,7 +132,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_pageable_device_local_memory Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_pageable_device_local_memory Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_EXT_pci_bus_info.hs view
@@ -19,9 +19,10 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_get_physical_device_properties2@+-- - Requires @VK_KHR_get_physical_device_properties2@ to be enabled+-- for any device-level functionality -- -- [__Contact__] --@@ -93,7 +94,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_pci_bus_info Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_pci_bus_info Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_EXT_pci_bus_info.hs-boot view
@@ -19,9 +19,10 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_get_physical_device_properties2@+-- - Requires @VK_KHR_get_physical_device_properties2@ to be enabled+-- for any device-level functionality -- -- [__Contact__] --@@ -93,7 +94,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_pci_bus_info Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_pci_bus_info Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_EXT_physical_device_drm.hs view
@@ -19,9 +19,10 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_get_physical_device_properties2@+-- - Requires @VK_KHR_get_physical_device_properties2@ to be enabled+-- for any device-level functionality -- -- [__Contact__] --@@ -47,7 +48,7 @@ -- DRM nodes on Linux. -- -- Its functionality closely overlaps with--- @EGL_EXT_device_drm@<https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_physical_device_drm-fn1 1>^.+-- @EGL_EXT_device_drm@<https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_physical_device_drm-fn1 1>^. -- Unlike the EGL extension, this extension does not expose a string -- containing the name of the device file and instead exposes device minor -- numbers.@@ -83,7 +84,7 @@ -- == References -- -- 1. #VK_EXT_physical_device_drm-fn1#--- <https://www.khronos.org/registry/EGL/extensions/EXT/EGL_EXT_device_drm.txt EGL_EXT_device_drm>+-- <https://registry.khronos.org/EGL/extensions/EXT/EGL_EXT_device_drm.txt EGL_EXT_device_drm> -- -- == Version History --@@ -98,7 +99,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_physical_device_drm Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_physical_device_drm Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_EXT_physical_device_drm.hs-boot view
@@ -19,9 +19,10 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_get_physical_device_properties2@+-- - Requires @VK_KHR_get_physical_device_properties2@ to be enabled+-- for any device-level functionality -- -- [__Contact__] --@@ -47,7 +48,7 @@ -- DRM nodes on Linux. -- -- Its functionality closely overlaps with--- @EGL_EXT_device_drm@<https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_physical_device_drm-fn1 1>^.+-- @EGL_EXT_device_drm@<https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_physical_device_drm-fn1 1>^. -- Unlike the EGL extension, this extension does not expose a string -- containing the name of the device file and instead exposes device minor -- numbers.@@ -83,7 +84,7 @@ -- == References -- -- 1. #VK_EXT_physical_device_drm-fn1#--- <https://www.khronos.org/registry/EGL/extensions/EXT/EGL_EXT_device_drm.txt EGL_EXT_device_drm>+-- <https://registry.khronos.org/EGL/extensions/EXT/EGL_EXT_device_drm.txt EGL_EXT_device_drm> -- -- == Version History --@@ -98,7 +99,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_physical_device_drm Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_physical_device_drm Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_EXT_pipeline_creation_cache_control.hs view
@@ -19,7 +19,7 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 -- -- [__Deprecation state__] --@@ -138,7 +138,7 @@ -- object. 'PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT_EXT' can be -- set when calling 'Vulkan.Core10.PipelineCache.createPipelineCache' to -- state the cache is--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#fundamentals-threadingbehavior externally synchronized>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fundamentals-threadingbehavior externally synchronized>. -- -- The hope is that armed with this information application and engine -- developers can leverage existing asset streaming systems to recover from@@ -215,7 +215,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_pipeline_creation_cache_control Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_pipeline_creation_cache_control Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_EXT_pipeline_creation_feedback.hs view
@@ -19,7 +19,7 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 -- -- [__Deprecation state__] --@@ -126,7 +126,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_pipeline_creation_feedback Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_pipeline_creation_feedback Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
+ src/Vulkan/Extensions/VK_EXT_pipeline_properties.hs view
@@ -0,0 +1,434 @@+{-# language CPP #-}+-- | = Name+--+-- VK_EXT_pipeline_properties - device extension+--+-- == VK_EXT_pipeline_properties+--+-- [__Name String__]+-- @VK_EXT_pipeline_properties@+--+-- [__Extension Type__]+-- Device extension+--+-- [__Registered Extension Number__]+-- 373+--+-- [__Revision__]+-- 1+--+-- [__Extension and Version Dependencies__]+--+-- - Requires support for Vulkan 1.0+--+-- - Requires @VK_KHR_get_physical_device_properties2@ to be enabled+-- for any device-level functionality+--+-- [__Contact__]+--+-- - Mukund Keshava+-- <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_EXT_pipeline_properties] @mkeshavanv%0A<<Here describe the issue or question you have about the VK_EXT_pipeline_properties extension>> >+--+-- == Other Extension Metadata+--+-- [__Last Modified Date__]+-- 2022-04-19+--+-- [__IP Status__]+-- No known IP claims.+--+-- [__Contributors__]+--+-- - Mukund Keshava, NVIDIA+--+-- - Daniel Koch, NVIDIA+--+-- - Mark Bellamy, Arm+--+-- == Description+--+-- Vulkan SC requires offline compilation of pipelines. In order to support+-- this, the pipeline state is represented in a+-- <https://github.com/KhronosGroup/VulkanSC-Docs/wiki/JSON-schema JSON schema>+-- that is read by an offline tool for compilation.+--+-- One method of developing a Vulkan SC application is to author a Vulkan+-- application and use a layer to record and serialize the pipeline state+-- and shaders for offline compilation. Each pipeline is represented by a+-- separate JSON file, and can be identified with a @pipelineIdentifier@.+--+-- Once the pipelines have been compiled by the offline pipeline cache+-- compiler, the Vulkan SC application can then use this+-- @pipelineIdentifier@ for identifying the pipeline via Vulkan SC’s+-- @VkPipelineIdentifierInfo@ structure.+--+-- This extension allows the Vulkan application to query the+-- @pipelineIdentifier@ associated with each pipeline so that the+-- application can store this with its pipeline metadata and the Vulkan SC+-- application will then use to map the same state to an entry in the+-- Vulkan SC pipeline cache.+--+-- It is expected that this extension will initially be implemented in the+-- json generation layer, although we can envision that there might be+-- future uses for it in native Vulkan drivers as well.+--+-- == New Commands+--+-- - 'getPipelinePropertiesEXT'+--+-- == New Structures+--+-- - 'PipelineInfoEXT'+--+-- - 'PipelinePropertiesIdentifierEXT'+--+-- - Extending+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',+-- 'Vulkan.Core10.Device.DeviceCreateInfo':+--+-- - 'PhysicalDevicePipelinePropertiesFeaturesEXT'+--+-- == New Enum Constants+--+-- - 'EXT_PIPELINE_PROPERTIES_EXTENSION_NAME'+--+-- - 'EXT_PIPELINE_PROPERTIES_SPEC_VERSION'+--+-- - Extending 'Vulkan.Core10.Enums.StructureType.StructureType':+--+-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROPERTIES_FEATURES_EXT'+--+-- - 'STRUCTURE_TYPE_PIPELINE_INFO_EXT'+--+-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PIPELINE_PROPERTIES_IDENTIFIER_EXT'+--+-- == Issues+--+-- (1) This extension does not make sense on a strict Vulkan SC+-- implementation. It may however be of potential use in a non-strict+-- Vulkan SC implementation. Should this extension be enabled as part of+-- Vulkan SC as well?+--+-- __RESOLVED__: No. This extension will not be enabled for Vulkan SC.+--+-- (2) This is intended to be a general pipeline properties query, but is+-- currently only retrieving the pipeline identifier. Should the pipeline+-- identifier query be mandatory for this extension and for all queries+-- using this entry point?+--+-- __RESOLVED__: Use 'Vulkan.CStruct.Extends.BaseOutStructure' for the+-- return parameter. Currently this is required to actually be a+-- 'PipelinePropertiesIdentifierEXT' structure, but that could be relaxed+-- in the future to allow other structure types or to allow other+-- structures to be chained in along with this one.+--+-- (3) Should there be a feature structure? Should it be required?+--+-- __RESOLVED__: Add a feature structure, and a feature for querying+-- pipeline identifier, but allow it to be optional so that this extension+-- can be used as the basis for other pipeline property queries without+-- requiring the pipeline identifier to be supported.+--+-- == Version History+--+-- - Revision 1, 2022-04-19 (Mukund Keshava, Daniel Koch)+--+-- - Initial draft+--+-- == See Also+--+-- 'PhysicalDevicePipelinePropertiesFeaturesEXT', 'PipelineInfoEXT',+-- 'PipelinePropertiesIdentifierEXT', 'getPipelinePropertiesEXT'+--+-- == Document Notes+--+-- For more information, see the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_pipeline_properties Vulkan Specification>+--+-- This page is a generated document. Fixes and changes should be made to+-- the generator scripts, not directly.+module Vulkan.Extensions.VK_EXT_pipeline_properties ( getPipelinePropertiesEXT+ , pattern STRUCTURE_TYPE_PIPELINE_INFO_EXT+ , PipelinePropertiesIdentifierEXT(..)+ , PhysicalDevicePipelinePropertiesFeaturesEXT(..)+ , PipelineInfoEXT+ , EXT_PIPELINE_PROPERTIES_SPEC_VERSION+ , pattern EXT_PIPELINE_PROPERTIES_SPEC_VERSION+ , EXT_PIPELINE_PROPERTIES_EXTENSION_NAME+ , pattern EXT_PIPELINE_PROPERTIES_EXTENSION_NAME+ , PipelineInfoKHR(..)+ ) where++import Vulkan.CStruct.Utils (FixedArray)+import Vulkan.Internal.Utils (traceAroundEvent)+import Control.Monad (unless)+import Control.Monad.IO.Class (liftIO)+import Foreign.Marshal.Alloc (allocaBytes)+import GHC.Base (when)+import GHC.IO (throwIO)+import GHC.Ptr (nullFunPtr)+import Foreign.Ptr (nullPtr)+import Foreign.Ptr (plusPtr)+import Control.Monad.Trans.Class (lift)+import Control.Monad.Trans.Cont (evalContT)+import Vulkan.CStruct (FromCStruct)+import Vulkan.CStruct (FromCStruct(..))+import Vulkan.CStruct (ToCStruct)+import Vulkan.CStruct (ToCStruct(..))+import Vulkan.Zero (Zero(..))+import Control.Monad.IO.Class (MonadIO)+import Data.String (IsString)+import Data.Typeable (Typeable)+import Foreign.Storable (Storable)+import Foreign.Storable (Storable(peek))+import Foreign.Storable (Storable(poke))+import qualified Foreign.Storable (Storable(..))+import GHC.Generics (Generic)+import GHC.IO.Exception (IOErrorType(..))+import GHC.IO.Exception (IOException(..))+import Foreign.Ptr (FunPtr)+import Foreign.Ptr (Ptr)+import Data.Word (Word8)+import Data.ByteString (ByteString)+import Data.Kind (Type)+import Control.Monad.Trans.Cont (ContT(..))+import Vulkan.Core10.FundamentalTypes (bool32ToBool)+import Vulkan.Core10.FundamentalTypes (boolToBool32)+import Vulkan.CStruct.Utils (peekByteStringFromSizedVectorPtr)+import Vulkan.CStruct.Utils (pokeFixedLengthByteString)+import Vulkan.NamedType ((:::))+import Vulkan.CStruct.Extends (BaseOutStructure)+import Vulkan.Core10.FundamentalTypes (Bool32)+import Vulkan.Core10.Handles (Device)+import Vulkan.Core10.Handles (Device(..))+import Vulkan.Core10.Handles (Device(Device))+import Vulkan.Dynamic (DeviceCmds(pVkGetPipelinePropertiesEXT))+import Vulkan.Core10.Handles (Device_T)+import Vulkan.Extensions.VK_KHR_pipeline_executable_properties (PipelineInfoKHR)+import Vulkan.Core10.Enums.Result (Result)+import Vulkan.Core10.Enums.Result (Result(..))+import Vulkan.Core10.Enums.StructureType (StructureType)+import Vulkan.Core10.APIConstants (UUID_SIZE)+import Vulkan.Exception (VulkanException(..))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROPERTIES_FEATURES_EXT))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PIPELINE_INFO_KHR))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PIPELINE_PROPERTIES_IDENTIFIER_EXT))+import Vulkan.Core10.Enums.Result (Result(SUCCESS))+import Vulkan.Extensions.VK_KHR_pipeline_executable_properties (PipelineInfoKHR(..))+foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+ unsafe+#endif+ "dynamic" mkVkGetPipelinePropertiesEXT+ :: FunPtr (Ptr Device_T -> Ptr PipelineInfoEXT -> Ptr BaseOutStructure -> IO Result) -> Ptr Device_T -> Ptr PipelineInfoEXT -> Ptr BaseOutStructure -> IO Result++-- | vkGetPipelinePropertiesEXT - Query pipeline properties+--+-- = Description+--+-- To query a pipeline’s @pipelineIdentifier@ pass a+-- 'PipelinePropertiesIdentifierEXT' structure in @pPipelineProperties@.+-- Each pipeline is associated with a @pipelineIdentifier@ and the+-- identifier is implementation specific.+--+-- == Valid Usage+--+-- - #VUID-vkGetPipelinePropertiesEXT-pipeline-06738# The @pipeline@+-- member of @pPipelineInfo@ must have been created with @device@+--+-- - #VUID-vkGetPipelinePropertiesEXT-pPipelineProperties-06739#+-- @pPipelineProperties@ /must/ be a valid pointer to a+-- 'PipelinePropertiesIdentifierEXT' structure+--+-- - #VUID-vkGetPipelinePropertiesEXT-None-06766# The+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-pipelinePropertiesIdentifier pipelinePropertiesIdentifier>+-- feature /must/ be enabled+--+-- == Valid Usage (Implicit)+--+-- - #VUID-vkGetPipelinePropertiesEXT-device-parameter# @device@ /must/+-- be a valid 'Vulkan.Core10.Handles.Device' handle+--+-- - #VUID-vkGetPipelinePropertiesEXT-pPipelineInfo-parameter#+-- @pPipelineInfo@ /must/ be a valid pointer to a valid+-- 'PipelineInfoEXT' structure+--+-- == Return Codes+--+-- [<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodes Success>]+--+-- - 'Vulkan.Core10.Enums.Result.SUCCESS'+--+-- [<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodes Failure>]+--+-- - 'Vulkan.Core10.Enums.Result.ERROR_OUT_OF_HOST_MEMORY'+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_pipeline_properties VK_EXT_pipeline_properties>,+-- 'Vulkan.CStruct.Extends.BaseOutStructure',+-- 'Vulkan.Core10.Handles.Device', 'PipelineInfoEXT'+getPipelinePropertiesEXT :: forall io+ . (MonadIO io)+ => -- | @device@ is the logical device that created the pipeline.+ Device+ -> -- | @pPipelineInfo@ is a pointer to a 'PipelineInfoEXT' structure which+ -- describes the pipeline being queried.+ PipelineInfoEXT+ -> -- | @pPipelineProperties@ is a pointer to a+ -- 'Vulkan.CStruct.Extends.BaseOutStructure' structure in which the+ -- pipeline properties will be written.+ ("pipelineProperties" ::: Ptr BaseOutStructure)+ -> io ()+getPipelinePropertiesEXT device pipelineInfo pipelineProperties = liftIO . evalContT $ do+ let vkGetPipelinePropertiesEXTPtr = pVkGetPipelinePropertiesEXT (case device of Device{deviceCmds} -> deviceCmds)+ lift $ unless (vkGetPipelinePropertiesEXTPtr /= nullFunPtr) $+ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetPipelinePropertiesEXT is null" Nothing Nothing+ let vkGetPipelinePropertiesEXT' = mkVkGetPipelinePropertiesEXT vkGetPipelinePropertiesEXTPtr+ pPipelineInfo <- ContT $ withCStruct (pipelineInfo)+ r <- lift $ traceAroundEvent "vkGetPipelinePropertiesEXT" (vkGetPipelinePropertiesEXT' (deviceHandle (device)) pPipelineInfo (pipelineProperties))+ lift $ when (r < SUCCESS) (throwIO (VulkanException r))+++-- No documentation found for TopLevel "VK_STRUCTURE_TYPE_PIPELINE_INFO_EXT"+pattern STRUCTURE_TYPE_PIPELINE_INFO_EXT = STRUCTURE_TYPE_PIPELINE_INFO_KHR+++-- | VkPipelinePropertiesIdentifierEXT - Structure used to retrieve pipeline+-- properties+--+-- == Valid Usage (Implicit)+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_pipeline_properties VK_EXT_pipeline_properties>,+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data PipelinePropertiesIdentifierEXT = PipelinePropertiesIdentifierEXT+ { -- | @pipelineIdentifier@ is an array of+ -- 'Vulkan.Core10.APIConstants.UUID_SIZE' @uint8_t@ values into which the+ -- pipeline identifier will be written.+ pipelineIdentifier :: ByteString }+ deriving (Typeable)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (PipelinePropertiesIdentifierEXT)+#endif+deriving instance Show PipelinePropertiesIdentifierEXT++instance ToCStruct PipelinePropertiesIdentifierEXT where+ withCStruct x f = allocaBytes 32 $ \p -> pokeCStruct p x (f p)+ pokeCStruct p PipelinePropertiesIdentifierEXT{..} f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PIPELINE_PROPERTIES_IDENTIFIER_EXT)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ pokeFixedLengthByteString ((p `plusPtr` 16 :: Ptr (FixedArray UUID_SIZE Word8))) (pipelineIdentifier)+ f+ cStructSize = 32+ cStructAlignment = 8+ pokeZeroCStruct p f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PIPELINE_PROPERTIES_IDENTIFIER_EXT)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ pokeFixedLengthByteString ((p `plusPtr` 16 :: Ptr (FixedArray UUID_SIZE Word8))) (mempty)+ f++instance FromCStruct PipelinePropertiesIdentifierEXT where+ peekCStruct p = do+ pipelineIdentifier <- peekByteStringFromSizedVectorPtr ((p `plusPtr` 16 :: Ptr (FixedArray UUID_SIZE Word8)))+ pure $ PipelinePropertiesIdentifierEXT+ pipelineIdentifier++instance Storable PipelinePropertiesIdentifierEXT where+ sizeOf ~_ = 32+ alignment ~_ = 8+ peek = peekCStruct+ poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero PipelinePropertiesIdentifierEXT where+ zero = PipelinePropertiesIdentifierEXT+ mempty+++-- | VkPhysicalDevicePipelinePropertiesFeaturesEXT - Structure describing+-- what pipeline properties are supported+--+-- = Members+--+-- This structure describes the following feature:+--+-- = Description+--+-- If the 'PhysicalDevicePipelinePropertiesFeaturesEXT' structure is+-- included in the @pNext@ chain of the+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2'+-- structure passed to+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceFeatures2',+-- it is filled in to indicate whether each corresponding feature is+-- supported. 'PhysicalDevicePipelinePropertiesFeaturesEXT' /can/ also be+-- used in the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to+-- selectively enable these features.+--+-- == Valid Usage (Implicit)+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_pipeline_properties VK_EXT_pipeline_properties>,+-- 'Vulkan.Core10.FundamentalTypes.Bool32',+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data PhysicalDevicePipelinePropertiesFeaturesEXT = PhysicalDevicePipelinePropertiesFeaturesEXT+ { -- | #features-pipelinePropertiesIdentifier# @pipelinePropertiesIdentifier@+ -- indicates that the implementation supports querying a unique pipeline+ -- identifier.+ pipelinePropertiesIdentifier :: Bool }+ deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (PhysicalDevicePipelinePropertiesFeaturesEXT)+#endif+deriving instance Show PhysicalDevicePipelinePropertiesFeaturesEXT++instance ToCStruct PhysicalDevicePipelinePropertiesFeaturesEXT where+ withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)+ pokeCStruct p PhysicalDevicePipelinePropertiesFeaturesEXT{..} f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROPERTIES_FEATURES_EXT)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (pipelinePropertiesIdentifier))+ f+ cStructSize = 24+ cStructAlignment = 8+ pokeZeroCStruct p f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROPERTIES_FEATURES_EXT)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (zero))+ f++instance FromCStruct PhysicalDevicePipelinePropertiesFeaturesEXT where+ peekCStruct p = do+ pipelinePropertiesIdentifier <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))+ pure $ PhysicalDevicePipelinePropertiesFeaturesEXT+ (bool32ToBool pipelinePropertiesIdentifier)++instance Storable PhysicalDevicePipelinePropertiesFeaturesEXT where+ sizeOf ~_ = 24+ alignment ~_ = 8+ peek = peekCStruct+ poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero PhysicalDevicePipelinePropertiesFeaturesEXT where+ zero = PhysicalDevicePipelinePropertiesFeaturesEXT+ zero+++-- No documentation found for TopLevel "VkPipelineInfoEXT"+type PipelineInfoEXT = PipelineInfoKHR+++type EXT_PIPELINE_PROPERTIES_SPEC_VERSION = 1++-- No documentation found for TopLevel "VK_EXT_PIPELINE_PROPERTIES_SPEC_VERSION"+pattern EXT_PIPELINE_PROPERTIES_SPEC_VERSION :: forall a . Integral a => a+pattern EXT_PIPELINE_PROPERTIES_SPEC_VERSION = 1+++type EXT_PIPELINE_PROPERTIES_EXTENSION_NAME = "VK_EXT_pipeline_properties"++-- No documentation found for TopLevel "VK_EXT_PIPELINE_PROPERTIES_EXTENSION_NAME"+pattern EXT_PIPELINE_PROPERTIES_EXTENSION_NAME :: forall a . (Eq a, IsString a) => a+pattern EXT_PIPELINE_PROPERTIES_EXTENSION_NAME = "VK_EXT_pipeline_properties"+
+ src/Vulkan/Extensions/VK_EXT_pipeline_properties.hs-boot view
@@ -0,0 +1,177 @@+{-# language CPP #-}+-- | = Name+--+-- VK_EXT_pipeline_properties - device extension+--+-- == VK_EXT_pipeline_properties+--+-- [__Name String__]+-- @VK_EXT_pipeline_properties@+--+-- [__Extension Type__]+-- Device extension+--+-- [__Registered Extension Number__]+-- 373+--+-- [__Revision__]+-- 1+--+-- [__Extension and Version Dependencies__]+--+-- - Requires support for Vulkan 1.0+--+-- - Requires @VK_KHR_get_physical_device_properties2@ to be enabled+-- for any device-level functionality+--+-- [__Contact__]+--+-- - Mukund Keshava+-- <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_EXT_pipeline_properties] @mkeshavanv%0A<<Here describe the issue or question you have about the VK_EXT_pipeline_properties extension>> >+--+-- == Other Extension Metadata+--+-- [__Last Modified Date__]+-- 2022-04-19+--+-- [__IP Status__]+-- No known IP claims.+--+-- [__Contributors__]+--+-- - Mukund Keshava, NVIDIA+--+-- - Daniel Koch, NVIDIA+--+-- - Mark Bellamy, Arm+--+-- == Description+--+-- Vulkan SC requires offline compilation of pipelines. In order to support+-- this, the pipeline state is represented in a+-- <https://github.com/KhronosGroup/VulkanSC-Docs/wiki/JSON-schema JSON schema>+-- that is read by an offline tool for compilation.+--+-- One method of developing a Vulkan SC application is to author a Vulkan+-- application and use a layer to record and serialize the pipeline state+-- and shaders for offline compilation. Each pipeline is represented by a+-- separate JSON file, and can be identified with a @pipelineIdentifier@.+--+-- Once the pipelines have been compiled by the offline pipeline cache+-- compiler, the Vulkan SC application can then use this+-- @pipelineIdentifier@ for identifying the pipeline via Vulkan SC’s+-- @VkPipelineIdentifierInfo@ structure.+--+-- This extension allows the Vulkan application to query the+-- @pipelineIdentifier@ associated with each pipeline so that the+-- application can store this with its pipeline metadata and the Vulkan SC+-- application will then use to map the same state to an entry in the+-- Vulkan SC pipeline cache.+--+-- It is expected that this extension will initially be implemented in the+-- json generation layer, although we can envision that there might be+-- future uses for it in native Vulkan drivers as well.+--+-- == New Commands+--+-- - 'getPipelinePropertiesEXT'+--+-- == New Structures+--+-- - 'PipelineInfoEXT'+--+-- - 'PipelinePropertiesIdentifierEXT'+--+-- - Extending+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',+-- 'Vulkan.Core10.Device.DeviceCreateInfo':+--+-- - 'PhysicalDevicePipelinePropertiesFeaturesEXT'+--+-- == New Enum Constants+--+-- - 'EXT_PIPELINE_PROPERTIES_EXTENSION_NAME'+--+-- - 'EXT_PIPELINE_PROPERTIES_SPEC_VERSION'+--+-- - Extending 'Vulkan.Core10.Enums.StructureType.StructureType':+--+-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROPERTIES_FEATURES_EXT'+--+-- - 'STRUCTURE_TYPE_PIPELINE_INFO_EXT'+--+-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PIPELINE_PROPERTIES_IDENTIFIER_EXT'+--+-- == Issues+--+-- (1) This extension does not make sense on a strict Vulkan SC+-- implementation. It may however be of potential use in a non-strict+-- Vulkan SC implementation. Should this extension be enabled as part of+-- Vulkan SC as well?+--+-- __RESOLVED__: No. This extension will not be enabled for Vulkan SC.+--+-- (2) This is intended to be a general pipeline properties query, but is+-- currently only retrieving the pipeline identifier. Should the pipeline+-- identifier query be mandatory for this extension and for all queries+-- using this entry point?+--+-- __RESOLVED__: Use 'Vulkan.CStruct.Extends.BaseOutStructure' for the+-- return parameter. Currently this is required to actually be a+-- 'PipelinePropertiesIdentifierEXT' structure, but that could be relaxed+-- in the future to allow other structure types or to allow other+-- structures to be chained in along with this one.+--+-- (3) Should there be a feature structure? Should it be required?+--+-- __RESOLVED__: Add a feature structure, and a feature for querying+-- pipeline identifier, but allow it to be optional so that this extension+-- can be used as the basis for other pipeline property queries without+-- requiring the pipeline identifier to be supported.+--+-- == Version History+--+-- - Revision 1, 2022-04-19 (Mukund Keshava, Daniel Koch)+--+-- - Initial draft+--+-- == See Also+--+-- 'PhysicalDevicePipelinePropertiesFeaturesEXT', 'PipelineInfoEXT',+-- 'PipelinePropertiesIdentifierEXT', 'getPipelinePropertiesEXT'+--+-- == Document Notes+--+-- For more information, see the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_pipeline_properties Vulkan Specification>+--+-- This page is a generated document. Fixes and changes should be made to+-- the generator scripts, not directly.+module Vulkan.Extensions.VK_EXT_pipeline_properties ( PhysicalDevicePipelinePropertiesFeaturesEXT+ , PipelinePropertiesIdentifierEXT+ , PipelineInfoEXT+ ) where++import Vulkan.CStruct (FromCStruct)+import Vulkan.CStruct (ToCStruct)+import Data.Kind (Type)+import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_pipeline_executable_properties (PipelineInfoKHR)+data PhysicalDevicePipelinePropertiesFeaturesEXT++instance ToCStruct PhysicalDevicePipelinePropertiesFeaturesEXT+instance Show PhysicalDevicePipelinePropertiesFeaturesEXT++instance FromCStruct PhysicalDevicePipelinePropertiesFeaturesEXT+++data PipelinePropertiesIdentifierEXT++instance ToCStruct PipelinePropertiesIdentifierEXT+instance Show PipelinePropertiesIdentifierEXT++instance FromCStruct PipelinePropertiesIdentifierEXT+++-- No documentation found for TopLevel "VkPipelineInfoEXT"+type PipelineInfoEXT = PipelineInfoKHR+
+ src/Vulkan/Extensions/VK_EXT_pipeline_robustness.hs view
@@ -0,0 +1,674 @@+{-# language CPP #-}+-- | = Name+--+-- VK_EXT_pipeline_robustness - device extension+--+-- == VK_EXT_pipeline_robustness+--+-- [__Name String__]+-- @VK_EXT_pipeline_robustness@+--+-- [__Extension Type__]+-- Device extension+--+-- [__Registered Extension Number__]+-- 69+--+-- [__Revision__]+-- 1+--+-- [__Extension and Version Dependencies__]+--+-- - Requires support for Vulkan 1.0+--+-- - Requires @VK_KHR_get_physical_device_properties2@ to be enabled+-- for any device-level functionality+--+-- [__Contact__]+--+-- - Jarred Davies+--+-- == Other Extension Metadata+--+-- [__Last Modified Date__]+-- 2022-07-12+--+-- [__Interactions and External Dependencies__]+--+-- - Interacts with @VK_EXT_robustness2@+--+-- - Interacts with @VK_EXT_image_robustness@+--+-- - Interacts with @VK_KHR_ray_tracing_pipeline@+--+-- [__Contributors__]+--+-- - Jarred Davies, Imagination Technologies+--+-- - Alex Walters, Imagination Technologies+--+-- - Piers Daniell, NVIDIA+--+-- - Graeme Leese, Broadcom Corporation+--+-- - Jeff Leger, Qualcomm Technologies, Inc.+--+-- - Jason Ekstrand, Intel+--+-- - Lionel Landwerlin, Intel+--+-- - Shahbaz Youssefi, Google, Inc.+--+-- == Description+--+-- @VK_EXT_pipeline_robustness@ allows users to request robustness on a+-- per-pipeline stage basis.+--+-- As+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>+-- and other robustness features may have an adverse effect on performance,+-- this extension is designed to allow users to request robust behavior+-- only where it may be needed.+--+-- == New Structures+--+-- - Extending 'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo',+-- 'Vulkan.Core10.Pipeline.ComputePipelineCreateInfo',+-- 'Vulkan.Core10.Pipeline.PipelineShaderStageCreateInfo',+-- 'Vulkan.Extensions.VK_KHR_ray_tracing_pipeline.RayTracingPipelineCreateInfoKHR':+--+-- - 'PipelineRobustnessCreateInfoEXT'+--+-- - Extending+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',+-- 'Vulkan.Core10.Device.DeviceCreateInfo':+--+-- - 'PhysicalDevicePipelineRobustnessFeaturesEXT'+--+-- - Extending+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2':+--+-- - 'PhysicalDevicePipelineRobustnessPropertiesEXT'+--+-- == New Enums+--+-- - 'PipelineRobustnessBufferBehaviorEXT'+--+-- - 'PipelineRobustnessImageBehaviorEXT'+--+-- == New Enum Constants+--+-- - 'EXT_PIPELINE_ROBUSTNESS_EXTENSION_NAME'+--+-- - 'EXT_PIPELINE_ROBUSTNESS_SPEC_VERSION'+--+-- - Extending 'Vulkan.Core10.Enums.StructureType.StructureType':+--+-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_FEATURES_EXT'+--+-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_PROPERTIES_EXT'+--+-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PIPELINE_ROBUSTNESS_CREATE_INFO_EXT'+--+-- == Version History+--+-- - Revision 1, 2022-07-12 (Jarred Davies)+--+-- - Initial version+--+-- == See Also+--+-- 'PhysicalDevicePipelineRobustnessFeaturesEXT',+-- 'PhysicalDevicePipelineRobustnessPropertiesEXT',+-- 'PipelineRobustnessBufferBehaviorEXT',+-- 'PipelineRobustnessCreateInfoEXT', 'PipelineRobustnessImageBehaviorEXT'+--+-- == Document Notes+--+-- For more information, see the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_pipeline_robustness Vulkan Specification>+--+-- This page is a generated document. Fixes and changes should be made to+-- the generator scripts, not directly.+module Vulkan.Extensions.VK_EXT_pipeline_robustness ( PhysicalDevicePipelineRobustnessFeaturesEXT(..)+ , PipelineRobustnessCreateInfoEXT(..)+ , PhysicalDevicePipelineRobustnessPropertiesEXT(..)+ , PipelineRobustnessBufferBehaviorEXT( PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DEVICE_DEFAULT_EXT+ , PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DISABLED_EXT+ , PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT+ , PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT+ , ..+ )+ , PipelineRobustnessImageBehaviorEXT( PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_DEVICE_DEFAULT_EXT+ , PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_DISABLED_EXT+ , PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS_EXT+ , PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS_2_EXT+ , ..+ )+ , EXT_PIPELINE_ROBUSTNESS_SPEC_VERSION+ , pattern EXT_PIPELINE_ROBUSTNESS_SPEC_VERSION+ , EXT_PIPELINE_ROBUSTNESS_EXTENSION_NAME+ , pattern EXT_PIPELINE_ROBUSTNESS_EXTENSION_NAME+ ) where++import Vulkan.Internal.Utils (enumReadPrec)+import Vulkan.Internal.Utils (enumShowsPrec)+import Foreign.Marshal.Alloc (allocaBytes)+import Foreign.Ptr (nullPtr)+import Foreign.Ptr (plusPtr)+import GHC.Show (showsPrec)+import Vulkan.CStruct (FromCStruct)+import Vulkan.CStruct (FromCStruct(..))+import Vulkan.CStruct (ToCStruct)+import Vulkan.CStruct (ToCStruct(..))+import Vulkan.Zero (Zero)+import Vulkan.Zero (Zero(..))+import Data.String (IsString)+import Data.Typeable (Typeable)+import Foreign.Storable (Storable)+import Foreign.Storable (Storable(peek))+import Foreign.Storable (Storable(poke))+import qualified Foreign.Storable (Storable(..))+import GHC.Generics (Generic)+import Data.Int (Int32)+import Foreign.Ptr (Ptr)+import GHC.Read (Read(readPrec))+import GHC.Show (Show(showsPrec))+import Data.Kind (Type)+import Vulkan.Core10.FundamentalTypes (bool32ToBool)+import Vulkan.Core10.FundamentalTypes (boolToBool32)+import Vulkan.Core10.FundamentalTypes (Bool32)+import Vulkan.Core10.Enums.StructureType (StructureType)+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_FEATURES_EXT))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_PROPERTIES_EXT))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PIPELINE_ROBUSTNESS_CREATE_INFO_EXT))+-- | VkPhysicalDevicePipelineRobustnessFeaturesEXT - Structure describing+-- whether an implementation supports robustness requests on a per-pipeline+-- stage granularity+--+-- = Members+--+-- This structure describes the following feature:+--+-- = Description+--+-- Note+--+-- Enabling+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-pipelineRobustness pipelineRobustness>+-- may, on some platforms, incur a minor performance cost when+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>+-- is disabled, even for pipelines which do not make use of any robustness+-- features. If robustness is not needed,+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-pipelineRobustness pipelineRobustness>+-- should not be enabled by an application.+--+-- If the 'PhysicalDevicePipelineRobustnessFeaturesEXT' structure is+-- included in the @pNext@ chain of the+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2'+-- structure passed to+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceFeatures2',+-- it is filled in to indicate whether each corresponding feature is+-- supported. 'PhysicalDevicePipelineRobustnessFeaturesEXT' /can/ also be+-- used in the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to+-- selectively enable these features.+--+-- == Valid Usage (Implicit)+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_pipeline_robustness VK_EXT_pipeline_robustness>,+-- 'Vulkan.Core10.FundamentalTypes.Bool32',+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data PhysicalDevicePipelineRobustnessFeaturesEXT = PhysicalDevicePipelineRobustnessFeaturesEXT+ { -- | #features-pipelineRobustness# @pipelineRobustness@ indicates that+ -- robustness /can/ be requested on a per-pipeline-stage granularity.+ pipelineRobustness :: Bool }+ deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (PhysicalDevicePipelineRobustnessFeaturesEXT)+#endif+deriving instance Show PhysicalDevicePipelineRobustnessFeaturesEXT++instance ToCStruct PhysicalDevicePipelineRobustnessFeaturesEXT where+ withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)+ pokeCStruct p PhysicalDevicePipelineRobustnessFeaturesEXT{..} f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_FEATURES_EXT)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (pipelineRobustness))+ f+ cStructSize = 24+ cStructAlignment = 8+ pokeZeroCStruct p f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_FEATURES_EXT)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (zero))+ f++instance FromCStruct PhysicalDevicePipelineRobustnessFeaturesEXT where+ peekCStruct p = do+ pipelineRobustness <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))+ pure $ PhysicalDevicePipelineRobustnessFeaturesEXT+ (bool32ToBool pipelineRobustness)++instance Storable PhysicalDevicePipelineRobustnessFeaturesEXT where+ sizeOf ~_ = 24+ alignment ~_ = 8+ peek = peekCStruct+ poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero PhysicalDevicePipelineRobustnessFeaturesEXT where+ zero = PhysicalDevicePipelineRobustnessFeaturesEXT+ zero+++-- | VkPipelineRobustnessCreateInfoEXT - Structure controlling the robustness+-- of a newly created pipeline shader stage+--+-- = Members+--+-- Resources bound as+-- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_MUTABLE_VALVE' will+-- have the robustness behavior that covers its active descriptor type.+--+-- = Description+--+-- The scope of the effect of 'PipelineRobustnessCreateInfoEXT' depends on+-- which structure’s @pNext@ chain it is included in.+--+-- - 'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo',+-- 'Vulkan.Core10.Pipeline.ComputePipelineCreateInfo',+-- 'Vulkan.Extensions.VK_KHR_ray_tracing_pipeline.RayTracingPipelineCreateInfoKHR'+-- The robustness behavior described by+-- 'PipelineRobustnessCreateInfoEXT' applies to all accesses through+-- this pipeline+--+-- - 'Vulkan.Core10.Pipeline.PipelineShaderStageCreateInfo'+-- The robustness behavior described by+-- 'PipelineRobustnessCreateInfoEXT' applies to all accesses emanating+-- from the shader code of this shader stage+--+-- If 'PipelineRobustnessCreateInfoEXT' is specified for both a pipeline+-- and a pipeline stage, the 'PipelineRobustnessCreateInfoEXT' specified+-- for the pipeline stage will take precedence.+--+-- == Valid Usage+--+-- - #VUID-VkPipelineRobustnessCreateInfoEXT-pipelineRobustness-06926# If+-- the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-pipelineRobustness pipelineRobustness>+-- feature is not enabled, @storageBuffers@ /must/ be+-- 'PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DEVICE_DEFAULT_EXT'+--+-- - #VUID-VkPipelineRobustnessCreateInfoEXT-pipelineRobustness-06927# If+-- the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-pipelineRobustness pipelineRobustness>+-- feature is not enabled, @uniformBuffers@ /must/ be+-- 'PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DEVICE_DEFAULT_EXT'+--+-- - #VUID-VkPipelineRobustnessCreateInfoEXT-pipelineRobustness-06928# If+-- the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-pipelineRobustness pipelineRobustness>+-- feature is not enabled, @vertexInputs@ /must/ be+-- 'PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DEVICE_DEFAULT_EXT'+--+-- - #VUID-VkPipelineRobustnessCreateInfoEXT-pipelineRobustness-06929# If+-- the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-pipelineRobustness pipelineRobustness>+-- feature is not enabled, @images@ /must/ be+-- 'PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_DEVICE_DEFAULT_EXT'+--+-- - #VUID-VkPipelineRobustnessCreateInfoEXT-robustImageAccess-06930# If+-- the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-robustImageAccess robustImageAccess>+-- feature is not supported, @images@ /must/ not be+-- 'PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS_EXT'+--+-- - #VUID-VkPipelineRobustnessCreateInfoEXT-robustBufferAccess2-06931#+-- If the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-robustBufferAccess2 robustBufferAccess2>+-- feature is not supported, @storageBuffers@ /must/ not be+-- 'PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT'+--+-- - #VUID-VkPipelineRobustnessCreateInfoEXT-robustBufferAccess2-06932#+-- If the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-robustBufferAccess2 robustBufferAccess2>+-- feature is not supported, @uniformBuffers@ /must/ not be+-- 'PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT'+--+-- - #VUID-VkPipelineRobustnessCreateInfoEXT-robustBufferAccess2-06933#+-- If the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-robustBufferAccess2 robustBufferAccess2>+-- feature is not supported, @vertexInputs@ /must/ not be+-- 'PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT'+--+-- - #VUID-VkPipelineRobustnessCreateInfoEXT-robustImageAccess2-06934# If+-- the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-robustImageAccess2 robustImageAccess2>+-- feature is not supported, @images@ /must/ not be+-- 'PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS_2_EXT'+--+-- == Valid Usage (Implicit)+--+-- - #VUID-VkPipelineRobustnessCreateInfoEXT-sType-sType# @sType@ /must/+-- be+-- 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PIPELINE_ROBUSTNESS_CREATE_INFO_EXT'+--+-- - #VUID-VkPipelineRobustnessCreateInfoEXT-storageBuffers-parameter#+-- @storageBuffers@ /must/ be a valid+-- 'PipelineRobustnessBufferBehaviorEXT' value+--+-- - #VUID-VkPipelineRobustnessCreateInfoEXT-uniformBuffers-parameter#+-- @uniformBuffers@ /must/ be a valid+-- 'PipelineRobustnessBufferBehaviorEXT' value+--+-- - #VUID-VkPipelineRobustnessCreateInfoEXT-vertexInputs-parameter#+-- @vertexInputs@ /must/ be a valid+-- 'PipelineRobustnessBufferBehaviorEXT' value+--+-- - #VUID-VkPipelineRobustnessCreateInfoEXT-images-parameter# @images@+-- /must/ be a valid 'PipelineRobustnessImageBehaviorEXT' value+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_pipeline_robustness VK_EXT_pipeline_robustness>,+-- 'PipelineRobustnessBufferBehaviorEXT',+-- 'PipelineRobustnessImageBehaviorEXT',+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data PipelineRobustnessCreateInfoEXT = PipelineRobustnessCreateInfoEXT+ { -- No documentation found for Nested "VkPipelineRobustnessCreateInfoEXT" "storageBuffers"+ storageBuffers :: PipelineRobustnessBufferBehaviorEXT+ , -- No documentation found for Nested "VkPipelineRobustnessCreateInfoEXT" "uniformBuffers"+ uniformBuffers :: PipelineRobustnessBufferBehaviorEXT+ , -- No documentation found for Nested "VkPipelineRobustnessCreateInfoEXT" "vertexInputs"+ vertexInputs :: PipelineRobustnessBufferBehaviorEXT+ , -- No documentation found for Nested "VkPipelineRobustnessCreateInfoEXT" "images"+ images :: PipelineRobustnessImageBehaviorEXT+ }+ deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (PipelineRobustnessCreateInfoEXT)+#endif+deriving instance Show PipelineRobustnessCreateInfoEXT++instance ToCStruct PipelineRobustnessCreateInfoEXT where+ withCStruct x f = allocaBytes 32 $ \p -> pokeCStruct p x (f p)+ pokeCStruct p PipelineRobustnessCreateInfoEXT{..} f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PIPELINE_ROBUSTNESS_CREATE_INFO_EXT)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr PipelineRobustnessBufferBehaviorEXT)) (storageBuffers)+ poke ((p `plusPtr` 20 :: Ptr PipelineRobustnessBufferBehaviorEXT)) (uniformBuffers)+ poke ((p `plusPtr` 24 :: Ptr PipelineRobustnessBufferBehaviorEXT)) (vertexInputs)+ poke ((p `plusPtr` 28 :: Ptr PipelineRobustnessImageBehaviorEXT)) (images)+ f+ cStructSize = 32+ cStructAlignment = 8+ pokeZeroCStruct p f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PIPELINE_ROBUSTNESS_CREATE_INFO_EXT)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr PipelineRobustnessBufferBehaviorEXT)) (zero)+ poke ((p `plusPtr` 20 :: Ptr PipelineRobustnessBufferBehaviorEXT)) (zero)+ poke ((p `plusPtr` 24 :: Ptr PipelineRobustnessBufferBehaviorEXT)) (zero)+ poke ((p `plusPtr` 28 :: Ptr PipelineRobustnessImageBehaviorEXT)) (zero)+ f++instance FromCStruct PipelineRobustnessCreateInfoEXT where+ peekCStruct p = do+ storageBuffers <- peek @PipelineRobustnessBufferBehaviorEXT ((p `plusPtr` 16 :: Ptr PipelineRobustnessBufferBehaviorEXT))+ uniformBuffers <- peek @PipelineRobustnessBufferBehaviorEXT ((p `plusPtr` 20 :: Ptr PipelineRobustnessBufferBehaviorEXT))+ vertexInputs <- peek @PipelineRobustnessBufferBehaviorEXT ((p `plusPtr` 24 :: Ptr PipelineRobustnessBufferBehaviorEXT))+ images <- peek @PipelineRobustnessImageBehaviorEXT ((p `plusPtr` 28 :: Ptr PipelineRobustnessImageBehaviorEXT))+ pure $ PipelineRobustnessCreateInfoEXT+ storageBuffers uniformBuffers vertexInputs images++instance Storable PipelineRobustnessCreateInfoEXT where+ sizeOf ~_ = 32+ alignment ~_ = 8+ peek = peekCStruct+ poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero PipelineRobustnessCreateInfoEXT where+ zero = PipelineRobustnessCreateInfoEXT+ zero+ zero+ zero+ zero+++-- | VkPhysicalDevicePipelineRobustnessPropertiesEXT - Structure describing+-- the default robustness behavior of a physical device+--+-- = Description+--+-- Some implementations of Vulkan may be able to guarantee that certain+-- types of accesses are always performed with robustness even when the+-- Vulkan API’s robustness features are not explicitly enabled.+--+-- Even when an implementation reports that accesses to a given resource+-- type are robust by default, it remains invalid to make an out of bounds+-- access without requesting the appropriate robustness feature.+--+-- If the 'PhysicalDevicePipelineRobustnessPropertiesEXT' structure is+-- included in the @pNext@ chain of the+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2'+-- structure passed to+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceProperties2',+-- it is filled in with each corresponding implementation-dependent+-- property.+--+-- == Valid Usage (Implicit)+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_pipeline_robustness VK_EXT_pipeline_robustness>,+-- 'PipelineRobustnessBufferBehaviorEXT',+-- 'PipelineRobustnessImageBehaviorEXT',+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data PhysicalDevicePipelineRobustnessPropertiesEXT = PhysicalDevicePipelineRobustnessPropertiesEXT+ { -- | @defaultRobustnessStorageBuffers@ describes the behaviour of out of+ -- bounds accesses made to storage buffers when no robustness features are+ -- enabled+ defaultRobustnessStorageBuffers :: PipelineRobustnessBufferBehaviorEXT+ , -- | @defaultRobustnessUniformBuffers@ describes the behaviour of out of+ -- bounds accesses made to uniform buffers when no robustness features are+ -- enabled+ defaultRobustnessUniformBuffers :: PipelineRobustnessBufferBehaviorEXT+ , -- | @defaultRobustnessVertexInputs@ describes the behaviour of out of bounds+ -- accesses made to vertex input attributes when no robustness features are+ -- enabled+ defaultRobustnessVertexInputs :: PipelineRobustnessBufferBehaviorEXT+ , -- | @defaultRobustnessImages@ describes the behaviour of out of bounds+ -- accesses made to images when no robustness features are enabled+ defaultRobustnessImages :: PipelineRobustnessImageBehaviorEXT+ }+ deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (PhysicalDevicePipelineRobustnessPropertiesEXT)+#endif+deriving instance Show PhysicalDevicePipelineRobustnessPropertiesEXT++instance ToCStruct PhysicalDevicePipelineRobustnessPropertiesEXT where+ withCStruct x f = allocaBytes 32 $ \p -> pokeCStruct p x (f p)+ pokeCStruct p PhysicalDevicePipelineRobustnessPropertiesEXT{..} f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_PROPERTIES_EXT)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr PipelineRobustnessBufferBehaviorEXT)) (defaultRobustnessStorageBuffers)+ poke ((p `plusPtr` 20 :: Ptr PipelineRobustnessBufferBehaviorEXT)) (defaultRobustnessUniformBuffers)+ poke ((p `plusPtr` 24 :: Ptr PipelineRobustnessBufferBehaviorEXT)) (defaultRobustnessVertexInputs)+ poke ((p `plusPtr` 28 :: Ptr PipelineRobustnessImageBehaviorEXT)) (defaultRobustnessImages)+ f+ cStructSize = 32+ cStructAlignment = 8+ pokeZeroCStruct p f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_PROPERTIES_EXT)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr PipelineRobustnessBufferBehaviorEXT)) (zero)+ poke ((p `plusPtr` 20 :: Ptr PipelineRobustnessBufferBehaviorEXT)) (zero)+ poke ((p `plusPtr` 24 :: Ptr PipelineRobustnessBufferBehaviorEXT)) (zero)+ poke ((p `plusPtr` 28 :: Ptr PipelineRobustnessImageBehaviorEXT)) (zero)+ f++instance FromCStruct PhysicalDevicePipelineRobustnessPropertiesEXT where+ peekCStruct p = do+ defaultRobustnessStorageBuffers <- peek @PipelineRobustnessBufferBehaviorEXT ((p `plusPtr` 16 :: Ptr PipelineRobustnessBufferBehaviorEXT))+ defaultRobustnessUniformBuffers <- peek @PipelineRobustnessBufferBehaviorEXT ((p `plusPtr` 20 :: Ptr PipelineRobustnessBufferBehaviorEXT))+ defaultRobustnessVertexInputs <- peek @PipelineRobustnessBufferBehaviorEXT ((p `plusPtr` 24 :: Ptr PipelineRobustnessBufferBehaviorEXT))+ defaultRobustnessImages <- peek @PipelineRobustnessImageBehaviorEXT ((p `plusPtr` 28 :: Ptr PipelineRobustnessImageBehaviorEXT))+ pure $ PhysicalDevicePipelineRobustnessPropertiesEXT+ defaultRobustnessStorageBuffers defaultRobustnessUniformBuffers defaultRobustnessVertexInputs defaultRobustnessImages++instance Storable PhysicalDevicePipelineRobustnessPropertiesEXT where+ sizeOf ~_ = 32+ alignment ~_ = 8+ peek = peekCStruct+ poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero PhysicalDevicePipelineRobustnessPropertiesEXT where+ zero = PhysicalDevicePipelineRobustnessPropertiesEXT+ zero+ zero+ zero+ zero+++-- | VkPipelineRobustnessBufferBehaviorEXT - Enum controlling the robustness+-- of buffer accesses in a pipeline stage+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_pipeline_robustness VK_EXT_pipeline_robustness>,+-- 'PhysicalDevicePipelineRobustnessPropertiesEXT',+-- 'PipelineRobustnessCreateInfoEXT'+newtype PipelineRobustnessBufferBehaviorEXT = PipelineRobustnessBufferBehaviorEXT Int32+ deriving newtype (Eq, Ord, Storable, Zero)++-- | 'PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DEVICE_DEFAULT_EXT' specifies that+-- this pipeline stage follows the robustness behavior of the logical+-- device that created this pipeline+pattern PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DEVICE_DEFAULT_EXT = PipelineRobustnessBufferBehaviorEXT 0+-- | 'PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DISABLED_EXT' specifies that buffer+-- accesses by this pipeline stage to the relevant resource types /must/+-- not be out of bounds+pattern PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DISABLED_EXT = PipelineRobustnessBufferBehaviorEXT 1+-- | 'PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT' specifies+-- that out of bounds accesses by this pipeline stage to the relevant+-- resource types behave as if the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>+-- feature is enabled+pattern PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT = PipelineRobustnessBufferBehaviorEXT 2+-- | 'PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT'+-- specifies that out of bounds accesses by this pipeline stage to the+-- relevant resource types behave as if the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-robustBufferAccess2 robustBufferAccess2>+-- feature is enabled+pattern PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT = PipelineRobustnessBufferBehaviorEXT 3+{-# complete PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DEVICE_DEFAULT_EXT,+ PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DISABLED_EXT,+ PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT,+ PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT :: PipelineRobustnessBufferBehaviorEXT #-}++conNamePipelineRobustnessBufferBehaviorEXT :: String+conNamePipelineRobustnessBufferBehaviorEXT = "PipelineRobustnessBufferBehaviorEXT"++enumPrefixPipelineRobustnessBufferBehaviorEXT :: String+enumPrefixPipelineRobustnessBufferBehaviorEXT = "PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_"++showTablePipelineRobustnessBufferBehaviorEXT :: [(PipelineRobustnessBufferBehaviorEXT, String)]+showTablePipelineRobustnessBufferBehaviorEXT =+ [ (PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DEVICE_DEFAULT_EXT , "DEVICE_DEFAULT_EXT")+ , (PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DISABLED_EXT , "DISABLED_EXT")+ , (PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT , "ROBUST_BUFFER_ACCESS_EXT")+ , (PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT, "ROBUST_BUFFER_ACCESS_2_EXT")+ ]++instance Show PipelineRobustnessBufferBehaviorEXT where+ showsPrec = enumShowsPrec enumPrefixPipelineRobustnessBufferBehaviorEXT+ showTablePipelineRobustnessBufferBehaviorEXT+ conNamePipelineRobustnessBufferBehaviorEXT+ (\(PipelineRobustnessBufferBehaviorEXT x) -> x)+ (showsPrec 11)++instance Read PipelineRobustnessBufferBehaviorEXT where+ readPrec = enumReadPrec enumPrefixPipelineRobustnessBufferBehaviorEXT+ showTablePipelineRobustnessBufferBehaviorEXT+ conNamePipelineRobustnessBufferBehaviorEXT+ PipelineRobustnessBufferBehaviorEXT+++-- | VkPipelineRobustnessImageBehaviorEXT - Enum controlling the robustness+-- of image accesses in a pipeline stage+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_pipeline_robustness VK_EXT_pipeline_robustness>,+-- 'PhysicalDevicePipelineRobustnessPropertiesEXT',+-- 'PipelineRobustnessCreateInfoEXT'+newtype PipelineRobustnessImageBehaviorEXT = PipelineRobustnessImageBehaviorEXT Int32+ deriving newtype (Eq, Ord, Storable, Zero)++-- | 'PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_DEVICE_DEFAULT_EXT' specifies that+-- this pipeline stage follows the robustness behavior of the logical+-- device that created this pipeline+pattern PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_DEVICE_DEFAULT_EXT = PipelineRobustnessImageBehaviorEXT 0+-- | 'PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_DISABLED_EXT' specifies that image+-- accesses by this pipeline stage to the relevant resource types /must/+-- not be out of bounds+pattern PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_DISABLED_EXT = PipelineRobustnessImageBehaviorEXT 1+-- | 'PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS_EXT' specifies+-- that out of bounds accesses by this pipeline stage to images behave as+-- if the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-robustImageAccess robustImageAccess>+-- feature is enabled+pattern PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS_EXT = PipelineRobustnessImageBehaviorEXT 2+-- | 'PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS_2_EXT' specifies+-- that out of bounds accesses by this pipeline stage to images behave as+-- if the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-robustImageAccess2 robustImageAccess2>+-- feature is enabled+pattern PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS_2_EXT = PipelineRobustnessImageBehaviorEXT 3+{-# complete PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_DEVICE_DEFAULT_EXT,+ PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_DISABLED_EXT,+ PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS_EXT,+ PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS_2_EXT :: PipelineRobustnessImageBehaviorEXT #-}++conNamePipelineRobustnessImageBehaviorEXT :: String+conNamePipelineRobustnessImageBehaviorEXT = "PipelineRobustnessImageBehaviorEXT"++enumPrefixPipelineRobustnessImageBehaviorEXT :: String+enumPrefixPipelineRobustnessImageBehaviorEXT = "PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_"++showTablePipelineRobustnessImageBehaviorEXT :: [(PipelineRobustnessImageBehaviorEXT, String)]+showTablePipelineRobustnessImageBehaviorEXT =+ [ (PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_DEVICE_DEFAULT_EXT , "DEVICE_DEFAULT_EXT")+ , (PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_DISABLED_EXT , "DISABLED_EXT")+ , (PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS_EXT , "ROBUST_IMAGE_ACCESS_EXT")+ , (PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS_2_EXT, "ROBUST_IMAGE_ACCESS_2_EXT")+ ]++instance Show PipelineRobustnessImageBehaviorEXT where+ showsPrec = enumShowsPrec enumPrefixPipelineRobustnessImageBehaviorEXT+ showTablePipelineRobustnessImageBehaviorEXT+ conNamePipelineRobustnessImageBehaviorEXT+ (\(PipelineRobustnessImageBehaviorEXT x) -> x)+ (showsPrec 11)++instance Read PipelineRobustnessImageBehaviorEXT where+ readPrec = enumReadPrec enumPrefixPipelineRobustnessImageBehaviorEXT+ showTablePipelineRobustnessImageBehaviorEXT+ conNamePipelineRobustnessImageBehaviorEXT+ PipelineRobustnessImageBehaviorEXT+++type EXT_PIPELINE_ROBUSTNESS_SPEC_VERSION = 1++-- No documentation found for TopLevel "VK_EXT_PIPELINE_ROBUSTNESS_SPEC_VERSION"+pattern EXT_PIPELINE_ROBUSTNESS_SPEC_VERSION :: forall a . Integral a => a+pattern EXT_PIPELINE_ROBUSTNESS_SPEC_VERSION = 1+++type EXT_PIPELINE_ROBUSTNESS_EXTENSION_NAME = "VK_EXT_pipeline_robustness"++-- No documentation found for TopLevel "VK_EXT_PIPELINE_ROBUSTNESS_EXTENSION_NAME"+pattern EXT_PIPELINE_ROBUSTNESS_EXTENSION_NAME :: forall a . (Eq a, IsString a) => a+pattern EXT_PIPELINE_ROBUSTNESS_EXTENSION_NAME = "VK_EXT_pipeline_robustness"+
+ src/Vulkan/Extensions/VK_EXT_pipeline_robustness.hs-boot view
@@ -0,0 +1,164 @@+{-# language CPP #-}+-- | = Name+--+-- VK_EXT_pipeline_robustness - device extension+--+-- == VK_EXT_pipeline_robustness+--+-- [__Name String__]+-- @VK_EXT_pipeline_robustness@+--+-- [__Extension Type__]+-- Device extension+--+-- [__Registered Extension Number__]+-- 69+--+-- [__Revision__]+-- 1+--+-- [__Extension and Version Dependencies__]+--+-- - Requires support for Vulkan 1.0+--+-- - Requires @VK_KHR_get_physical_device_properties2@ to be enabled+-- for any device-level functionality+--+-- [__Contact__]+--+-- - Jarred Davies+--+-- == Other Extension Metadata+--+-- [__Last Modified Date__]+-- 2022-07-12+--+-- [__Interactions and External Dependencies__]+--+-- - Interacts with @VK_EXT_robustness2@+--+-- - Interacts with @VK_EXT_image_robustness@+--+-- - Interacts with @VK_KHR_ray_tracing_pipeline@+--+-- [__Contributors__]+--+-- - Jarred Davies, Imagination Technologies+--+-- - Alex Walters, Imagination Technologies+--+-- - Piers Daniell, NVIDIA+--+-- - Graeme Leese, Broadcom Corporation+--+-- - Jeff Leger, Qualcomm Technologies, Inc.+--+-- - Jason Ekstrand, Intel+--+-- - Lionel Landwerlin, Intel+--+-- - Shahbaz Youssefi, Google, Inc.+--+-- == Description+--+-- @VK_EXT_pipeline_robustness@ allows users to request robustness on a+-- per-pipeline stage basis.+--+-- As+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>+-- and other robustness features may have an adverse effect on performance,+-- this extension is designed to allow users to request robust behavior+-- only where it may be needed.+--+-- == New Structures+--+-- - Extending 'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo',+-- 'Vulkan.Core10.Pipeline.ComputePipelineCreateInfo',+-- 'Vulkan.Core10.Pipeline.PipelineShaderStageCreateInfo',+-- 'Vulkan.Extensions.VK_KHR_ray_tracing_pipeline.RayTracingPipelineCreateInfoKHR':+--+-- - 'PipelineRobustnessCreateInfoEXT'+--+-- - Extending+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',+-- 'Vulkan.Core10.Device.DeviceCreateInfo':+--+-- - 'PhysicalDevicePipelineRobustnessFeaturesEXT'+--+-- - Extending+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2':+--+-- - 'PhysicalDevicePipelineRobustnessPropertiesEXT'+--+-- == New Enums+--+-- - 'PipelineRobustnessBufferBehaviorEXT'+--+-- - 'PipelineRobustnessImageBehaviorEXT'+--+-- == New Enum Constants+--+-- - 'EXT_PIPELINE_ROBUSTNESS_EXTENSION_NAME'+--+-- - 'EXT_PIPELINE_ROBUSTNESS_SPEC_VERSION'+--+-- - Extending 'Vulkan.Core10.Enums.StructureType.StructureType':+--+-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_FEATURES_EXT'+--+-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_PROPERTIES_EXT'+--+-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PIPELINE_ROBUSTNESS_CREATE_INFO_EXT'+--+-- == Version History+--+-- - Revision 1, 2022-07-12 (Jarred Davies)+--+-- - Initial version+--+-- == See Also+--+-- 'PhysicalDevicePipelineRobustnessFeaturesEXT',+-- 'PhysicalDevicePipelineRobustnessPropertiesEXT',+-- 'PipelineRobustnessBufferBehaviorEXT',+-- 'PipelineRobustnessCreateInfoEXT', 'PipelineRobustnessImageBehaviorEXT'+--+-- == Document Notes+--+-- For more information, see the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_pipeline_robustness Vulkan Specification>+--+-- This page is a generated document. Fixes and changes should be made to+-- the generator scripts, not directly.+module Vulkan.Extensions.VK_EXT_pipeline_robustness ( PhysicalDevicePipelineRobustnessFeaturesEXT+ , PhysicalDevicePipelineRobustnessPropertiesEXT+ , PipelineRobustnessCreateInfoEXT+ ) where++import Vulkan.CStruct (FromCStruct)+import Vulkan.CStruct (ToCStruct)+import Data.Kind (Type)++data PhysicalDevicePipelineRobustnessFeaturesEXT++instance ToCStruct PhysicalDevicePipelineRobustnessFeaturesEXT+instance Show PhysicalDevicePipelineRobustnessFeaturesEXT++instance FromCStruct PhysicalDevicePipelineRobustnessFeaturesEXT+++data PhysicalDevicePipelineRobustnessPropertiesEXT++instance ToCStruct PhysicalDevicePipelineRobustnessPropertiesEXT+instance Show PhysicalDevicePipelineRobustnessPropertiesEXT++instance FromCStruct PhysicalDevicePipelineRobustnessPropertiesEXT+++data PipelineRobustnessCreateInfoEXT++instance ToCStruct PipelineRobustnessCreateInfoEXT+instance Show PipelineRobustnessCreateInfoEXT++instance FromCStruct PipelineRobustnessCreateInfoEXT+
src/Vulkan/Extensions/VK_EXT_post_depth_coverage.hs view
@@ -19,7 +19,7 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 -- -- [__Contact__] --@@ -37,9 +37,9 @@ -- <https://htmlpreview.github.io/?https://github.com/KhronosGroup/SPIRV-Registry/blob/master/extensions/KHR/SPV_KHR_post_depth_coverage.html SPV_KHR_post_depth_coverage> -- -- - This extension provides API support for--- <https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_post_depth_coverage.txt GL_ARB_post_depth_coverage>+-- <https://registry.khronos.org/OpenGL/extensions/ARB/ARB_post_depth_coverage.txt GL_ARB_post_depth_coverage> -- and--- <https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_post_depth_coverage.txt GL_EXT_post_depth_coverage>+-- <https://registry.khronos.org/OpenGL/extensions/EXT/EXT_post_depth_coverage.txt GL_EXT_post_depth_coverage> -- -- [__Contributors__] --@@ -55,19 +55,18 @@ -- which allows the fragment shader to control whether values in the -- 'Vulkan.Core10.FundamentalTypes.SampleMask' built-in input variable -- reflect the coverage after early--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#fragops-depth depth>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fragops-depth depth> -- and--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#fragops-stencil stencil>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fragops-stencil stencil> -- tests are applied. -- -- This extension adds a new @PostDepthCoverage@ execution mode under the -- @SampleMaskPostDepthCoverage@ capability. When this mode is specified -- along with @EarlyFragmentTests@, the value of an input variable -- decorated with the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-samplemask >--- built-in reflects the coverage after the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-fragment-earlytest early fragment tests>--- are applied. Otherwise, it reflects the coverage before the depth and+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-samplemask >+-- built-in reflects the coverage after the early fragment tests are+-- applied. Otherwise, it reflects the coverage before the depth and -- stencil tests. -- -- When using GLSL source-based shading languages, the@@ -83,7 +82,7 @@ -- -- == New SPIR-V Capabilities ----- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-SampleMaskPostDepthCoverage SampleMaskPostDepthCoverage>+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-SampleMaskPostDepthCoverage SampleMaskPostDepthCoverage> -- -- == Version History --@@ -98,7 +97,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_post_depth_coverage Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_post_depth_coverage Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_EXT_primitive_topology_list_restart.hs view
@@ -19,7 +19,7 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 -- -- [__Special Use__] --@@ -88,7 +88,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_primitive_topology_list_restart Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_primitive_topology_list_restart Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.@@ -126,9 +126,7 @@ -- -- = Members ----- The members of the--- 'PhysicalDevicePrimitiveTopologyListRestartFeaturesEXT' structure--- describe the following features:+-- This structure describes the following features: -- -- = Description --
src/Vulkan/Extensions/VK_EXT_primitive_topology_list_restart.hs-boot view
@@ -19,7 +19,7 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 -- -- [__Special Use__] --@@ -88,7 +88,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_primitive_topology_list_restart Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_primitive_topology_list_restart Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_EXT_primitives_generated_query.hs view
@@ -19,9 +19,10 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_EXT_transform_feedback@+-- - Requires @VK_EXT_transform_feedback@ to be enabled for any+-- device-level functionality -- -- [__Special Use__] --@@ -33,7 +34,7 @@ -- <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_EXT_primitives_generated_query] @syoussefi%0A<<Here describe the issue or question you have about the VK_EXT_primitives_generated_query extension>> > -- -- [__Extension Proposal__]--- <https://github.com/KhronosGroup/Vulkan-Docs/tree/main/proposals/VK_EXT_primitives_generated_query.asciidoc VK_EXT_primitives_generated_query>+-- <https://github.com/KhronosGroup/Vulkan-Docs/tree/main/proposals/VK_EXT_primitives_generated_query.adoc VK_EXT_primitives_generated_query> -- -- == Other Extension Metadata --@@ -77,12 +78,6 @@ -- -- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVES_GENERATED_QUERY_FEATURES_EXT' ----- == Version History------ - Revision 1, 2021-06-23 (Shahbaz Youssefi)------ - Internal revisions--- -- == Issues -- -- 1) Can the query from @VK_EXT_transform_feedback@ be used instead?@@ -128,6 +123,12 @@ -- __RESOLVED__: Disallowed for non-zero streams. In OpenGL, the -- rasterization stream is always stream zero. --+-- == Version History+--+-- - Revision 1, 2021-06-23 (Shahbaz Youssefi)+--+-- - Internal revisions+-- -- == See Also -- -- 'PhysicalDevicePrimitivesGeneratedQueryFeaturesEXT'@@ -135,7 +136,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_primitives_generated_query Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_primitives_generated_query Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.@@ -173,7 +174,7 @@ -- -- = Members ----- This structure describes the following feature:+-- This structure describes the following features: -- -- = Description --@@ -204,7 +205,7 @@ , -- | #features-primitivesGeneratedQueryWithRasterizerDiscard# -- @primitivesGeneratedQueryWithRasterizerDiscard@ indicates whether the -- implementation supports this query when- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-discard rasterization discard>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-discard rasterization discard> -- is enabled. primitivesGeneratedQueryWithRasterizerDiscard :: Bool , -- | #features-primitivesGeneratedQueryWithNonZeroStreams#
src/Vulkan/Extensions/VK_EXT_primitives_generated_query.hs-boot view
@@ -19,9 +19,10 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_EXT_transform_feedback@+-- - Requires @VK_EXT_transform_feedback@ to be enabled for any+-- device-level functionality -- -- [__Special Use__] --@@ -33,7 +34,7 @@ -- <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_EXT_primitives_generated_query] @syoussefi%0A<<Here describe the issue or question you have about the VK_EXT_primitives_generated_query extension>> > -- -- [__Extension Proposal__]--- <https://github.com/KhronosGroup/Vulkan-Docs/tree/main/proposals/VK_EXT_primitives_generated_query.asciidoc VK_EXT_primitives_generated_query>+-- <https://github.com/KhronosGroup/Vulkan-Docs/tree/main/proposals/VK_EXT_primitives_generated_query.adoc VK_EXT_primitives_generated_query> -- -- == Other Extension Metadata --@@ -77,12 +78,6 @@ -- -- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVES_GENERATED_QUERY_FEATURES_EXT' ----- == Version History------ - Revision 1, 2021-06-23 (Shahbaz Youssefi)------ - Internal revisions--- -- == Issues -- -- 1) Can the query from @VK_EXT_transform_feedback@ be used instead?@@ -128,6 +123,12 @@ -- __RESOLVED__: Disallowed for non-zero streams. In OpenGL, the -- rasterization stream is always stream zero. --+-- == Version History+--+-- - Revision 1, 2021-06-23 (Shahbaz Youssefi)+--+-- - Internal revisions+-- -- == See Also -- -- 'PhysicalDevicePrimitivesGeneratedQueryFeaturesEXT'@@ -135,7 +136,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_primitives_generated_query Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_primitives_generated_query Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_EXT_private_data.hs view
@@ -19,7 +19,7 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 -- -- [__Deprecation state__] --@@ -123,6 +123,29 @@ -- -- - In progress --+-- == Issues+--+-- (1) If I have to create a 'Vulkan.Core13.Handles.PrivateDataSlot' to+-- store and retrieve data on an object, how does this extension help me?+-- Will I not need to store the 'Vulkan.Core13.Handles.PrivateDataSlot'+-- mapping with each object, and if I am doing that, I might as well just+-- store the original data!+--+-- __RESOLVED:__ The 'Vulkan.Core13.Handles.PrivateDataSlot' can be thought+-- of as an opaque index into storage that is reserved in each object. That+-- is, you can use the same 'Vulkan.Core13.Handles.PrivateDataSlot' with+-- each object for a specific piece of information. For example, if a layer+-- wishes to track per-object information, the layer only needs to allocate+-- one 'Vulkan.Core13.Handles.PrivateDataSlot' per device and it can use+-- that private data slot for all of the device’s child objects. This+-- allows multiple layers to store private data without conflicting with+-- each other’s and\/or the application’s private data.+--+-- (2) What if I need to store more than 64-bits of information per object?+--+-- __RESOLVED:__ The data that you store per object could be a pointer to+-- another object or structure of your own allocation.+-- -- == Version History -- -- - Revision 1, 2020-01-15 (Matthew Rusch)@@ -140,7 +163,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_private_data Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_private_data Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_EXT_provoking_vertex.hs view
@@ -19,9 +19,10 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_get_physical_device_properties2@+-- - Requires @VK_KHR_get_physical_device_properties2@ to be enabled+-- for any device-level functionality -- -- [__Special Use__] --@@ -176,7 +177,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_provoking_vertex Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_provoking_vertex Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.@@ -229,7 +230,7 @@ -- -- = Members ----- This structure describes the following feature:+-- This structure describes the following features: -- -- = Description --@@ -245,9 +246,9 @@ -- -- When 'PhysicalDeviceProvokingVertexFeaturesEXT' is in the @pNext@ chain -- of 'Vulkan.Core10.Device.DeviceCreateInfo' but the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-transformFeedback transform feedback feature>--- is not enabled, the value of @transformFeedbackPreservesProvokingVertex@--- is ignored.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-transformFeedback transformFeedback>+-- feature is not enabled, the value of+-- @transformFeedbackPreservesProvokingVertex@ is ignored. -- -- == Valid Usage (Implicit) --@@ -266,12 +267,11 @@ -- vertices within each primitive written by transform feedback will -- preserve the provoking vertex. This does not apply to triangle fan -- primitives when- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-transformFeedbackPreservesTriangleFanProvokingVertex transformFeedbackPreservesTriangleFanProvokingVertex>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-transformFeedbackPreservesTriangleFanProvokingVertex transformFeedbackPreservesTriangleFanProvokingVertex> -- is 'Vulkan.Core10.FundamentalTypes.FALSE'. -- @transformFeedbackPreservesProvokingVertex@ /must/ be -- 'Vulkan.Core10.FundamentalTypes.FALSE' when the- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_transform_feedback VK_EXT_transform_feedback>- -- extension is not supported.+ -- @VK_EXT_transform_feedback@ extension is not supported. transformFeedbackPreservesProvokingVertex :: Bool } deriving (Typeable, Eq)@@ -398,7 +398,7 @@ -- will use the 'PROVOKING_VERTEX_MODE_FIRST_VERTEX_EXT' mode. -- -- If the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-provokingVertexModePerPipeline provokingVertexModePerPipeline>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-provokingVertexModePerPipeline provokingVertexModePerPipeline> -- limit is 'Vulkan.Core10.FundamentalTypes.FALSE', then all pipelines -- bound within a render pass instance /must/ have the same -- @provokingVertexMode@.@@ -408,7 +408,7 @@ -- - #VUID-VkPipelineRasterizationProvokingVertexStateCreateInfoEXT-provokingVertexMode-04883# -- If @provokingVertexMode@ is 'PROVOKING_VERTEX_MODE_LAST_VERTEX_EXT', -- then the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-provokingVertexLast provokingVertexLast>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-provokingVertexLast provokingVertexLast> -- feature /must/ be enabled -- -- == Valid Usage (Implicit)@@ -474,7 +474,7 @@ -- = Description -- -- These modes are described more precisely in--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#drawing-primitive-topologies Primitive Topologies>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#drawing-primitive-topologies Primitive Topologies>. -- -- = See Also --
src/Vulkan/Extensions/VK_EXT_provoking_vertex.hs-boot view
@@ -19,9 +19,10 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_get_physical_device_properties2@+-- - Requires @VK_KHR_get_physical_device_properties2@ to be enabled+-- for any device-level functionality -- -- [__Special Use__] --@@ -176,7 +177,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_provoking_vertex Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_provoking_vertex Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_EXT_queue_family_foreign.hs view
@@ -19,9 +19,10 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_external_memory@+-- - Requires @VK_KHR_external_memory@ to be enabled for any+-- device-level functionality -- -- [__Contact__] --@@ -98,7 +99,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_queue_family_foreign Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_queue_family_foreign Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
+ src/Vulkan/Extensions/VK_EXT_rasterization_order_attachment_access.hs view
@@ -0,0 +1,256 @@+{-# language CPP #-}+-- | = Name+--+-- VK_EXT_rasterization_order_attachment_access - device extension+--+-- == VK_EXT_rasterization_order_attachment_access+--+-- [__Name String__]+-- @VK_EXT_rasterization_order_attachment_access@+--+-- [__Extension Type__]+-- Device extension+--+-- [__Registered Extension Number__]+-- 464+--+-- [__Revision__]+-- 1+--+-- [__Extension and Version Dependencies__]+--+-- - Requires support for Vulkan 1.0+--+-- - Requires @VK_KHR_get_physical_device_properties2@ to be enabled+-- for any device-level functionality+--+-- [__Contact__]+--+-- - Jan-Harald Fredriksen+-- <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_EXT_rasterization_order_attachment_access] @janharaldfredriksen-arm%0A<<Here describe the issue or question you have about the VK_EXT_rasterization_order_attachment_access extension>> >+--+-- [__Extension Proposal__]+-- <https://github.com/KhronosGroup/Vulkan-Docs/tree/main/proposals/VK_EXT_rasterization_order_attachment_access.adoc VK_EXT_rasterization_order_attachment_access>+--+-- == Other Extension Metadata+--+-- [__Last Modified Date__]+-- 2022-07-04+--+-- [__IP Status__]+-- No known IP claims.+--+-- [__Contributors__]+--+-- - Tobias Hector, AMD+--+-- - Jan-Harald Fredriksen, Arm+--+-- == Description+--+-- This extension extends the mechanism of input attachments to allow+-- access to framebuffer attachments that are used both as input and as+-- color or depth\/stencil attachments from one fragment to the next, in+-- rasterization order, without explicit synchronization.+--+-- == New Structures+--+-- - Extending+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',+-- 'Vulkan.Core10.Device.DeviceCreateInfo':+--+-- - 'PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT'+--+-- == New Enums+--+-- - 'Vulkan.Core10.Enums.PipelineColorBlendStateCreateFlagBits.PipelineColorBlendStateCreateFlagBits'+--+-- - 'Vulkan.Core10.Enums.PipelineDepthStencilStateCreateFlagBits.PipelineDepthStencilStateCreateFlagBits'+--+-- == New Enum Constants+--+-- - 'EXT_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_EXTENSION_NAME'+--+-- - 'EXT_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_SPEC_VERSION'+--+-- - Extending+-- 'Vulkan.Core10.Enums.PipelineColorBlendStateCreateFlagBits.PipelineColorBlendStateCreateFlagBits':+--+-- - 'Vulkan.Core10.Enums.PipelineColorBlendStateCreateFlagBits.PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_EXT'+--+-- - Extending+-- 'Vulkan.Core10.Enums.PipelineDepthStencilStateCreateFlagBits.PipelineDepthStencilStateCreateFlagBits':+--+-- - 'Vulkan.Core10.Enums.PipelineDepthStencilStateCreateFlagBits.PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT'+--+-- - 'Vulkan.Core10.Enums.PipelineDepthStencilStateCreateFlagBits.PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT'+--+-- - Extending 'Vulkan.Core10.Enums.StructureType.StructureType':+--+-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_EXT'+--+-- - Extending+-- 'Vulkan.Core10.Enums.SubpassDescriptionFlagBits.SubpassDescriptionFlagBits':+--+-- - 'Vulkan.Core10.Enums.SubpassDescriptionFlagBits.SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_COLOR_ACCESS_BIT_EXT'+--+-- - 'Vulkan.Core10.Enums.SubpassDescriptionFlagBits.SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT'+--+-- - 'Vulkan.Core10.Enums.SubpassDescriptionFlagBits.SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT'+--+-- == Examples+--+-- None.+--+-- == Version History+--+-- - Revision 1, 2022-07-04 (Jan-Harald Fredriksen)+--+-- - Initial draft+--+-- == See Also+--+-- 'PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT',+-- 'Vulkan.Core10.Enums.PipelineColorBlendStateCreateFlagBits.PipelineColorBlendStateCreateFlagBits',+-- 'Vulkan.Core10.Enums.PipelineDepthStencilStateCreateFlagBits.PipelineDepthStencilStateCreateFlagBits'+--+-- == Document Notes+--+-- For more information, see the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_rasterization_order_attachment_access Vulkan Specification>+--+-- This page is a generated document. Fixes and changes should be made to+-- the generator scripts, not directly.+module Vulkan.Extensions.VK_EXT_rasterization_order_attachment_access ( PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT(..)+ , EXT_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_SPEC_VERSION+ , pattern EXT_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_SPEC_VERSION+ , EXT_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_EXTENSION_NAME+ , pattern EXT_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_EXTENSION_NAME+ ) where++import Foreign.Marshal.Alloc (allocaBytes)+import Foreign.Ptr (nullPtr)+import Foreign.Ptr (plusPtr)+import Vulkan.CStruct (FromCStruct)+import Vulkan.CStruct (FromCStruct(..))+import Vulkan.CStruct (ToCStruct)+import Vulkan.CStruct (ToCStruct(..))+import Vulkan.Zero (Zero(..))+import Data.String (IsString)+import Data.Typeable (Typeable)+import Foreign.Storable (Storable)+import Foreign.Storable (Storable(peek))+import Foreign.Storable (Storable(poke))+import qualified Foreign.Storable (Storable(..))+import GHC.Generics (Generic)+import Foreign.Ptr (Ptr)+import Data.Kind (Type)+import Vulkan.Core10.FundamentalTypes (bool32ToBool)+import Vulkan.Core10.FundamentalTypes (boolToBool32)+import Vulkan.Core10.FundamentalTypes (Bool32)+import Vulkan.Core10.Enums.StructureType (StructureType)+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_EXT))+-- | VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT -+-- Structure describing whether rasterization order attachment access can+-- be supported by an implementation+--+-- = Members+--+-- This structure describes the following features:+--+-- = Description+--+-- If the 'PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT'+-- structure is included in the @pNext@ chain of the+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2'+-- structure passed to+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceFeatures2',+-- it is filled in to indicate whether each corresponding feature is+-- supported. 'PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT'+-- /can/ also be used in the @pNext@ chain of+-- 'Vulkan.Core10.Device.DeviceCreateInfo' to selectively enable these+-- features.+--+-- == Valid Usage (Implicit)+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_rasterization_order_attachment_access VK_EXT_rasterization_order_attachment_access>,+-- 'Vulkan.Core10.FundamentalTypes.Bool32',+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT = PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT+ { -- | #features-rasterizationOrderColorAttachmentAccess#+ -- @rasterizationOrderColorAttachmentAccess@ indicates that rasterization+ -- order access to color and input attachments is supported by the+ -- implementation.+ rasterizationOrderColorAttachmentAccess :: Bool+ , -- | #features-rasterizationOrderDepthAttachmentAccess#+ -- @rasterizationOrderDepthAttachmentAccess@ indicates that rasterization+ -- order access to the depth aspect of depth\/stencil and input attachments+ -- is supported by the implementation.+ rasterizationOrderDepthAttachmentAccess :: Bool+ , -- | #features-rasterizationOrderStencilAttachmentAccess#+ -- @rasterizationOrderStencilAttachmentAccess@ indicates that rasterization+ -- order access to the stencil aspect of depth\/stencil and input+ -- attachments is supported by the implementation.+ rasterizationOrderStencilAttachmentAccess :: Bool+ }+ deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT)+#endif+deriving instance Show PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT++instance ToCStruct PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT where+ withCStruct x f = allocaBytes 32 $ \p -> pokeCStruct p x (f p)+ pokeCStruct p PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT{..} f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_EXT)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (rasterizationOrderColorAttachmentAccess))+ poke ((p `plusPtr` 20 :: Ptr Bool32)) (boolToBool32 (rasterizationOrderDepthAttachmentAccess))+ poke ((p `plusPtr` 24 :: Ptr Bool32)) (boolToBool32 (rasterizationOrderStencilAttachmentAccess))+ f+ cStructSize = 32+ cStructAlignment = 8+ pokeZeroCStruct p f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_EXT)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (zero))+ poke ((p `plusPtr` 20 :: Ptr Bool32)) (boolToBool32 (zero))+ poke ((p `plusPtr` 24 :: Ptr Bool32)) (boolToBool32 (zero))+ f++instance FromCStruct PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT where+ peekCStruct p = do+ rasterizationOrderColorAttachmentAccess <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))+ rasterizationOrderDepthAttachmentAccess <- peek @Bool32 ((p `plusPtr` 20 :: Ptr Bool32))+ rasterizationOrderStencilAttachmentAccess <- peek @Bool32 ((p `plusPtr` 24 :: Ptr Bool32))+ pure $ PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT+ (bool32ToBool rasterizationOrderColorAttachmentAccess) (bool32ToBool rasterizationOrderDepthAttachmentAccess) (bool32ToBool rasterizationOrderStencilAttachmentAccess)++instance Storable PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT where+ sizeOf ~_ = 32+ alignment ~_ = 8+ peek = peekCStruct+ poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT where+ zero = PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT+ zero+ zero+ zero+++type EXT_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_SPEC_VERSION = 1++-- No documentation found for TopLevel "VK_EXT_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_SPEC_VERSION"+pattern EXT_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_SPEC_VERSION :: forall a . Integral a => a+pattern EXT_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_SPEC_VERSION = 1+++type EXT_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_EXTENSION_NAME = "VK_EXT_rasterization_order_attachment_access"++-- No documentation found for TopLevel "VK_EXT_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_EXTENSION_NAME"+pattern EXT_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_EXTENSION_NAME :: forall a . (Eq a, IsString a) => a+pattern EXT_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_EXTENSION_NAME = "VK_EXT_rasterization_order_attachment_access"+
+ src/Vulkan/Extensions/VK_EXT_rasterization_order_attachment_access.hs-boot view
@@ -0,0 +1,136 @@+{-# language CPP #-}+-- | = Name+--+-- VK_EXT_rasterization_order_attachment_access - device extension+--+-- == VK_EXT_rasterization_order_attachment_access+--+-- [__Name String__]+-- @VK_EXT_rasterization_order_attachment_access@+--+-- [__Extension Type__]+-- Device extension+--+-- [__Registered Extension Number__]+-- 464+--+-- [__Revision__]+-- 1+--+-- [__Extension and Version Dependencies__]+--+-- - Requires support for Vulkan 1.0+--+-- - Requires @VK_KHR_get_physical_device_properties2@ to be enabled+-- for any device-level functionality+--+-- [__Contact__]+--+-- - Jan-Harald Fredriksen+-- <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_EXT_rasterization_order_attachment_access] @janharaldfredriksen-arm%0A<<Here describe the issue or question you have about the VK_EXT_rasterization_order_attachment_access extension>> >+--+-- [__Extension Proposal__]+-- <https://github.com/KhronosGroup/Vulkan-Docs/tree/main/proposals/VK_EXT_rasterization_order_attachment_access.adoc VK_EXT_rasterization_order_attachment_access>+--+-- == Other Extension Metadata+--+-- [__Last Modified Date__]+-- 2022-07-04+--+-- [__IP Status__]+-- No known IP claims.+--+-- [__Contributors__]+--+-- - Tobias Hector, AMD+--+-- - Jan-Harald Fredriksen, Arm+--+-- == Description+--+-- This extension extends the mechanism of input attachments to allow+-- access to framebuffer attachments that are used both as input and as+-- color or depth\/stencil attachments from one fragment to the next, in+-- rasterization order, without explicit synchronization.+--+-- == New Structures+--+-- - Extending+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',+-- 'Vulkan.Core10.Device.DeviceCreateInfo':+--+-- - 'PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT'+--+-- == New Enums+--+-- - 'Vulkan.Core10.Enums.PipelineColorBlendStateCreateFlagBits.PipelineColorBlendStateCreateFlagBits'+--+-- - 'Vulkan.Core10.Enums.PipelineDepthStencilStateCreateFlagBits.PipelineDepthStencilStateCreateFlagBits'+--+-- == New Enum Constants+--+-- - 'EXT_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_EXTENSION_NAME'+--+-- - 'EXT_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_SPEC_VERSION'+--+-- - Extending+-- 'Vulkan.Core10.Enums.PipelineColorBlendStateCreateFlagBits.PipelineColorBlendStateCreateFlagBits':+--+-- - 'Vulkan.Core10.Enums.PipelineColorBlendStateCreateFlagBits.PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_EXT'+--+-- - Extending+-- 'Vulkan.Core10.Enums.PipelineDepthStencilStateCreateFlagBits.PipelineDepthStencilStateCreateFlagBits':+--+-- - 'Vulkan.Core10.Enums.PipelineDepthStencilStateCreateFlagBits.PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT'+--+-- - 'Vulkan.Core10.Enums.PipelineDepthStencilStateCreateFlagBits.PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT'+--+-- - Extending 'Vulkan.Core10.Enums.StructureType.StructureType':+--+-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_EXT'+--+-- - Extending+-- 'Vulkan.Core10.Enums.SubpassDescriptionFlagBits.SubpassDescriptionFlagBits':+--+-- - 'Vulkan.Core10.Enums.SubpassDescriptionFlagBits.SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_COLOR_ACCESS_BIT_EXT'+--+-- - 'Vulkan.Core10.Enums.SubpassDescriptionFlagBits.SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT'+--+-- - 'Vulkan.Core10.Enums.SubpassDescriptionFlagBits.SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT'+--+-- == Examples+--+-- None.+--+-- == Version History+--+-- - Revision 1, 2022-07-04 (Jan-Harald Fredriksen)+--+-- - Initial draft+--+-- == See Also+--+-- 'PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT',+-- 'Vulkan.Core10.Enums.PipelineColorBlendStateCreateFlagBits.PipelineColorBlendStateCreateFlagBits',+-- 'Vulkan.Core10.Enums.PipelineDepthStencilStateCreateFlagBits.PipelineDepthStencilStateCreateFlagBits'+--+-- == Document Notes+--+-- For more information, see the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_rasterization_order_attachment_access Vulkan Specification>+--+-- This page is a generated document. Fixes and changes should be made to+-- the generator scripts, not directly.+module Vulkan.Extensions.VK_EXT_rasterization_order_attachment_access (PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT) where++import Vulkan.CStruct (FromCStruct)+import Vulkan.CStruct (ToCStruct)+import Data.Kind (Type)++data PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT++instance ToCStruct PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT+instance Show PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT++instance FromCStruct PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT+
src/Vulkan/Extensions/VK_EXT_rgba10x6_formats.hs view
@@ -19,9 +19,10 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_sampler_ycbcr_conversion@+-- - Requires @VK_KHR_sampler_ycbcr_conversion@ to be enabled for any+-- device-level functionality -- -- [__Contact__] --@@ -49,7 +50,7 @@ -- This extension enables the -- 'Vulkan.Core10.Enums.Format.FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16' -- format to be used without a--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion> -- enabled. -- -- == New Structures@@ -103,7 +104,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_rgba10x6_formats Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_rgba10x6_formats Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.@@ -142,8 +143,7 @@ -- -- = Members ----- The members of the 'PhysicalDeviceRGBA10X6FormatsFeaturesEXT' structure--- describe the following features:+-- This structure describes the following feature: -- -- = Description --@@ -172,7 +172,7 @@ -- @subresourceRange.aspectMask@ equal to -- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_COLOR_BIT' without -- a- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion> -- enabled. formatRgba10x6WithoutYCbCrSampler :: Bool } deriving (Typeable, Eq)
src/Vulkan/Extensions/VK_EXT_rgba10x6_formats.hs-boot view
@@ -19,9 +19,10 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_sampler_ycbcr_conversion@+-- - Requires @VK_KHR_sampler_ycbcr_conversion@ to be enabled for any+-- device-level functionality -- -- [__Contact__] --@@ -49,7 +50,7 @@ -- This extension enables the -- 'Vulkan.Core10.Enums.Format.FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16' -- format to be used without a--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion> -- enabled. -- -- == New Structures@@ -103,7 +104,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_rgba10x6_formats Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_rgba10x6_formats Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_EXT_robustness2.hs view
@@ -19,7 +19,7 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 -- -- [__Contact__] --@@ -48,9 +48,9 @@ -- return zero. Rather than allowing multiple possible (0,0,0,x) vectors, -- the out of bounds values are treated as zero, and then missing -- components are inserted based on the format as described in--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#textures-conversion-to-rgba Conversion to RGBA>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#textures-conversion-to-rgba Conversion to RGBA> -- and--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#fxvertex-input-extraction vertex input attribute extraction>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fxvertex-input-extraction vertex input attribute extraction>. -- -- These additional requirements /may/ be expensive on some -- implementations, and should only be enabled when truly necessary.@@ -120,7 +120,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_robustness2 Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_robustness2 Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.@@ -175,18 +175,21 @@ -- of the descriptor. Uniform buffers /must/ be bounds-checked to the -- range of the descriptor, where the range is rounded up to a multiple -- of--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-robustUniformBufferAccessSizeAlignment robustUniformBufferAccessSizeAlignment>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-robustUniformBufferAccessSizeAlignment robustUniformBufferAccessSizeAlignment>. -- Storage buffers /must/ be bounds-checked to the range of the -- descriptor, where the range is rounded up to a multiple of--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-robustStorageBufferAccessSizeAlignment robustStorageBufferAccessSizeAlignment>.--- Out of bounds buffer loads will return zero values, and formatted--- loads will have (0,0,1) values inserted for missing G, B, or A--- components based on the format.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-robustStorageBufferAccessSizeAlignment robustStorageBufferAccessSizeAlignment>.+-- Out of bounds buffer loads will return zero values, and+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures image load, sample, and atomic operations>+-- from texel buffers will have (0,0,1) values+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-conversion-to-rgba inserted for missing G, B, or A components>+-- based on the format. -- -- - #features-robustImageAccess2# @robustImageAccess2@ indicates whether -- image accesses are tightly bounds-checked against the dimensions of--- the image view. Out of bounds image loads will return zero values,--- with (0,0,1) values+-- the image view. Out of bounds+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures image load, sample, and atomic operations>+-- from images will return zero values, with (0,0,1) values -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-conversion-to-rgba inserted for missing G, B, or A components> -- based on the format. --@@ -210,7 +213,7 @@ -- -- - #VUID-VkPhysicalDeviceRobustness2FeaturesEXT-robustBufferAccess2-04000# -- If @robustBufferAccess2@ is enabled then--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess> -- /must/ also be enabled -- -- == Valid Usage (Implicit)@@ -302,16 +305,17 @@ { -- | #limits-robustStorageBufferAccessSizeAlignment# -- @robustStorageBufferAccessSizeAlignment@ is the number of bytes that the -- range of a storage buffer descriptor is rounded up to when used for- -- bounds-checking when- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-robustBufferAccess2 robustBufferAccess2>- -- is enabled. This value /must/ be either 1 or 4.+ -- bounds-checking when the+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-robustBufferAccess2 robustBufferAccess2>+ -- feature is enabled. This value /must/ be either 1 or 4. robustStorageBufferAccessSizeAlignment :: DeviceSize , -- | #limits-robustUniformBufferAccessSizeAlignment# -- @robustUniformBufferAccessSizeAlignment@ is the number of bytes that the -- range of a uniform buffer descriptor is rounded up to when used for- -- bounds-checking when- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-robustBufferAccess2 robustBufferAccess2>- -- is enabled. This value /must/ be a power of two in the range [1, 256].+ -- bounds-checking when the+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-robustBufferAccess2 robustBufferAccess2>+ -- feature is enabled. This value /must/ be a power of two in the range [1,+ -- 256]. robustUniformBufferAccessSizeAlignment :: DeviceSize } deriving (Typeable, Eq)
src/Vulkan/Extensions/VK_EXT_robustness2.hs-boot view
@@ -19,7 +19,7 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 -- -- [__Contact__] --@@ -48,9 +48,9 @@ -- return zero. Rather than allowing multiple possible (0,0,0,x) vectors, -- the out of bounds values are treated as zero, and then missing -- components are inserted based on the format as described in--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#textures-conversion-to-rgba Conversion to RGBA>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#textures-conversion-to-rgba Conversion to RGBA> -- and--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#fxvertex-input-extraction vertex input attribute extraction>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fxvertex-input-extraction vertex input attribute extraction>. -- -- These additional requirements /may/ be expensive on some -- implementations, and should only be enabled when truly necessary.@@ -120,7 +120,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_robustness2 Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_robustness2 Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_EXT_sample_locations.hs view
@@ -19,9 +19,10 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_get_physical_device_properties2@+-- - Requires @VK_KHR_get_physical_device_properties2@ to be enabled+-- for any device-level functionality -- -- [__Contact__] --@@ -163,7 +164,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_sample_locations Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_sample_locations Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.@@ -309,6 +310,9 @@ -- 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was -- allocated from /must/ support graphics operations --+-- - #VUID-vkCmdSetSampleLocationsEXT-videocoding# This command /must/+-- only be called outside of a video coding scope+-- -- == Host Synchronization -- -- - Host access to @commandBuffer@ /must/ be externally synchronized@@ -320,12 +324,12 @@ -- -- \' ----- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | Primary | Both | Graphics |--- | Secondary | | |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================++-- | Primary | Both | Outside | Graphics |+-- | Secondary | | | |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+ -- -- = See Also --
src/Vulkan/Extensions/VK_EXT_sample_locations.hs-boot view
@@ -19,9 +19,10 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_get_physical_device_properties2@+-- - Requires @VK_KHR_get_physical_device_properties2@ to be enabled+-- for any device-level functionality -- -- [__Contact__] --@@ -163,7 +164,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_sample_locations Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_sample_locations Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_EXT_sampler_filter_minmax.hs view
@@ -19,9 +19,10 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_get_physical_device_properties2@+-- - Requires @VK_KHR_get_physical_device_properties2@ to be enabled+-- for any device-level functionality -- -- [__Deprecation state__] --@@ -131,7 +132,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_sampler_filter_minmax Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_sampler_filter_minmax Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_EXT_scalar_block_layout.hs view
@@ -19,9 +19,10 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_get_physical_device_properties2@+-- - Requires @VK_KHR_get_physical_device_properties2@ to be enabled+-- for any device-level functionality -- -- [__Deprecation state__] --@@ -100,7 +101,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_scalar_block_layout Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_scalar_block_layout Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_EXT_separate_stencil_usage.hs view
@@ -19,7 +19,7 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 -- -- [__Deprecation state__] --@@ -90,7 +90,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_separate_stencil_usage Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_separate_stencil_usage Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_EXT_shader_atomic_float.hs view
@@ -19,9 +19,10 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_get_physical_device_properties2@+-- - Requires @VK_KHR_get_physical_device_properties2@ to be enabled+-- for any device-level functionality -- -- [__Contact__] --@@ -79,9 +80,9 @@ -- -- == New SPIR-V Capabilities ----- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-AtomicFloat32AddEXT AtomicFloat32AddEXT>+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-AtomicFloat32AddEXT AtomicFloat32AddEXT> ----- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-AtomicFloat64AddEXT AtomicFloat64AddEXT>+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-AtomicFloat64AddEXT AtomicFloat64AddEXT> -- -- == Version History --@@ -96,7 +97,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_shader_atomic_float Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_shader_atomic_float Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.@@ -174,19 +175,19 @@ shaderBufferFloat64AtomicAdd :: Bool , -- | #features-shaderSharedFloat32Atomics# @shaderSharedFloat32Atomics@ -- indicates whether shaders /can/ perform 32-bit floating-point load,- -- store and exchange atomic operations on shared memory.+ -- store and exchange atomic operations on shared and payload memory. shaderSharedFloat32Atomics :: Bool , -- | #features-shaderSharedFloat32AtomicAdd# @shaderSharedFloat32AtomicAdd@ -- indicates whether shaders /can/ perform 32-bit floating-point add atomic- -- operations on shared memory.+ -- operations on shared and payload memory. shaderSharedFloat32AtomicAdd :: Bool , -- | #features-shaderSharedFloat64Atomics# @shaderSharedFloat64Atomics@ -- indicates whether shaders /can/ perform 64-bit floating-point load,- -- store and exchange atomic operations on shared memory.+ -- store and exchange atomic operations on shared and payload memory. shaderSharedFloat64Atomics :: Bool , -- | #features-shaderSharedFloat64AtomicAdd# @shaderSharedFloat64AtomicAdd@ -- indicates whether shaders /can/ perform 64-bit floating-point add atomic- -- operations on shared memory.+ -- operations on shared and payload memory. shaderSharedFloat64AtomicAdd :: Bool , -- | #features-shaderImageFloat32Atomics# @shaderImageFloat32Atomics@ -- indicates whether shaders /can/ perform 32-bit floating-point load,
src/Vulkan/Extensions/VK_EXT_shader_atomic_float.hs-boot view
@@ -19,9 +19,10 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_get_physical_device_properties2@+-- - Requires @VK_KHR_get_physical_device_properties2@ to be enabled+-- for any device-level functionality -- -- [__Contact__] --@@ -79,9 +80,9 @@ -- -- == New SPIR-V Capabilities ----- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-AtomicFloat32AddEXT AtomicFloat32AddEXT>+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-AtomicFloat32AddEXT AtomicFloat32AddEXT> ----- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-AtomicFloat64AddEXT AtomicFloat64AddEXT>+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-AtomicFloat64AddEXT AtomicFloat64AddEXT> -- -- == Version History --@@ -96,7 +97,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_shader_atomic_float Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_shader_atomic_float Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_EXT_shader_atomic_float2.hs view
@@ -19,9 +19,10 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_EXT_shader_atomic_float@+-- - Requires @VK_EXT_shader_atomic_float@ to be enabled for any+-- device-level functionality -- -- [__Contact__] --@@ -97,13 +98,13 @@ -- -- == New SPIR-V Capabilities ----- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-AtomicFloat16AddEXT AtomicFloat32MinMaxEXT>+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-AtomicFloat16AddEXT AtomicFloat32MinMaxEXT> ----- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-AtomicFloat16MinMaxEXT AtomicFloat32MinMaxEXT>+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-AtomicFloat16MinMaxEXT AtomicFloat32MinMaxEXT> ----- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-AtomicFloat32MinMaxEXT AtomicFloat32MinMaxEXT>+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-AtomicFloat32MinMaxEXT AtomicFloat32MinMaxEXT> ----- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-AtomicFloat64MinMaxEXT AtomicFloat64MinMaxEXT>+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-AtomicFloat64MinMaxEXT AtomicFloat64MinMaxEXT> -- -- == Version History --@@ -118,7 +119,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_shader_atomic_float2 Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_shader_atomic_float2 Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.@@ -203,26 +204,26 @@ shaderBufferFloat64AtomicMinMax :: Bool , -- | #features-shaderSharedFloat16Atomics# @shaderSharedFloat16Atomics@ -- indicates whether shaders /can/ perform 16-bit floating-point load,- -- store and exchange atomic operations on shared memory.+ -- store and exchange atomic operations on shared and payload memory. shaderSharedFloat16Atomics :: Bool , -- | #features-shaderSharedFloat16AtomicAdd# @shaderSharedFloat16AtomicAdd@ -- indicates whether shaders /can/ perform 16-bit floating-point add atomic- -- operations on shared memory.+ -- operations on shared and payload memory. shaderSharedFloat16AtomicAdd :: Bool , -- | #features-shaderSharedFloat16AtomicMinMax# -- @shaderSharedFloat16AtomicMinMax@ indicates whether shaders /can/ -- perform 16-bit floating-point min and max atomic operations on shared- -- memory.+ -- and payload memory. shaderSharedFloat16AtomicMinMax :: Bool , -- | #features-shaderSharedFloat32AtomicMinMax# -- @shaderSharedFloat32AtomicMinMax@ indicates whether shaders /can/ -- perform 32-bit floating-point min and max atomic operations on shared- -- memory.+ -- and payload memory. shaderSharedFloat32AtomicMinMax :: Bool , -- | #features-shaderSharedFloat64AtomicMinMax# -- @shaderSharedFloat64AtomicMinMax@ indicates whether shaders /can/ -- perform 64-bit floating-point min and max atomic operations on shared- -- memory.+ -- and payload memory. shaderSharedFloat64AtomicMinMax :: Bool , -- | #features-shaderImageFloat32AtomicMinMax# -- @shaderImageFloat32AtomicMinMax@ indicates whether shaders /can/ perform
src/Vulkan/Extensions/VK_EXT_shader_atomic_float2.hs-boot view
@@ -19,9 +19,10 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_EXT_shader_atomic_float@+-- - Requires @VK_EXT_shader_atomic_float@ to be enabled for any+-- device-level functionality -- -- [__Contact__] --@@ -97,13 +98,13 @@ -- -- == New SPIR-V Capabilities ----- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-AtomicFloat16AddEXT AtomicFloat32MinMaxEXT>+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-AtomicFloat16AddEXT AtomicFloat32MinMaxEXT> ----- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-AtomicFloat16MinMaxEXT AtomicFloat32MinMaxEXT>+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-AtomicFloat16MinMaxEXT AtomicFloat32MinMaxEXT> ----- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-AtomicFloat32MinMaxEXT AtomicFloat32MinMaxEXT>+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-AtomicFloat32MinMaxEXT AtomicFloat32MinMaxEXT> ----- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-AtomicFloat64MinMaxEXT AtomicFloat64MinMaxEXT>+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-AtomicFloat64MinMaxEXT AtomicFloat64MinMaxEXT> -- -- == Version History --@@ -118,7 +119,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_shader_atomic_float2 Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_shader_atomic_float2 Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_EXT_shader_demote_to_helper_invocation.hs view
@@ -19,9 +19,10 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_get_physical_device_properties2@+-- - Requires @VK_KHR_get_physical_device_properties2@ to be enabled+-- for any device-level functionality -- -- [__Deprecation state__] --@@ -67,7 +68,7 @@ -- The demoted invocation will have no further side effects and will not -- output to the framebuffer, but remains active and can participate in -- computing derivatives and in--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-group-operations group operations>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-group-operations group operations>. -- This is a better match for the “discard” instruction in HLSL. -- -- == New Structures@@ -90,7 +91,7 @@ -- -- == New SPIR-V Capability ----- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-DemoteToHelperInvocationEXT DemoteToHelperInvocationEXT>+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-DemoteToHelperInvocationEXT DemoteToHelperInvocationEXT> -- -- == Promotion to Vulkan 1.3 --@@ -111,7 +112,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_shader_demote_to_helper_invocation Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_shader_demote_to_helper_invocation Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_EXT_shader_image_atomic_int64.hs view
@@ -19,9 +19,10 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_get_physical_device_properties2@+-- - Requires @VK_KHR_get_physical_device_properties2@ to be enabled+-- for any device-level functionality -- -- [__Contact__] --@@ -102,7 +103,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_shader_image_atomic_int64 Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_shader_image_atomic_int64 Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_EXT_shader_image_atomic_int64.hs-boot view
@@ -19,9 +19,10 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_get_physical_device_properties2@+-- - Requires @VK_KHR_get_physical_device_properties2@ to be enabled+-- for any device-level functionality -- -- [__Contact__] --@@ -102,7 +103,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_shader_image_atomic_int64 Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_shader_image_atomic_int64 Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
+ src/Vulkan/Extensions/VK_EXT_shader_module_identifier.hs view
@@ -0,0 +1,708 @@+{-# language CPP #-}+-- | = Name+--+-- VK_EXT_shader_module_identifier - device extension+--+-- == VK_EXT_shader_module_identifier+--+-- [__Name String__]+-- @VK_EXT_shader_module_identifier@+--+-- [__Extension Type__]+-- Device extension+--+-- [__Registered Extension Number__]+-- 463+--+-- [__Revision__]+-- 1+--+-- [__Extension and Version Dependencies__]+--+-- - Requires support for Vulkan 1.0+--+-- - Requires @VK_KHR_get_physical_device_properties2@ to be enabled+-- for any device-level functionality+--+-- - Requires @VK_EXT_pipeline_creation_cache_control@ to be enabled+-- for any device-level functionality+--+-- [__Contact__]+--+-- - Hans-Kristian Arntzen+-- <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_EXT_shader_module_identifier] @HansKristian-Work%0A<<Here describe the issue or question you have about the VK_EXT_shader_module_identifier extension>> >+--+-- [__Extension Proposal__]+-- <https://github.com/KhronosGroup/Vulkan-Docs/tree/main/proposals/VK_EXT_shader_module_identifier.adoc VK_EXT_shader_module_identifier>+--+-- == Other Extension Metadata+--+-- [__Last Modified Date__]+-- 2022-05-16+--+-- [__IP Status__]+-- No known IP claims.+--+-- [__Contributors__]+--+-- - Hans-Kristian Arntzen, Valve+--+-- - Ricardo Garcia, Igalia+--+-- - Piers Daniell, NVIDIA+--+-- - Jan-Harald Fredriksen, Arm+--+-- - Tom Olson, Arm+--+-- - Jason Ekstrand, Collabora+--+-- == Description+--+-- Some applications generate SPIR-V code at runtime. When pipeline caches+-- are primed, either explicitly through e.g.+-- 'Vulkan.Core10.Handles.PipelineCache' mechanisms, or implicitly through+-- driver managed caches, having to re-generate SPIR-V modules is+-- redundant. SPIR-V modules could be cached on disk by an application, but+-- the extra disk size requirement might be prohibitive in some use cases.+--+-- This extension adds the ability for an application to query a small+-- identifier associated with a 'Vulkan.Core10.Handles.ShaderModule'. On+-- subsequent runs of the application, the same identifier /can/ be+-- provided in lieu of a 'Vulkan.Core10.Handles.ShaderModule' object. A+-- pipeline creation call with such a module /may/ succeed if a pipeline+-- could be created without invoking compilation, and information inside+-- the SPIR-V module is not required by the implementation.+--+-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT'+-- /must/ be used if only the identifier is provided, and this use case is+-- intended to work like a non-blocking, speculative compile. Applications+-- /can/ fallback as necessary.+--+-- The main motivation for identifying the module itself and not the entire+-- pipeline is that pipeline identifiers change when a driver is updated,+-- but module identifiers are expected to be stable for any particular+-- driver implementation. This approach is helpful for shader+-- pre-compilation systems which can prime pipeline caches ahead of time.+-- When on-disk pipeline caches are updated, the same shader identifiers+-- could lead to a pipeline cache hit.+--+-- == New Commands+--+-- - 'getShaderModuleCreateInfoIdentifierEXT'+--+-- - 'getShaderModuleIdentifierEXT'+--+-- == New Structures+--+-- - 'ShaderModuleIdentifierEXT'+--+-- - Extending+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',+-- 'Vulkan.Core10.Device.DeviceCreateInfo':+--+-- - 'PhysicalDeviceShaderModuleIdentifierFeaturesEXT'+--+-- - Extending+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2':+--+-- - 'PhysicalDeviceShaderModuleIdentifierPropertiesEXT'+--+-- - Extending 'Vulkan.Core10.Pipeline.PipelineShaderStageCreateInfo':+--+-- - 'PipelineShaderStageModuleIdentifierCreateInfoEXT'+--+-- == New Enum Constants+--+-- - 'EXT_SHADER_MODULE_IDENTIFIER_EXTENSION_NAME'+--+-- - 'EXT_SHADER_MODULE_IDENTIFIER_SPEC_VERSION'+--+-- - 'Vulkan.Core10.APIConstants.MAX_SHADER_MODULE_IDENTIFIER_SIZE_EXT'+--+-- - Extending 'Vulkan.Core10.Enums.StructureType.StructureType':+--+-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_FEATURES_EXT'+--+-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_PROPERTIES_EXT'+--+-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_MODULE_IDENTIFIER_CREATE_INFO_EXT'+--+-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_SHADER_MODULE_IDENTIFIER_EXT'+--+-- == Version History+--+-- - Revision 1, 2022-03-16 (Hans-Kristian Arntzen)+--+-- - Initial draft+--+-- == See Also+--+-- 'Vulkan.Core10.APIConstants.MAX_SHADER_MODULE_IDENTIFIER_SIZE_EXT',+-- 'PhysicalDeviceShaderModuleIdentifierFeaturesEXT',+-- 'PhysicalDeviceShaderModuleIdentifierPropertiesEXT',+-- 'PipelineShaderStageModuleIdentifierCreateInfoEXT',+-- 'ShaderModuleIdentifierEXT', 'getShaderModuleCreateInfoIdentifierEXT',+-- 'getShaderModuleIdentifierEXT'+--+-- == Document Notes+--+-- For more information, see the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_shader_module_identifier Vulkan Specification>+--+-- This page is a generated document. Fixes and changes should be made to+-- the generator scripts, not directly.+module Vulkan.Extensions.VK_EXT_shader_module_identifier ( getShaderModuleIdentifierEXT+ , getShaderModuleCreateInfoIdentifierEXT+ , PhysicalDeviceShaderModuleIdentifierFeaturesEXT(..)+ , PhysicalDeviceShaderModuleIdentifierPropertiesEXT(..)+ , PipelineShaderStageModuleIdentifierCreateInfoEXT(..)+ , ShaderModuleIdentifierEXT(..)+ , EXT_SHADER_MODULE_IDENTIFIER_SPEC_VERSION+ , pattern EXT_SHADER_MODULE_IDENTIFIER_SPEC_VERSION+ , EXT_SHADER_MODULE_IDENTIFIER_EXTENSION_NAME+ , pattern EXT_SHADER_MODULE_IDENTIFIER_EXTENSION_NAME+ , MAX_SHADER_MODULE_IDENTIFIER_SIZE_EXT+ , pattern MAX_SHADER_MODULE_IDENTIFIER_SIZE_EXT+ ) where++import Vulkan.CStruct.Utils (FixedArray)+import Vulkan.Internal.Utils (traceAroundEvent)+import Control.Monad (unless)+import Control.Monad.IO.Class (liftIO)+import Foreign.Marshal.Alloc (allocaBytes)+import GHC.IO (throwIO)+import GHC.Ptr (nullFunPtr)+import Foreign.Ptr (nullPtr)+import Foreign.Ptr (plusPtr)+import Control.Monad.Trans.Class (lift)+import Control.Monad.Trans.Cont (evalContT)+import Data.Vector (generateM)+import qualified Data.Vector (imapM_)+import qualified Data.Vector (length)+import Vulkan.CStruct (FromCStruct)+import Vulkan.CStruct (FromCStruct(..))+import Vulkan.CStruct (ToCStruct)+import Vulkan.CStruct (ToCStruct(..))+import Vulkan.Zero (Zero(..))+import Control.Monad.IO.Class (MonadIO)+import Data.String (IsString)+import Data.Typeable (Typeable)+import Foreign.Storable (Storable)+import Foreign.Storable (Storable(peek))+import Foreign.Storable (Storable(poke))+import qualified Foreign.Storable (Storable(..))+import GHC.Generics (Generic)+import GHC.IO.Exception (IOErrorType(..))+import GHC.IO.Exception (IOException(..))+import Foreign.Ptr (FunPtr)+import Foreign.Ptr (Ptr)+import Data.Word (Word32)+import Data.Word (Word8)+import Data.ByteString (ByteString)+import Data.Kind (Type)+import Control.Monad.Trans.Cont (ContT(..))+import Data.Vector (Vector)+import Vulkan.CStruct.Utils (advancePtrBytes)+import Vulkan.Core10.FundamentalTypes (bool32ToBool)+import Vulkan.Core10.FundamentalTypes (boolToBool32)+import Vulkan.CStruct.Extends (forgetExtensions)+import Vulkan.CStruct.Utils (peekByteStringFromSizedVectorPtr)+import Vulkan.CStruct.Utils (pokeFixedLengthByteString)+import Vulkan.Core10.FundamentalTypes (Bool32)+import Vulkan.Core10.Handles (Device)+import Vulkan.Core10.Handles (Device(..))+import Vulkan.Core10.Handles (Device(Device))+import Vulkan.Dynamic (DeviceCmds(pVkGetShaderModuleCreateInfoIdentifierEXT))+import Vulkan.Dynamic (DeviceCmds(pVkGetShaderModuleIdentifierEXT))+import Vulkan.Core10.Handles (Device_T)+import Vulkan.CStruct.Extends (Extendss)+import Vulkan.Core10.APIConstants (MAX_SHADER_MODULE_IDENTIFIER_SIZE_EXT)+import Vulkan.CStruct.Extends (PokeChain)+import Vulkan.Core10.Handles (ShaderModule)+import Vulkan.Core10.Handles (ShaderModule(..))+import Vulkan.Core10.Shader (ShaderModuleCreateInfo)+import Vulkan.CStruct.Extends (SomeStruct)+import Vulkan.Core10.Enums.StructureType (StructureType)+import Vulkan.Core10.APIConstants (UUID_SIZE)+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_FEATURES_EXT))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_PROPERTIES_EXT))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_MODULE_IDENTIFIER_CREATE_INFO_EXT))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_SHADER_MODULE_IDENTIFIER_EXT))+import Vulkan.Core10.APIConstants (MAX_SHADER_MODULE_IDENTIFIER_SIZE_EXT)+import Vulkan.Core10.APIConstants (pattern MAX_SHADER_MODULE_IDENTIFIER_SIZE_EXT)+foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+ unsafe+#endif+ "dynamic" mkVkGetShaderModuleIdentifierEXT+ :: FunPtr (Ptr Device_T -> ShaderModule -> Ptr ShaderModuleIdentifierEXT -> IO ()) -> Ptr Device_T -> ShaderModule -> Ptr ShaderModuleIdentifierEXT -> IO ()++-- | vkGetShaderModuleIdentifierEXT - Query a unique identifier for a shader+-- module+--+-- = Description+--+-- The identifier returned by the implementation /must/ only depend on+-- @shaderIdentifierAlgorithmUUID@ and information provided in the+-- 'Vulkan.Core10.Shader.ShaderModuleCreateInfo' which created+-- @shaderModule@. The implementation /may/ return equal identifiers for+-- two different 'Vulkan.Core10.Shader.ShaderModuleCreateInfo' structures+-- if the difference does not affect pipeline compilation. Identifiers are+-- only meaningful on different 'Vulkan.Core10.Handles.Device' objects if+-- the device the identifier was queried from had the same+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-shaderModuleIdentifierAlgorithmUUID shaderModuleIdentifierAlgorithmUUID>+-- as the device consuming the identifier.+--+-- == Valid Usage+--+-- - #VUID-vkGetShaderModuleIdentifierEXT-shaderModuleIdentifier-06884#+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-shaderModuleIdentifier shaderModuleIdentifier>+-- feature /must/ be enabled+--+-- == Valid Usage (Implicit)+--+-- - #VUID-vkGetShaderModuleIdentifierEXT-device-parameter# @device@+-- /must/ be a valid 'Vulkan.Core10.Handles.Device' handle+--+-- - #VUID-vkGetShaderModuleIdentifierEXT-shaderModule-parameter#+-- @shaderModule@ /must/ be a valid+-- 'Vulkan.Core10.Handles.ShaderModule' handle+--+-- - #VUID-vkGetShaderModuleIdentifierEXT-pIdentifier-parameter#+-- @pIdentifier@ /must/ be a valid pointer to a+-- 'ShaderModuleIdentifierEXT' structure+--+-- - #VUID-vkGetShaderModuleIdentifierEXT-shaderModule-parent#+-- @shaderModule@ /must/ have been created, allocated, or retrieved+-- from @device@+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_shader_module_identifier VK_EXT_shader_module_identifier>,+-- 'Vulkan.Core10.Handles.Device', 'Vulkan.Core10.Handles.ShaderModule',+-- 'ShaderModuleIdentifierEXT'+getShaderModuleIdentifierEXT :: forall io+ . (MonadIO io)+ => -- | @device@ is the logical device that created the shader module.+ Device+ -> -- | @shaderModule@ is the handle of the shader module.+ ShaderModule+ -> io (ShaderModuleIdentifierEXT)+getShaderModuleIdentifierEXT device shaderModule = liftIO . evalContT $ do+ let vkGetShaderModuleIdentifierEXTPtr = pVkGetShaderModuleIdentifierEXT (case device of Device{deviceCmds} -> deviceCmds)+ lift $ unless (vkGetShaderModuleIdentifierEXTPtr /= nullFunPtr) $+ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetShaderModuleIdentifierEXT is null" Nothing Nothing+ let vkGetShaderModuleIdentifierEXT' = mkVkGetShaderModuleIdentifierEXT vkGetShaderModuleIdentifierEXTPtr+ pPIdentifier <- ContT (withZeroCStruct @ShaderModuleIdentifierEXT)+ lift $ traceAroundEvent "vkGetShaderModuleIdentifierEXT" (vkGetShaderModuleIdentifierEXT' (deviceHandle (device)) (shaderModule) (pPIdentifier))+ pIdentifier <- lift $ peekCStruct @ShaderModuleIdentifierEXT pPIdentifier+ pure $ (pIdentifier)+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+ unsafe+#endif+ "dynamic" mkVkGetShaderModuleCreateInfoIdentifierEXT+ :: FunPtr (Ptr Device_T -> Ptr (SomeStruct ShaderModuleCreateInfo) -> Ptr ShaderModuleIdentifierEXT -> IO ()) -> Ptr Device_T -> Ptr (SomeStruct ShaderModuleCreateInfo) -> Ptr ShaderModuleIdentifierEXT -> IO ()++-- | vkGetShaderModuleCreateInfoIdentifierEXT - Query a unique identifier for+-- a shader module create info+--+-- = Description+--+-- The identifier returned by implementation /must/ only depend on+-- @shaderIdentifierAlgorithmUUID@ and information provided in the+-- 'Vulkan.Core10.Shader.ShaderModuleCreateInfo'. The implementation /may/+-- return equal identifiers for two different+-- 'Vulkan.Core10.Shader.ShaderModuleCreateInfo' structures if the+-- difference does not affect pipeline compilation. Identifiers are only+-- meaningful on different 'Vulkan.Core10.Handles.Device' objects if the+-- device the identifier was queried from had the same+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-shaderModuleIdentifierAlgorithmUUID shaderModuleIdentifierAlgorithmUUID>+-- as the device consuming the identifier.+--+-- The identifier returned by the implementation in+-- 'getShaderModuleCreateInfoIdentifierEXT' /must/ be equal to the+-- identifier returned by 'getShaderModuleIdentifierEXT' given equivalent+-- definitions of 'Vulkan.Core10.Shader.ShaderModuleCreateInfo' and any+-- chained @pNext@ structures.+--+-- == Valid Usage+--+-- - #VUID-vkGetShaderModuleCreateInfoIdentifierEXT-shaderModuleIdentifier-06885#+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-shaderModuleIdentifier shaderModuleIdentifier>+-- feature /must/ be enabled+--+-- == Valid Usage (Implicit)+--+-- - #VUID-vkGetShaderModuleCreateInfoIdentifierEXT-device-parameter#+-- @device@ /must/ be a valid 'Vulkan.Core10.Handles.Device' handle+--+-- - #VUID-vkGetShaderModuleCreateInfoIdentifierEXT-pCreateInfo-parameter#+-- @pCreateInfo@ /must/ be a valid pointer to a valid+-- 'Vulkan.Core10.Shader.ShaderModuleCreateInfo' structure+--+-- - #VUID-vkGetShaderModuleCreateInfoIdentifierEXT-pIdentifier-parameter#+-- @pIdentifier@ /must/ be a valid pointer to a+-- 'ShaderModuleIdentifierEXT' structure+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_shader_module_identifier VK_EXT_shader_module_identifier>,+-- 'Vulkan.Core10.Handles.Device',+-- 'Vulkan.Core10.Shader.ShaderModuleCreateInfo',+-- 'ShaderModuleIdentifierEXT'+getShaderModuleCreateInfoIdentifierEXT :: forall a io+ . (Extendss ShaderModuleCreateInfo a, PokeChain a, MonadIO io)+ => -- | @device@ is the logical device that /can/ create a+ -- 'Vulkan.Core10.Handles.ShaderModule' from @pCreateInfo@.+ Device+ -> -- | @pCreateInfo@ is a pointer to a+ -- 'Vulkan.Core10.Shader.ShaderModuleCreateInfo' structure.+ (ShaderModuleCreateInfo a)+ -> io (ShaderModuleIdentifierEXT)+getShaderModuleCreateInfoIdentifierEXT device createInfo = liftIO . evalContT $ do+ let vkGetShaderModuleCreateInfoIdentifierEXTPtr = pVkGetShaderModuleCreateInfoIdentifierEXT (case device of Device{deviceCmds} -> deviceCmds)+ lift $ unless (vkGetShaderModuleCreateInfoIdentifierEXTPtr /= nullFunPtr) $+ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetShaderModuleCreateInfoIdentifierEXT is null" Nothing Nothing+ let vkGetShaderModuleCreateInfoIdentifierEXT' = mkVkGetShaderModuleCreateInfoIdentifierEXT vkGetShaderModuleCreateInfoIdentifierEXTPtr+ pCreateInfo <- ContT $ withCStruct (createInfo)+ pPIdentifier <- ContT (withZeroCStruct @ShaderModuleIdentifierEXT)+ lift $ traceAroundEvent "vkGetShaderModuleCreateInfoIdentifierEXT" (vkGetShaderModuleCreateInfoIdentifierEXT' (deviceHandle (device)) (forgetExtensions pCreateInfo) (pPIdentifier))+ pIdentifier <- lift $ peekCStruct @ShaderModuleIdentifierEXT pPIdentifier+ pure $ (pIdentifier)+++-- | VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT - Structure describing+-- whether querying and providing an identifier of a shader module is+-- supported by the implementation+--+-- = Members+--+-- This structure describes the following feature:+--+-- = Description+--+-- If the 'PhysicalDeviceShaderModuleIdentifierFeaturesEXT' structure is+-- included in the @pNext@ chain of the+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2'+-- structure passed to+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceFeatures2',+-- it is filled in to indicate whether each corresponding feature is+-- supported. 'PhysicalDeviceShaderModuleIdentifierFeaturesEXT' /can/ also+-- be used in the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo'+-- to selectively enable these features.+--+-- == Valid Usage (Implicit)+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_shader_module_identifier VK_EXT_shader_module_identifier>,+-- 'Vulkan.Core10.FundamentalTypes.Bool32',+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data PhysicalDeviceShaderModuleIdentifierFeaturesEXT = PhysicalDeviceShaderModuleIdentifierFeaturesEXT+ { -- | #features-shaderModuleIdentifier# @shaderModuleIdentifier@ indicates+ -- whether the implementation supports querying an identifier of a+ -- 'Vulkan.Core10.Handles.ShaderModule' or+ -- 'Vulkan.Core10.Shader.ShaderModuleCreateInfo' structure, and creating+ -- pipelines from identifiers only.+ shaderModuleIdentifier :: Bool }+ deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (PhysicalDeviceShaderModuleIdentifierFeaturesEXT)+#endif+deriving instance Show PhysicalDeviceShaderModuleIdentifierFeaturesEXT++instance ToCStruct PhysicalDeviceShaderModuleIdentifierFeaturesEXT where+ withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)+ pokeCStruct p PhysicalDeviceShaderModuleIdentifierFeaturesEXT{..} f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_FEATURES_EXT)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (shaderModuleIdentifier))+ f+ cStructSize = 24+ cStructAlignment = 8+ pokeZeroCStruct p f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_FEATURES_EXT)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (zero))+ f++instance FromCStruct PhysicalDeviceShaderModuleIdentifierFeaturesEXT where+ peekCStruct p = do+ shaderModuleIdentifier <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))+ pure $ PhysicalDeviceShaderModuleIdentifierFeaturesEXT+ (bool32ToBool shaderModuleIdentifier)++instance Storable PhysicalDeviceShaderModuleIdentifierFeaturesEXT where+ sizeOf ~_ = 24+ alignment ~_ = 8+ peek = peekCStruct+ poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero PhysicalDeviceShaderModuleIdentifierFeaturesEXT where+ zero = PhysicalDeviceShaderModuleIdentifierFeaturesEXT+ zero+++-- | VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT - Structure+-- describing shader module identifier properties of an implementation+--+-- = Members+--+-- The members of the 'PhysicalDeviceShaderModuleIdentifierPropertiesEXT'+-- structure describe the following:+--+-- = Description+--+-- Note+--+-- The algorithm UUID may be the same in different ICDs if the algorithms+-- are guaranteed to produce the same results. This may happen in driver+-- stacks which support different kinds of hardware with shared code.+--+-- Khronos\' conformance testing can not guarantee that+-- @shaderModuleIdentifierAlgorithmUUID@ values are actually unique, so+-- implementors should make their own best efforts to ensure that their+-- UUID is unlikely to conflict with other implementations which may use a+-- different algorithm. In particular, hard-coded values which easily+-- conflict, such as all-@0@ bits, /should/ never be used. Hard-coded+-- values are acceptable if best effort is ensured that the value will not+-- accidentally conflict.+--+-- If the 'PhysicalDeviceShaderModuleIdentifierPropertiesEXT' structure is+-- included in the @pNext@ chain of the+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2'+-- structure passed to+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceProperties2',+-- it is filled in with each corresponding implementation-dependent+-- property.+--+-- == Valid Usage (Implicit)+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_shader_module_identifier VK_EXT_shader_module_identifier>,+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data PhysicalDeviceShaderModuleIdentifierPropertiesEXT = PhysicalDeviceShaderModuleIdentifierPropertiesEXT+ { -- | #limits-shaderModuleIdentifierAlgorithmUUID#+ -- @shaderModuleIdentifierAlgorithmUUID@ is an array of+ -- 'Vulkan.Core10.APIConstants.UUID_SIZE' @uint8_t@ values which uniquely+ -- represents the algorithm used to compute an identifier in+ -- 'getShaderModuleIdentifierEXT' and+ -- 'getShaderModuleCreateInfoIdentifierEXT'. Implementations /should/ not+ -- change this value in different driver versions if the algorithm used to+ -- compute an identifier is the same.+ shaderModuleIdentifierAlgorithmUUID :: ByteString }+ deriving (Typeable)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (PhysicalDeviceShaderModuleIdentifierPropertiesEXT)+#endif+deriving instance Show PhysicalDeviceShaderModuleIdentifierPropertiesEXT++instance ToCStruct PhysicalDeviceShaderModuleIdentifierPropertiesEXT where+ withCStruct x f = allocaBytes 32 $ \p -> pokeCStruct p x (f p)+ pokeCStruct p PhysicalDeviceShaderModuleIdentifierPropertiesEXT{..} f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_PROPERTIES_EXT)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ pokeFixedLengthByteString ((p `plusPtr` 16 :: Ptr (FixedArray UUID_SIZE Word8))) (shaderModuleIdentifierAlgorithmUUID)+ f+ cStructSize = 32+ cStructAlignment = 8+ pokeZeroCStruct p f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_PROPERTIES_EXT)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ pokeFixedLengthByteString ((p `plusPtr` 16 :: Ptr (FixedArray UUID_SIZE Word8))) (mempty)+ f++instance FromCStruct PhysicalDeviceShaderModuleIdentifierPropertiesEXT where+ peekCStruct p = do+ shaderModuleIdentifierAlgorithmUUID <- peekByteStringFromSizedVectorPtr ((p `plusPtr` 16 :: Ptr (FixedArray UUID_SIZE Word8)))+ pure $ PhysicalDeviceShaderModuleIdentifierPropertiesEXT+ shaderModuleIdentifierAlgorithmUUID++instance Storable PhysicalDeviceShaderModuleIdentifierPropertiesEXT where+ sizeOf ~_ = 32+ alignment ~_ = 8+ peek = peekCStruct+ poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero PhysicalDeviceShaderModuleIdentifierPropertiesEXT where+ zero = PhysicalDeviceShaderModuleIdentifierPropertiesEXT+ mempty+++-- | VkPipelineShaderStageModuleIdentifierCreateInfoEXT - Structure+-- specifying an identifier for a shader module+--+-- = Description+--+-- Any identifier /can/ be used. If the pipeline being created with+-- identifier requires compilation to complete the pipeline creation call,+-- pipeline compilation /must/ fail as defined by+-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT'.+--+-- @pIdentifier@ and @identifierSize@ /can/ be obtained from an+-- 'ShaderModuleIdentifierEXT' queried earlier.+--+-- == Valid Usage+--+-- - #VUID-VkPipelineShaderStageModuleIdentifierCreateInfoEXT-pNext-06850#+-- If this structure is included in a @pNext@ chain and+-- @identifierSize@ is not equal to 0, the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-shaderModuleIdentifier shaderModuleIdentifier>+-- feature /must/ be enabled+--+-- - #VUID-VkPipelineShaderStageModuleIdentifierCreateInfoEXT-pNext-06851#+-- If this struct is included in a @pNext@ chain of+-- 'Vulkan.Core10.Pipeline.PipelineShaderStageCreateInfo' and+-- @identifierSize@ is not equal to 0, the pipeline /must/ be created+-- with the+-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT'+-- flag set+--+-- - #VUID-VkPipelineShaderStageModuleIdentifierCreateInfoEXT-identifierSize-06852#+-- @identifierSize@ /must/ be less-or-equal to+-- 'Vulkan.Core10.APIConstants.MAX_SHADER_MODULE_IDENTIFIER_SIZE_EXT'+--+-- == Valid Usage (Implicit)+--+-- - #VUID-VkPipelineShaderStageModuleIdentifierCreateInfoEXT-sType-sType#+-- @sType@ /must/ be+-- 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_MODULE_IDENTIFIER_CREATE_INFO_EXT'+--+-- - #VUID-VkPipelineShaderStageModuleIdentifierCreateInfoEXT-pIdentifier-parameter#+-- If @identifierSize@ is not @0@, @pIdentifier@ /must/ be a valid+-- pointer to an array of @identifierSize@ @uint8_t@ values+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_shader_module_identifier VK_EXT_shader_module_identifier>,+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data PipelineShaderStageModuleIdentifierCreateInfoEXT = PipelineShaderStageModuleIdentifierCreateInfoEXT+ { -- | @pIdentifier@ points to a buffer of opaque data specifying an+ -- identifier.+ identifier :: Vector Word8 }+ deriving (Typeable)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (PipelineShaderStageModuleIdentifierCreateInfoEXT)+#endif+deriving instance Show PipelineShaderStageModuleIdentifierCreateInfoEXT++instance ToCStruct PipelineShaderStageModuleIdentifierCreateInfoEXT where+ withCStruct x f = allocaBytes 32 $ \p -> pokeCStruct p x (f p)+ pokeCStruct p PipelineShaderStageModuleIdentifierCreateInfoEXT{..} f = evalContT $ do+ lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_MODULE_IDENTIFIER_CREATE_INFO_EXT)+ lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ lift $ poke ((p `plusPtr` 16 :: Ptr Word32)) ((fromIntegral (Data.Vector.length $ (identifier)) :: Word32))+ pPIdentifier' <- ContT $ allocaBytes @Word8 (Data.Vector.length (identifier))+ lift $ Data.Vector.imapM_ (\i e -> poke (pPIdentifier' `plusPtr` (1 * (i)) :: Ptr Word8) (e)) (identifier)+ lift $ poke ((p `plusPtr` 24 :: Ptr (Ptr Word8))) (pPIdentifier')+ lift $ f+ cStructSize = 32+ cStructAlignment = 8+ pokeZeroCStruct p f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_MODULE_IDENTIFIER_CREATE_INFO_EXT)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ f++instance FromCStruct PipelineShaderStageModuleIdentifierCreateInfoEXT where+ peekCStruct p = do+ identifierSize <- peek @Word32 ((p `plusPtr` 16 :: Ptr Word32))+ pIdentifier <- peek @(Ptr Word8) ((p `plusPtr` 24 :: Ptr (Ptr Word8)))+ pIdentifier' <- generateM (fromIntegral identifierSize) (\i -> peek @Word8 ((pIdentifier `advancePtrBytes` (1 * (i)) :: Ptr Word8)))+ pure $ PipelineShaderStageModuleIdentifierCreateInfoEXT+ pIdentifier'++instance Zero PipelineShaderStageModuleIdentifierCreateInfoEXT where+ zero = PipelineShaderStageModuleIdentifierCreateInfoEXT+ mempty+++-- | VkShaderModuleIdentifierEXT - A unique identifier for a shader module+--+-- = Description+--+-- Any returned values beyond the first @identifierSize@ bytes are+-- undefined. Implementations /must/ return an @identifierSize@ greater+-- than 0, and less-or-equal to+-- 'Vulkan.Core10.APIConstants.MAX_SHADER_MODULE_IDENTIFIER_SIZE_EXT'.+--+-- Two identifiers are considered equal if @identifierSize@ is equal and+-- the first @identifierSize@ bytes of @identifier@ compare equal.+--+-- Implementations /may/ return a different @identifierSize@ for different+-- modules. Implementations /should/ ensure that @identifierSize@ is large+-- enough to uniquely define a shader module.+--+-- == Valid Usage (Implicit)+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_shader_module_identifier VK_EXT_shader_module_identifier>,+-- 'Vulkan.Core10.Enums.StructureType.StructureType',+-- 'getShaderModuleCreateInfoIdentifierEXT', 'getShaderModuleIdentifierEXT'+data ShaderModuleIdentifierEXT = ShaderModuleIdentifierEXT+ { -- | @identifierSize@ is the size, in bytes, of valid data returned in+ -- @identifier@.+ identifierSize :: Word32+ , -- | @identifier@ is a buffer of opaque data specifying an identifier.+ identifier :: ByteString+ }+ deriving (Typeable)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (ShaderModuleIdentifierEXT)+#endif+deriving instance Show ShaderModuleIdentifierEXT++instance ToCStruct ShaderModuleIdentifierEXT where+ withCStruct x f = allocaBytes 56 $ \p -> pokeCStruct p x (f p)+ pokeCStruct p ShaderModuleIdentifierEXT{..} f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_SHADER_MODULE_IDENTIFIER_EXT)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr Word32)) (identifierSize)+ pokeFixedLengthByteString ((p `plusPtr` 20 :: Ptr (FixedArray MAX_SHADER_MODULE_IDENTIFIER_SIZE_EXT Word8))) (identifier)+ f+ cStructSize = 56+ cStructAlignment = 8+ pokeZeroCStruct p f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_SHADER_MODULE_IDENTIFIER_EXT)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr Word32)) (zero)+ pokeFixedLengthByteString ((p `plusPtr` 20 :: Ptr (FixedArray MAX_SHADER_MODULE_IDENTIFIER_SIZE_EXT Word8))) (mempty)+ f++instance FromCStruct ShaderModuleIdentifierEXT where+ peekCStruct p = do+ identifierSize <- peek @Word32 ((p `plusPtr` 16 :: Ptr Word32))+ identifier <- peekByteStringFromSizedVectorPtr ((p `plusPtr` 20 :: Ptr (FixedArray MAX_SHADER_MODULE_IDENTIFIER_SIZE_EXT Word8)))+ pure $ ShaderModuleIdentifierEXT+ identifierSize identifier++instance Storable ShaderModuleIdentifierEXT where+ sizeOf ~_ = 56+ alignment ~_ = 8+ peek = peekCStruct+ poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero ShaderModuleIdentifierEXT where+ zero = ShaderModuleIdentifierEXT+ zero+ mempty+++type EXT_SHADER_MODULE_IDENTIFIER_SPEC_VERSION = 1++-- No documentation found for TopLevel "VK_EXT_SHADER_MODULE_IDENTIFIER_SPEC_VERSION"+pattern EXT_SHADER_MODULE_IDENTIFIER_SPEC_VERSION :: forall a . Integral a => a+pattern EXT_SHADER_MODULE_IDENTIFIER_SPEC_VERSION = 1+++type EXT_SHADER_MODULE_IDENTIFIER_EXTENSION_NAME = "VK_EXT_shader_module_identifier"++-- No documentation found for TopLevel "VK_EXT_SHADER_MODULE_IDENTIFIER_EXTENSION_NAME"+pattern EXT_SHADER_MODULE_IDENTIFIER_EXTENSION_NAME :: forall a . (Eq a, IsString a) => a+pattern EXT_SHADER_MODULE_IDENTIFIER_EXTENSION_NAME = "VK_EXT_shader_module_identifier"+
+ src/Vulkan/Extensions/VK_EXT_shader_module_identifier.hs-boot view
@@ -0,0 +1,195 @@+{-# language CPP #-}+-- | = Name+--+-- VK_EXT_shader_module_identifier - device extension+--+-- == VK_EXT_shader_module_identifier+--+-- [__Name String__]+-- @VK_EXT_shader_module_identifier@+--+-- [__Extension Type__]+-- Device extension+--+-- [__Registered Extension Number__]+-- 463+--+-- [__Revision__]+-- 1+--+-- [__Extension and Version Dependencies__]+--+-- - Requires support for Vulkan 1.0+--+-- - Requires @VK_KHR_get_physical_device_properties2@ to be enabled+-- for any device-level functionality+--+-- - Requires @VK_EXT_pipeline_creation_cache_control@ to be enabled+-- for any device-level functionality+--+-- [__Contact__]+--+-- - Hans-Kristian Arntzen+-- <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_EXT_shader_module_identifier] @HansKristian-Work%0A<<Here describe the issue or question you have about the VK_EXT_shader_module_identifier extension>> >+--+-- [__Extension Proposal__]+-- <https://github.com/KhronosGroup/Vulkan-Docs/tree/main/proposals/VK_EXT_shader_module_identifier.adoc VK_EXT_shader_module_identifier>+--+-- == Other Extension Metadata+--+-- [__Last Modified Date__]+-- 2022-05-16+--+-- [__IP Status__]+-- No known IP claims.+--+-- [__Contributors__]+--+-- - Hans-Kristian Arntzen, Valve+--+-- - Ricardo Garcia, Igalia+--+-- - Piers Daniell, NVIDIA+--+-- - Jan-Harald Fredriksen, Arm+--+-- - Tom Olson, Arm+--+-- - Jason Ekstrand, Collabora+--+-- == Description+--+-- Some applications generate SPIR-V code at runtime. When pipeline caches+-- are primed, either explicitly through e.g.+-- 'Vulkan.Core10.Handles.PipelineCache' mechanisms, or implicitly through+-- driver managed caches, having to re-generate SPIR-V modules is+-- redundant. SPIR-V modules could be cached on disk by an application, but+-- the extra disk size requirement might be prohibitive in some use cases.+--+-- This extension adds the ability for an application to query a small+-- identifier associated with a 'Vulkan.Core10.Handles.ShaderModule'. On+-- subsequent runs of the application, the same identifier /can/ be+-- provided in lieu of a 'Vulkan.Core10.Handles.ShaderModule' object. A+-- pipeline creation call with such a module /may/ succeed if a pipeline+-- could be created without invoking compilation, and information inside+-- the SPIR-V module is not required by the implementation.+--+-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT'+-- /must/ be used if only the identifier is provided, and this use case is+-- intended to work like a non-blocking, speculative compile. Applications+-- /can/ fallback as necessary.+--+-- The main motivation for identifying the module itself and not the entire+-- pipeline is that pipeline identifiers change when a driver is updated,+-- but module identifiers are expected to be stable for any particular+-- driver implementation. This approach is helpful for shader+-- pre-compilation systems which can prime pipeline caches ahead of time.+-- When on-disk pipeline caches are updated, the same shader identifiers+-- could lead to a pipeline cache hit.+--+-- == New Commands+--+-- - 'getShaderModuleCreateInfoIdentifierEXT'+--+-- - 'getShaderModuleIdentifierEXT'+--+-- == New Structures+--+-- - 'ShaderModuleIdentifierEXT'+--+-- - Extending+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',+-- 'Vulkan.Core10.Device.DeviceCreateInfo':+--+-- - 'PhysicalDeviceShaderModuleIdentifierFeaturesEXT'+--+-- - Extending+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2':+--+-- - 'PhysicalDeviceShaderModuleIdentifierPropertiesEXT'+--+-- - Extending 'Vulkan.Core10.Pipeline.PipelineShaderStageCreateInfo':+--+-- - 'PipelineShaderStageModuleIdentifierCreateInfoEXT'+--+-- == New Enum Constants+--+-- - 'EXT_SHADER_MODULE_IDENTIFIER_EXTENSION_NAME'+--+-- - 'EXT_SHADER_MODULE_IDENTIFIER_SPEC_VERSION'+--+-- - 'Vulkan.Core10.APIConstants.MAX_SHADER_MODULE_IDENTIFIER_SIZE_EXT'+--+-- - Extending 'Vulkan.Core10.Enums.StructureType.StructureType':+--+-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_FEATURES_EXT'+--+-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_PROPERTIES_EXT'+--+-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_MODULE_IDENTIFIER_CREATE_INFO_EXT'+--+-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_SHADER_MODULE_IDENTIFIER_EXT'+--+-- == Version History+--+-- - Revision 1, 2022-03-16 (Hans-Kristian Arntzen)+--+-- - Initial draft+--+-- == See Also+--+-- 'Vulkan.Core10.APIConstants.MAX_SHADER_MODULE_IDENTIFIER_SIZE_EXT',+-- 'PhysicalDeviceShaderModuleIdentifierFeaturesEXT',+-- 'PhysicalDeviceShaderModuleIdentifierPropertiesEXT',+-- 'PipelineShaderStageModuleIdentifierCreateInfoEXT',+-- 'ShaderModuleIdentifierEXT', 'getShaderModuleCreateInfoIdentifierEXT',+-- 'getShaderModuleIdentifierEXT'+--+-- == Document Notes+--+-- For more information, see the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_shader_module_identifier Vulkan Specification>+--+-- This page is a generated document. Fixes and changes should be made to+-- the generator scripts, not directly.+module Vulkan.Extensions.VK_EXT_shader_module_identifier ( PhysicalDeviceShaderModuleIdentifierFeaturesEXT+ , PhysicalDeviceShaderModuleIdentifierPropertiesEXT+ , PipelineShaderStageModuleIdentifierCreateInfoEXT+ , ShaderModuleIdentifierEXT+ ) where++import Vulkan.CStruct (FromCStruct)+import Vulkan.CStruct (ToCStruct)+import Data.Kind (Type)++data PhysicalDeviceShaderModuleIdentifierFeaturesEXT++instance ToCStruct PhysicalDeviceShaderModuleIdentifierFeaturesEXT+instance Show PhysicalDeviceShaderModuleIdentifierFeaturesEXT++instance FromCStruct PhysicalDeviceShaderModuleIdentifierFeaturesEXT+++data PhysicalDeviceShaderModuleIdentifierPropertiesEXT++instance ToCStruct PhysicalDeviceShaderModuleIdentifierPropertiesEXT+instance Show PhysicalDeviceShaderModuleIdentifierPropertiesEXT++instance FromCStruct PhysicalDeviceShaderModuleIdentifierPropertiesEXT+++data PipelineShaderStageModuleIdentifierCreateInfoEXT++instance ToCStruct PipelineShaderStageModuleIdentifierCreateInfoEXT+instance Show PipelineShaderStageModuleIdentifierCreateInfoEXT++instance FromCStruct PipelineShaderStageModuleIdentifierCreateInfoEXT+++data ShaderModuleIdentifierEXT++instance ToCStruct ShaderModuleIdentifierEXT+instance Show ShaderModuleIdentifierEXT++instance FromCStruct ShaderModuleIdentifierEXT+
src/Vulkan/Extensions/VK_EXT_shader_stencil_export.hs view
@@ -19,7 +19,7 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 -- -- [__Contact__] --@@ -40,7 +40,7 @@ -- <https://htmlpreview.github.io/?https://github.com/KhronosGroup/SPIRV-Registry/blob/master/extensions/EXT/SPV_EXT_shader_stencil_export.html SPV_EXT_shader_stencil_export> -- -- - This extension provides API support for--- <https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_shader_stencil_export.txt GL_ARB_shader_stencil_export>+-- <https://registry.khronos.org/OpenGL/extensions/ARB/ARB_shader_stencil_export.txt GL_ARB_shader_stencil_export> -- -- [__Contributors__] --@@ -77,7 +77,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_shader_stencil_export Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_shader_stencil_export Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_EXT_shader_subgroup_ballot.hs view
@@ -19,7 +19,7 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 -- -- [__Deprecation state__] --@@ -45,7 +45,7 @@ -- <https://htmlpreview.github.io/?https://github.com/KhronosGroup/SPIRV-Registry/blob/master/extensions/KHR/SPV_KHR_shader_ballot.html SPV_KHR_shader_ballot> -- -- - This extension provides API support for--- <https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_shader_ballot.txt GL_ARB_shader_ballot>+-- <https://registry.khronos.org/OpenGL/extensions/ARB/ARB_shader_ballot.txt GL_ARB_shader_ballot> -- -- [__Contributors__] --@@ -133,7 +133,7 @@ -- Vulkan 1.1 required the @OpGroupNonUniformBroadcast@ “Id” to be -- constant. This restriction was removed in Vulkan 1.2 with the addition -- of the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-subgroupBroadcastDynamicId subgroupBroadcastDynamicId>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-subgroupBroadcastDynamicId subgroupBroadcastDynamicId> -- feature. -- -- == New Enum Constants@@ -144,23 +144,23 @@ -- -- == New Built-In Variables ----- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-sgeq SubgroupEqMaskKHR>+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-sgeq SubgroupEqMaskKHR> ----- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-sgge SubgroupGeMaskKHR>+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-sgge SubgroupGeMaskKHR> ----- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-sggt SubgroupGtMaskKHR>+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-sggt SubgroupGtMaskKHR> ----- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-sgle SubgroupLeMaskKHR>+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-sgle SubgroupLeMaskKHR> ----- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-sglt SubgroupLtMaskKHR>+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-sglt SubgroupLtMaskKHR> ----- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-sgli SubgroupLocalInvocationId>+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-sgli SubgroupLocalInvocationId> ----- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-sgs SubgroupSize>+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-sgs SubgroupSize> -- -- == New SPIR-V Capabilities ----- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-SubgroupBallotKHR SubgroupBallotKHR>+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-SubgroupBallotKHR SubgroupBallotKHR> -- -- == Version History --@@ -175,7 +175,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_shader_subgroup_ballot Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_shader_subgroup_ballot Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_EXT_shader_subgroup_vote.hs view
@@ -19,7 +19,7 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 -- -- [__Deprecation state__] --@@ -45,7 +45,7 @@ -- <https://htmlpreview.github.io/?https://github.com/KhronosGroup/SPIRV-Registry/blob/master/extensions/KHR/SPV_KHR_subgroup_vote.html SPV_KHR_subgroup_vote> -- -- - This extension provides API support for--- <https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_shader_group_vote.txt GL_ARB_shader_group_vote>+-- <https://registry.khronos.org/OpenGL/extensions/ARB/ARB_shader_group_vote.txt GL_ARB_shader_group_vote> -- -- [__Contributors__] --@@ -144,7 +144,7 @@ -- -- == New SPIR-V Capabilities ----- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-SubgroupVoteKHR SubgroupVoteKHR>+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-SubgroupVoteKHR SubgroupVoteKHR> -- -- == Version History --@@ -159,7 +159,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_shader_subgroup_vote Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_shader_subgroup_vote Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_EXT_shader_viewport_index_layer.hs view
@@ -19,7 +19,7 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 -- -- [__Deprecation state__] --@@ -44,11 +44,11 @@ -- <https://htmlpreview.github.io/?https://github.com/KhronosGroup/SPIRV-Registry/blob/master/extensions/EXT/SPV_EXT_shader_viewport_index_layer.html SPV_EXT_shader_viewport_index_layer> -- -- - This extension provides API support for--- <https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_shader_viewport_layer_array.txt GL_ARB_shader_viewport_layer_array>,--- <https://www.khronos.org/registry/OpenGL/extensions/AMD/AMD_vertex_shader_layer.txt GL_AMD_vertex_shader_layer>,--- <https://www.khronos.org/registry/OpenGL/extensions/AMD/AMD_vertex_shader_viewport_index.txt GL_AMD_vertex_shader_viewport_index>,+-- <https://registry.khronos.org/OpenGL/extensions/ARB/ARB_shader_viewport_layer_array.txt GL_ARB_shader_viewport_layer_array>,+-- <https://registry.khronos.org/OpenGL/extensions/AMD/AMD_vertex_shader_layer.txt GL_AMD_vertex_shader_layer>,+-- <https://registry.khronos.org/OpenGL/extensions/AMD/AMD_vertex_shader_viewport_index.txt GL_AMD_vertex_shader_viewport_index>, -- and--- <https://www.khronos.org/registry/OpenGL/extensions/NV/NV_viewport_array2.txt GL_NV_viewport_array2>+-- <https://registry.khronos.org/OpenGL/extensions/NV/NV_viewport_array2.txt GL_NV_viewport_array2> -- -- - This extension requires the @multiViewport@ feature. --@@ -96,13 +96,13 @@ -- -- The single @ShaderViewportIndexLayerEXT@ capability from the -- @SPV_EXT_shader_viewport_index_layer@ extension is replaced by the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-ShaderViewportIndex ShaderViewportIndex>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-ShaderViewportIndex ShaderViewportIndex> -- and--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-ShaderLayer ShaderLayer>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-ShaderLayer ShaderLayer> -- capabilities from SPIR-V 1.5 which are enabled by the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-shaderOutputViewportIndex shaderOutputViewportIndex>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-shaderOutputViewportIndex shaderOutputViewportIndex> -- and--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-shaderOutputLayer shaderOutputLayer>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-shaderOutputLayer shaderOutputLayer> -- features, respectively. Additionally, if Vulkan 1.2 is supported but -- this extension is not, these capabilities are optional. --@@ -118,14 +118,14 @@ -- == New or Modified Built-In Variables -- -- - (modified)--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-layer Layer>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-layer Layer> -- -- - (modified)--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-viewportindex ViewportIndex>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-viewportindex ViewportIndex> -- -- == New SPIR-V Capabilities ----- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-ShaderViewportIndexLayerEXT ShaderViewportIndexLayerEXT>+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-ShaderViewportIndexLayerEXT ShaderViewportIndexLayerEXT> -- -- == Version History --@@ -140,7 +140,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_shader_viewport_index_layer Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_shader_viewport_index_layer Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_EXT_subgroup_size_control.hs view
@@ -19,7 +19,7 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.1+-- - Requires support for Vulkan 1.1 -- -- [__Deprecation state__] --@@ -85,20 +85,20 @@ -- enable that pipeline to vary its subgroup size. If enabled, any -- @SubgroupSize@ decorated variables in the SPIR-V shader modules provided -- to pipeline creation /may/ vary between the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-minSubgroupSize minimum>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-minSubgroupSize minimum> -- and--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxSubgroupSize maximum>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxSubgroupSize maximum> -- subgroup sizes. -- -- An implementation is also optionally allowed to support specifying a -- required subgroup size for a given pipeline stage. Implementations -- advertise which--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-requiredSubgroupSizeStages stages support a required subgroup size>,+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-requiredSubgroupSizeStages stages support a required subgroup size>, -- and any pipeline of a supported stage can be passed a -- 'PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT' structure to set -- the subgroup size for that shader stage of the pipeline. For compute -- shaders, this requires the developer to query the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxComputeWorkgroupSubgroups maxComputeWorkgroupSubgroups>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxComputeWorkgroupSubgroups maxComputeWorkgroupSubgroups> -- and ensure that: -- -- \[s = { WorkGroupSize.x \times WorkGroupSize.y \times WorkgroupSize.z \leq SubgroupSize \times maxComputeWorkgroupSubgroups }\]@@ -172,7 +172,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_subgroup_size_control Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_subgroup_size_control Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
+ src/Vulkan/Extensions/VK_EXT_subpass_merge_feedback.hs view
@@ -0,0 +1,684 @@+{-# language CPP #-}+-- | = Name+--+-- VK_EXT_subpass_merge_feedback - device extension+--+-- == VK_EXT_subpass_merge_feedback+--+-- [__Name String__]+-- @VK_EXT_subpass_merge_feedback@+--+-- [__Extension Type__]+-- Device extension+--+-- [__Registered Extension Number__]+-- 459+--+-- [__Revision__]+-- 2+--+-- [__Extension and Version Dependencies__]+--+-- - Requires support for Vulkan 1.0+--+-- [__Contact__]+--+-- - Ting Wei+-- <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_EXT_subpass_merge_feedback] @catweiting%0A<<Here describe the issue or question you have about the VK_EXT_subpass_merge_feedback extension>> >+--+-- [__Extension Proposal__]+-- <https://github.com/KhronosGroup/Vulkan-Docs/tree/main/proposals/VK_EXT_subpass_merge_feedback.adoc VK_EXT_subpass_merge_feedback>+--+-- == Other Extension Metadata+--+-- [__Last Modified Date__]+-- 2022-05-24+--+-- [__IP Status__]+-- No known IP claims.+--+-- [__Contributors__]+--+-- - Jan-Harald Fredriksen, Arm+--+-- - Jorg Wagner, Arm+--+-- - Ting Wei, Arm+--+-- == Description+--+-- This extension adds a mechanism to provide feedback to an application+-- about whether the subpasses specified on render pass creation are merged+-- by the implementation. Additionally, it provides a control to enable or+-- disable subpass merging in the render pass.+--+-- == New Structures+--+-- - 'RenderPassCreationFeedbackInfoEXT'+--+-- - 'RenderPassSubpassFeedbackInfoEXT'+--+-- - Extending+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',+-- 'Vulkan.Core10.Device.DeviceCreateInfo':+--+-- - 'PhysicalDeviceSubpassMergeFeedbackFeaturesEXT'+--+-- - Extending+-- 'Vulkan.Core12.Promoted_From_VK_KHR_create_renderpass2.RenderPassCreateInfo2':+--+-- - 'RenderPassCreationFeedbackCreateInfoEXT'+--+-- - Extending+-- 'Vulkan.Core12.Promoted_From_VK_KHR_create_renderpass2.RenderPassCreateInfo2',+-- 'Vulkan.Core12.Promoted_From_VK_KHR_create_renderpass2.SubpassDescription2':+--+-- - 'RenderPassCreationControlEXT'+--+-- - Extending+-- 'Vulkan.Core12.Promoted_From_VK_KHR_create_renderpass2.SubpassDescription2':+--+-- - 'RenderPassSubpassFeedbackCreateInfoEXT'+--+-- == New Enums+--+-- - 'SubpassMergeStatusEXT'+--+-- == New Enum Constants+--+-- - 'EXT_SUBPASS_MERGE_FEEDBACK_EXTENSION_NAME'+--+-- - 'EXT_SUBPASS_MERGE_FEEDBACK_SPEC_VERSION'+--+-- - Extending 'Vulkan.Core10.Enums.StructureType.StructureType':+--+-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_MERGE_FEEDBACK_FEATURES_EXT'+--+-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_RENDER_PASS_CREATION_CONTROL_EXT'+--+-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_RENDER_PASS_CREATION_FEEDBACK_CREATE_INFO_EXT'+--+-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_RENDER_PASS_SUBPASS_FEEDBACK_CREATE_INFO_EXT'+--+-- == Version History+--+-- - Revision 1, 2022-03-10+--+-- - Initial draft.+--+-- - Revision 2, 2022-05-24+--+-- - Fix structextends and constness issues.+--+-- == See Also+--+-- 'PhysicalDeviceSubpassMergeFeedbackFeaturesEXT',+-- 'RenderPassCreationControlEXT',+-- 'RenderPassCreationFeedbackCreateInfoEXT',+-- 'RenderPassCreationFeedbackInfoEXT',+-- 'RenderPassSubpassFeedbackCreateInfoEXT',+-- 'RenderPassSubpassFeedbackInfoEXT', 'SubpassMergeStatusEXT'+--+-- == Document Notes+--+-- For more information, see the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_subpass_merge_feedback Vulkan Specification>+--+-- This page is a generated document. Fixes and changes should be made to+-- the generator scripts, not directly.+module Vulkan.Extensions.VK_EXT_subpass_merge_feedback ( RenderPassCreationControlEXT(..)+ , RenderPassCreationFeedbackInfoEXT(..)+ , RenderPassCreationFeedbackCreateInfoEXT(..)+ , RenderPassSubpassFeedbackInfoEXT(..)+ , RenderPassSubpassFeedbackCreateInfoEXT(..)+ , PhysicalDeviceSubpassMergeFeedbackFeaturesEXT(..)+ , SubpassMergeStatusEXT( SUBPASS_MERGE_STATUS_MERGED_EXT+ , SUBPASS_MERGE_STATUS_DISALLOWED_EXT+ , SUBPASS_MERGE_STATUS_NOT_MERGED_SIDE_EFFECTS_EXT+ , SUBPASS_MERGE_STATUS_NOT_MERGED_SAMPLES_MISMATCH_EXT+ , SUBPASS_MERGE_STATUS_NOT_MERGED_VIEWS_MISMATCH_EXT+ , SUBPASS_MERGE_STATUS_NOT_MERGED_ALIASING_EXT+ , SUBPASS_MERGE_STATUS_NOT_MERGED_DEPENDENCIES_EXT+ , SUBPASS_MERGE_STATUS_NOT_MERGED_INCOMPATIBLE_INPUT_ATTACHMENT_EXT+ , SUBPASS_MERGE_STATUS_NOT_MERGED_TOO_MANY_ATTACHMENTS_EXT+ , SUBPASS_MERGE_STATUS_NOT_MERGED_INSUFFICIENT_STORAGE_EXT+ , SUBPASS_MERGE_STATUS_NOT_MERGED_DEPTH_STENCIL_COUNT_EXT+ , SUBPASS_MERGE_STATUS_NOT_MERGED_RESOLVE_ATTACHMENT_REUSE_EXT+ , SUBPASS_MERGE_STATUS_NOT_MERGED_SINGLE_SUBPASS_EXT+ , SUBPASS_MERGE_STATUS_NOT_MERGED_UNSPECIFIED_EXT+ , ..+ )+ , EXT_SUBPASS_MERGE_FEEDBACK_SPEC_VERSION+ , pattern EXT_SUBPASS_MERGE_FEEDBACK_SPEC_VERSION+ , EXT_SUBPASS_MERGE_FEEDBACK_EXTENSION_NAME+ , pattern EXT_SUBPASS_MERGE_FEEDBACK_EXTENSION_NAME+ ) where++import Vulkan.CStruct.Utils (FixedArray)+import Vulkan.Internal.Utils (enumReadPrec)+import Vulkan.Internal.Utils (enumShowsPrec)+import Foreign.Marshal.Alloc (allocaBytes)+import Foreign.Ptr (nullPtr)+import Foreign.Ptr (plusPtr)+import GHC.Show (showsPrec)+import Data.ByteString (packCString)+import Vulkan.CStruct (FromCStruct)+import Vulkan.CStruct (FromCStruct(..))+import Vulkan.CStruct (ToCStruct)+import Vulkan.CStruct (ToCStruct(..))+import Vulkan.Zero (Zero)+import Vulkan.Zero (Zero(..))+import Data.String (IsString)+import Data.Typeable (Typeable)+import Foreign.C.Types (CChar)+import Foreign.Storable (Storable)+import Foreign.Storable (Storable(peek))+import Foreign.Storable (Storable(poke))+import qualified Foreign.Storable (Storable(..))+import GHC.Generics (Generic)+import Data.Int (Int32)+import Foreign.Ptr (Ptr)+import GHC.Read (Read(readPrec))+import GHC.Show (Show(showsPrec))+import Data.Word (Word32)+import Data.ByteString (ByteString)+import Data.Kind (Type)+import Vulkan.Core10.FundamentalTypes (bool32ToBool)+import Vulkan.Core10.FundamentalTypes (boolToBool32)+import Vulkan.CStruct.Utils (lowerArrayPtr)+import Vulkan.CStruct.Utils (pokeFixedLengthNullTerminatedByteString)+import Vulkan.Core10.FundamentalTypes (Bool32)+import Vulkan.Core10.APIConstants (MAX_DESCRIPTION_SIZE)+import Vulkan.Core10.Enums.StructureType (StructureType)+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_MERGE_FEEDBACK_FEATURES_EXT))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_RENDER_PASS_CREATION_CONTROL_EXT))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_RENDER_PASS_CREATION_FEEDBACK_CREATE_INFO_EXT))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_RENDER_PASS_SUBPASS_FEEDBACK_CREATE_INFO_EXT))+-- | VkRenderPassCreationControlEXT - Control about the creation of render+-- pass or subpass+--+-- = Description+--+-- If a 'RenderPassCreationControlEXT' structure is included in the @pNext@+-- chain of+-- 'Vulkan.Core12.Promoted_From_VK_KHR_create_renderpass2.RenderPassCreateInfo2'+-- and its value of @disallowMerging@ is+-- 'Vulkan.Core10.FundamentalTypes.TRUE', the implementation will disable+-- subpass merging for the entire render pass. If a+-- 'RenderPassCreationControlEXT' structure is included in the @pNext@+-- chain of+-- 'Vulkan.Core12.Promoted_From_VK_KHR_create_renderpass2.SubpassDescription2'+-- and its value of @disallowMerging@ is+-- 'Vulkan.Core10.FundamentalTypes.TRUE', the implementation will disable+-- merging the described subpass with previous subpasses in the render+-- pass.+--+-- == Valid Usage (Implicit)+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_subpass_merge_feedback VK_EXT_subpass_merge_feedback>,+-- 'Vulkan.Core10.FundamentalTypes.Bool32',+-- 'Vulkan.Core12.Promoted_From_VK_KHR_create_renderpass2.RenderPassCreateInfo2',+-- 'Vulkan.Core10.Enums.StructureType.StructureType',+-- 'Vulkan.Core12.Promoted_From_VK_KHR_create_renderpass2.SubpassDescription2',+-- 'Vulkan.Core12.Promoted_From_VK_KHR_create_renderpass2.createRenderPass2'+data RenderPassCreationControlEXT = RenderPassCreationControlEXT+ { -- | @disallowMerging@ is a boolean value indicating whether subpass merging+ -- will be disabled.+ disallowMerging :: Bool }+ deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (RenderPassCreationControlEXT)+#endif+deriving instance Show RenderPassCreationControlEXT++instance ToCStruct RenderPassCreationControlEXT where+ withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)+ pokeCStruct p RenderPassCreationControlEXT{..} f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_RENDER_PASS_CREATION_CONTROL_EXT)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (disallowMerging))+ f+ cStructSize = 24+ cStructAlignment = 8+ pokeZeroCStruct p f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_RENDER_PASS_CREATION_CONTROL_EXT)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (zero))+ f++instance FromCStruct RenderPassCreationControlEXT where+ peekCStruct p = do+ disallowMerging <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))+ pure $ RenderPassCreationControlEXT+ (bool32ToBool disallowMerging)++instance Storable RenderPassCreationControlEXT where+ sizeOf ~_ = 24+ alignment ~_ = 8+ peek = peekCStruct+ poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero RenderPassCreationControlEXT where+ zero = RenderPassCreationControlEXT+ zero+++-- | VkRenderPassCreationFeedbackInfoEXT - Feedback about the creation of a+-- render pass+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_subpass_merge_feedback VK_EXT_subpass_merge_feedback>,+-- 'RenderPassCreationFeedbackCreateInfoEXT'+data RenderPassCreationFeedbackInfoEXT = RenderPassCreationFeedbackInfoEXT+ { -- | @postMergeSubpassCount@ is the subpass count after merge.+ postMergeSubpassCount :: Word32 }+ deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (RenderPassCreationFeedbackInfoEXT)+#endif+deriving instance Show RenderPassCreationFeedbackInfoEXT++instance ToCStruct RenderPassCreationFeedbackInfoEXT where+ withCStruct x f = allocaBytes 4 $ \p -> pokeCStruct p x (f p)+ pokeCStruct p RenderPassCreationFeedbackInfoEXT{..} f = do+ poke ((p `plusPtr` 0 :: Ptr Word32)) (postMergeSubpassCount)+ f+ cStructSize = 4+ cStructAlignment = 4+ pokeZeroCStruct p f = do+ poke ((p `plusPtr` 0 :: Ptr Word32)) (zero)+ f++instance FromCStruct RenderPassCreationFeedbackInfoEXT where+ peekCStruct p = do+ postMergeSubpassCount <- peek @Word32 ((p `plusPtr` 0 :: Ptr Word32))+ pure $ RenderPassCreationFeedbackInfoEXT+ postMergeSubpassCount++instance Storable RenderPassCreationFeedbackInfoEXT where+ sizeOf ~_ = 4+ alignment ~_ = 4+ peek = peekCStruct+ poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero RenderPassCreationFeedbackInfoEXT where+ zero = RenderPassCreationFeedbackInfoEXT+ zero+++-- | VkRenderPassCreationFeedbackCreateInfoEXT - Request feedback about the+-- creation of render pass+--+-- == Valid Usage (Implicit)+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_subpass_merge_feedback VK_EXT_subpass_merge_feedback>,+-- 'Vulkan.Core12.Promoted_From_VK_KHR_create_renderpass2.RenderPassCreateInfo2',+-- 'RenderPassCreationControlEXT', 'RenderPassCreationFeedbackInfoEXT',+-- 'Vulkan.Core10.Enums.StructureType.StructureType',+-- 'Vulkan.Core12.Promoted_From_VK_KHR_create_renderpass2.createRenderPass2'+data RenderPassCreationFeedbackCreateInfoEXT = RenderPassCreationFeedbackCreateInfoEXT+ { -- | @pRenderPassFeedback@ is a pointer to a+ -- 'RenderPassCreationFeedbackInfoEXT' structure in which feedback is+ -- returned.+ --+ -- #VUID-VkRenderPassCreationFeedbackCreateInfoEXT-pRenderPassFeedback-parameter#+ -- @pRenderPassFeedback@ /must/ be a valid pointer to a+ -- 'RenderPassCreationFeedbackInfoEXT' structure+ renderPassFeedback :: Ptr RenderPassCreationFeedbackInfoEXT }+ deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (RenderPassCreationFeedbackCreateInfoEXT)+#endif+deriving instance Show RenderPassCreationFeedbackCreateInfoEXT++instance ToCStruct RenderPassCreationFeedbackCreateInfoEXT where+ withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)+ pokeCStruct p RenderPassCreationFeedbackCreateInfoEXT{..} f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_RENDER_PASS_CREATION_FEEDBACK_CREATE_INFO_EXT)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr (Ptr RenderPassCreationFeedbackInfoEXT))) (renderPassFeedback)+ f+ cStructSize = 24+ cStructAlignment = 8+ pokeZeroCStruct p f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_RENDER_PASS_CREATION_FEEDBACK_CREATE_INFO_EXT)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr (Ptr RenderPassCreationFeedbackInfoEXT))) (zero)+ f++instance FromCStruct RenderPassCreationFeedbackCreateInfoEXT where+ peekCStruct p = do+ pRenderPassFeedback <- peek @(Ptr RenderPassCreationFeedbackInfoEXT) ((p `plusPtr` 16 :: Ptr (Ptr RenderPassCreationFeedbackInfoEXT)))+ pure $ RenderPassCreationFeedbackCreateInfoEXT+ pRenderPassFeedback++instance Storable RenderPassCreationFeedbackCreateInfoEXT where+ sizeOf ~_ = 24+ alignment ~_ = 8+ peek = peekCStruct+ poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero RenderPassCreationFeedbackCreateInfoEXT where+ zero = RenderPassCreationFeedbackCreateInfoEXT+ zero+++-- | VkRenderPassSubpassFeedbackInfoEXT - Feedback about the creation of+-- subpass+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_subpass_merge_feedback VK_EXT_subpass_merge_feedback>,+-- 'RenderPassSubpassFeedbackCreateInfoEXT', 'SubpassMergeStatusEXT'+data RenderPassSubpassFeedbackInfoEXT = RenderPassSubpassFeedbackInfoEXT+ { -- | @subpassMergeStatus@ is a 'SubpassMergeStatusEXT' value specifying+ -- information about whether the subpass is merged with previous subpass+ -- and the reason why it is not merged.+ subpassMergeStatus :: SubpassMergeStatusEXT+ , -- | @description@ is an array of+ -- 'Vulkan.Core10.APIConstants.MAX_DESCRIPTION_SIZE' @char@ containing a+ -- null-terminated UTF-8 string which provides additional details.+ description :: ByteString+ , -- | @postMergeIndex@ is the subpass index after the subpass merging.+ postMergeIndex :: Word32+ }+ deriving (Typeable)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (RenderPassSubpassFeedbackInfoEXT)+#endif+deriving instance Show RenderPassSubpassFeedbackInfoEXT++instance ToCStruct RenderPassSubpassFeedbackInfoEXT where+ withCStruct x f = allocaBytes 264 $ \p -> pokeCStruct p x (f p)+ pokeCStruct p RenderPassSubpassFeedbackInfoEXT{..} f = do+ poke ((p `plusPtr` 0 :: Ptr SubpassMergeStatusEXT)) (subpassMergeStatus)+ pokeFixedLengthNullTerminatedByteString ((p `plusPtr` 4 :: Ptr (FixedArray MAX_DESCRIPTION_SIZE CChar))) (description)+ poke ((p `plusPtr` 260 :: Ptr Word32)) (postMergeIndex)+ f+ cStructSize = 264+ cStructAlignment = 4+ pokeZeroCStruct p f = do+ poke ((p `plusPtr` 0 :: Ptr SubpassMergeStatusEXT)) (zero)+ pokeFixedLengthNullTerminatedByteString ((p `plusPtr` 4 :: Ptr (FixedArray MAX_DESCRIPTION_SIZE CChar))) (mempty)+ poke ((p `plusPtr` 260 :: Ptr Word32)) (zero)+ f++instance FromCStruct RenderPassSubpassFeedbackInfoEXT where+ peekCStruct p = do+ subpassMergeStatus <- peek @SubpassMergeStatusEXT ((p `plusPtr` 0 :: Ptr SubpassMergeStatusEXT))+ description <- packCString (lowerArrayPtr ((p `plusPtr` 4 :: Ptr (FixedArray MAX_DESCRIPTION_SIZE CChar))))+ postMergeIndex <- peek @Word32 ((p `plusPtr` 260 :: Ptr Word32))+ pure $ RenderPassSubpassFeedbackInfoEXT+ subpassMergeStatus description postMergeIndex++instance Storable RenderPassSubpassFeedbackInfoEXT where+ sizeOf ~_ = 264+ alignment ~_ = 4+ peek = peekCStruct+ poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero RenderPassSubpassFeedbackInfoEXT where+ zero = RenderPassSubpassFeedbackInfoEXT+ zero+ mempty+ zero+++-- | VkRenderPassSubpassFeedbackCreateInfoEXT - Request for feedback about+-- the creation of subpass+--+-- == Valid Usage (Implicit)+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_subpass_merge_feedback VK_EXT_subpass_merge_feedback>,+-- 'Vulkan.Core12.Promoted_From_VK_KHR_create_renderpass2.RenderPassCreateInfo2',+-- 'RenderPassCreationControlEXT', 'RenderPassSubpassFeedbackInfoEXT',+-- 'Vulkan.Core10.Enums.StructureType.StructureType',+-- 'Vulkan.Core12.Promoted_From_VK_KHR_create_renderpass2.SubpassDescription2',+-- 'Vulkan.Core12.Promoted_From_VK_KHR_create_renderpass2.createRenderPass2'+data RenderPassSubpassFeedbackCreateInfoEXT = RenderPassSubpassFeedbackCreateInfoEXT+ { -- | @pSubpassFeedback@ is a pointer to a 'RenderPassSubpassFeedbackInfoEXT'+ -- structure in which feedback is returned.+ --+ -- #VUID-VkRenderPassSubpassFeedbackCreateInfoEXT-pSubpassFeedback-parameter#+ -- @pSubpassFeedback@ /must/ be a valid pointer to a+ -- 'RenderPassSubpassFeedbackInfoEXT' structure+ subpassFeedback :: Ptr RenderPassSubpassFeedbackInfoEXT }+ deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (RenderPassSubpassFeedbackCreateInfoEXT)+#endif+deriving instance Show RenderPassSubpassFeedbackCreateInfoEXT++instance ToCStruct RenderPassSubpassFeedbackCreateInfoEXT where+ withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)+ pokeCStruct p RenderPassSubpassFeedbackCreateInfoEXT{..} f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_RENDER_PASS_SUBPASS_FEEDBACK_CREATE_INFO_EXT)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr (Ptr RenderPassSubpassFeedbackInfoEXT))) (subpassFeedback)+ f+ cStructSize = 24+ cStructAlignment = 8+ pokeZeroCStruct p f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_RENDER_PASS_SUBPASS_FEEDBACK_CREATE_INFO_EXT)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr (Ptr RenderPassSubpassFeedbackInfoEXT))) (zero)+ f++instance FromCStruct RenderPassSubpassFeedbackCreateInfoEXT where+ peekCStruct p = do+ pSubpassFeedback <- peek @(Ptr RenderPassSubpassFeedbackInfoEXT) ((p `plusPtr` 16 :: Ptr (Ptr RenderPassSubpassFeedbackInfoEXT)))+ pure $ RenderPassSubpassFeedbackCreateInfoEXT+ pSubpassFeedback++instance Storable RenderPassSubpassFeedbackCreateInfoEXT where+ sizeOf ~_ = 24+ alignment ~_ = 8+ peek = peekCStruct+ poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero RenderPassSubpassFeedbackCreateInfoEXT where+ zero = RenderPassSubpassFeedbackCreateInfoEXT+ zero+++-- | VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT - Structure describing+-- whether subpass merging feedback can be supported by the implementation+--+-- = Members+--+-- This structure describes the following feature:+--+-- = Description+--+-- If the 'PhysicalDeviceSubpassMergeFeedbackFeaturesEXT' structure is+-- included in the @pNext@ chain of the+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2'+-- structure passed to+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceFeatures2',+-- it is filled in to indicate whether each corresponding feature is+-- supported. 'PhysicalDeviceSubpassMergeFeedbackFeaturesEXT' /can/ also be+-- used in the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to+-- selectively enable these features.+--+-- == Valid Usage (Implicit)+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_subpass_merge_feedback VK_EXT_subpass_merge_feedback>,+-- 'Vulkan.Core10.FundamentalTypes.Bool32',+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data PhysicalDeviceSubpassMergeFeedbackFeaturesEXT = PhysicalDeviceSubpassMergeFeedbackFeaturesEXT+ { -- | #features-subpassMergeFeedback# @subpassMergeFeedback@ indicates whether+ -- the implementation supports feedback of subpass merging.+ subpassMergeFeedback :: Bool }+ deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (PhysicalDeviceSubpassMergeFeedbackFeaturesEXT)+#endif+deriving instance Show PhysicalDeviceSubpassMergeFeedbackFeaturesEXT++instance ToCStruct PhysicalDeviceSubpassMergeFeedbackFeaturesEXT where+ withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)+ pokeCStruct p PhysicalDeviceSubpassMergeFeedbackFeaturesEXT{..} f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_MERGE_FEEDBACK_FEATURES_EXT)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (subpassMergeFeedback))+ f+ cStructSize = 24+ cStructAlignment = 8+ pokeZeroCStruct p f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_MERGE_FEEDBACK_FEATURES_EXT)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (zero))+ f++instance FromCStruct PhysicalDeviceSubpassMergeFeedbackFeaturesEXT where+ peekCStruct p = do+ subpassMergeFeedback <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))+ pure $ PhysicalDeviceSubpassMergeFeedbackFeaturesEXT+ (bool32ToBool subpassMergeFeedback)++instance Storable PhysicalDeviceSubpassMergeFeedbackFeaturesEXT where+ sizeOf ~_ = 24+ alignment ~_ = 8+ peek = peekCStruct+ poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero PhysicalDeviceSubpassMergeFeedbackFeaturesEXT where+ zero = PhysicalDeviceSubpassMergeFeedbackFeaturesEXT+ zero+++-- | VkSubpassMergeStatusEXT - Specify a subpass merging status+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_subpass_merge_feedback VK_EXT_subpass_merge_feedback>,+-- 'RenderPassSubpassFeedbackInfoEXT'+newtype SubpassMergeStatusEXT = SubpassMergeStatusEXT Int32+ deriving newtype (Eq, Ord, Storable, Zero)++-- | 'SUBPASS_MERGE_STATUS_MERGED_EXT' specifies the subpass is merged with a+-- previous subpass.+pattern SUBPASS_MERGE_STATUS_MERGED_EXT = SubpassMergeStatusEXT 0+-- | 'SUBPASS_MERGE_STATUS_DISALLOWED_EXT' specifies the subpass is+-- disallowed to merge with previous subpass. If the render pass does not+-- allow subpass merging, then all subpass statuses are set to this value.+-- If a subpass description does not allow subpass merging, then only that+-- subpass’s status is set to this value.+pattern SUBPASS_MERGE_STATUS_DISALLOWED_EXT = SubpassMergeStatusEXT 1+-- | 'SUBPASS_MERGE_STATUS_NOT_MERGED_SIDE_EFFECTS_EXT' specifies the subpass+-- is not merged because it contains side effects.+pattern SUBPASS_MERGE_STATUS_NOT_MERGED_SIDE_EFFECTS_EXT = SubpassMergeStatusEXT 2+-- | 'SUBPASS_MERGE_STATUS_NOT_MERGED_SAMPLES_MISMATCH_EXT' specifies the+-- subpass is not merged because sample count is not compatible with+-- previous subpass.+pattern SUBPASS_MERGE_STATUS_NOT_MERGED_SAMPLES_MISMATCH_EXT = SubpassMergeStatusEXT 3+-- | 'SUBPASS_MERGE_STATUS_NOT_MERGED_VIEWS_MISMATCH_EXT' specifies the+-- subpass is not merged because view masks do not match with previous+-- subpass.+pattern SUBPASS_MERGE_STATUS_NOT_MERGED_VIEWS_MISMATCH_EXT = SubpassMergeStatusEXT 4+-- | 'SUBPASS_MERGE_STATUS_NOT_MERGED_ALIASING_EXT' specifies the subpass is+-- not merged because of attachments aliasing between them.+pattern SUBPASS_MERGE_STATUS_NOT_MERGED_ALIASING_EXT = SubpassMergeStatusEXT 5+-- | 'SUBPASS_MERGE_STATUS_NOT_MERGED_DEPENDENCIES_EXT' specifies the subpass+-- is not merged because subpass dependencies do not allow merging.+pattern SUBPASS_MERGE_STATUS_NOT_MERGED_DEPENDENCIES_EXT = SubpassMergeStatusEXT 6+-- | 'SUBPASS_MERGE_STATUS_NOT_MERGED_INCOMPATIBLE_INPUT_ATTACHMENT_EXT'+-- specifies the subpass is not merged because input attachment is not a+-- color attachment from previous subpass or the formats are incompatible.+pattern SUBPASS_MERGE_STATUS_NOT_MERGED_INCOMPATIBLE_INPUT_ATTACHMENT_EXT = SubpassMergeStatusEXT 7+-- | 'SUBPASS_MERGE_STATUS_NOT_MERGED_TOO_MANY_ATTACHMENTS_EXT' specifies the+-- subpass is not merged because of too many attachments.+pattern SUBPASS_MERGE_STATUS_NOT_MERGED_TOO_MANY_ATTACHMENTS_EXT = SubpassMergeStatusEXT 8+-- | 'SUBPASS_MERGE_STATUS_NOT_MERGED_INSUFFICIENT_STORAGE_EXT' specifies the+-- subpass is not merged because of insufficient memory.+pattern SUBPASS_MERGE_STATUS_NOT_MERGED_INSUFFICIENT_STORAGE_EXT = SubpassMergeStatusEXT 9+-- | 'SUBPASS_MERGE_STATUS_NOT_MERGED_DEPTH_STENCIL_COUNT_EXT' specifies the+-- subpass is not merged because of too many depth\/stencil attachments.+pattern SUBPASS_MERGE_STATUS_NOT_MERGED_DEPTH_STENCIL_COUNT_EXT = SubpassMergeStatusEXT 10+-- | 'SUBPASS_MERGE_STATUS_NOT_MERGED_RESOLVE_ATTACHMENT_REUSE_EXT' specifies+-- the subpass is not merged because a resolve attachment is reused as an+-- input attachment in a subsequent subpass.+pattern SUBPASS_MERGE_STATUS_NOT_MERGED_RESOLVE_ATTACHMENT_REUSE_EXT = SubpassMergeStatusEXT 11+-- | 'SUBPASS_MERGE_STATUS_NOT_MERGED_SINGLE_SUBPASS_EXT' specifies the+-- subpass is not merged because the render pass has only one subpass.+pattern SUBPASS_MERGE_STATUS_NOT_MERGED_SINGLE_SUBPASS_EXT = SubpassMergeStatusEXT 12+-- | 'SUBPASS_MERGE_STATUS_NOT_MERGED_UNSPECIFIED_EXT' specifies other+-- reasons why subpass is not merged. It is also the recommended default+-- value that should be reported when a subpass is not merged and when no+-- other value is appropriate.+pattern SUBPASS_MERGE_STATUS_NOT_MERGED_UNSPECIFIED_EXT = SubpassMergeStatusEXT 13+{-# complete SUBPASS_MERGE_STATUS_MERGED_EXT,+ SUBPASS_MERGE_STATUS_DISALLOWED_EXT,+ SUBPASS_MERGE_STATUS_NOT_MERGED_SIDE_EFFECTS_EXT,+ SUBPASS_MERGE_STATUS_NOT_MERGED_SAMPLES_MISMATCH_EXT,+ SUBPASS_MERGE_STATUS_NOT_MERGED_VIEWS_MISMATCH_EXT,+ SUBPASS_MERGE_STATUS_NOT_MERGED_ALIASING_EXT,+ SUBPASS_MERGE_STATUS_NOT_MERGED_DEPENDENCIES_EXT,+ SUBPASS_MERGE_STATUS_NOT_MERGED_INCOMPATIBLE_INPUT_ATTACHMENT_EXT,+ SUBPASS_MERGE_STATUS_NOT_MERGED_TOO_MANY_ATTACHMENTS_EXT,+ SUBPASS_MERGE_STATUS_NOT_MERGED_INSUFFICIENT_STORAGE_EXT,+ SUBPASS_MERGE_STATUS_NOT_MERGED_DEPTH_STENCIL_COUNT_EXT,+ SUBPASS_MERGE_STATUS_NOT_MERGED_RESOLVE_ATTACHMENT_REUSE_EXT,+ SUBPASS_MERGE_STATUS_NOT_MERGED_SINGLE_SUBPASS_EXT,+ SUBPASS_MERGE_STATUS_NOT_MERGED_UNSPECIFIED_EXT :: SubpassMergeStatusEXT #-}++conNameSubpassMergeStatusEXT :: String+conNameSubpassMergeStatusEXT = "SubpassMergeStatusEXT"++enumPrefixSubpassMergeStatusEXT :: String+enumPrefixSubpassMergeStatusEXT = "SUBPASS_MERGE_STATUS_"++showTableSubpassMergeStatusEXT :: [(SubpassMergeStatusEXT, String)]+showTableSubpassMergeStatusEXT =+ [ (SUBPASS_MERGE_STATUS_MERGED_EXT , "MERGED_EXT")+ , (SUBPASS_MERGE_STATUS_DISALLOWED_EXT , "DISALLOWED_EXT")+ , (SUBPASS_MERGE_STATUS_NOT_MERGED_SIDE_EFFECTS_EXT , "NOT_MERGED_SIDE_EFFECTS_EXT")+ , (SUBPASS_MERGE_STATUS_NOT_MERGED_SAMPLES_MISMATCH_EXT , "NOT_MERGED_SAMPLES_MISMATCH_EXT")+ , (SUBPASS_MERGE_STATUS_NOT_MERGED_VIEWS_MISMATCH_EXT , "NOT_MERGED_VIEWS_MISMATCH_EXT")+ , (SUBPASS_MERGE_STATUS_NOT_MERGED_ALIASING_EXT , "NOT_MERGED_ALIASING_EXT")+ , (SUBPASS_MERGE_STATUS_NOT_MERGED_DEPENDENCIES_EXT , "NOT_MERGED_DEPENDENCIES_EXT")+ , (SUBPASS_MERGE_STATUS_NOT_MERGED_INCOMPATIBLE_INPUT_ATTACHMENT_EXT, "NOT_MERGED_INCOMPATIBLE_INPUT_ATTACHMENT_EXT")+ , (SUBPASS_MERGE_STATUS_NOT_MERGED_TOO_MANY_ATTACHMENTS_EXT , "NOT_MERGED_TOO_MANY_ATTACHMENTS_EXT")+ , (SUBPASS_MERGE_STATUS_NOT_MERGED_INSUFFICIENT_STORAGE_EXT , "NOT_MERGED_INSUFFICIENT_STORAGE_EXT")+ , (SUBPASS_MERGE_STATUS_NOT_MERGED_DEPTH_STENCIL_COUNT_EXT , "NOT_MERGED_DEPTH_STENCIL_COUNT_EXT")+ , (SUBPASS_MERGE_STATUS_NOT_MERGED_RESOLVE_ATTACHMENT_REUSE_EXT, "NOT_MERGED_RESOLVE_ATTACHMENT_REUSE_EXT")+ , (SUBPASS_MERGE_STATUS_NOT_MERGED_SINGLE_SUBPASS_EXT , "NOT_MERGED_SINGLE_SUBPASS_EXT")+ , (SUBPASS_MERGE_STATUS_NOT_MERGED_UNSPECIFIED_EXT , "NOT_MERGED_UNSPECIFIED_EXT")+ ]++instance Show SubpassMergeStatusEXT where+ showsPrec = enumShowsPrec enumPrefixSubpassMergeStatusEXT+ showTableSubpassMergeStatusEXT+ conNameSubpassMergeStatusEXT+ (\(SubpassMergeStatusEXT x) -> x)+ (showsPrec 11)++instance Read SubpassMergeStatusEXT where+ readPrec = enumReadPrec enumPrefixSubpassMergeStatusEXT+ showTableSubpassMergeStatusEXT+ conNameSubpassMergeStatusEXT+ SubpassMergeStatusEXT+++type EXT_SUBPASS_MERGE_FEEDBACK_SPEC_VERSION = 2++-- No documentation found for TopLevel "VK_EXT_SUBPASS_MERGE_FEEDBACK_SPEC_VERSION"+pattern EXT_SUBPASS_MERGE_FEEDBACK_SPEC_VERSION :: forall a . Integral a => a+pattern EXT_SUBPASS_MERGE_FEEDBACK_SPEC_VERSION = 2+++type EXT_SUBPASS_MERGE_FEEDBACK_EXTENSION_NAME = "VK_EXT_subpass_merge_feedback"++-- No documentation found for TopLevel "VK_EXT_SUBPASS_MERGE_FEEDBACK_EXTENSION_NAME"+pattern EXT_SUBPASS_MERGE_FEEDBACK_EXTENSION_NAME :: forall a . (Eq a, IsString a) => a+pattern EXT_SUBPASS_MERGE_FEEDBACK_EXTENSION_NAME = "VK_EXT_subpass_merge_feedback"+
+ src/Vulkan/Extensions/VK_EXT_subpass_merge_feedback.hs-boot view
@@ -0,0 +1,187 @@+{-# language CPP #-}+-- | = Name+--+-- VK_EXT_subpass_merge_feedback - device extension+--+-- == VK_EXT_subpass_merge_feedback+--+-- [__Name String__]+-- @VK_EXT_subpass_merge_feedback@+--+-- [__Extension Type__]+-- Device extension+--+-- [__Registered Extension Number__]+-- 459+--+-- [__Revision__]+-- 2+--+-- [__Extension and Version Dependencies__]+--+-- - Requires support for Vulkan 1.0+--+-- [__Contact__]+--+-- - Ting Wei+-- <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_EXT_subpass_merge_feedback] @catweiting%0A<<Here describe the issue or question you have about the VK_EXT_subpass_merge_feedback extension>> >+--+-- [__Extension Proposal__]+-- <https://github.com/KhronosGroup/Vulkan-Docs/tree/main/proposals/VK_EXT_subpass_merge_feedback.adoc VK_EXT_subpass_merge_feedback>+--+-- == Other Extension Metadata+--+-- [__Last Modified Date__]+-- 2022-05-24+--+-- [__IP Status__]+-- No known IP claims.+--+-- [__Contributors__]+--+-- - Jan-Harald Fredriksen, Arm+--+-- - Jorg Wagner, Arm+--+-- - Ting Wei, Arm+--+-- == Description+--+-- This extension adds a mechanism to provide feedback to an application+-- about whether the subpasses specified on render pass creation are merged+-- by the implementation. Additionally, it provides a control to enable or+-- disable subpass merging in the render pass.+--+-- == New Structures+--+-- - 'RenderPassCreationFeedbackInfoEXT'+--+-- - 'RenderPassSubpassFeedbackInfoEXT'+--+-- - Extending+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',+-- 'Vulkan.Core10.Device.DeviceCreateInfo':+--+-- - 'PhysicalDeviceSubpassMergeFeedbackFeaturesEXT'+--+-- - Extending+-- 'Vulkan.Core12.Promoted_From_VK_KHR_create_renderpass2.RenderPassCreateInfo2':+--+-- - 'RenderPassCreationFeedbackCreateInfoEXT'+--+-- - Extending+-- 'Vulkan.Core12.Promoted_From_VK_KHR_create_renderpass2.RenderPassCreateInfo2',+-- 'Vulkan.Core12.Promoted_From_VK_KHR_create_renderpass2.SubpassDescription2':+--+-- - 'RenderPassCreationControlEXT'+--+-- - Extending+-- 'Vulkan.Core12.Promoted_From_VK_KHR_create_renderpass2.SubpassDescription2':+--+-- - 'RenderPassSubpassFeedbackCreateInfoEXT'+--+-- == New Enums+--+-- - 'SubpassMergeStatusEXT'+--+-- == New Enum Constants+--+-- - 'EXT_SUBPASS_MERGE_FEEDBACK_EXTENSION_NAME'+--+-- - 'EXT_SUBPASS_MERGE_FEEDBACK_SPEC_VERSION'+--+-- - Extending 'Vulkan.Core10.Enums.StructureType.StructureType':+--+-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_MERGE_FEEDBACK_FEATURES_EXT'+--+-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_RENDER_PASS_CREATION_CONTROL_EXT'+--+-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_RENDER_PASS_CREATION_FEEDBACK_CREATE_INFO_EXT'+--+-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_RENDER_PASS_SUBPASS_FEEDBACK_CREATE_INFO_EXT'+--+-- == Version History+--+-- - Revision 1, 2022-03-10+--+-- - Initial draft.+--+-- - Revision 2, 2022-05-24+--+-- - Fix structextends and constness issues.+--+-- == See Also+--+-- 'PhysicalDeviceSubpassMergeFeedbackFeaturesEXT',+-- 'RenderPassCreationControlEXT',+-- 'RenderPassCreationFeedbackCreateInfoEXT',+-- 'RenderPassCreationFeedbackInfoEXT',+-- 'RenderPassSubpassFeedbackCreateInfoEXT',+-- 'RenderPassSubpassFeedbackInfoEXT', 'SubpassMergeStatusEXT'+--+-- == Document Notes+--+-- For more information, see the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_subpass_merge_feedback Vulkan Specification>+--+-- This page is a generated document. Fixes and changes should be made to+-- the generator scripts, not directly.+module Vulkan.Extensions.VK_EXT_subpass_merge_feedback ( PhysicalDeviceSubpassMergeFeedbackFeaturesEXT+ , RenderPassCreationControlEXT+ , RenderPassCreationFeedbackCreateInfoEXT+ , RenderPassCreationFeedbackInfoEXT+ , RenderPassSubpassFeedbackCreateInfoEXT+ , RenderPassSubpassFeedbackInfoEXT+ ) where++import Vulkan.CStruct (FromCStruct)+import Vulkan.CStruct (ToCStruct)+import Data.Kind (Type)++data PhysicalDeviceSubpassMergeFeedbackFeaturesEXT++instance ToCStruct PhysicalDeviceSubpassMergeFeedbackFeaturesEXT+instance Show PhysicalDeviceSubpassMergeFeedbackFeaturesEXT++instance FromCStruct PhysicalDeviceSubpassMergeFeedbackFeaturesEXT+++data RenderPassCreationControlEXT++instance ToCStruct RenderPassCreationControlEXT+instance Show RenderPassCreationControlEXT++instance FromCStruct RenderPassCreationControlEXT+++data RenderPassCreationFeedbackCreateInfoEXT++instance ToCStruct RenderPassCreationFeedbackCreateInfoEXT+instance Show RenderPassCreationFeedbackCreateInfoEXT++instance FromCStruct RenderPassCreationFeedbackCreateInfoEXT+++data RenderPassCreationFeedbackInfoEXT++instance ToCStruct RenderPassCreationFeedbackInfoEXT+instance Show RenderPassCreationFeedbackInfoEXT++instance FromCStruct RenderPassCreationFeedbackInfoEXT+++data RenderPassSubpassFeedbackCreateInfoEXT++instance ToCStruct RenderPassSubpassFeedbackCreateInfoEXT+instance Show RenderPassSubpassFeedbackCreateInfoEXT++instance FromCStruct RenderPassSubpassFeedbackCreateInfoEXT+++data RenderPassSubpassFeedbackInfoEXT++instance ToCStruct RenderPassSubpassFeedbackInfoEXT+instance Show RenderPassSubpassFeedbackInfoEXT++instance FromCStruct RenderPassSubpassFeedbackInfoEXT+
src/Vulkan/Extensions/VK_EXT_swapchain_colorspace.hs view
@@ -19,9 +19,9 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_surface@+-- - Requires @VK_KHR_surface@ to be enabled -- -- [__Contact__] --@@ -133,7 +133,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_swapchain_colorspace Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_swapchain_colorspace Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_EXT_texel_buffer_alignment.hs view
@@ -19,9 +19,10 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_get_physical_device_properties2@+-- - Requires @VK_KHR_get_physical_device_properties2@ to be enabled+-- for any device-level functionality -- -- [__Deprecation state__] --@@ -102,7 +103,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_texel_buffer_alignment Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_texel_buffer_alignment Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_EXT_texel_buffer_alignment.hs-boot view
@@ -19,9 +19,10 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_get_physical_device_properties2@+-- - Requires @VK_KHR_get_physical_device_properties2@ to be enabled+-- for any device-level functionality -- -- [__Deprecation state__] --@@ -102,7 +103,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_texel_buffer_alignment Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_texel_buffer_alignment Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_EXT_texture_compression_astc_hdr.hs view
@@ -19,9 +19,10 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_get_physical_device_properties2@+-- - Requires @VK_KHR_get_physical_device_properties2@ to be enabled+-- for any device-level functionality -- -- [__Deprecation state__] --@@ -56,7 +57,7 @@ -- -- When this extension is enabled, the HDR profile is supported for all -- ASTC formats listed in--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#appendix-compressedtex-astc ASTC Compressed Image Formats>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#appendix-compressedtex-astc ASTC Compressed Image Formats>. -- -- == New Structures --@@ -153,7 +154,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_texture_compression_astc_hdr Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_texture_compression_astc_hdr Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_EXT_tooling_info.hs view
@@ -19,7 +19,7 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 -- -- [__Deprecation state__] --@@ -181,7 +181,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_tooling_info Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_tooling_info Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_EXT_transform_feedback.hs view
@@ -19,9 +19,10 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_get_physical_device_properties2@+-- - Requires @VK_KHR_get_physical_device_properties2@ to be enabled+-- for any device-level functionality -- -- [__Special Uses__] --@@ -206,7 +207,7 @@ -- A query pool created with this type will capture 2 integers - -- numPrimitivesWritten and numPrimitivesNeeded - for the specified vertex -- stream output from the last--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader stage>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader stage>. -- The vertex stream output queried is zero by default, but can be -- specified with the new 'cmdBeginQueryIndexedEXT' and -- 'cmdEndQueryIndexedEXT' commands.@@ -230,7 +231,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_transform_feedback Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_transform_feedback Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.@@ -413,6 +414,9 @@ -- The 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was -- allocated from /must/ support graphics operations --+-- - #VUID-vkCmdBindTransformFeedbackBuffersEXT-videocoding# This command+-- /must/ only be called outside of a video coding scope+-- -- - #VUID-vkCmdBindTransformFeedbackBuffersEXT-bindingCount-arraylength# -- @bindingCount@ /must/ be greater than @0@ --@@ -432,12 +436,12 @@ -- -- \' ----- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | Primary | Both | Graphics |--- | Secondary | | |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================++-- | Primary | Both | Outside | Graphics |+-- | Secondary | | | |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+ -- -- = See Also --@@ -552,7 +556,7 @@ -- 'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_GRAPHICS' -- -- - #VUID-vkCmdBeginTransformFeedbackEXT-None-04128# The last--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader stage>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader stage> -- of the bound graphics pipeline /must/ have been declared with the -- @Xfb@ execution mode --@@ -583,6 +587,9 @@ -- - #VUID-vkCmdBeginTransformFeedbackEXT-renderpass# This command /must/ -- only be called inside of a render pass instance --+-- - #VUID-vkCmdBeginTransformFeedbackEXT-videocoding# This command+-- /must/ only be called outside of a video coding scope+-- -- - #VUID-vkCmdBeginTransformFeedbackEXT-commonparent# Both of -- @commandBuffer@, and the elements of @pCounterBuffers@ that are -- valid handles of non-ignored parameters /must/ have been created,@@ -599,12 +606,12 @@ -- -- \' ----- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | Primary | Inside | Graphics |--- | Secondary | | |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================++-- | Primary | Inside | Outside | Graphics |+-- | Secondary | | | |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+ -- -- = See Also --@@ -746,6 +753,9 @@ -- - #VUID-vkCmdEndTransformFeedbackEXT-renderpass# This command /must/ -- only be called inside of a render pass instance --+-- - #VUID-vkCmdEndTransformFeedbackEXT-videocoding# This command /must/+-- only be called outside of a video coding scope+-- -- - #VUID-vkCmdEndTransformFeedbackEXT-commonparent# Both of -- @commandBuffer@, and the elements of @pCounterBuffers@ that are -- valid handles of non-ignored parameters /must/ have been created,@@ -762,12 +772,12 @@ -- -- \' ----- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | Primary | Inside | Graphics |--- | Secondary | | |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================++-- | Primary | Inside | Outside | Graphics |+-- | Secondary | | | |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+ -- -- = See Also --@@ -838,6 +848,24 @@ -- 'Vulkan.Core10.CommandBufferBuilding.cmdBeginQuery' command, except that -- it also accepts a query type specific @index@ parameter. --+-- This command defines an execution dependency between other query+-- commands that reference the same query index.+--+-- The first+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>+-- includes all commands which reference the queries in @queryPool@+-- indicated by @query@ and @index@ that occur earlier in+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-submission-order submission order>.+--+-- The second+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>+-- includes all commands which reference the queries in @queryPool@+-- indicated by @query@ and @index@ that occur later in+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-submission-order submission order>.+--+-- The operation of this command happens after the first scope and happens+-- before the second scope.+-- -- == Valid Usage -- -- - #VUID-vkCmdBeginQueryIndexedEXT-None-00807# All queries used by the@@ -853,12 +881,18 @@ -- or -- 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR' --+-- - #VUID-vkCmdBeginQueryIndexedEXT-queryType-06741# The @queryType@+-- used to create @queryPool@ /must/ not be+-- 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_ACCELERATION_STRUCTURE_SIZE_KHR'+-- or+-- 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_BOTTOM_LEVEL_POINTERS_KHR'+-- -- - #VUID-vkCmdBeginQueryIndexedEXT-queryType-04729# The @queryType@ -- used to create @queryPool@ /must/ not be -- 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_NV' -- -- - #VUID-vkCmdBeginQueryIndexedEXT-queryType-00800# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-occlusionQueryPrecise precise occlusion queries>+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-occlusionQueryPrecise occlusionQueryPrecise> -- feature is not enabled, or the @queryType@ used to create -- @queryPool@ was not -- 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_OCCLUSION', @flags@ /must/@@ -896,9 +930,16 @@ -- in the current subpass’s view mask /must/ be less than or equal to -- the number of queries in @queryPool@ --+-- - #VUID-vkCmdBeginQueryIndexedEXT-queryType-04862# If the @queryType@+-- used to create @queryPool@ was+-- @VK_QUERY_TYPE_VIDEO_ENCODE_BITSTREAM_BUFFER_RANGE_KHR@ the+-- 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+-- allocated from /must/ support+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#video-encode-operations video encode operations>+-- -- - #VUID-vkCmdBeginQueryIndexedEXT-queryPool-04753# If the @queryPool@ -- was created with the same @queryType@ as that of another--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#queries-operation-active active>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#queries-operation-active active> -- query within @commandBuffer@, then @index@ /must/ not match the -- index used for the active query --@@ -930,7 +971,7 @@ -- used to create @queryPool@ was -- 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PRIMITIVES_GENERATED_EXT' -- and the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-primitivesGeneratedQueryWithNonZeroStreams primitivesGeneratedQueryWithNonZeroStreams>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-primitivesGeneratedQueryWithNonZeroStreams primitivesGeneratedQueryWithNonZeroStreams> -- feature is not enabled, the @index@ parameter /must/ be zero. -- -- - #VUID-vkCmdBeginQueryIndexedEXT-queryType-06692# If the @queryType@@@ -944,7 +985,7 @@ -- used to create @queryPool@ was -- 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PRIMITIVES_GENERATED_EXT' -- then--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-primitivesGeneratedQuery primitivesGeneratedQuery>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-primitivesGeneratedQuery primitivesGeneratedQuery> -- /must/ be enabled -- -- - #VUID-vkCmdBeginQueryIndexedEXT-queryType-02341# If the @queryType@@@ -954,6 +995,10 @@ -- 'PhysicalDeviceTransformFeedbackPropertiesEXT'::@transformFeedbackQueries@ -- /must/ be supported --+-- - #VUID-vkCmdBeginQueryIndexedEXT-queryType-07071# The @queryType@+-- used to create @queryPool@ /must/ not be+-- 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_MESH_PRIMITIVES_GENERATED_EXT'+-- -- - #VUID-vkCmdBeginQueryIndexedEXT-queryPool-03223# If @queryPool@ was -- created with a @queryType@ of -- 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PERFORMANCE_QUERY_KHR',@@ -1020,6 +1065,9 @@ -- 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was -- allocated from /must/ support graphics, or compute operations --+-- - #VUID-vkCmdBeginQueryIndexedEXT-videocoding# This command /must/+-- only be called outside of a video coding scope+-- -- - #VUID-vkCmdBeginQueryIndexedEXT-commonparent# Both of -- @commandBuffer@, and @queryPool@ /must/ have been created, -- allocated, or retrieved from the same 'Vulkan.Core10.Handles.Device'@@ -1035,19 +1083,22 @@ -- -- \' ----- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | Primary | Both | Graphics |--- | Secondary | | Compute |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================++-- | Primary | Both | Outside | Graphics |+-- | Secondary | | | Compute |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+ -- -- = See Also -- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_transform_feedback VK_EXT_transform_feedback>, -- 'Vulkan.Core10.Handles.CommandBuffer', -- 'Vulkan.Core10.Enums.QueryControlFlagBits.QueryControlFlags',--- 'Vulkan.Core10.Handles.QueryPool'+-- 'Vulkan.Core10.Handles.QueryPool',+-- 'Vulkan.Core10.CommandBufferBuilding.cmdBeginQuery',+-- 'Vulkan.Core10.CommandBufferBuilding.cmdEndQuery',+-- 'cmdEndQueryIndexedEXT' cmdBeginQueryIndexedEXT :: forall io . (MonadIO io) => -- | @commandBuffer@ is the command buffer into which this command will be@@ -1097,15 +1148,31 @@ -- -- = Description --+-- The command completes the query in @queryPool@ identified by @query@ and+-- @index@, and marks it as available.+-- -- The 'cmdEndQueryIndexedEXT' command operates the same as the -- 'Vulkan.Core10.CommandBufferBuilding.cmdEndQuery' command, except that -- it also accepts a query type specific @index@ parameter. --+-- This command defines an execution dependency between other query+-- commands that reference the same query index.+--+-- The first+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>+-- includes all commands which reference the queries in @queryPool@+-- indicated by @query@ that occur earlier in+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-submission-order submission order>.+--+-- The second+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>+-- includes only the operation of this command.+-- -- == Valid Usage -- -- - #VUID-vkCmdEndQueryIndexedEXT-None-02342# All queries used by the -- command /must/ be--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#queries-operation-active active>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#queries-operation-active active> -- -- - #VUID-vkCmdEndQueryIndexedEXT-query-02343# @query@ /must/ be less -- than the number of queries in @queryPool@@@ -1141,6 +1208,16 @@ -- 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PRIMITIVES_GENERATED_EXT', -- @index@ /must/ equal the @index@ used to begin the query --+-- - [[VUID-{refpage}-None-07007]] If called within a subpass of a render+-- pass instance, the corresponding+-- 'Vulkan.Core10.CommandBufferBuilding.cmdBeginQuery'* command /must/+-- have been called previously within the same subpass+--+-- - [[VUID-{refpage}-None-07008]] If called outside of a render pass+-- instance, the corresponding+-- 'Vulkan.Core10.CommandBufferBuilding.cmdBeginQuery'* command /must/+-- have been called outside of a render pass instance+-- -- == Valid Usage (Implicit) -- -- - #VUID-vkCmdEndQueryIndexedEXT-commandBuffer-parameter#@@ -1158,6 +1235,9 @@ -- 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was -- allocated from /must/ support graphics, or compute operations --+-- - #VUID-vkCmdEndQueryIndexedEXT-videocoding# This command /must/ only+-- be called outside of a video coding scope+-- -- - #VUID-vkCmdEndQueryIndexedEXT-commonparent# Both of @commandBuffer@, -- and @queryPool@ /must/ have been created, allocated, or retrieved -- from the same 'Vulkan.Core10.Handles.Device'@@ -1173,17 +1253,21 @@ -- -- \' ----- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | Primary | Both | Graphics |--- | Secondary | | Compute |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================++-- | Primary | Both | Outside | Graphics |+-- | Secondary | | | Compute |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+ -- -- = See Also -- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_transform_feedback VK_EXT_transform_feedback>,--- 'Vulkan.Core10.Handles.CommandBuffer', 'Vulkan.Core10.Handles.QueryPool'+-- 'Vulkan.Core10.Handles.CommandBuffer',+-- 'Vulkan.Core10.Handles.QueryPool',+-- 'Vulkan.Core10.CommandBufferBuilding.cmdBeginQuery',+-- 'cmdBeginQueryIndexedEXT',+-- 'Vulkan.Core10.CommandBufferBuilding.cmdEndQuery' cmdEndQueryIndexedEXT :: forall io . (MonadIO io) => -- | @commandBuffer@ is the command buffer into which this command will be@@ -1271,16 +1355,16 @@ -- -- - #VUID-vkCmdDrawIndirectByteCountEXT-None-02692# If a -- 'Vulkan.Core10.Handles.ImageView' is sampled with--- 'Vulkan.Extensions.VK_EXT_filter_cubic.FILTER_CUBIC_EXT' as a result--- of this command, then the image view’s+-- 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as a result of this+-- command, then the image view’s -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features> -- /must/ contain--- 'Vulkan.Extensions.VK_EXT_filter_cubic.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT'+-- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT' -- -- - #VUID-vkCmdDrawIndirectByteCountEXT-filterCubic-02694# Any -- 'Vulkan.Core10.Handles.ImageView' being sampled with--- 'Vulkan.Extensions.VK_EXT_filter_cubic.FILTER_CUBIC_EXT' as a result--- of this command /must/ have a+-- 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as a result of this+-- command /must/ have a -- 'Vulkan.Core10.Enums.ImageViewType.ImageViewType' and format that -- supports cubic filtering, as specified by -- 'Vulkan.Extensions.VK_EXT_filter_cubic.FilterCubicImageViewImageFormatPropertiesEXT'::@filterCubic@@@ -1289,8 +1373,8 @@ -- -- - #VUID-vkCmdDrawIndirectByteCountEXT-filterCubicMinmax-02695# Any -- 'Vulkan.Core10.Handles.ImageView' being sampled with--- 'Vulkan.Extensions.VK_EXT_filter_cubic.FILTER_CUBIC_EXT' with a--- reduction mode of either+-- 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' with a reduction mode+-- of either -- 'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MIN' -- or -- 'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MAX'@@ -1310,22 +1394,38 @@ -- 'Vulkan.Core10.Enums.SamplerAddressMode.SamplerAddressMode' of -- 'Vulkan.Core10.Enums.SamplerAddressMode.SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE' ----- - #VUID-vkCmdDrawIndirectByteCountEXT-OpTypeImage-06423# Any--- 'Vulkan.Core10.Handles.ImageView' or--- 'Vulkan.Core10.Handles.BufferView' being written as a storage image--- or storage texel buffer where the image format field of the--- @OpTypeImage@ is @Unknown@ then the view’s format feature /must/--- contain+-- - #VUID-vkCmdDrawIndirectByteCountEXT-OpTypeImage-07027# For any+-- 'Vulkan.Core10.Handles.ImageView' being written as a storage image+-- where the image format field of the @OpTypeImage@ is @Unknown@, the+-- view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain -- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT' ----- - #VUID-vkCmdDrawIndirectByteCountEXT-OpTypeImage-06424# Any--- 'Vulkan.Core10.Handles.ImageView' or--- 'Vulkan.Core10.Handles.BufferView' being read as a storage image or--- storage texel buffer where the image format field of the--- @OpTypeImage@ is @Unknown@ then the view’s format feature /must/--- contain+-- - #VUID-vkCmdDrawIndirectByteCountEXT-OpTypeImage-07028# For any+-- 'Vulkan.Core10.Handles.ImageView' being read as a storage image+-- where the image format field of the @OpTypeImage@ is @Unknown@, the+-- view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain -- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT' --+-- - #VUID-vkCmdDrawIndirectByteCountEXT-OpTypeImage-07029# For any+-- 'Vulkan.Core10.Handles.BufferView' being written as a storage texel+-- buffer where the image format field of the @OpTypeImage@ is+-- @Unknown@, the view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkFormatProperties3 buffer features>+-- /must/ contain+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT'+--+-- - #VUID-vkCmdDrawIndirectByteCountEXT-OpTypeImage-07030# Any+-- 'Vulkan.Core10.Handles.BufferView' being read as a storage texel+-- buffer where the image format field of the @OpTypeImage@ is+-- @Unknown@ then the view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkFormatProperties3 buffer features>+-- /must/ contain+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT'+-- -- - #VUID-vkCmdDrawIndirectByteCountEXT-None-02697# For each set /n/ -- that is statically used by the 'Vulkan.Core10.Handles.Pipeline' -- bound to the pipeline bind point used by this command, a descriptor@@ -1400,21 +1500,31 @@ -- @OpImageSample*@ or @OpImageSparseSample*@ instructions that -- includes a LOD bias or any offset values, in any shader stage ----- - #VUID-vkCmdDrawIndirectByteCountEXT-None-02705# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robust buffer access>--- feature is not enabled, and if the 'Vulkan.Core10.Handles.Pipeline'--- object bound to the pipeline bind point used by this command--- accesses a uniform buffer, it /must/ not access values outside of--- the range of the buffer as specified in the descriptor set bound to--- the same pipeline bind point+-- - #VUID-vkCmdDrawIndirectByteCountEXT-uniformBuffers-06935# If any+-- stage of the 'Vulkan.Core10.Handles.Pipeline' object bound to the+-- pipeline bind point used by this command accesses a uniform buffer,+-- and that stage was created without enabling either+-- 'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT'+-- or+-- 'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT'+-- for @uniformBuffers@, and the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>+-- feature is not enabled, that stage /must/ not access values outside+-- of the range of the buffer as specified in the descriptor set bound+-- to the same pipeline bind point ----- - #VUID-vkCmdDrawIndirectByteCountEXT-None-02706# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robust buffer access>--- feature is not enabled, and if the 'Vulkan.Core10.Handles.Pipeline'--- object bound to the pipeline bind point used by this command--- accesses a storage buffer, it /must/ not access values outside of--- the range of the buffer as specified in the descriptor set bound to--- the same pipeline bind point+-- - #VUID-vkCmdDrawIndirectByteCountEXT-storageBuffers-06936# If any+-- stage of the 'Vulkan.Core10.Handles.Pipeline' object bound to the+-- pipeline bind point used by this command accesses a storage buffer,+-- and that stage was created without enabling either+-- 'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT'+-- or+-- 'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT'+-- for @storageBuffers@, and the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>+-- feature is not enabled, that stage /must/ not access values outside+-- of the range of the buffer as specified in the descriptor set bound+-- to the same pipeline bind point -- -- - #VUID-vkCmdDrawIndirectByteCountEXT-commandBuffer-02707# If -- @commandBuffer@ is an unprotected command buffer and@@ -1500,6 +1610,67 @@ -- @OpTypeImage@ with a @SampledType@ with a @Width@ of 64 by this -- command --+-- - #VUID-vkCmdDrawIndirectByteCountEXT-OpImageWeightedSampleQCOM-06971#+-- If @OpImageWeightedSampleQCOM@ is used to sample a+-- 'Vulkan.Core10.Handles.ImageView' as a result of this command, then+-- the image view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM'+--+-- - #VUID-vkCmdDrawIndirectByteCountEXT-OpImageWeightedSampleQCOM-06972#+-- If @OpImageWeightedSampleQCOM@ uses a+-- 'Vulkan.Core10.Handles.ImageView' as a sample weight image as a+-- result of this command, then the image view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM'+--+-- - #VUID-vkCmdDrawIndirectByteCountEXT-OpImageBoxFilterQCOM-06973# If+-- @OpImageBoxFilterQCOM@ is used to sample a+-- 'Vulkan.Core10.Handles.ImageView' as a result of this command, then+-- the image view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM'+--+-- - #VUID-vkCmdDrawIndirectByteCountEXT-OpImageBlockMatchSSDQCOM-06974#+-- If @OpImageBlockMatchSSDQCOM@ is used to read from an+-- 'Vulkan.Core10.Handles.ImageView' as a result of this command, then+-- the image view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM'+--+-- - #VUID-vkCmdDrawIndirectByteCountEXT-OpImageBlockMatchSADQCOM-06975#+-- If @OpImageBlockMatchSADQCOM@ is used to read from an+-- 'Vulkan.Core10.Handles.ImageView' as a result of this command, then+-- the image view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM'+--+-- - #VUID-vkCmdDrawIndirectByteCountEXT-OpImageBlockMatchSADQCOM-06976#+-- If @OpImageBlockMatchSADQCOM@ or OpImageBlockMatchSSDQCOM is used to+-- read from a reference image as result of this command, then the+-- specified reference coordinates /must/ not fail+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-integer-coordinate-validation integer texel coordinate validation>.+--+-- - #VUID-vkCmdDrawIndirectByteCountEXT-OpImageWeightedSampleQCOM-06977#+-- If @OpImageWeightedSampleQCOM@, @OpImageBoxFilterQCOM@,+-- @OpImageBlockMatchSSDQCOM@, or @OpImageBlockMatchSADQCOM@ uses a+-- 'Vulkan.Core10.Handles.Sampler' as a result of this command, then+-- the sampler /must/ have been created with+-- 'Vulkan.Core10.Enums.SamplerCreateFlagBits.SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM'.+--+-- - #VUID-vkCmdDrawIndirectByteCountEXT-OpImageWeightedSampleQCOM-06978#+-- If any command other than @OpImageWeightedSampleQCOM@,+-- @OpImageBoxFilterQCOM@, @OpImageBlockMatchSSDQCOM@, or+-- @OpImageBlockMatchSADQCOM@ uses a 'Vulkan.Core10.Handles.Sampler' as+-- a result of this command, then the sampler /must/ not have been+-- created with+-- 'Vulkan.Core10.Enums.SamplerCreateFlagBits.SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM'.+-- -- - #VUID-vkCmdDrawIndirectByteCountEXT-renderPass-02684# The current -- render pass /must/ be -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-compatibility compatible>@@ -1535,6 +1706,18 @@ -- used as an attachment in any way other than as an attachment, this -- command /must/ not write to that image subresource as an attachment --+-- - #VUID-vkCmdDrawIndirectByteCountEXT-None-06886# If the current+-- render pass instance uses a depth\/stencil attachment with a+-- read-only layout for the depth aspect,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragops-depth-write depth writes>+-- /must/ be disabled+--+-- - #VUID-vkCmdDrawIndirectByteCountEXT-None-06887# If the current+-- render pass instance uses a depth\/stencil attachment with a+-- read-only layout for the stencil aspect and stencil test is enabled,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragops-stencil all stencil ops>+-- /must/ be 'Vulkan.Core10.Enums.StencilOp.STENCIL_OP_KEEP'+-- -- - #VUID-vkCmdDrawIndirectByteCountEXT-maxMultiviewInstanceIndex-02688# -- If the draw is recorded in a render pass instance with multiview -- enabled, the maximum instance index /must/ be less than or equal to@@ -1653,8 +1836,9 @@ -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT' -- dynamic state enabled and a -- 'Vulkan.Extensions.VK_NV_viewport_swizzle.PipelineViewportSwizzleStateCreateInfoNV'--- structure chained from @VkPipelineVieportCreateInfo@, then the bound--- graphics pipeline /must/ have been created with+-- structure chained from+-- 'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo', then the+-- bound graphics pipeline /must/ have been created with -- 'Vulkan.Extensions.VK_NV_viewport_swizzle.PipelineViewportSwizzleStateCreateInfoNV'::@viewportCount@ -- greater or equal to the @viewportCount@ parameter in the last call -- to@@ -1665,8 +1849,9 @@ -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT' -- dynamic state enabled and a -- 'Vulkan.Extensions.VK_NV_scissor_exclusive.PipelineViewportExclusiveScissorStateCreateInfoNV'--- structure chained from @VkPipelineVieportCreateInfo@, then the bound--- graphics pipeline /must/ have been created with+-- structure chained from+-- 'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo', then the+-- bound graphics pipeline /must/ have been created with -- 'Vulkan.Extensions.VK_NV_scissor_exclusive.PipelineViewportExclusiveScissorStateCreateInfoNV'::@exclusiveScissorCount@ -- greater or equal to the @viewportCount@ parameter in the last call -- to@@ -1825,31 +2010,42 @@ -- /must/ have been called in the current command buffer prior to this -- drawing command, and the @attachmentCount@ parameter of -- 'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'--- /must/ be equal to the+-- /must/ be greater than or equal to the -- 'Vulkan.Core10.Pipeline.PipelineColorBlendStateCreateInfo'::@attachmentCount@ -- of the currently bound graphics pipeline --+-- - #VUID-vkCmdDrawIndirectByteCountEXT-attachmentCount-06815# If the+-- bound graphics pipeline state was created with the+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT'+-- dynamic state enabled then+-- 'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'+-- /must/ have been called in the current command buffer prior to this+-- drawing command, and the @attachmentCount@ parameter of+-- 'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'+-- /must/ be less than or equal to the @maxColorAttachments@ member of+-- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'+-- -- - #VUID-vkCmdDrawIndirectByteCountEXT-pDepthAttachment-06181# If the -- current render pass instance was begun with -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' -- and--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->pname@:imageView+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@ -- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@depthAttachmentFormat@ -- used to create the currently bound graphics pipeline /must/ be equal -- to the 'Vulkan.Core10.Enums.Format.Format' used to create--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->pname@:imageView+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@ -- -- - #VUID-vkCmdDrawIndirectByteCountEXT-pStencilAttachment-06182# If the -- current render pass instance was begun with -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' -- and--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->pname@:imageView+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@ -- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@stencilAttachmentFormat@ -- used to create the currently bound graphics pipeline /must/ be equal -- to the 'Vulkan.Core10.Enums.Format.Format' used to create--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->pname@:imageView+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@ -- -- - #VUID-vkCmdDrawIndirectByteCountEXT-imageView-06183# If the current -- render pass instance was begun with@@ -1897,7 +2093,7 @@ -- or -- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV' -- structure, and--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->pname@:imageView+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@ -- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of the -- @depthStencilAttachmentSamples@ member of -- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'@@ -1905,7 +2101,7 @@ -- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV' -- used to create the currently bound graphics pipeline /must/ be equal -- to the sample count used to create--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->pname@:imageView+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@ -- -- - #VUID-vkCmdDrawIndirectByteCountEXT-pStencilAttachment-06187# If the -- current render pass instance was begun with@@ -1915,7 +2111,7 @@ -- or -- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV' -- structure, and--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->pname@:imageView+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@ -- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of the -- @depthStencilAttachmentSamples@ member of -- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'@@ -1923,7 +2119,7 @@ -- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV' -- used to create the currently bound graphics pipeline /must/ be equal -- to the sample count used to create--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->pname@:imageView+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@ -- -- - #VUID-vkCmdDrawIndirectByteCountEXT-colorAttachmentCount-06188# If -- the currently bound pipeline was created without a@@ -1950,12 +2146,12 @@ -- or -- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV' -- structure, and--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->pname@:imageView+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@ -- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of -- 'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'::@rasterizationSamples@ -- used to create the currently bound graphics pipeline /must/ be equal -- to the sample count used to create--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->pname@:imageView+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@ -- -- - #VUID-vkCmdDrawIndirectByteCountEXT-pStencilAttachment-06190# If the -- current render pass instance was begun with@@ -1965,12 +2161,12 @@ -- or -- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV' -- structure, and--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->pname@:imageView+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@ -- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of -- 'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'::@rasterizationSamples@ -- used to create the currently bound graphics pipeline /must/ be equal -- to the sample count used to create--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->pname@:imageView+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@ -- -- - #VUID-vkCmdDrawIndirectByteCountEXT-renderPass-06198# If the current -- render pass instance was begun with@@ -1997,6 +2193,21 @@ -- created with a non-zero value in -- 'PipelineRasterizationStateStreamCreateInfoEXT'::@rasterizationStream@. --+-- - #VUID-vkCmdDrawIndirectByteCountEXT-stage-07073# If the currently+-- bound pipeline was created with the+-- 'Vulkan.Core10.Pipeline.PipelineShaderStageCreateInfo'::@stage@+-- member of an element of+-- 'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo'::@pStages@ set+-- to+-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT',+-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_CONTROL_BIT',+-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT'+-- or+-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT',+-- then+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#queries-mesh-shader Mesh Shader Queries>+-- must not be active+-- -- - #VUID-vkCmdDrawIndirectByteCountEXT-None-04007# All vertex input -- bindings accessed via vertex input variables declared in the vertex -- shader entry point’s interface /must/ have either valid or@@ -2080,9 +2291,9 @@ -- member of an element of -- 'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo'::@pStages@ set -- to--- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_NV'+-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT' -- or--- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_NV'+-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT' -- -- - #VUID-vkCmdDrawIndirectByteCountEXT-transformFeedback-02287# -- 'PhysicalDeviceTransformFeedbackFeaturesEXT'::@transformFeedback@@@ -2132,6 +2343,9 @@ -- - #VUID-vkCmdDrawIndirectByteCountEXT-renderpass# This command /must/ -- only be called inside of a render pass instance --+-- - #VUID-vkCmdDrawIndirectByteCountEXT-videocoding# This command /must/+-- only be called outside of a video coding scope+-- -- - #VUID-vkCmdDrawIndirectByteCountEXT-commonparent# Both of -- @commandBuffer@, and @counterBuffer@ /must/ have been created, -- allocated, or retrieved from the same 'Vulkan.Core10.Handles.Device'@@ -2147,12 +2361,12 @@ -- -- \' ----- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | Primary | Inside | Graphics |--- | Secondary | | |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================++-- | Primary | Inside | Outside | Graphics |+-- | Secondary | | | |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+ -- -- = See Also --@@ -2302,7 +2516,7 @@ , -- | #limits-maxTransformFeedbackBuffers# @maxTransformFeedbackBuffers@ is -- the maximum number of transform feedback buffers that can be bound for -- capturing shader outputs from the last- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader stage>.+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader stage>. maxTransformFeedbackBuffers :: Word32 , -- | #limits-maxTransformFeedbackBufferSize# @maxTransformFeedbackBufferSize@ -- is the maximum size that can be specified when binding a buffer for
src/Vulkan/Extensions/VK_EXT_transform_feedback.hs-boot view
@@ -19,9 +19,10 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_get_physical_device_properties2@+-- - Requires @VK_KHR_get_physical_device_properties2@ to be enabled+-- for any device-level functionality -- -- [__Special Uses__] --@@ -206,7 +207,7 @@ -- A query pool created with this type will capture 2 integers - -- numPrimitivesWritten and numPrimitivesNeeded - for the specified vertex -- stream output from the last--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader stage>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader stage>. -- The vertex stream output queried is zero by default, but can be -- specified with the new 'cmdBeginQueryIndexedEXT' and -- 'cmdEndQueryIndexedEXT' commands.@@ -230,7 +231,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_transform_feedback Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_transform_feedback Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_EXT_validation_cache.hs view
@@ -19,7 +19,7 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 -- -- [__Contact__] --@@ -72,7 +72,8 @@ -- -- - 'ValidationCacheCreateInfoEXT' ----- - Extending 'Vulkan.Core10.Shader.ShaderModuleCreateInfo':+-- - Extending 'Vulkan.Core10.Shader.ShaderModuleCreateInfo',+-- 'Vulkan.Core10.Pipeline.PipelineShaderStageCreateInfo': -- -- - 'ShaderModuleValidationCacheCreateInfoEXT' --@@ -118,7 +119,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_validation_cache Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_validation_cache Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.@@ -300,7 +301,7 @@ -- containing the initial parameters for the validation cache object. ValidationCacheCreateInfoEXT -> -- | @pAllocator@ controls host memory allocation as described in the- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation> -- chapter. ("allocator" ::: Maybe AllocationCallbacks) -> io (ValidationCacheEXT)@@ -391,7 +392,7 @@ -> -- | @validationCache@ is the handle of the validation cache to destroy. ValidationCacheEXT -> -- | @pAllocator@ controls host memory allocation as described in the- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation> -- chapter. ("allocator" ::: Maybe AllocationCallbacks) -> io ()
src/Vulkan/Extensions/VK_EXT_validation_cache.hs-boot view
@@ -19,7 +19,7 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 -- -- [__Contact__] --@@ -72,7 +72,8 @@ -- -- - 'ValidationCacheCreateInfoEXT' ----- - Extending 'Vulkan.Core10.Shader.ShaderModuleCreateInfo':+-- - Extending 'Vulkan.Core10.Shader.ShaderModuleCreateInfo',+-- 'Vulkan.Core10.Pipeline.PipelineShaderStageCreateInfo': -- -- - 'ShaderModuleValidationCacheCreateInfoEXT' --@@ -118,7 +119,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_validation_cache Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_validation_cache Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_EXT_validation_features.hs view
@@ -19,7 +19,7 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 -- -- [__Special Use__] --@@ -122,7 +122,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_validation_features Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_validation_features Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_EXT_validation_features.hs-boot view
@@ -19,7 +19,7 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 -- -- [__Special Use__] --@@ -122,7 +122,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_validation_features Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_validation_features Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_EXT_validation_flags.hs view
@@ -19,7 +19,7 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 -- -- [__Deprecation state__] --@@ -100,7 +100,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_validation_flags Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_validation_flags Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_EXT_validation_flags.hs-boot view
@@ -19,7 +19,7 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 -- -- [__Deprecation state__] --@@ -100,7 +100,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_validation_flags Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_validation_flags Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_EXT_vertex_attribute_divisor.hs view
@@ -19,9 +19,10 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_get_physical_device_properties2@+-- - Requires @VK_KHR_get_physical_device_properties2@ to be enabled+-- for any device-level functionality -- -- [__Contact__] --@@ -160,7 +161,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_vertex_attribute_divisor Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_vertex_attribute_divisor Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.@@ -255,7 +256,7 @@ -- queried using -- 'PhysicalDeviceVertexAttributeDivisorPropertiesEXT'::@maxVertexAttribDivisor@. -- A value of @0@ /can/ be used for the divisor if the- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-vertexAttributeInstanceRateZeroDivisor vertexAttributeInstanceRateZeroDivisor>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-vertexAttributeInstanceRateZeroDivisor vertexAttributeInstanceRateZeroDivisor> -- feature is enabled. In this case, the same vertex attribute will be -- applied to all instances. divisor :: Word32
src/Vulkan/Extensions/VK_EXT_vertex_attribute_divisor.hs-boot view
@@ -19,9 +19,10 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_get_physical_device_properties2@+-- - Requires @VK_KHR_get_physical_device_properties2@ to be enabled+-- for any device-level functionality -- -- [__Contact__] --@@ -160,7 +161,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_vertex_attribute_divisor Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_vertex_attribute_divisor Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_EXT_vertex_input_dynamic_state.hs view
@@ -19,9 +19,10 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_get_physical_device_properties2@+-- - Requires @VK_KHR_get_physical_device_properties2@ to be enabled+-- for any device-level functionality -- -- [__Contact__] --@@ -112,7 +113,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_vertex_input_dynamic_state Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_vertex_input_dynamic_state Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.@@ -205,7 +206,7 @@ -- == Valid Usage -- -- - #VUID-vkCmdSetVertexInputEXT-None-04790# The--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-vertexInputDynamicState vertexInputDynamicState>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-vertexInputDynamicState vertexInputDynamicState> -- feature /must/ be enabled -- -- - #VUID-vkCmdSetVertexInputEXT-vertexBindingDescriptionCount-04791#@@ -255,6 +256,9 @@ -- 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was -- allocated from /must/ support graphics operations --+-- - #VUID-vkCmdSetVertexInputEXT-videocoding# This command /must/ only+-- be called outside of a video coding scope+-- -- == Host Synchronization -- -- - Host access to @commandBuffer@ /must/ be externally synchronized@@ -266,12 +270,12 @@ -- -- \' ----- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | Primary | Both | Graphics |--- | Secondary | | |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================++-- | Primary | Both | Outside | Graphics |+-- | Secondary | | | |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+ -- -- = See Also --@@ -388,11 +392,11 @@ -- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxVertexInputBindingStride@ -- -- - #VUID-VkVertexInputBindingDescription2EXT-divisor-04798# If the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-vertexAttributeInstanceRateZeroDivisor vertexAttributeInstanceRateZeroDivisor>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-vertexAttributeInstanceRateZeroDivisor vertexAttributeInstanceRateZeroDivisor> -- feature is not enabled, @divisor@ /must/ not be @0@ -- -- - #VUID-VkVertexInputBindingDescription2EXT-divisor-04799# If the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-vertexAttributeInstanceRateDivisor vertexAttributeInstanceRateDivisor>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-vertexAttributeInstanceRateDivisor vertexAttributeInstanceRateDivisor> -- feature is not enabled, @divisor@ /must/ be @1@ -- -- - #VUID-VkVertexInputBindingDescription2EXT-divisor-06226# @divisor@@@ -433,14 +437,14 @@ , -- | @divisor@ is the number of successive instances that will use the same -- value of the vertex attribute when instanced rendering is enabled. This -- member /can/ be set to a value other than @1@ if the- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-vertexAttributeInstanceRateDivisor vertexAttributeInstanceRateDivisor>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-vertexAttributeInstanceRateDivisor vertexAttributeInstanceRateDivisor> -- feature is enabled. For example, if the divisor is N, the same vertex -- attribute will be applied to N successive instances before moving on to -- the next vertex attribute. The maximum value of @divisor@ is -- implementation-dependent and can be queried using -- 'Vulkan.Extensions.VK_EXT_vertex_attribute_divisor.PhysicalDeviceVertexAttributeDivisorPropertiesEXT'::@maxVertexAttribDivisor@. -- A value of @0@ /can/ be used for the divisor if the- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-vertexAttributeInstanceRateZeroDivisor vertexAttributeInstanceRateZeroDivisor>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-vertexAttributeInstanceRateZeroDivisor vertexAttributeInstanceRateZeroDivisor> -- feature is enabled. In this case, the same vertex attribute will be -- applied to all instances. divisor :: Word32
src/Vulkan/Extensions/VK_EXT_vertex_input_dynamic_state.hs-boot view
@@ -19,9 +19,10 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_get_physical_device_properties2@+-- - Requires @VK_KHR_get_physical_device_properties2@ to be enabled+-- for any device-level functionality -- -- [__Contact__] --@@ -112,7 +113,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_vertex_input_dynamic_state Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_vertex_input_dynamic_state Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_EXT_ycbcr_2plane_444_formats.hs view
@@ -19,9 +19,10 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_sampler_ycbcr_conversion@+-- - Requires @VK_KHR_sampler_ycbcr_conversion@ to be enabled for any+-- device-level functionality -- -- [__Deprecation state__] --@@ -108,7 +109,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_ycbcr_2plane_444_formats Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_ycbcr_2plane_444_formats Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_EXT_ycbcr_2plane_444_formats.hs-boot view
@@ -19,9 +19,10 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_sampler_ycbcr_conversion@+-- - Requires @VK_KHR_sampler_ycbcr_conversion@ to be enabled for any+-- device-level functionality -- -- [__Deprecation state__] --@@ -108,7 +109,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_ycbcr_2plane_444_formats Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_ycbcr_2plane_444_formats Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_EXT_ycbcr_image_arrays.hs view
@@ -19,9 +19,10 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_sampler_ycbcr_conversion@+-- - Requires @VK_KHR_sampler_ycbcr_conversion@ to be enabled for any+-- device-level functionality -- -- [__Contact__] --@@ -40,7 +41,7 @@ -- == Description -- -- This extension allows images of a format that requires--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion Y′CBCR conversion>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion Y′CBCR conversion> -- to be created with multiple array layers, which is otherwise restricted. -- -- == New Structures@@ -74,7 +75,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_ycbcr_image_arrays Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_ycbcr_image_arrays Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.@@ -137,7 +138,7 @@ data PhysicalDeviceYcbcrImageArraysFeaturesEXT = PhysicalDeviceYcbcrImageArraysFeaturesEXT { -- | #features-ycbcrImageArrays# @ycbcrImageArrays@ indicates that the -- implementation supports creating images with a format that requires- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion Y′CBCR conversion>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion Y′CBCR conversion> -- and has multiple array layers. ycbcrImageArrays :: Bool } deriving (Typeable, Eq)
src/Vulkan/Extensions/VK_EXT_ycbcr_image_arrays.hs-boot view
@@ -19,9 +19,10 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_sampler_ycbcr_conversion@+-- - Requires @VK_KHR_sampler_ycbcr_conversion@ to be enabled for any+-- device-level functionality -- -- [__Contact__] --@@ -40,7 +41,7 @@ -- == Description -- -- This extension allows images of a format that requires--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion Y′CBCR conversion>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion Y′CBCR conversion> -- to be created with multiple array layers, which is otherwise restricted. -- -- == New Structures@@ -74,7 +75,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_ycbcr_image_arrays Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_ycbcr_image_arrays Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_FUCHSIA_buffer_collection.hs view
@@ -19,11 +19,13 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_FUCHSIA_external_memory@+-- - Requires @VK_FUCHSIA_external_memory@ to be enabled for any+-- device-level functionality ----- - Requires @VK_KHR_sampler_ycbcr_conversion@+-- - Requires @VK_KHR_sampler_ycbcr_conversion@ to be enabled for any+-- device-level functionality -- -- [__Contact__] --@@ -204,7 +206,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_FUCHSIA_buffer_collection Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_FUCHSIA_buffer_collection Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.@@ -402,7 +404,7 @@ -> -- | @pAllocator@ is a pointer to a -- 'Vulkan.Core10.AllocationCallbacks.AllocationCallbacks' structure -- controlling host memory allocation as described in the- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation> -- chapter ("allocator" ::: Maybe AllocationCallbacks) -> io (BufferCollectionFUCHSIA)@@ -524,7 +526,7 @@ -- @pImageConstraintsInfo@::@formatConstraintsCount@ is larger than the -- implementation-defined limit. If that occurs, -- 'setBufferCollectionImageConstraintsFUCHSIA' will return--- VK_ERROR_INITIALIZATION_FAILED.+-- 'Vulkan.Core10.Enums.Result.ERROR_INITIALIZATION_FAILED'. -- -- 'setBufferCollectionImageConstraintsFUCHSIA' /may/ fail if the -- implementation does not support any of the formats described by the@@ -642,7 +644,7 @@ -> -- | @pAllocator@ is a pointer to a -- 'Vulkan.Core10.AllocationCallbacks.AllocationCallbacks' structure -- controlling host memory allocation as described in the- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation> -- chapter ("allocator" ::: Maybe AllocationCallbacks) -> io ()@@ -1051,7 +1053,7 @@ , -- | @bufferCount@ is the number of buffers in the collection bufferCount :: Word32 , -- | @createInfoIndex@ as described in- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#sysmem-chosen-create-infos Sysmem chosen create infos>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#sysmem-chosen-create-infos Sysmem chosen create infos> createInfoIndex :: Word32 , -- | @sysmemPixelFormat@ is the Sysmem @PixelFormatType@ as defined in -- @fuchsia.sysmem\/image_formats.fidl@@@ -1204,7 +1206,7 @@ -- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FormatFeatureFlagBits' -- /must/ be chosen from among the buffer compatible format features -- listed in--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#buffer-compatible-format-features buffer compatible format features>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#buffer-compatible-format-features buffer compatible format features> -- -- == Valid Usage (Implicit) --@@ -1483,9 +1485,9 @@ -- -- - #VUID-VkImageConstraintsInfoFUCHSIA-attachmentFragmentShadingRate-06401# -- If the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-attachmentFragmentShadingRate attachmentFragmentShadingRate feature>--- is enabled, and @pFormatConstraints@::@imageCreateInfo@::@usage@--- contains+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-attachmentFragmentShadingRate attachmentFragmentShadingRate>+-- feature is enabled, and+-- @pFormatConstraints@::@imageCreateInfo@::@usage@ contains -- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR', -- then @pFormatConstraints@::@requiredFormatFeatures@ /must/ contain -- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR'
src/Vulkan/Extensions/VK_FUCHSIA_buffer_collection.hs-boot view
@@ -19,11 +19,13 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_FUCHSIA_external_memory@+-- - Requires @VK_FUCHSIA_external_memory@ to be enabled for any+-- device-level functionality ----- - Requires @VK_KHR_sampler_ycbcr_conversion@+-- - Requires @VK_KHR_sampler_ycbcr_conversion@ to be enabled for any+-- device-level functionality -- -- [__Contact__] --@@ -204,7 +206,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_FUCHSIA_buffer_collection Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_FUCHSIA_buffer_collection Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_FUCHSIA_external_memory.hs view
@@ -19,11 +19,13 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_external_memory_capabilities@+-- - Requires @VK_KHR_external_memory_capabilities@ to be enabled for+-- any device-level functionality ----- - Requires @VK_KHR_external_memory@+-- - Requires @VK_KHR_external_memory@ to be enabled for any+-- device-level functionality -- -- [__Contact__] --@@ -111,7 +113,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_FUCHSIA_external_memory Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_FUCHSIA_external_memory Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_FUCHSIA_external_memory.hs-boot view
@@ -19,11 +19,13 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_external_memory_capabilities@+-- - Requires @VK_KHR_external_memory_capabilities@ to be enabled for+-- any device-level functionality ----- - Requires @VK_KHR_external_memory@+-- - Requires @VK_KHR_external_memory@ to be enabled for any+-- device-level functionality -- -- [__Contact__] --@@ -111,7 +113,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_FUCHSIA_external_memory Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_FUCHSIA_external_memory Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_FUCHSIA_external_semaphore.hs view
@@ -19,11 +19,13 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_external_semaphore_capabilities@+-- - Requires @VK_KHR_external_semaphore_capabilities@ to be enabled+-- for any device-level functionality ----- - Requires @VK_KHR_external_semaphore@+-- - Requires @VK_KHR_external_semaphore@ to be enabled for any+-- device-level functionality -- -- [__Contact__] --@@ -109,7 +111,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_FUCHSIA_external_semaphore Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_FUCHSIA_external_semaphore Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.@@ -203,7 +205,7 @@ -- Exporting a Zircon event handle from a semaphore /may/ have side effects -- depending on the transference of the specified handle type, as described -- in--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-semaphores-importing Importing Semaphore State>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-semaphores-importing Importing Semaphore State>. -- -- == Return Codes --@@ -334,13 +336,13 @@ -- -- - #VUID-VkImportSemaphoreZirconHandleInfoFUCHSIA-handleType-04765# -- @handleType@ /must/ be a value included in the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-semaphore-handletypes-fuchsia Handle Types Supported by >+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-semaphore-handletypes-fuchsia Handle Types Supported by > -- table -- -- - #VUID-VkImportSemaphoreZirconHandleInfoFUCHSIA-zirconHandle-04766# -- @zirconHandle@ /must/ obey any requirements listed for @handleType@ -- in--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#external-semaphore-handle-types-compatibility external semaphore handle types compatibility>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#external-semaphore-handle-types-compatibility external semaphore handle types compatibility> -- -- - #VUID-VkImportSemaphoreZirconHandleInfoFUCHSIA-zirconHandle-04767# -- @zirconHandle@ /must/ have @ZX_RIGHTS_BASIC@ and @ZX_RIGHTS_SIGNAL@@@ -472,7 +474,7 @@ -- - #VUID-VkSemaphoreGetZirconHandleInfoFUCHSIA-semaphore-04759# -- @semaphore@ /must/ not currently have its payload replaced by an -- imported payload as described below in--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-semaphores-importing Importing Semaphore Payloads>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-semaphores-importing Importing Semaphore Payloads> -- unless that imported payload’s handle type was included in -- 'Vulkan.Core11.Promoted_From_VK_KHR_external_semaphore_capabilities.ExternalSemaphoreProperties'::@exportFromImportedHandleTypes@ -- for @handleType@@@ -480,13 +482,13 @@ -- - #VUID-VkSemaphoreGetZirconHandleInfoFUCHSIA-handleType-04760# If -- @handleType@ refers to a handle type with copy payload transference -- semantics, as defined below in--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-semaphores-importing Importing Semaphore Payloads>,+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-semaphores-importing Importing Semaphore Payloads>, -- there /must/ be no queue waiting on @semaphore@ -- -- - #VUID-VkSemaphoreGetZirconHandleInfoFUCHSIA-handleType-04761# If -- @handleType@ refers to a handle type with copy payload transference -- semantics, @semaphore@ /must/ be signaled, or have an associated--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-semaphores-signaling semaphore signal operation>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-semaphores-signaling semaphore signal operation> -- pending execution -- -- - #VUID-VkSemaphoreGetZirconHandleInfoFUCHSIA-handleType-04762#
src/Vulkan/Extensions/VK_FUCHSIA_external_semaphore.hs-boot view
@@ -19,11 +19,13 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_external_semaphore_capabilities@+-- - Requires @VK_KHR_external_semaphore_capabilities@ to be enabled+-- for any device-level functionality ----- - Requires @VK_KHR_external_semaphore@+-- - Requires @VK_KHR_external_semaphore@ to be enabled for any+-- device-level functionality -- -- [__Contact__] --@@ -109,7 +111,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_FUCHSIA_external_semaphore Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_FUCHSIA_external_semaphore Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_FUCHSIA_imagepipe_surface.hs view
@@ -19,9 +19,9 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_surface@+-- - Requires @VK_KHR_surface@ to be enabled -- -- [__Contact__] --@@ -87,7 +87,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_FUCHSIA_imagepipe_surface Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_FUCHSIA_imagepipe_surface Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.@@ -218,7 +218,7 @@ ImagePipeSurfaceCreateInfoFUCHSIA -> -- | @pAllocator@ is the allocator used for host memory allocated for the -- surface object when there is no more specific allocator available (see- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>).+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>). ("allocator" ::: Maybe AllocationCallbacks) -> io (SurfaceKHR) createImagePipeSurfaceFUCHSIA instance' createInfo allocator = liftIO . evalContT $ do
src/Vulkan/Extensions/VK_FUCHSIA_imagepipe_surface.hs-boot view
@@ -19,9 +19,9 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_surface@+-- - Requires @VK_KHR_surface@ to be enabled -- -- [__Contact__] --@@ -87,7 +87,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_FUCHSIA_imagepipe_surface Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_FUCHSIA_imagepipe_surface Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_GGP_frame_token.hs view
@@ -19,11 +19,13 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_swapchain@+-- - Requires @VK_KHR_swapchain@ to be enabled for any device-level+-- functionality ----- - Requires @VK_GGP_stream_descriptor_surface@+-- - Requires @VK_GGP_stream_descriptor_surface@ to be enabled for+-- any device-level functionality -- -- [__Contact__] --@@ -80,7 +82,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_GGP_frame_token Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_GGP_frame_token Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_GGP_frame_token.hs-boot view
@@ -19,11 +19,13 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_swapchain@+-- - Requires @VK_KHR_swapchain@ to be enabled for any device-level+-- functionality ----- - Requires @VK_GGP_stream_descriptor_surface@+-- - Requires @VK_GGP_stream_descriptor_surface@ to be enabled for+-- any device-level functionality -- -- [__Contact__] --@@ -80,7 +82,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_GGP_frame_token Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_GGP_frame_token Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_GGP_stream_descriptor_surface.hs view
@@ -19,9 +19,9 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_surface@+-- - Requires @VK_KHR_surface@ to be enabled -- -- [__Contact__] --@@ -113,7 +113,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_GGP_stream_descriptor_surface Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_GGP_stream_descriptor_surface Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.@@ -248,7 +248,7 @@ StreamDescriptorSurfaceCreateInfoGGP -> -- | @pAllocator@ is the allocator used for host memory allocated for the -- surface object when there is no more specific allocator available (see- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>).+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>). ("allocator" ::: Maybe AllocationCallbacks) -> io (SurfaceKHR) createStreamDescriptorSurfaceGGP instance' createInfo allocator = liftIO . evalContT $ do
src/Vulkan/Extensions/VK_GGP_stream_descriptor_surface.hs-boot view
@@ -19,9 +19,9 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_surface@+-- - Requires @VK_KHR_surface@ to be enabled -- -- [__Contact__] --@@ -113,7 +113,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_GGP_stream_descriptor_surface Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_GGP_stream_descriptor_surface Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_GOOGLE_decorate_string.hs view
@@ -19,7 +19,7 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 -- -- [__Contact__] --@@ -69,7 +69,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_GOOGLE_decorate_string Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_GOOGLE_decorate_string Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_GOOGLE_display_timing.hs view
@@ -19,9 +19,10 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_swapchain@+-- - Requires @VK_KHR_swapchain@ to be enabled for any device-level+-- functionality -- -- [__Contact__] --@@ -118,7 +119,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_GOOGLE_display_timing Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_GOOGLE_display_timing Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_GOOGLE_display_timing.hs-boot view
@@ -19,9 +19,10 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_swapchain@+-- - Requires @VK_KHR_swapchain@ to be enabled for any device-level+-- functionality -- -- [__Contact__] --@@ -118,7 +119,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_GOOGLE_display_timing Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_GOOGLE_display_timing Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_GOOGLE_hlsl_functionality1.hs view
@@ -19,7 +19,7 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 -- -- [__Contact__] --@@ -73,7 +73,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_GOOGLE_hlsl_functionality1 Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_GOOGLE_hlsl_functionality1 Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_GOOGLE_surfaceless_query.hs view
@@ -19,9 +19,9 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_surface@+-- - Requires @VK_KHR_surface@ to be enabled -- -- [__Special Use__] --@@ -33,7 +33,7 @@ -- <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_GOOGLE_surfaceless_query] @syoussefi%0A<<Here describe the issue or question you have about the VK_GOOGLE_surfaceless_query extension>> > -- -- [__Extension Proposal__]--- <https://github.com/KhronosGroup/Vulkan-Docs/tree/main/proposals/VK_GOOGLE_surfaceless_query.asciidoc VK_GOOGLE_surfaceless_query>+-- <https://github.com/KhronosGroup/Vulkan-Docs/tree/main/proposals/VK_GOOGLE_surfaceless_query.adoc VK_GOOGLE_surfaceless_query> -- -- == Other Extension Metadata --@@ -88,7 +88,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_GOOGLE_surfaceless_query Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_GOOGLE_surfaceless_query Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_GOOGLE_user_type.hs view
@@ -19,7 +19,7 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 -- -- [__Contact__] --@@ -37,7 +37,7 @@ -- [__Interactions and External Dependencies__] -- -- - This extension requires--- <https://htmlpreview.github.io/?https://github.com/KhronosGroup/SPIRV-Registry/blob/master/extensions/GOOGLE/SPV_GOOGLE_user_type.asciidoc SPV_GOOGLE_user_type>+-- <https://htmlpreview.github.io/?https://github.com/KhronosGroup/SPIRV-Registry/blob/master/extensions/GOOGLE/SPV_GOOGLE_user_type.html SPV_GOOGLE_user_type> -- -- [__Contributors__] --@@ -69,7 +69,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_GOOGLE_user_type Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_GOOGLE_user_type Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_HUAWEI_invocation_mask.hs view
@@ -19,19 +19,21 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_ray_tracing_pipeline@+-- - Requires @VK_KHR_ray_tracing_pipeline@ to be enabled for any+-- device-level functionality ----- - Requires @VK_KHR_synchronization2@+-- - Requires @VK_KHR_synchronization2@ to be enabled for any+-- device-level functionality -- -- [__Contact__] ----- - Yunpeng Zhu--- <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_HUAWEI_invocation_mask] @yunxingzhu%0A<<Here describe the issue or question you have about the VK_HUAWEI_invocation_mask extension>> >+-- - Pan Gao+-- <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_HUAWEI_invocation_mask] @PanGao-h%0A<<Here describe the issue or question you have about the VK_HUAWEI_invocation_mask extension>> > -- -- [__Extension Proposal__]--- <https://github.com/KhronosGroup/Vulkan-Docs/tree/main/proposals/VK_HUAWEI_invocation_mask.asciidoc VK_HUAWEI_invocation_mask>+-- <https://github.com/KhronosGroup/Vulkan-Docs/tree/main/proposals/VK_HUAWEI_invocation_mask.adoc VK_HUAWEI_invocation_mask> -- -- == Other Extension Metadata --@@ -49,8 +51,16 @@ -- -- [__Contributors__] ----- - Yunpeng Zhu, HuaWei+-- - Yunpeng Zhu --+-- - Juntao Li, Huawei+--+-- - Liang Chen, Huawei+--+-- - Shaozhuang Shi, Huawei+--+-- - Hailong Chu, Huawei+-- -- == Description -- -- The rays to trace may be sparse in some use cases. For example, the@@ -140,7 +150,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_HUAWEI_invocation_mask Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_HUAWEI_invocation_mask Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.@@ -205,7 +215,7 @@ -- == Valid Usage -- -- - #VUID-vkCmdBindInvocationMaskHUAWEI-None-04976# The--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-invocationMask invocation mask image>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-invocationMask invocationMask> -- feature /must/ be enabled -- -- - #VUID-vkCmdBindInvocationMaskHUAWEI-imageView-04977# If @imageView@@@ -265,6 +275,9 @@ -- - #VUID-vkCmdBindInvocationMaskHUAWEI-renderpass# This command /must/ -- only be called outside of a render pass instance --+-- - #VUID-vkCmdBindInvocationMaskHUAWEI-videocoding# This command /must/+-- only be called outside of a video coding scope+-- -- - #VUID-vkCmdBindInvocationMaskHUAWEI-commonparent# Both of -- @commandBuffer@, and @imageView@ that are valid handles of -- non-ignored parameters /must/ have been created, allocated, or@@ -281,12 +294,12 @@ -- -- \' ----- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | Primary | Outside | Compute |--- | Secondary | | |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================++-- | Primary | Outside | Outside | Compute |+-- | Secondary | | | |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+ -- -- = See Also --@@ -322,7 +335,7 @@ -- -- = Members ----- This structure describes the following features:+-- This structure describes the following feature: -- -- = Description --
src/Vulkan/Extensions/VK_HUAWEI_invocation_mask.hs-boot view
@@ -19,19 +19,21 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_ray_tracing_pipeline@+-- - Requires @VK_KHR_ray_tracing_pipeline@ to be enabled for any+-- device-level functionality ----- - Requires @VK_KHR_synchronization2@+-- - Requires @VK_KHR_synchronization2@ to be enabled for any+-- device-level functionality -- -- [__Contact__] ----- - Yunpeng Zhu--- <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_HUAWEI_invocation_mask] @yunxingzhu%0A<<Here describe the issue or question you have about the VK_HUAWEI_invocation_mask extension>> >+-- - Pan Gao+-- <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_HUAWEI_invocation_mask] @PanGao-h%0A<<Here describe the issue or question you have about the VK_HUAWEI_invocation_mask extension>> > -- -- [__Extension Proposal__]--- <https://github.com/KhronosGroup/Vulkan-Docs/tree/main/proposals/VK_HUAWEI_invocation_mask.asciidoc VK_HUAWEI_invocation_mask>+-- <https://github.com/KhronosGroup/Vulkan-Docs/tree/main/proposals/VK_HUAWEI_invocation_mask.adoc VK_HUAWEI_invocation_mask> -- -- == Other Extension Metadata --@@ -49,8 +51,16 @@ -- -- [__Contributors__] ----- - Yunpeng Zhu, HuaWei+-- - Yunpeng Zhu --+-- - Juntao Li, Huawei+--+-- - Liang Chen, Huawei+--+-- - Shaozhuang Shi, Huawei+--+-- - Hailong Chu, Huawei+-- -- == Description -- -- The rays to trace may be sparse in some use cases. For example, the@@ -140,7 +150,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_HUAWEI_invocation_mask Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_HUAWEI_invocation_mask Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_HUAWEI_subpass_shading.hs view
@@ -19,16 +19,18 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_create_renderpass2@+-- - Requires @VK_KHR_create_renderpass2@ to be enabled for any+-- device-level functionality ----- - Requires @VK_KHR_synchronization2@+-- - Requires @VK_KHR_synchronization2@ to be enabled for any+-- device-level functionality -- -- [__Contact__] ----- - Hueilong Wang--- <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_HUAWEI_subpass_shading] @wyvernathuawei%0A<<Here describe the issue or question you have about the VK_HUAWEI_subpass_shading extension>> >+-- - Pan Gao+-- <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_HUAWEI_subpass_shading] @PanGao-h%0A<<Here describe the issue or question you have about the VK_HUAWEI_subpass_shading extension>> > -- -- == Other Extension Metadata --@@ -47,6 +49,12 @@ -- -- - Hueilong Wang --+-- - Juntao Li, Huawei+--+-- - Renmiao Lu, Huawei+--+-- - Pan Gao, Huawei+-- -- == Description -- -- This extension allows applications to execute a subpass shading pipeline@@ -135,7 +143,7 @@ -- > layout(constant_id = 0) const uint tileWidth = 8; -- > layout(constant_id = 1) const uint tileHeight = 8; -- > layout(local_size_x_id = 0, local_size_y_id = 1, local_size_z = 1) in;--- > layout (set=0, binding=0, input_attachment_index=0) uniform subpassInput depth;+-- > layout(set=0, binding=0, input_attachment_index=0) uniform subpassInput depth; -- > -- > void main() -- > {@@ -335,7 +343,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_HUAWEI_subpass_shading Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_HUAWEI_subpass_shading Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.@@ -520,16 +528,16 @@ -- -- - #VUID-vkCmdSubpassShadingHUAWEI-None-02692# If a -- 'Vulkan.Core10.Handles.ImageView' is sampled with--- 'Vulkan.Extensions.VK_EXT_filter_cubic.FILTER_CUBIC_EXT' as a result--- of this command, then the image view’s+-- 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as a result of this+-- command, then the image view’s -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features> -- /must/ contain--- 'Vulkan.Extensions.VK_EXT_filter_cubic.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT'+-- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT' -- -- - #VUID-vkCmdSubpassShadingHUAWEI-filterCubic-02694# Any -- 'Vulkan.Core10.Handles.ImageView' being sampled with--- 'Vulkan.Extensions.VK_EXT_filter_cubic.FILTER_CUBIC_EXT' as a result--- of this command /must/ have a+-- 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as a result of this+-- command /must/ have a -- 'Vulkan.Core10.Enums.ImageViewType.ImageViewType' and format that -- supports cubic filtering, as specified by -- 'Vulkan.Extensions.VK_EXT_filter_cubic.FilterCubicImageViewImageFormatPropertiesEXT'::@filterCubic@@@ -538,8 +546,8 @@ -- -- - #VUID-vkCmdSubpassShadingHUAWEI-filterCubicMinmax-02695# Any -- 'Vulkan.Core10.Handles.ImageView' being sampled with--- 'Vulkan.Extensions.VK_EXT_filter_cubic.FILTER_CUBIC_EXT' with a--- reduction mode of either+-- 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' with a reduction mode+-- of either -- 'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MIN' -- or -- 'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MAX'@@ -559,22 +567,38 @@ -- 'Vulkan.Core10.Enums.SamplerAddressMode.SamplerAddressMode' of -- 'Vulkan.Core10.Enums.SamplerAddressMode.SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE' ----- - #VUID-vkCmdSubpassShadingHUAWEI-OpTypeImage-06423# Any--- 'Vulkan.Core10.Handles.ImageView' or--- 'Vulkan.Core10.Handles.BufferView' being written as a storage image--- or storage texel buffer where the image format field of the--- @OpTypeImage@ is @Unknown@ then the view’s format feature /must/--- contain+-- - #VUID-vkCmdSubpassShadingHUAWEI-OpTypeImage-07027# For any+-- 'Vulkan.Core10.Handles.ImageView' being written as a storage image+-- where the image format field of the @OpTypeImage@ is @Unknown@, the+-- view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain -- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT' ----- - #VUID-vkCmdSubpassShadingHUAWEI-OpTypeImage-06424# Any--- 'Vulkan.Core10.Handles.ImageView' or--- 'Vulkan.Core10.Handles.BufferView' being read as a storage image or--- storage texel buffer where the image format field of the--- @OpTypeImage@ is @Unknown@ then the view’s format feature /must/--- contain+-- - #VUID-vkCmdSubpassShadingHUAWEI-OpTypeImage-07028# For any+-- 'Vulkan.Core10.Handles.ImageView' being read as a storage image+-- where the image format field of the @OpTypeImage@ is @Unknown@, the+-- view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain -- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT' --+-- - #VUID-vkCmdSubpassShadingHUAWEI-OpTypeImage-07029# For any+-- 'Vulkan.Core10.Handles.BufferView' being written as a storage texel+-- buffer where the image format field of the @OpTypeImage@ is+-- @Unknown@, the view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkFormatProperties3 buffer features>+-- /must/ contain+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT'+--+-- - #VUID-vkCmdSubpassShadingHUAWEI-OpTypeImage-07030# Any+-- 'Vulkan.Core10.Handles.BufferView' being read as a storage texel+-- buffer where the image format field of the @OpTypeImage@ is+-- @Unknown@ then the view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkFormatProperties3 buffer features>+-- /must/ contain+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT'+-- -- - #VUID-vkCmdSubpassShadingHUAWEI-None-02697# For each set /n/ that is -- statically used by the 'Vulkan.Core10.Handles.Pipeline' bound to the -- pipeline bind point used by this command, a descriptor set /must/@@ -649,21 +673,31 @@ -- @OpImageSample*@ or @OpImageSparseSample*@ instructions that -- includes a LOD bias or any offset values, in any shader stage ----- - #VUID-vkCmdSubpassShadingHUAWEI-None-02705# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robust buffer access>--- feature is not enabled, and if the 'Vulkan.Core10.Handles.Pipeline'--- object bound to the pipeline bind point used by this command--- accesses a uniform buffer, it /must/ not access values outside of--- the range of the buffer as specified in the descriptor set bound to--- the same pipeline bind point+-- - #VUID-vkCmdSubpassShadingHUAWEI-uniformBuffers-06935# If any stage+-- of the 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline+-- bind point used by this command accesses a uniform buffer, and that+-- stage was created without enabling either+-- 'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT'+-- or+-- 'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT'+-- for @uniformBuffers@, and the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>+-- feature is not enabled, that stage /must/ not access values outside+-- of the range of the buffer as specified in the descriptor set bound+-- to the same pipeline bind point ----- - #VUID-vkCmdSubpassShadingHUAWEI-None-02706# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robust buffer access>--- feature is not enabled, and if the 'Vulkan.Core10.Handles.Pipeline'--- object bound to the pipeline bind point used by this command--- accesses a storage buffer, it /must/ not access values outside of--- the range of the buffer as specified in the descriptor set bound to--- the same pipeline bind point+-- - #VUID-vkCmdSubpassShadingHUAWEI-storageBuffers-06936# If any stage+-- of the 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline+-- bind point used by this command accesses a storage buffer, and that+-- stage was created without enabling either+-- 'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT'+-- or+-- 'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT'+-- for @storageBuffers@, and the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>+-- feature is not enabled, that stage /must/ not access values outside+-- of the range of the buffer as specified in the descriptor set bound+-- to the same pipeline bind point -- -- - #VUID-vkCmdSubpassShadingHUAWEI-commandBuffer-02707# If -- @commandBuffer@ is an unprotected command buffer and@@ -749,6 +783,67 @@ -- @OpTypeImage@ with a @SampledType@ with a @Width@ of 64 by this -- command --+-- - #VUID-vkCmdSubpassShadingHUAWEI-OpImageWeightedSampleQCOM-06971# If+-- @OpImageWeightedSampleQCOM@ is used to sample a+-- 'Vulkan.Core10.Handles.ImageView' as a result of this command, then+-- the image view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM'+--+-- - #VUID-vkCmdSubpassShadingHUAWEI-OpImageWeightedSampleQCOM-06972# If+-- @OpImageWeightedSampleQCOM@ uses a 'Vulkan.Core10.Handles.ImageView'+-- as a sample weight image as a result of this command, then the image+-- view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM'+--+-- - #VUID-vkCmdSubpassShadingHUAWEI-OpImageBoxFilterQCOM-06973# If+-- @OpImageBoxFilterQCOM@ is used to sample a+-- 'Vulkan.Core10.Handles.ImageView' as a result of this command, then+-- the image view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM'+--+-- - #VUID-vkCmdSubpassShadingHUAWEI-OpImageBlockMatchSSDQCOM-06974# If+-- @OpImageBlockMatchSSDQCOM@ is used to read from an+-- 'Vulkan.Core10.Handles.ImageView' as a result of this command, then+-- the image view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM'+--+-- - #VUID-vkCmdSubpassShadingHUAWEI-OpImageBlockMatchSADQCOM-06975# If+-- @OpImageBlockMatchSADQCOM@ is used to read from an+-- 'Vulkan.Core10.Handles.ImageView' as a result of this command, then+-- the image view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM'+--+-- - #VUID-vkCmdSubpassShadingHUAWEI-OpImageBlockMatchSADQCOM-06976# If+-- @OpImageBlockMatchSADQCOM@ or OpImageBlockMatchSSDQCOM is used to+-- read from a reference image as result of this command, then the+-- specified reference coordinates /must/ not fail+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-integer-coordinate-validation integer texel coordinate validation>.+--+-- - #VUID-vkCmdSubpassShadingHUAWEI-OpImageWeightedSampleQCOM-06977# If+-- @OpImageWeightedSampleQCOM@, @OpImageBoxFilterQCOM@,+-- @OpImageBlockMatchSSDQCOM@, or @OpImageBlockMatchSADQCOM@ uses a+-- 'Vulkan.Core10.Handles.Sampler' as a result of this command, then+-- the sampler /must/ have been created with+-- 'Vulkan.Core10.Enums.SamplerCreateFlagBits.SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM'.+--+-- - #VUID-vkCmdSubpassShadingHUAWEI-OpImageWeightedSampleQCOM-06978# If+-- any command other than @OpImageWeightedSampleQCOM@,+-- @OpImageBoxFilterQCOM@, @OpImageBlockMatchSSDQCOM@, or+-- @OpImageBlockMatchSADQCOM@ uses a 'Vulkan.Core10.Handles.Sampler' as+-- a result of this command, then the sampler /must/ not have been+-- created with+-- 'Vulkan.Core10.Enums.SamplerCreateFlagBits.SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM'.+-- -- - #VUID-vkCmdSubpassShadingHUAWEI-None-04931# This command must be -- called in a subpass with bind point -- 'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_SUBPASS_SHADING_HUAWEI'.@@ -772,6 +867,9 @@ -- - #VUID-vkCmdSubpassShadingHUAWEI-renderpass# This command /must/ only -- be called inside of a render pass instance --+-- - #VUID-vkCmdSubpassShadingHUAWEI-videocoding# This command /must/+-- only be called outside of a video coding scope+-- -- == Host Synchronization -- -- - Host access to @commandBuffer@ /must/ be externally synchronized@@ -783,12 +881,12 @@ -- -- \' ----- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | Primary | Inside | Graphics |--- | Secondary | | |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================++-- | Primary | Inside | Outside | Graphics |+-- | Secondary | | | |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+ -- -- = See Also --@@ -824,7 +922,7 @@ -- environment in which the pipeline will be used. The pipeline /must/ only -- be used with a render pass instance compatible with the one provided. -- See- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-compatibility Render Pass Compatibility>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-compatibility Render Pass Compatibility> -- for more information. renderPass :: RenderPass , -- | @subpass@ is the index of the subpass in the render pass where this
src/Vulkan/Extensions/VK_HUAWEI_subpass_shading.hs-boot view
@@ -19,16 +19,18 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_create_renderpass2@+-- - Requires @VK_KHR_create_renderpass2@ to be enabled for any+-- device-level functionality ----- - Requires @VK_KHR_synchronization2@+-- - Requires @VK_KHR_synchronization2@ to be enabled for any+-- device-level functionality -- -- [__Contact__] ----- - Hueilong Wang--- <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_HUAWEI_subpass_shading] @wyvernathuawei%0A<<Here describe the issue or question you have about the VK_HUAWEI_subpass_shading extension>> >+-- - Pan Gao+-- <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_HUAWEI_subpass_shading] @PanGao-h%0A<<Here describe the issue or question you have about the VK_HUAWEI_subpass_shading extension>> > -- -- == Other Extension Metadata --@@ -47,6 +49,12 @@ -- -- - Hueilong Wang --+-- - Juntao Li, Huawei+--+-- - Renmiao Lu, Huawei+--+-- - Pan Gao, Huawei+-- -- == Description -- -- This extension allows applications to execute a subpass shading pipeline@@ -135,7 +143,7 @@ -- > layout(constant_id = 0) const uint tileWidth = 8; -- > layout(constant_id = 1) const uint tileHeight = 8; -- > layout(local_size_x_id = 0, local_size_y_id = 1, local_size_z = 1) in;--- > layout (set=0, binding=0, input_attachment_index=0) uniform subpassInput depth;+-- > layout(set=0, binding=0, input_attachment_index=0) uniform subpassInput depth; -- > -- > void main() -- > {@@ -335,7 +343,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_HUAWEI_subpass_shading Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_HUAWEI_subpass_shading Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_IMG_filter_cubic.hs view
@@ -19,7 +19,7 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 -- -- [__Contact__] --@@ -52,12 +52,12 @@ -- -- - Extending 'Vulkan.Core10.Enums.Filter.Filter': ----- - 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_IMG'+-- - 'FILTER_CUBIC_IMG' -- -- - Extending -- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FormatFeatureFlagBits': ----- - 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG'+-- - 'FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG' -- -- == Example --@@ -92,17 +92,29 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_IMG_filter_cubic Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_IMG_filter_cubic Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.-module Vulkan.Extensions.VK_IMG_filter_cubic ( IMG_FILTER_CUBIC_SPEC_VERSION+module Vulkan.Extensions.VK_IMG_filter_cubic ( pattern FILTER_CUBIC_IMG+ , pattern FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG+ , IMG_FILTER_CUBIC_SPEC_VERSION , pattern IMG_FILTER_CUBIC_SPEC_VERSION , IMG_FILTER_CUBIC_EXTENSION_NAME , pattern IMG_FILTER_CUBIC_EXTENSION_NAME ) where import Data.String (IsString)+import Vulkan.Core10.Enums.Filter (Filter(FILTER_CUBIC_EXT))+import Vulkan.Core10.Enums.FormatFeatureFlagBits (FormatFeatureFlags)+import Vulkan.Core10.Enums.FormatFeatureFlagBits (FormatFeatureFlagBits(FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT))+-- No documentation found for TopLevel "VK_FILTER_CUBIC_IMG"+pattern FILTER_CUBIC_IMG = FILTER_CUBIC_EXT+++-- No documentation found for TopLevel "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG"+pattern FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG = FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT+ type IMG_FILTER_CUBIC_SPEC_VERSION = 1
src/Vulkan/Extensions/VK_IMG_format_pvrtc.hs view
@@ -19,7 +19,7 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 -- -- [__Contact__] --@@ -80,7 +80,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_IMG_format_pvrtc Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_IMG_format_pvrtc Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_INTEL_performance_query.hs view
@@ -19,7 +19,7 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 -- -- [__Special Use__] --@@ -313,7 +313,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_INTEL_performance_query Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_INTEL_performance_query Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.@@ -573,6 +573,9 @@ -- allocated from /must/ support graphics, compute, or transfer -- operations --+-- - #VUID-vkCmdSetPerformanceMarkerINTEL-videocoding# This command+-- /must/ only be called outside of a video coding scope+-- -- == Host Synchronization -- -- - Host access to @commandBuffer@ /must/ be externally synchronized@@ -584,13 +587,13 @@ -- -- \' ----- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | Primary | Both | Graphics |--- | Secondary | | Compute |--- | | | Transfer |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================++-- | Primary | Both | Outside | Graphics |+-- | Secondary | | | Compute |+-- | | | | Transfer |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+ -- -- == Return Codes --@@ -653,6 +656,9 @@ -- allocated from /must/ support graphics, compute, or transfer -- operations --+-- - #VUID-vkCmdSetPerformanceStreamMarkerINTEL-videocoding# This command+-- /must/ only be called outside of a video coding scope+-- -- == Host Synchronization -- -- - Host access to @commandBuffer@ /must/ be externally synchronized@@ -664,13 +670,13 @@ -- -- \' ----- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | Primary | Both | Graphics |--- | Secondary | | Compute |--- | | | Transfer |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================++-- | Primary | Both | Outside | Graphics |+-- | Secondary | | | Compute |+-- | | | | Transfer |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+ -- -- == Return Codes --@@ -741,6 +747,9 @@ -- allocated from /must/ support graphics, compute, or transfer -- operations --+-- - #VUID-vkCmdSetPerformanceOverrideINTEL-videocoding# This command+-- /must/ only be called outside of a video coding scope+-- -- == Host Synchronization -- -- - Host access to @commandBuffer@ /must/ be externally synchronized@@ -752,13 +761,13 @@ -- -- \' ----- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | Primary | Both | Graphics |--- | Secondary | | Compute |--- | | | Transfer |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================++-- | Primary | Both | Outside | Graphics |+-- | Secondary | | | Compute |+-- | | | | Transfer |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+ -- -- == Return Codes --@@ -867,7 +876,7 @@ -- - #VUID-vkReleasePerformanceConfigurationINTEL-configuration-02737# -- @configuration@ /must/ not be released before all command buffers -- submitted while the configuration was set are in--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-lifecycle pending state>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-lifecycle pending state> -- -- == Valid Usage (Implicit) --@@ -947,11 +956,11 @@ -- -- \' ----- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | - | - | Any |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================++-- | - | - | - | Any |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+ -- -- == Return Codes --
src/Vulkan/Extensions/VK_INTEL_performance_query.hs-boot view
@@ -19,7 +19,7 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 -- -- [__Special Use__] --@@ -313,7 +313,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_INTEL_performance_query Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_INTEL_performance_query Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_INTEL_shader_integer_functions2.hs view
@@ -19,9 +19,10 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_get_physical_device_properties2@+-- - Requires @VK_KHR_get_physical_device_properties2@ to be enabled+-- for any device-level functionality -- -- [__Contact__] --@@ -42,7 +43,7 @@ -- <https://htmlpreview.github.io/?https://github.com/KhronosGroup/SPIRV-Registry/blob/master/extensions/INTEL/SPV_INTEL_shader_integer_functions2.html SPV_INTEL_shader_integer_functions2>. -- -- - This extension provides API support for--- <https://www.khronos.org/registry/OpenGL/extensions/INTEL/INTEL_shader_integer_functions2.txt GL_INTEL_shader_integer_functions2>.+-- <https://registry.khronos.org/OpenGL/extensions/INTEL/INTEL_shader_integer_functions2.txt GL_INTEL_shader_integer_functions2>. -- -- [__Contributors__] --@@ -81,7 +82,7 @@ -- -- == New SPIR-V Capabilities ----- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-IntegerFunctions2INTEL IntegerFunctions2INTEL>+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-IntegerFunctions2INTEL IntegerFunctions2INTEL> -- -- == Version History --@@ -96,7 +97,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_INTEL_shader_integer_functions2 Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_INTEL_shader_integer_functions2 Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_INTEL_shader_integer_functions2.hs-boot view
@@ -19,9 +19,10 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_get_physical_device_properties2@+-- - Requires @VK_KHR_get_physical_device_properties2@ to be enabled+-- for any device-level functionality -- -- [__Contact__] --@@ -42,7 +43,7 @@ -- <https://htmlpreview.github.io/?https://github.com/KhronosGroup/SPIRV-Registry/blob/master/extensions/INTEL/SPV_INTEL_shader_integer_functions2.html SPV_INTEL_shader_integer_functions2>. -- -- - This extension provides API support for--- <https://www.khronos.org/registry/OpenGL/extensions/INTEL/INTEL_shader_integer_functions2.txt GL_INTEL_shader_integer_functions2>.+-- <https://registry.khronos.org/OpenGL/extensions/INTEL/INTEL_shader_integer_functions2.txt GL_INTEL_shader_integer_functions2>. -- -- [__Contributors__] --@@ -81,7 +82,7 @@ -- -- == New SPIR-V Capabilities ----- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-IntegerFunctions2INTEL IntegerFunctions2INTEL>+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-IntegerFunctions2INTEL IntegerFunctions2INTEL> -- -- == Version History --@@ -96,7 +97,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_INTEL_shader_integer_functions2 Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_INTEL_shader_integer_functions2 Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_KHR_16bit_storage.hs view
@@ -19,11 +19,13 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_get_physical_device_properties2@+-- - Requires @VK_KHR_get_physical_device_properties2@ to be enabled+-- for any device-level functionality ----- - Requires @VK_KHR_storage_buffer_storage_class@+-- - Requires @VK_KHR_storage_buffer_storage_class@ to be enabled for+-- any device-level functionality -- -- [__Deprecation state__] --@@ -111,13 +113,13 @@ -- -- == New SPIR-V Capabilities ----- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-StorageBuffer16BitAccess StorageBuffer16BitAccess>+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-StorageBuffer16BitAccess StorageBuffer16BitAccess> ----- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-UniformAndStorageBuffer16BitAccess UniformAndStorageBuffer16BitAccess>+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-UniformAndStorageBuffer16BitAccess UniformAndStorageBuffer16BitAccess> ----- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-StoragePushConstant16 StoragePushConstant16>+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-StoragePushConstant16 StoragePushConstant16> ----- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-StorageInputOutput16 StorageInputOutput16>+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-StorageInputOutput16 StorageInputOutput16> -- -- == Version History --@@ -132,7 +134,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_16bit_storage Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_16bit_storage Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_KHR_8bit_storage.hs view
@@ -19,11 +19,13 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_get_physical_device_properties2@+-- - Requires @VK_KHR_get_physical_device_properties2@ to be enabled+-- for any device-level functionality ----- - Requires @VK_KHR_storage_buffer_storage_class@+-- - Requires @VK_KHR_storage_buffer_storage_class@ to be enabled for+-- any device-level functionality -- -- [__Deprecation state__] --@@ -97,11 +99,11 @@ -- -- == New SPIR-V Capabilities ----- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-StorageBuffer8BitAccess StorageBuffer8BitAccess>+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-StorageBuffer8BitAccess StorageBuffer8BitAccess> ----- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-UniformAndStorageBuffer8BitAccess UniformAndStorageBuffer8BitAccess>+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-UniformAndStorageBuffer8BitAccess UniformAndStorageBuffer8BitAccess> ----- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-StoragePushConstant8 StoragePushConstant8>+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-StoragePushConstant8 StoragePushConstant8> -- -- == Version History --@@ -116,7 +118,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_8bit_storage Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_8bit_storage Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_KHR_acceleration_structure.hs view
@@ -19,13 +19,16 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.1+-- - Requires support for Vulkan 1.1 ----- - Requires @VK_EXT_descriptor_indexing@+-- - Requires @VK_EXT_descriptor_indexing@ to be enabled for any+-- device-level functionality ----- - Requires @VK_KHR_buffer_device_address@+-- - Requires @VK_KHR_buffer_device_address@ to be enabled for any+-- device-level functionality ----- - Requires @VK_KHR_deferred_host_operations@+-- - Requires @VK_KHR_deferred_host_operations@ to be enabled for any+-- device-level functionality -- -- [__Contact__] --@@ -376,7 +379,7 @@ -- 'cmdCopyMemoryToAccelerationStructureKHR') -- -- - document--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#acceleration-structure-inactive-prims inactive primitives and instances>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#acceleration-structure-inactive-prims inactive primitives and instances> -- -- - added 'PhysicalDeviceAccelerationStructureFeaturesKHR' structure --@@ -384,7 +387,7 @@ -- ('cmdBuildAccelerationStructuresIndirectKHR') -- -- - added--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#host-acceleration-structure host acceleration structure>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#host-acceleration-structure host acceleration structure> -- commands -- -- - reworked geometry structures so they could be better shared between@@ -402,13 +405,13 @@ -- - added format feature for acceleration structure build vertex formats -- ('Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR') ----- (2) Can you give a more detailed comparision of differences and+-- (2) Can you give a more detailed comparison of differences and -- similarities between VK_NV_ray_tracing and -- VK_KHR_acceleration_structure? -- -- __DISCUSSION__: ----- The following is a more detailed comparision of which commands,+-- The following is a more detailed comparison of which commands, -- structures, and enums are aliased, changed, or removed. -- -- - Aliased functionality — enums, structures, and commands that are@@ -655,7 +658,7 @@ -- structure and require one of them be @NULL@ -- -- - added--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-nullDescriptor nullDescriptor>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-nullDescriptor nullDescriptor> -- support for acceleration structures -- -- - changed the @update@ member of@@ -844,13 +847,14 @@ -- -- - Resolve Vulkan-hpp issues (!3543) ----- - add missing require for VkGeometryInstanceFlagsKHR+-- - add missing require for VkGeometryInstanceFlagsKHR ----- - de-alias VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_NV--- since the KHR structure is no longer equivalent+-- - de-alias+-- VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_NV+-- since the KHR structure is no longer equivalent ----- - add len to pDataSize attribute for--- vkWriteAccelerationStructuresPropertiesKHR+-- - add len to pDataSize attribute for+-- vkWriteAccelerationStructuresPropertiesKHR -- -- - Revision 4, 2020-01-23 (Daniel Koch, Eric Werness) --@@ -1147,7 +1151,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_acceleration_structure Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_acceleration_structure Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.@@ -1475,7 +1479,7 @@ -> -- | @accelerationStructure@ is the acceleration structure to destroy. AccelerationStructureKHR -> -- | @pAllocator@ controls host memory allocation as described in the- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation> -- chapter. ("allocator" ::: Maybe AllocationCallbacks) -> io ()@@ -1507,12 +1511,12 @@ -- @pInfo->mode@. -- -- Accesses to @pInfo->src@ and @pInfo->dst@ /must/ be--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies synchronized>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies synchronized> -- with the -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR'--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages pipeline stage>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages pipeline stage> -- and an--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-access-types access type>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-access-types access type> -- of -- 'Vulkan.Core10.Enums.AccessFlagBits.ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR' -- or@@ -1548,6 +1552,9 @@ -- - #VUID-vkCmdCopyAccelerationStructureKHR-renderpass# This command -- /must/ only be called outside of a render pass instance --+-- - #VUID-vkCmdCopyAccelerationStructureKHR-videocoding# This command+-- /must/ only be called outside of a video coding scope+-- -- == Host Synchronization -- -- - Host access to @commandBuffer@ /must/ be externally synchronized@@ -1559,12 +1566,12 @@ -- -- \' ----- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | Primary | Outside | Compute |--- | Secondary | | |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================++-- | Primary | Outside | Outside | Compute |+-- | Secondary | | | |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+ -- -- = See Also --@@ -1624,7 +1631,7 @@ -- -- - #VUID-vkCopyAccelerationStructureKHR-accelerationStructureHostCommands-03582# -- The--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-accelerationStructureHostCommands ::accelerationStructureHostCommands>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-accelerationStructureHostCommands ::accelerationStructureHostCommands> -- feature /must/ be enabled -- -- - #VUID-vkCopyAccelerationStructureKHR-buffer-03780# The @buffer@ used@@ -1681,7 +1688,7 @@ Device -> -- | @deferredOperation@ is an optional -- 'Vulkan.Extensions.Handles.DeferredOperationKHR' to- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#deferred-host-operations-requesting request deferral>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#deferred-host-operations-requesting request deferral> -- for this command. DeferredOperationKHR -> -- | @pInfo@ is a pointer to a 'CopyAccelerationStructureInfoKHR' structure@@ -1712,12 +1719,12 @@ -- = Description -- -- Accesses to @pInfo->src@ /must/ be--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies synchronized>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies synchronized> -- with the -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR'--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages pipeline stage>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages pipeline stage> -- and an--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-access-types access type>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-access-types access type> -- of -- 'Vulkan.Core10.Enums.AccessFlagBits.ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR'. -- Accesses to the buffer indicated by @pInfo->dst.deviceAddress@ /must/ be@@ -1749,11 +1756,14 @@ -- 'AccelerationStructureCreateInfoKHR'::@size@ -- -- - A 64-bit integer of the count of the number of acceleration--- structure handles following. This will be zero for a bottom-level--- acceleration structure. For top-level acceleration structures this--- number is implementation-dependent; the number of and ordering of--- the handles may not match the instance descriptions which were used--- to build the acceleration structure.+-- structure handles following. This value matches the value queried+-- using+-- 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_BOTTOM_LEVEL_POINTERS_KHR'.+-- This will be zero for a bottom-level acceleration structure. For+-- top-level acceleration structures this number is+-- implementation-dependent; the number of and ordering of the handles+-- may not match the instance descriptions which were used to build the+-- acceleration structure. -- -- The corresponding handles matching the values returned by -- 'getAccelerationStructureDeviceAddressKHR' or@@ -1803,6 +1813,9 @@ -- - #VUID-vkCmdCopyAccelerationStructureToMemoryKHR-renderpass# This -- command /must/ only be called outside of a render pass instance --+-- - #VUID-vkCmdCopyAccelerationStructureToMemoryKHR-videocoding# This+-- command /must/ only be called outside of a video coding scope+-- -- == Host Synchronization -- -- - Host access to @commandBuffer@ /must/ be externally synchronized@@ -1814,12 +1827,12 @@ -- -- \' ----- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | Primary | Outside | Compute |--- | Secondary | | |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================++-- | Primary | Outside | Outside | Compute |+-- | Secondary | | | |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+ -- -- = See Also --@@ -1891,7 +1904,7 @@ -- -- - #VUID-vkCopyAccelerationStructureToMemoryKHR-accelerationStructureHostCommands-03584# -- The--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-accelerationStructureHostCommands ::accelerationStructureHostCommands>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-accelerationStructureHostCommands ::accelerationStructureHostCommands> -- feature /must/ be enabled -- -- - #VUID-vkCopyAccelerationStructureToMemoryKHR-buffer-03783# The@@ -1944,7 +1957,7 @@ Device -> -- | @deferredOperation@ is an optional -- 'Vulkan.Extensions.Handles.DeferredOperationKHR' to- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#deferred-host-operations-requesting request deferral>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#deferred-host-operations-requesting request deferral> -- for this command. DeferredOperationKHR -> -- | @pInfo@ is a pointer to a 'CopyAccelerationStructureToMemoryInfoKHR'@@ -1975,12 +1988,12 @@ -- = Description -- -- Accesses to @pInfo->dst@ /must/ be--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies synchronized>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies synchronized> -- with the -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR'--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages pipeline stage>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages pipeline stage> -- and an--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-access-types access type>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-access-types access type> -- of -- 'Vulkan.Core10.Enums.AccessFlagBits.ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_KHR'. -- Accesses to the buffer indicated by @pInfo->src.deviceAddress@ /must/ be@@ -2038,6 +2051,9 @@ -- - #VUID-vkCmdCopyMemoryToAccelerationStructureKHR-renderpass# This -- command /must/ only be called outside of a render pass instance --+-- - #VUID-vkCmdCopyMemoryToAccelerationStructureKHR-videocoding# This+-- command /must/ only be called outside of a video coding scope+-- -- == Host Synchronization -- -- - Host access to @commandBuffer@ /must/ be externally synchronized@@ -2049,12 +2065,12 @@ -- -- \' ----- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | Primary | Outside | Compute |--- | Secondary | | |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================++-- | Primary | Outside | Outside | Compute |+-- | Secondary | | | |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+ -- -- = See Also --@@ -2122,7 +2138,7 @@ -- -- - #VUID-vkCopyMemoryToAccelerationStructureKHR-accelerationStructureHostCommands-03583# -- The--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-accelerationStructureHostCommands ::accelerationStructureHostCommands>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-accelerationStructureHostCommands ::accelerationStructureHostCommands> -- feature /must/ be enabled -- -- - #VUID-vkCopyMemoryToAccelerationStructureKHR-buffer-03782# The@@ -2175,7 +2191,7 @@ Device -> -- | @deferredOperation@ is an optional -- 'Vulkan.Extensions.Handles.DeferredOperationKHR' to- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#deferred-host-operations-requesting request deferral>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#deferred-host-operations-requesting request deferral> -- for this command. DeferredOperationKHR -> -- | @pInfo@ is a pointer to a 'CopyMemoryToAccelerationStructureInfoKHR'@@ -2207,12 +2223,12 @@ -- -- Accesses to any of the acceleration structures listed in -- @pAccelerationStructures@ /must/ be--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies synchronized>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies synchronized> -- with the -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR'--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages pipeline stage>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages pipeline stage> -- and an--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-access-types access type>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-access-types access type> -- of -- 'Vulkan.Core10.Enums.AccessFlagBits.ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR'. --@@ -2255,8 +2271,10 @@ -- @queryType@ is -- 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR' ----- - #VUID-vkCmdWriteAccelerationStructuresPropertiesKHR-queryType-03432#+-- - #VUID-vkCmdWriteAccelerationStructuresPropertiesKHR-queryType-06742# -- @queryType@ /must/ be+-- 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_ACCELERATION_STRUCTURE_SIZE_KHR',+-- 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_BOTTOM_LEVEL_POINTERS_KHR', -- 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR' -- or -- 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR'@@ -2291,6 +2309,9 @@ -- - #VUID-vkCmdWriteAccelerationStructuresPropertiesKHR-renderpass# This -- command /must/ only be called outside of a render pass instance --+-- - #VUID-vkCmdWriteAccelerationStructuresPropertiesKHR-videocoding#+-- This command /must/ only be called outside of a video coding scope+-- -- - #VUID-vkCmdWriteAccelerationStructuresPropertiesKHR-accelerationStructureCount-arraylength# -- @accelerationStructureCount@ /must/ be greater than @0@ --@@ -2310,12 +2331,12 @@ -- -- \' ----- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | Primary | Outside | Compute |--- | Secondary | | |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================++-- | Primary | Outside | Outside | Compute |+-- | Secondary | | | |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+ -- -- = See Also --@@ -2381,8 +2402,10 @@ -- @queryType@ is -- 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR' ----- - #VUID-vkWriteAccelerationStructuresPropertiesKHR-queryType-03432#+-- - #VUID-vkWriteAccelerationStructuresPropertiesKHR-queryType-06742# -- @queryType@ /must/ be+-- 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_ACCELERATION_STRUCTURE_SIZE_KHR',+-- 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_BOTTOM_LEVEL_POINTERS_KHR', -- 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR' -- or -- 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR'@@ -2396,7 +2419,7 @@ -- - #VUID-vkWriteAccelerationStructuresPropertiesKHR-queryType-03449# If -- @queryType@ is -- 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR',--- then @data@ /must/ point to a+-- then @pData@ /must/ point to a -- 'Vulkan.Core10.FundamentalTypes.DeviceSize' -- -- - #VUID-vkWriteAccelerationStructuresPropertiesKHR-queryType-03450# If@@ -2408,9 +2431,33 @@ -- - #VUID-vkWriteAccelerationStructuresPropertiesKHR-queryType-03451# If -- @queryType@ is -- 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR',--- then @data@ /must/ point to a+-- then @pData@ /must/ point to a -- 'Vulkan.Core10.FundamentalTypes.DeviceSize' --+-- - #VUID-vkWriteAccelerationStructuresPropertiesKHR-queryType-06731# If+-- @queryType@ is+-- 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_ACCELERATION_STRUCTURE_SIZE_KHR',+-- then @stride@ /must/ be a multiple of the size of+-- 'Vulkan.Core10.FundamentalTypes.DeviceSize'+--+-- - #VUID-vkWriteAccelerationStructuresPropertiesKHR-queryType-06732# If+-- @queryType@ is+-- 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_ACCELERATION_STRUCTURE_SIZE_KHR',+-- then @pData@ /must/ point to a+-- 'Vulkan.Core10.FundamentalTypes.DeviceSize'+--+-- - #VUID-vkWriteAccelerationStructuresPropertiesKHR-queryType-06733# If+-- @queryType@ is+-- 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_BOTTOM_LEVEL_POINTERS_KHR',+-- then @stride@ /must/ be a multiple of the size of+-- 'Vulkan.Core10.FundamentalTypes.DeviceSize'+--+-- - #VUID-vkWriteAccelerationStructuresPropertiesKHR-queryType-06734# If+-- @queryType@ is+-- 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_BOTTOM_LEVEL_POINTERS_KHR',+-- then @pData@ /must/ point to a+-- 'Vulkan.Core10.FundamentalTypes.DeviceSize'+-- -- - #VUID-vkWriteAccelerationStructuresPropertiesKHR-dataSize-03452# -- @dataSize@ /must/ be greater than or equal to -- @accelerationStructureCount@*@stride@@@ -2422,7 +2469,7 @@ -- -- - #VUID-vkWriteAccelerationStructuresPropertiesKHR-accelerationStructureHostCommands-03585# -- The--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-accelerationStructureHostCommands ::accelerationStructureHostCommands>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-accelerationStructureHostCommands ::accelerationStructureHostCommands> -- feature /must/ be enabled -- -- - #VUID-vkWriteAccelerationStructuresPropertiesKHR-buffer-03784# The@@ -2520,9 +2567,9 @@ -- -- - #VUID-vkGetDeviceAccelerationStructureCompatibilityKHR-rayTracingPipeline-03661# -- The--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-rayTracingPipeline rayTracingPipeline>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-rayTracingPipeline rayTracingPipeline> -- or--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-rayQuery rayQuery>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-rayQuery rayQuery> -- feature /must/ be enabled -- -- == Valid Usage (Implicit)@@ -2598,18 +2645,18 @@ -- -- - #VUID-vkCreateAccelerationStructureKHR-accelerationStructure-03611# -- The--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-accelerationStructure accelerationStructure>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-accelerationStructure accelerationStructure> -- feature /must/ be enabled -- -- - #VUID-vkCreateAccelerationStructureKHR-deviceAddress-03488# If -- 'AccelerationStructureCreateInfoKHR'::@deviceAddress@ is not zero, -- the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-accelerationStructureCaptureReplay accelerationStructureCaptureReplay>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-accelerationStructureCaptureReplay accelerationStructureCaptureReplay> -- feature /must/ be enabled -- -- - #VUID-vkCreateAccelerationStructureKHR-device-03489# If @device@ was -- created with multiple physical devices, then the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-bufferDeviceAddressMultiDevice bufferDeviceAddressMultiDevice>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-bufferDeviceAddressMultiDevice bufferDeviceAddressMultiDevice> -- feature /must/ be enabled -- -- == Valid Usage (Implicit)@@ -2659,7 +2706,7 @@ -- structure. (AccelerationStructureCreateInfoKHR a) -> -- | @pAllocator@ controls host memory allocation as described in the- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation> -- chapter. ("allocator" ::: Maybe AllocationCallbacks) -> io (AccelerationStructureKHR)@@ -2720,12 +2767,12 @@ -- Accesses to the acceleration structure scratch buffers as identified by -- the 'AccelerationStructureBuildGeometryInfoKHR'::@scratchData@ buffer -- device addresses /must/ be--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies synchronized>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies synchronized> -- with the -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR'--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages pipeline stage>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages pipeline stage> -- and an--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-access-types access type>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-access-types access type> -- of -- 'Vulkan.Core10.Enums.AccessFlagBits.ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR' -- or@@ -2742,12 +2789,12 @@ -- 'AccelerationStructureGeometryTrianglesDataKHR'::@transformData@, -- 'AccelerationStructureGeometryAabbsDataKHR'::@data@, and -- 'AccelerationStructureGeometryInstancesDataKHR'::@data@ /must/ be--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies synchronized>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies synchronized> -- with the -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR'--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages pipeline stage>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages pipeline stage> -- and an--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-access-types access type>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-access-types access type> -- of 'Vulkan.Core10.Enums.AccessFlagBits.ACCESS_SHADER_READ_BIT'. -- -- == Valid Usage@@ -3228,6 +3275,9 @@ -- - #VUID-vkCmdBuildAccelerationStructuresKHR-renderpass# This command -- /must/ only be called outside of a render pass instance --+-- - #VUID-vkCmdBuildAccelerationStructuresKHR-videocoding# This command+-- /must/ only be called outside of a video coding scope+-- -- - #VUID-vkCmdBuildAccelerationStructuresKHR-infoCount-arraylength# -- @infoCount@ /must/ be greater than @0@ --@@ -3242,12 +3292,12 @@ -- -- \' ----- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | Primary | Outside | Compute |--- | Secondary | | |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================++-- | Primary | Outside | Outside | Compute |+-- | Secondary | | | |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+ -- -- = See Also --@@ -3308,12 +3358,12 @@ -- 'cmdBuildAccelerationStructuresKHR'. -- -- Accesses to any element of @pIndirectDeviceAddresses@ /must/ be--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies synchronized>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies synchronized> -- with the -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR'--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages pipeline stage>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages pipeline stage> -- and an--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-access-types access type>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-access-types access type> -- of -- 'Vulkan.Core10.Enums.AccessFlagBits.ACCESS_INDIRECT_COMMAND_READ_BIT'. --@@ -3802,7 +3852,7 @@ -- -- - #VUID-vkCmdBuildAccelerationStructuresIndirectKHR-accelerationStructureIndirectBuild-03650# -- The--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-accelerationStructureIndirectBuild ::accelerationStructureIndirectBuild>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-accelerationStructureIndirectBuild ::accelerationStructureIndirectBuild> -- feature /must/ be enabled -- -- - #VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pIndirectDeviceAddresses-03651#@@ -3857,6 +3907,9 @@ -- - #VUID-vkCmdBuildAccelerationStructuresIndirectKHR-renderpass# This -- command /must/ only be called outside of a render pass instance --+-- - #VUID-vkCmdBuildAccelerationStructuresIndirectKHR-videocoding# This+-- command /must/ only be called outside of a video coding scope+-- -- - #VUID-vkCmdBuildAccelerationStructuresIndirectKHR-infoCount-arraylength# -- @infoCount@ /must/ be greater than @0@ --@@ -3871,12 +3924,12 @@ -- -- \' ----- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | Primary | Outside | Compute |--- | Secondary | | |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================++-- | Primary | Outside | Outside | Compute |+-- | Secondary | | | |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+ -- -- = See Also --@@ -4245,7 +4298,7 @@ -- -- - #VUID-vkBuildAccelerationStructuresKHR-accelerationStructureHostCommands-03581# -- The--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-accelerationStructureHostCommands ::accelerationStructureHostCommands>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-accelerationStructureHostCommands ::accelerationStructureHostCommands> -- feature /must/ be enabled -- -- - #VUID-vkBuildAccelerationStructuresKHR-pInfos-03725# If@@ -4388,7 +4441,7 @@ Device -> -- | @deferredOperation@ is an optional -- 'Vulkan.Extensions.Handles.DeferredOperationKHR' to- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#deferred-host-operations-requesting request deferral>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#deferred-host-operations-requesting request deferral> -- for this command. DeferredOperationKHR -> -- | @pInfos@ is a pointer to an array of @infoCount@@@ -4452,6 +4505,8 @@ -- addresses between the two /must/ be the same as the difference in -- offsets provided at acceleration structure creation. --+-- The returned address /must/ be aligned to 256 bytes.+-- -- Note -- -- The acceleration structure device address /may/ be different from the@@ -4463,7 +4518,7 @@ -- -- - #VUID-vkGetAccelerationStructureDeviceAddressKHR-device-03504# If -- @device@ was created with multiple physical devices, then the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-bufferDeviceAddressMultiDevice bufferDeviceAddressMultiDevice>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-bufferDeviceAddressMultiDevice bufferDeviceAddressMultiDevice> -- feature /must/ be enabled -- -- == Valid Usage (Implicit)@@ -4546,6 +4601,10 @@ -- @pBuildInfo->geometryType@. -- -- - For each element of either @pGeometries@ or @ppGeometries@ at a+-- given index, its @flags@ member is equal to the corresponding+-- member of the same element in @pBuildInfo@.+--+-- - For each element of either @pGeometries@ or @ppGeometries@ at a -- given index, with a @geometryType@ member equal to -- 'GEOMETRY_TYPE_TRIANGLES_KHR', the @vertexFormat@ and -- @indexType@ members of @geometry.triangles@ are equal to the@@ -4581,14 +4640,14 @@ -- -- - #VUID-vkGetAccelerationStructureBuildSizesKHR-rayTracingPipeline-03617# -- The--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-rayTracingPipeline rayTracingPipeline>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-rayTracingPipeline rayTracingPipeline> -- or--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-rayQuery rayQuery>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-rayQuery rayQuery> -- feature /must/ be enabled -- -- - #VUID-vkGetAccelerationStructureBuildSizesKHR-device-03618# If -- @device@ was created with multiple physical devices, then the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-bufferDeviceAddressMultiDevice bufferDeviceAddressMultiDevice>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-bufferDeviceAddressMultiDevice bufferDeviceAddressMultiDevice> -- feature /must/ be enabled -- -- - #VUID-vkGetAccelerationStructureBuildSizesKHR-pBuildInfo-03619# If@@ -4686,7 +4745,7 @@ -- -- - #VUID-VkWriteDescriptorSetAccelerationStructureKHR-pAccelerationStructures-03580# -- If the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-nullDescriptor nullDescriptor>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-nullDescriptor nullDescriptor> -- feature is not enabled, each element of @pAccelerationStructures@ -- /must/ not be 'Vulkan.Core10.APIConstants.NULL_HANDLE' --@@ -4782,7 +4841,7 @@ { -- | #features-accelerationStructure# @accelerationStructure@ indicates -- whether the implementation supports the acceleration structure -- functionality. See- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#acceleration-structure Acceleration Structures>.+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#acceleration-structure Acceleration Structures>. accelerationStructure :: Bool , -- | #features-accelerationStructureCaptureReplay# -- @accelerationStructureCaptureReplay@ indicates whether the@@ -4872,10 +4931,10 @@ -- -- Due to the fact that the geometry, instance, and primitive counts are -- specified at acceleration structure creation as 32-bit values,--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxGeometryCount maxGeometryCount>,--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxInstanceCount maxInstanceCount>,+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxGeometryCount maxGeometryCount>,+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxInstanceCount maxInstanceCount>, -- and--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxPrimitiveCount maxPrimitiveCount>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxPrimitiveCount maxPrimitiveCount> -- /must/ not exceed 232-1. -- -- If the 'PhysicalDeviceAccelerationStructurePropertiesKHR' structure is@@ -5238,7 +5297,7 @@ , -- | @data@ is either the address of an array of device or host addresses -- referencing individual 'AccelerationStructureInstanceKHR' structures or -- packed motion instance information as described in- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#acceleration-structure-motion-instances motion instances>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#acceleration-structure-motion-instances motion instances> -- if @arrayOfPointers@ is 'Vulkan.Core10.FundamentalTypes.TRUE', or the -- address of an array of 'AccelerationStructureInstanceKHR' or -- 'Vulkan.Extensions.VK_NV_ray_tracing_motion_blur.AccelerationStructureMotionInstanceNV'@@ -5371,9 +5430,9 @@ -- of 'AccelerationStructureBuildGeometryInfoKHR' is used as the /geometry -- index/ during ray traversal. The geometry index is available in ray -- shaders via the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-raygeometryindex RayGeometryIndexKHR built-in>,+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-raygeometryindex RayGeometryIndexKHR built-in>, -- and is--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#shader-binding-table-hit-shader-indexing used to determine hit and intersection shaders executed during traversal>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#shader-binding-table-hit-shader-indexing used to determine hit and intersection shaders executed during traversal>. -- The geometry index is available to ray queries via the -- @OpRayQueryGetIntersectionGeometryIndexKHR@ instruction. --@@ -5787,6 +5846,16 @@ -- 'AccelerationStructureTypeKHR' other than -- 'ACCELERATION_STRUCTURE_TYPE_GENERIC_KHR'. --+-- Note+--+-- 'ACCELERATION_STRUCTURE_TYPE_GENERIC_KHR' is intended to be used by API+-- translation layers. This can be used at acceleration structure creation+-- time in cases where the actual acceleration structure type (top or+-- bottom) is not yet known. The actual acceleration structure type must be+-- specified as 'ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR' or+-- 'ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR' when the build is+-- performed.+-- -- If the acceleration structure will be the target of a build operation, -- the required size for an acceleration structure /can/ be queried with -- 'getAccelerationStructureBuildSizesKHR'. If the acceleration structure@@ -5892,7 +5961,7 @@ type' :: AccelerationStructureTypeKHR , -- | @deviceAddress@ is the device address requested for the acceleration -- structure if the- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-accelerationStructureCaptureReplay accelerationStructureCaptureReplay>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-accelerationStructureCaptureReplay accelerationStructureCaptureReplay> -- feature is being used. deviceAddress :: DeviceAddress }@@ -6327,7 +6396,7 @@ -- Note -- -- @pVersionData@ is a /pointer/ to an array of--- 2*'Vulkan.Core10.APIConstants.UUID_SIZE' @uint8_t@ values instead of two+-- 2×'Vulkan.Core10.APIConstants.UUID_SIZE' @uint8_t@ values instead of two -- 'Vulkan.Core10.APIConstants.UUID_SIZE' arrays as the expected use case -- for this member is to be pointed at the header of an previously -- serialized acceleration structure (via@@ -6822,7 +6891,7 @@ -- culling for this instance. pattern GEOMETRY_INSTANCE_TRIANGLE_FACING_CULL_DISABLE_BIT_KHR = GeometryInstanceFlagBitsKHR 0x00000001 -- | 'GEOMETRY_INSTANCE_TRIANGLE_FLIP_FACING_BIT_KHR' indicates that the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#ray-traversal-culling-face facing determination>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#ray-traversal-culling-face facing determination> -- for geometry in this instance is inverted. Because the facing is -- determined in object space, an instance transform does not change the -- winding, but a geometry transform does.@@ -7180,6 +7249,8 @@ pattern ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR = AccelerationStructureTypeKHR 1 -- | 'ACCELERATION_STRUCTURE_TYPE_GENERIC_KHR' is an acceleration structure -- whose type is determined at build time used for special circumstances.+-- In these cases, the acceleration structure type is not known at creation+-- time, but /must/ be specified at build time as either top or bottom. pattern ACCELERATION_STRUCTURE_TYPE_GENERIC_KHR = AccelerationStructureTypeKHR 2 {-# complete ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR, ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR,
src/Vulkan/Extensions/VK_KHR_acceleration_structure.hs-boot view
@@ -19,13 +19,16 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.1+-- - Requires support for Vulkan 1.1 ----- - Requires @VK_EXT_descriptor_indexing@+-- - Requires @VK_EXT_descriptor_indexing@ to be enabled for any+-- device-level functionality ----- - Requires @VK_KHR_buffer_device_address@+-- - Requires @VK_KHR_buffer_device_address@ to be enabled for any+-- device-level functionality ----- - Requires @VK_KHR_deferred_host_operations@+-- - Requires @VK_KHR_deferred_host_operations@ to be enabled for any+-- device-level functionality -- -- [__Contact__] --@@ -376,7 +379,7 @@ -- 'cmdCopyMemoryToAccelerationStructureKHR') -- -- - document--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#acceleration-structure-inactive-prims inactive primitives and instances>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#acceleration-structure-inactive-prims inactive primitives and instances> -- -- - added 'PhysicalDeviceAccelerationStructureFeaturesKHR' structure --@@ -384,7 +387,7 @@ -- ('cmdBuildAccelerationStructuresIndirectKHR') -- -- - added--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#host-acceleration-structure host acceleration structure>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#host-acceleration-structure host acceleration structure> -- commands -- -- - reworked geometry structures so they could be better shared between@@ -402,13 +405,13 @@ -- - added format feature for acceleration structure build vertex formats -- ('Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR') ----- (2) Can you give a more detailed comparision of differences and+-- (2) Can you give a more detailed comparison of differences and -- similarities between VK_NV_ray_tracing and -- VK_KHR_acceleration_structure? -- -- __DISCUSSION__: ----- The following is a more detailed comparision of which commands,+-- The following is a more detailed comparison of which commands, -- structures, and enums are aliased, changed, or removed. -- -- - Aliased functionality — enums, structures, and commands that are@@ -655,7 +658,7 @@ -- structure and require one of them be @NULL@ -- -- - added--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-nullDescriptor nullDescriptor>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-nullDescriptor nullDescriptor> -- support for acceleration structures -- -- - changed the @update@ member of@@ -844,13 +847,14 @@ -- -- - Resolve Vulkan-hpp issues (!3543) ----- - add missing require for VkGeometryInstanceFlagsKHR+-- - add missing require for VkGeometryInstanceFlagsKHR ----- - de-alias VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_NV--- since the KHR structure is no longer equivalent+-- - de-alias+-- VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_NV+-- since the KHR structure is no longer equivalent ----- - add len to pDataSize attribute for--- vkWriteAccelerationStructuresPropertiesKHR+-- - add len to pDataSize attribute for+-- vkWriteAccelerationStructuresPropertiesKHR -- -- - Revision 4, 2020-01-23 (Daniel Koch, Eric Werness) --@@ -1147,7 +1151,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_acceleration_structure Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_acceleration_structure Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_KHR_android_surface.hs view
@@ -19,9 +19,9 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_surface@+-- - Requires @VK_KHR_surface@ to be enabled -- -- [__Contact__] --@@ -155,7 +155,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_android_surface Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_android_surface Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.@@ -312,7 +312,7 @@ AndroidSurfaceCreateInfoKHR -> -- | @pAllocator@ is the allocator used for host memory allocated for the -- surface object when there is no more specific allocator available (see- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>).+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>). ("allocator" ::: Maybe AllocationCallbacks) -> io (SurfaceKHR) createAndroidSurfaceKHR instance' createInfo allocator = liftIO . evalContT $ do
src/Vulkan/Extensions/VK_KHR_android_surface.hs-boot view
@@ -19,9 +19,9 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_surface@+-- - Requires @VK_KHR_surface@ to be enabled -- -- [__Contact__] --@@ -155,7 +155,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_android_surface Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_android_surface Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_KHR_bind_memory2.hs view
@@ -19,7 +19,7 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 -- -- [__Deprecation state__] --@@ -109,7 +109,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_bind_memory2 Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_bind_memory2 Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_KHR_buffer_device_address.hs view
@@ -19,9 +19,10 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_get_physical_device_properties2@+-- - Requires @VK_KHR_get_physical_device_properties2@ to be enabled+-- for any device-level functionality -- -- [__Deprecation state__] --@@ -200,7 +201,7 @@ -- -- == New SPIR-V Capabilities ----- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-PhysicalStorageBufferAddresses PhysicalStorageBufferAddresses>+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-PhysicalStorageBufferAddresses PhysicalStorageBufferAddresses> -- -- == Version History --@@ -220,7 +221,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_buffer_device_address Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_buffer_device_address Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_KHR_copy_commands2.hs view
@@ -19,7 +19,7 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 -- -- [__Deprecation state__] --@@ -162,7 +162,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_copy_commands2 Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_copy_commands2 Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_KHR_create_renderpass2.hs view
@@ -19,11 +19,13 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_multiview@+-- - Requires @VK_KHR_multiview@ to be enabled for any device-level+-- functionality ----- - Requires @VK_KHR_maintenance2@+-- - Requires @VK_KHR_maintenance2@ to be enabled for any+-- device-level functionality -- -- [__Deprecation state__] --@@ -159,7 +161,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_create_renderpass2 Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_create_renderpass2 Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_KHR_dedicated_allocation.hs view
@@ -19,9 +19,10 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_get_memory_requirements2@+-- - Requires @VK_KHR_get_memory_requirements2@ to be enabled for any+-- device-level functionality -- -- [__Deprecation state__] --@@ -211,7 +212,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_dedicated_allocation Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_dedicated_allocation Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_KHR_deferred_host_operations.hs view
@@ -19,7 +19,7 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 -- -- [__Contact__] --@@ -262,7 +262,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_deferred_host_operations Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_deferred_host_operations Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.@@ -363,7 +363,7 @@ => -- | @device@ is the device which owns @operation@. Device -> -- | @pAllocator@ controls host memory allocation as described in the- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation> -- chapter. ("allocator" ::: Maybe AllocationCallbacks) -> io (DeferredOperationKHR)@@ -454,7 +454,7 @@ -> -- | @operation@ is the completed operation to be destroyed. DeferredOperationKHR -> -- | @pAllocator@ controls host memory allocation as described in the- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation> -- chapter. ("allocator" ::: Maybe AllocationCallbacks) -> io ()
src/Vulkan/Extensions/VK_KHR_depth_stencil_resolve.hs view
@@ -19,9 +19,10 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_create_renderpass2@+-- - Requires @VK_KHR_create_renderpass2@ to be enabled for any+-- device-level functionality -- -- [__Deprecation state__] --@@ -150,7 +151,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_depth_stencil_resolve Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_depth_stencil_resolve Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_KHR_descriptor_update_template.hs view
@@ -19,7 +19,7 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 -- -- [__Deprecation state__] --@@ -54,7 +54,7 @@ -- == Description -- -- Applications may wish to update a fixed set of descriptors in a large--- number of descriptor sets very frequently, i.e. during initializaton+-- number of descriptor sets very frequently, i.e. during initialization -- phase or if it is required to rebuild descriptor sets for each frame. -- For those cases it is also not unlikely that all information required to -- update a single descriptor set is stored in a single struct. This@@ -160,7 +160,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_descriptor_update_template Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_descriptor_update_template Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_KHR_device_group.hs view
@@ -19,9 +19,10 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_device_group_creation@+-- - Requires @VK_KHR_device_group_creation@ to be enabled for any+-- device-level functionality -- -- [__Deprecation state__] --@@ -320,11 +321,11 @@ -- -- == New Built-in Variables ----- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-deviceindex DeviceIndex>+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-deviceindex DeviceIndex> -- -- == New SPIR-V Capabilities ----- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-DeviceGroup DeviceGroup>+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-DeviceGroup DeviceGroup> -- -- == Version History --@@ -361,7 +362,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_device_group Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_device_group Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_KHR_device_group_creation.hs view
@@ -19,7 +19,7 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 -- -- [__Deprecation state__] --@@ -136,7 +136,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_device_group_creation Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_device_group_creation Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_KHR_display.hs view
@@ -19,9 +19,9 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_surface@+-- - Requires @VK_KHR_surface@ to be enabled -- -- [__Contact__] --@@ -507,7 +507,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_display Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_display Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.@@ -1047,7 +1047,7 @@ -> -- | @pAllocator@ is the allocator used for host memory allocated for the -- display mode object when there is no more specific allocator available -- (see- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>).+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>). ("allocator" ::: Maybe AllocationCallbacks) -> io (DisplayModeKHR) createDisplayModeKHR physicalDevice display createInfo allocator = liftIO . evalContT $ do@@ -1194,7 +1194,7 @@ DisplaySurfaceCreateInfoKHR -> -- | @pAllocator@ is the allocator used for host memory allocated for the -- surface object when there is no more specific allocator available (see- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>).+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>). ("allocator" ::: Maybe AllocationCallbacks) -> io (SurfaceKHR) createDisplayPlaneSurfaceKHR instance' createInfo allocator = liftIO . evalContT $ do@@ -1753,6 +1753,11 @@ -- - #VUID-VkDisplaySurfaceCreateInfoKHR-alphaMode-01255# @alphaMode@ -- /must/ be one of the bits present in the @supportedAlpha@ member of -- 'DisplayPlaneCapabilitiesKHR' for the display plane corresponding to+-- @displayMode@+--+-- - #VUID-VkDisplaySurfaceCreateInfoKHR-transform-06740# @transform@+-- /must/ be one of the bits present in the @supportedTransforms@+-- member of 'DisplayPropertiesKHR' for the display corresponding to -- @displayMode@ -- -- - #VUID-VkDisplaySurfaceCreateInfoKHR-width-01256# The @width@ and
src/Vulkan/Extensions/VK_KHR_display.hs-boot view
@@ -19,9 +19,9 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_surface@+-- - Requires @VK_KHR_surface@ to be enabled -- -- [__Contact__] --@@ -507,7 +507,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_display Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_display Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_KHR_display_swapchain.hs view
@@ -19,11 +19,13 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_swapchain@+-- - Requires @VK_KHR_swapchain@ to be enabled for any device-level+-- functionality ----- - Requires @VK_KHR_display@+-- - Requires @VK_KHR_display@ to be enabled for any device-level+-- functionality -- -- [__Contact__] --@@ -199,7 +201,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_display_swapchain Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_display_swapchain Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.@@ -393,7 +395,7 @@ -> -- | @pAllocator@ is the allocator used for host memory allocated for the -- swapchain objects when there is no more specific allocator available -- (see- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>).+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>). ("allocator" ::: Maybe AllocationCallbacks) -> io (("swapchains" ::: Vector SwapchainKHR)) createSharedSwapchainsKHR device createInfos allocator = liftIO . evalContT $ do
src/Vulkan/Extensions/VK_KHR_display_swapchain.hs-boot view
@@ -19,11 +19,13 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_swapchain@+-- - Requires @VK_KHR_swapchain@ to be enabled for any device-level+-- functionality ----- - Requires @VK_KHR_display@+-- - Requires @VK_KHR_display@ to be enabled for any device-level+-- functionality -- -- [__Contact__] --@@ -199,7 +201,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_display_swapchain Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_display_swapchain Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_KHR_draw_indirect_count.hs view
@@ -19,7 +19,7 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 -- -- [__Deprecation state__] --@@ -103,7 +103,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_draw_indirect_count Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_draw_indirect_count Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_KHR_driver_properties.hs view
@@ -19,9 +19,10 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_get_physical_device_properties2@+-- - Requires @VK_KHR_get_physical_device_properties2@ to be enabled+-- for any device-level functionality -- -- [__Deprecation state__] --@@ -142,7 +143,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_driver_properties Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_driver_properties Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_KHR_dynamic_rendering.hs view
@@ -19,10 +19,14 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_get_physical_device_properties2@+-- - Requires @VK_KHR_depth_stencil_resolve@ to be enabled for any+-- device-level functionality --+-- - Requires @VK_KHR_get_physical_device_properties2@ to be enabled+-- for any device-level functionality+-- -- [__Deprecation state__] -- -- - /Promoted/ to@@ -34,7 +38,7 @@ -- <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_KHR_dynamic_rendering] @tobski%0A<<Here describe the issue or question you have about the VK_KHR_dynamic_rendering extension>> > -- -- [__Extension Proposal__]--- <https://github.com/KhronosGroup/Vulkan-Docs/tree/main/proposals/VK_KHR_dynamic_rendering.asciidoc VK_KHR_dynamic_rendering>+-- <https://github.com/KhronosGroup/Vulkan-Docs/tree/main/proposals/VK_KHR_dynamic_rendering.adoc VK_KHR_dynamic_rendering> -- -- == Other Extension Metadata --@@ -268,7 +272,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_dynamic_rendering Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_dynamic_rendering Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.@@ -410,7 +414,7 @@ -- This structure can be included in the @pNext@ chain of -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo' to -- define a--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-fragment-shading-rate-attachment fragment shading rate attachment>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-fragment-shading-rate-attachment fragment shading rate attachment>. -- If @imageView@ is 'Vulkan.Core10.APIConstants.NULL_HANDLE', or if this -- structure is not specified, the implementation behaves as if a valid -- shading rate attachment was specified with all texels specifying a@@ -438,13 +442,13 @@ -- If @imageView@ is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', -- @shadingRateAttachmentTexelSize.width@ /must/ be less than or equal -- to--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxFragmentShadingRateAttachmentTexelSize maxFragmentShadingRateAttachmentTexelSize.width>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxFragmentShadingRateAttachmentTexelSize maxFragmentShadingRateAttachmentTexelSize.width> -- -- - #VUID-VkRenderingFragmentShadingRateAttachmentInfoKHR-imageView-06151# -- If @imageView@ is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', -- @shadingRateAttachmentTexelSize.width@ /must/ be greater than or -- equal to--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-minFragmentShadingRateAttachmentTexelSize minFragmentShadingRateAttachmentTexelSize.width>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-minFragmentShadingRateAttachmentTexelSize minFragmentShadingRateAttachmentTexelSize.width> -- -- - #VUID-VkRenderingFragmentShadingRateAttachmentInfoKHR-imageView-06152# -- If @imageView@ is not 'Vulkan.Core10.APIConstants.NULL_HANDLE',@@ -455,27 +459,27 @@ -- If @imageView@ is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', -- @shadingRateAttachmentTexelSize.height@ /must/ be less than or equal -- to--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxFragmentShadingRateAttachmentTexelSize maxFragmentShadingRateAttachmentTexelSize.height>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxFragmentShadingRateAttachmentTexelSize maxFragmentShadingRateAttachmentTexelSize.height> -- -- - #VUID-VkRenderingFragmentShadingRateAttachmentInfoKHR-imageView-06154# -- If @imageView@ is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', -- @shadingRateAttachmentTexelSize.height@ /must/ be greater than or -- equal to--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-minFragmentShadingRateAttachmentTexelSize minFragmentShadingRateAttachmentTexelSize.height>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-minFragmentShadingRateAttachmentTexelSize minFragmentShadingRateAttachmentTexelSize.height> -- -- - #VUID-VkRenderingFragmentShadingRateAttachmentInfoKHR-imageView-06155# -- If @imageView@ is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the -- quotient of @shadingRateAttachmentTexelSize.width@ and -- @shadingRateAttachmentTexelSize.height@ /must/ be less than or equal -- to--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxFragmentShadingRateAttachmentTexelSizeAspectRatio maxFragmentShadingRateAttachmentTexelSizeAspectRatio>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxFragmentShadingRateAttachmentTexelSizeAspectRatio maxFragmentShadingRateAttachmentTexelSizeAspectRatio> -- -- - #VUID-VkRenderingFragmentShadingRateAttachmentInfoKHR-imageView-06156# -- If @imageView@ is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the -- quotient of @shadingRateAttachmentTexelSize.height@ and -- @shadingRateAttachmentTexelSize.width@ /must/ be less than or equal -- to--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxFragmentShadingRateAttachmentTexelSizeAspectRatio maxFragmentShadingRateAttachmentTexelSizeAspectRatio>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxFragmentShadingRateAttachmentTexelSizeAspectRatio maxFragmentShadingRateAttachmentTexelSizeAspectRatio> -- -- == Valid Usage (Implicit) --@@ -607,8 +611,8 @@ -- 'Vulkan.Core10.Handles.ImageView', -- 'Vulkan.Core10.Enums.StructureType.StructureType' data RenderingFragmentDensityMapAttachmentInfoEXT = RenderingFragmentDensityMapAttachmentInfoEXT- { -- | @imageView@ is the image view that will be used as a fragment shading- -- rate attachment.+ { -- | @imageView@ is the image view that will be used as a fragment density+ -- map attachment. imageView :: ImageView , -- | @imageLayout@ is the layout that @imageView@ will be in during -- rendering.@@ -761,7 +765,7 @@ -- 'Vulkan.Core10.Enums.SubpassDescriptionFlagBits.SUBPASS_DESCRIPTION_PER_VIEW_ATTRIBUTES_BIT_NVX' -- or -- 'Vulkan.Core10.Enums.SubpassDescriptionFlagBits.SUBPASS_DESCRIPTION_PER_VIEW_POSITION_X_ONLY_BIT_NVX'--- in the subpass description flags, the per-attibute properties of the+-- in the subpass description flags, the per-attribute properties of the -- render pass instance /must/ be specified by the -- 'MultiviewPerViewAttributesInfoNVX' structure Include the -- 'MultiviewPerViewAttributesInfoNVX' structure in the @pNext@ chain of
src/Vulkan/Extensions/VK_KHR_dynamic_rendering.hs-boot view
@@ -19,10 +19,14 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_get_physical_device_properties2@+-- - Requires @VK_KHR_depth_stencil_resolve@ to be enabled for any+-- device-level functionality --+-- - Requires @VK_KHR_get_physical_device_properties2@ to be enabled+-- for any device-level functionality+-- -- [__Deprecation state__] -- -- - /Promoted/ to@@ -34,7 +38,7 @@ -- <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_KHR_dynamic_rendering] @tobski%0A<<Here describe the issue or question you have about the VK_KHR_dynamic_rendering extension>> > -- -- [__Extension Proposal__]--- <https://github.com/KhronosGroup/Vulkan-Docs/tree/main/proposals/VK_KHR_dynamic_rendering.asciidoc VK_KHR_dynamic_rendering>+-- <https://github.com/KhronosGroup/Vulkan-Docs/tree/main/proposals/VK_KHR_dynamic_rendering.adoc VK_KHR_dynamic_rendering> -- -- == Other Extension Metadata --@@ -268,7 +272,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_dynamic_rendering Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_dynamic_rendering Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_KHR_external_fence.hs view
@@ -19,9 +19,10 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_external_fence_capabilities@+-- - Requires @VK_KHR_external_fence_capabilities@ to be enabled for+-- any device-level functionality -- -- [__Deprecation state__] --@@ -119,7 +120,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_external_fence Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_external_fence Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_KHR_external_fence_capabilities.hs view
@@ -19,9 +19,9 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_get_physical_device_properties2@+-- - Requires @VK_KHR_get_physical_device_properties2@ to be enabled -- -- [__Deprecation state__] --@@ -151,7 +151,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_external_fence_capabilities Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_external_fence_capabilities Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_KHR_external_fence_fd.hs view
@@ -19,9 +19,10 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_external_fence@+-- - Requires @VK_KHR_external_fence@ to be enabled for any+-- device-level functionality -- -- [__Contact__] --@@ -99,7 +100,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_external_fence_fd Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_external_fence_fd Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.@@ -203,7 +204,7 @@ -- Exporting a file descriptor from a fence /may/ have side effects -- depending on the transference of the specified handle type, as described -- in--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-fences-importing Importing Fence State>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-fences-importing Importing Fence State>. -- -- == Return Codes --@@ -330,12 +331,12 @@ -- -- - #VUID-VkImportFenceFdInfoKHR-handleType-01464# @handleType@ /must/ -- be a value included in the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-fence-handletypes-fd Handle Types Supported by >+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-fence-handletypes-fd Handle Types Supported by > -- table -- -- - #VUID-VkImportFenceFdInfoKHR-fd-01541# @fd@ /must/ obey any -- requirements listed for @handleType@ in--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#external-fence-handle-types-compatibility external fence handle types compatibility>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#external-fence-handle-types-compatibility external fence handle types compatibility> -- -- If @handleType@ is -- 'Vulkan.Core11.Enums.ExternalFenceHandleTypeFlagBits.EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT',@@ -470,13 +471,13 @@ -- - #VUID-VkFenceGetFdInfoKHR-handleType-01454# If @handleType@ refers -- to a handle type with copy payload transference semantics, @fence@ -- /must/ be signaled, or have an associated--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-fences-signaling fence signal operation>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-fences-signaling fence signal operation> -- pending execution -- -- - #VUID-VkFenceGetFdInfoKHR-fence-01455# @fence@ /must/ not currently -- have its payload replaced by an imported payload as described below -- in--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-fences-importing Importing Fence Payloads>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-fences-importing Importing Fence Payloads> -- unless that imported payload’s handle type was included in -- 'Vulkan.Core11.Promoted_From_VK_KHR_external_fence_capabilities.ExternalFenceProperties'::@exportFromImportedHandleTypes@ -- for @handleType@
src/Vulkan/Extensions/VK_KHR_external_fence_fd.hs-boot view
@@ -19,9 +19,10 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_external_fence@+-- - Requires @VK_KHR_external_fence@ to be enabled for any+-- device-level functionality -- -- [__Contact__] --@@ -99,7 +100,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_external_fence_fd Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_external_fence_fd Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_KHR_external_fence_win32.hs view
@@ -19,9 +19,10 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_external_fence@+-- - Requires @VK_KHR_external_fence@ to be enabled for any+-- device-level functionality -- -- [__Contact__] --@@ -118,7 +119,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_external_fence_win32 Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_external_fence_win32 Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.@@ -214,7 +215,7 @@ -- Exporting a Windows handle from a fence /may/ have side effects -- depending on the transference of the specified handle type, as described -- in--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-fences-importing Importing Fence Payloads>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-fences-importing Importing Fence Payloads>. -- -- == Return Codes --@@ -343,7 +344,7 @@ -- -- - #VUID-VkImportFenceWin32HandleInfoKHR-handleType-01457# @handleType@ -- /must/ be a value included in the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-fence-handletypes-win32 Handle Types Supported by >+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-fence-handletypes-win32 Handle Types Supported by > -- table -- -- - #VUID-VkImportFenceWin32HandleInfoKHR-handleType-01459# If@@ -365,11 +366,11 @@ -- - #VUID-VkImportFenceWin32HandleInfoKHR-handle-01539# If @handle@ is -- not @NULL@, it /must/ obey any requirements listed for @handleType@ -- in--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#external-fence-handle-types-compatibility external fence handle types compatibility>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#external-fence-handle-types-compatibility external fence handle types compatibility> -- -- - #VUID-VkImportFenceWin32HandleInfoKHR-name-01540# If @name@ is not -- @NULL@, it /must/ obey any requirements listed for @handleType@ in--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#external-fence-handle-types-compatibility external fence handle types compatibility>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#external-fence-handle-types-compatibility external fence handle types compatibility> -- -- == Valid Usage (Implicit) --@@ -473,7 +474,7 @@ -- -- If -- 'Vulkan.Core11.Promoted_From_VK_KHR_external_fence.ExportFenceCreateInfo'--- is not inluded in the same @pNext@ chain, this structure is ignored.+-- is not included in the same @pNext@ chain, this structure is ignored. -- -- If -- 'Vulkan.Core11.Promoted_From_VK_KHR_external_fence.ExportFenceCreateInfo'@@ -603,7 +604,7 @@ -- - #VUID-VkFenceGetWin32HandleInfoKHR-fence-01450# @fence@ /must/ not -- currently have its payload replaced by an imported payload as -- described below in--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-fences-importing Importing Fence Payloads>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-fences-importing Importing Fence Payloads> -- unless that imported payload’s handle type was included in -- 'Vulkan.Core11.Promoted_From_VK_KHR_external_fence_capabilities.ExternalFenceProperties'::@exportFromImportedHandleTypes@ -- for @handleType@@@ -611,7 +612,7 @@ -- - #VUID-VkFenceGetWin32HandleInfoKHR-handleType-01451# If @handleType@ -- refers to a handle type with copy payload transference semantics, -- @fence@ /must/ be signaled, or have an associated--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-fences-signaling fence signal operation>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-fences-signaling fence signal operation> -- pending execution -- -- - #VUID-VkFenceGetWin32HandleInfoKHR-handleType-01452# @handleType@
src/Vulkan/Extensions/VK_KHR_external_fence_win32.hs-boot view
@@ -19,9 +19,10 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_external_fence@+-- - Requires @VK_KHR_external_fence@ to be enabled for any+-- device-level functionality -- -- [__Contact__] --@@ -118,7 +119,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_external_fence_win32 Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_external_fence_win32 Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_KHR_external_memory.hs view
@@ -19,9 +19,10 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_external_memory_capabilities@+-- - Requires @VK_KHR_external_memory_capabilities@ to be enabled for+-- any device-level functionality -- -- [__Deprecation state__] --@@ -146,7 +147,7 @@ -- -- 2) If memory objects are shared between processes and APIs, is this -- considered aliasing according to the rules outlined in the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#resources-memory-aliasing Memory Aliasing>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#resources-memory-aliasing Memory Aliasing> -- section? -- -- __RESOLVED__: Yes. Applications must take care to obey all restrictions@@ -333,7 +334,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_external_memory Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_external_memory Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_KHR_external_memory_capabilities.hs view
@@ -19,9 +19,9 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_get_physical_device_properties2@+-- - Requires @VK_KHR_get_physical_device_properties2@ to be enabled -- -- [__Deprecation state__] --@@ -237,7 +237,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_external_memory_capabilities Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_external_memory_capabilities Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_KHR_external_memory_fd.hs view
@@ -19,9 +19,10 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_external_memory@+-- - Requires @VK_KHR_external_memory@ to be enabled for any+-- device-level functionality -- -- [__Contact__] --@@ -120,7 +121,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_external_memory_fd Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_external_memory_fd Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.@@ -364,11 +365,11 @@ -- - #VUID-VkImportMemoryFdInfoKHR-fd-01746# The memory represented by -- @fd@ /must/ have been created from a physical device and driver that -- is compatible with @device@ and @handleType@, as described in--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#external-memory-handle-types-compatibility>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#external-memory-handle-types-compatibility> -- -- - #VUID-VkImportMemoryFdInfoKHR-fd-01520# @fd@ /must/ obey any -- requirements listed for @handleType@ in--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#external-memory-handle-types-compatibility external memory handle types compatibility>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#external-memory-handle-types-compatibility external memory handle types compatibility> -- -- == Valid Usage (Implicit) --@@ -485,7 +486,7 @@ zero --- | VkMemoryGetFdInfoKHR - Structure describing a POSIX FD semaphore export+-- | VkMemoryGetFdInfoKHR - Structure describing a POSIX FD memory export -- operation -- -- = Description
src/Vulkan/Extensions/VK_KHR_external_memory_fd.hs-boot view
@@ -19,9 +19,10 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_external_memory@+-- - Requires @VK_KHR_external_memory@ to be enabled for any+-- device-level functionality -- -- [__Contact__] --@@ -120,7 +121,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_external_memory_fd Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_external_memory_fd Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_KHR_external_memory_win32.hs view
@@ -19,9 +19,10 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_external_memory@+-- - Requires @VK_KHR_external_memory@ to be enabled for any+-- device-level functionality -- -- [__Contact__] --@@ -131,7 +132,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_external_memory_win32 Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_external_memory_win32 Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.@@ -407,11 +408,11 @@ -- - #VUID-VkImportMemoryWin32HandleInfoKHR-handle-01518# If @handle@ is -- not @NULL@, it /must/ obey any requirements listed for @handleType@ -- in--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#external-memory-handle-types-compatibility external memory handle types compatibility>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#external-memory-handle-types-compatibility external memory handle types compatibility> -- -- - #VUID-VkImportMemoryWin32HandleInfoKHR-name-01519# If @name@ is not -- @NULL@, it /must/ obey any requirements listed for @handleType@ in--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#external-memory-handle-types-compatibility external memory handle types compatibility>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#external-memory-handle-types-compatibility external memory handle types compatibility> -- -- == Valid Usage (Implicit) --@@ -649,7 +650,7 @@ -- | VkMemoryGetWin32HandleInfoKHR - Structure describing a Win32 handle--- semaphore export operation+-- memory export operation -- -- = Description --
src/Vulkan/Extensions/VK_KHR_external_memory_win32.hs-boot view
@@ -19,9 +19,10 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_external_memory@+-- - Requires @VK_KHR_external_memory@ to be enabled for any+-- device-level functionality -- -- [__Contact__] --@@ -131,7 +132,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_external_memory_win32 Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_external_memory_win32 Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_KHR_external_semaphore.hs view
@@ -19,9 +19,10 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_external_semaphore_capabilities@+-- - Requires @VK_KHR_external_semaphore_capabilities@ to be enabled+-- for any device-level functionality -- -- [__Deprecation state__] --@@ -140,7 +141,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_external_semaphore Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_external_semaphore Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_KHR_external_semaphore_capabilities.hs view
@@ -19,9 +19,9 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_get_physical_device_properties2@+-- - Requires @VK_KHR_get_physical_device_properties2@ to be enabled -- -- [__Deprecation state__] --@@ -151,7 +151,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_external_semaphore_capabilities Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_external_semaphore_capabilities Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_KHR_external_semaphore_fd.hs view
@@ -19,9 +19,10 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_external_semaphore@+-- - Requires @VK_KHR_external_semaphore@ to be enabled for any+-- device-level functionality -- -- [__Contact__] --@@ -103,7 +104,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_external_semaphore_fd Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_external_semaphore_fd Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.@@ -202,7 +203,7 @@ -- Exporting a file descriptor from a semaphore /may/ have side effects -- depending on the transference of the specified handle type, as described -- in--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-semaphores-importing Importing Semaphore State>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-semaphores-importing Importing Semaphore State>. -- -- == Return Codes --@@ -331,12 +332,12 @@ -- -- - #VUID-VkImportSemaphoreFdInfoKHR-handleType-01143# @handleType@ -- /must/ be a value included in the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-semaphore-handletypes-fd Handle Types Supported by >+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-semaphore-handletypes-fd Handle Types Supported by > -- table -- -- - #VUID-VkImportSemaphoreFdInfoKHR-fd-01544# @fd@ /must/ obey any -- requirements listed for @handleType@ in--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#external-semaphore-handle-types-compatibility external semaphore handle types compatibility>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#external-semaphore-handle-types-compatibility external semaphore handle types compatibility> -- -- - #VUID-VkImportSemaphoreFdInfoKHR-handleType-03263# If @handleType@ -- is@@ -497,7 +498,7 @@ -- - #VUID-VkSemaphoreGetFdInfoKHR-semaphore-01133# @semaphore@ /must/ -- not currently have its payload replaced by an imported payload as -- described below in--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-semaphores-importing Importing Semaphore Payloads>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-semaphores-importing Importing Semaphore Payloads> -- unless that imported payload’s handle type was included in -- 'Vulkan.Core11.Promoted_From_VK_KHR_external_semaphore_capabilities.ExternalSemaphoreProperties'::@exportFromImportedHandleTypes@ -- for @handleType@@@ -505,13 +506,13 @@ -- - #VUID-VkSemaphoreGetFdInfoKHR-handleType-01134# If @handleType@ -- refers to a handle type with copy payload transference semantics, as -- defined below in--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-semaphores-importing Importing Semaphore Payloads>,+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-semaphores-importing Importing Semaphore Payloads>, -- there /must/ be no queue waiting on @semaphore@ -- -- - #VUID-VkSemaphoreGetFdInfoKHR-handleType-01135# If @handleType@ -- refers to a handle type with copy payload transference semantics, -- @semaphore@ /must/ be signaled, or have an associated--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-semaphores-signaling semaphore signal operation>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-semaphores-signaling semaphore signal operation> -- pending execution -- -- - #VUID-VkSemaphoreGetFdInfoKHR-handleType-01136# @handleType@ /must/
src/Vulkan/Extensions/VK_KHR_external_semaphore_fd.hs-boot view
@@ -19,9 +19,10 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_external_semaphore@+-- - Requires @VK_KHR_external_semaphore@ to be enabled for any+-- device-level functionality -- -- [__Contact__] --@@ -103,7 +104,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_external_semaphore_fd Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_external_semaphore_fd Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_KHR_external_semaphore_win32.hs view
@@ -19,9 +19,10 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_external_semaphore@+-- - Requires @VK_KHR_external_semaphore@ to be enabled for any+-- device-level functionality -- -- [__Contact__] --@@ -142,7 +143,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_external_semaphore_win32 Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_external_semaphore_win32 Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.@@ -248,7 +249,7 @@ -- Exporting a Windows handle from a semaphore /may/ have side effects -- depending on the transference of the specified handle type, as described -- in--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-semaphores-importing Importing Semaphore Payloads>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-semaphores-importing Importing Semaphore Payloads>. -- -- == Return Codes --@@ -382,7 +383,7 @@ -- -- - #VUID-VkImportSemaphoreWin32HandleInfoKHR-handleType-01140# -- @handleType@ /must/ be a value included in the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-semaphore-handletypes-win32 Handle Types Supported by >+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-semaphore-handletypes-win32 Handle Types Supported by > -- table -- -- - #VUID-VkImportSemaphoreWin32HandleInfoKHR-handleType-01466# If@@ -406,12 +407,12 @@ -- - #VUID-VkImportSemaphoreWin32HandleInfoKHR-handle-01542# If @handle@ -- is not @NULL@, it /must/ obey any requirements listed for -- @handleType@ in--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#external-semaphore-handle-types-compatibility external semaphore handle types compatibility>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#external-semaphore-handle-types-compatibility external semaphore handle types compatibility> -- -- - #VUID-VkImportSemaphoreWin32HandleInfoKHR-name-01543# If @name@ is -- not @NULL@, it /must/ obey any requirements listed for @handleType@ -- in--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#external-semaphore-handle-types-compatibility external semaphore handle types compatibility>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#external-semaphore-handle-types-compatibility external semaphore handle types compatibility> -- -- - #VUID-VkImportSemaphoreWin32HandleInfoKHR-handleType-03261# If -- @handleType@ is@@ -673,7 +674,7 @@ -- or 'Vulkan.Core10.Queue.SubmitInfo'::@pSignalSemaphores@ corresponding -- to an entry in @pWaitSemaphoreValues@ or @pSignalSemaphoreValues@ -- respectively does not currently have a--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-semaphores-payloads payload>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-semaphores-payloads payload> -- referring to a Direct3D 12 fence, the implementation /must/ ignore the -- value in the @pWaitSemaphoreValues@ or @pSignalSemaphoreValues@ entry. --@@ -841,7 +842,7 @@ -- - #VUID-VkSemaphoreGetWin32HandleInfoKHR-semaphore-01128# @semaphore@ -- /must/ not currently have its payload replaced by an imported -- payload as described below in--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-semaphores-importing Importing Semaphore Payloads>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-semaphores-importing Importing Semaphore Payloads> -- unless that imported payload’s handle type was included in -- 'Vulkan.Core11.Promoted_From_VK_KHR_external_semaphore_capabilities.ExternalSemaphoreProperties'::@exportFromImportedHandleTypes@ -- for @handleType@@@ -849,13 +850,13 @@ -- - #VUID-VkSemaphoreGetWin32HandleInfoKHR-handleType-01129# If -- @handleType@ refers to a handle type with copy payload transference -- semantics, as defined below in--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-semaphores-importing Importing Semaphore Payloads>,+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-semaphores-importing Importing Semaphore Payloads>, -- there /must/ be no queue waiting on @semaphore@ -- -- - #VUID-VkSemaphoreGetWin32HandleInfoKHR-handleType-01130# If -- @handleType@ refers to a handle type with copy payload transference -- semantics, @semaphore@ /must/ be signaled, or have an associated--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-semaphores-signaling semaphore signal operation>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-semaphores-signaling semaphore signal operation> -- pending execution -- -- - #VUID-VkSemaphoreGetWin32HandleInfoKHR-handleType-01131#
src/Vulkan/Extensions/VK_KHR_external_semaphore_win32.hs-boot view
@@ -19,9 +19,10 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_external_semaphore@+-- - Requires @VK_KHR_external_semaphore@ to be enabled for any+-- device-level functionality -- -- [__Contact__] --@@ -142,7 +143,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_external_semaphore_win32 Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_external_semaphore_win32 Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_KHR_format_feature_flags2.hs view
@@ -15,13 +15,14 @@ -- 361 -- -- [__Revision__]--- 1+-- 2 -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_get_physical_device_properties2@+-- - Requires @VK_KHR_get_physical_device_properties2@ to be enabled+-- for any device-level functionality -- -- [__Deprecation state__] --@@ -95,6 +96,17 @@ -- component, was undefined. This bit clarifies on which formats such -- instructions can be used. --+-- Prior to version 2 of this extension, implementations exposing the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-shaderStorageImageReadWithoutFormat shaderStorageImageReadWithoutFormat>+-- and+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-shaderStorageImageWriteWithoutFormat shaderStorageImageWriteWithoutFormat>+-- implementations may not report+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT_KHR'+-- and+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT_KHR'+-- in 'FormatProperties3KHR'::@bufferFeatures@. Despite this, buffer+-- reads\/writes are supported as intended by the original features.+-- -- == New Structures -- -- - Extending@@ -128,6 +140,12 @@ -- -- == Version History --+-- - Revision 2, 2022-07-20 (Lionel Landwerlin)+--+-- - Clarify that+-- VK_FORMAT_FEATURE_2_STORAGE_(READ|WRITE)_WITHOUT_FORMAT_BIT also+-- apply to buffer views.+-- -- - Revision 1, 2020-07-21 (Lionel Landwerlin) -- -- - Initial draft@@ -140,7 +158,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_format_feature_flags2 Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_format_feature_flags2 Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.@@ -175,11 +193,11 @@ type FormatProperties3KHR = FormatProperties3 -type KHR_FORMAT_FEATURE_FLAGS_2_SPEC_VERSION = 1+type KHR_FORMAT_FEATURE_FLAGS_2_SPEC_VERSION = 2 -- No documentation found for TopLevel "VK_KHR_FORMAT_FEATURE_FLAGS_2_SPEC_VERSION" pattern KHR_FORMAT_FEATURE_FLAGS_2_SPEC_VERSION :: forall a . Integral a => a-pattern KHR_FORMAT_FEATURE_FLAGS_2_SPEC_VERSION = 1+pattern KHR_FORMAT_FEATURE_FLAGS_2_SPEC_VERSION = 2 type KHR_FORMAT_FEATURE_FLAGS_2_EXTENSION_NAME = "VK_KHR_format_feature_flags2"
+ src/Vulkan/Extensions/VK_KHR_fragment_shader_barycentric.hs view
@@ -0,0 +1,364 @@+{-# language CPP #-}+-- | = Name+--+-- VK_KHR_fragment_shader_barycentric - device extension+--+-- == VK_KHR_fragment_shader_barycentric+--+-- [__Name String__]+-- @VK_KHR_fragment_shader_barycentric@+--+-- [__Extension Type__]+-- Device extension+--+-- [__Registered Extension Number__]+-- 323+--+-- [__Revision__]+-- 1+--+-- [__Extension and Version Dependencies__]+--+-- - Requires support for Vulkan 1.0+--+-- - Requires @VK_KHR_get_physical_device_properties2@ to be enabled+-- for any device-level functionality+--+-- [__Contact__]+--+-- - Stu Smith+--+-- [__Extension Proposal__]+-- <https://github.com/KhronosGroup/Vulkan-Docs/tree/main/proposals/VK_KHR_fragment_shader_barycentric.adoc VK_KHR_fragment_shader_barycentric>+--+-- == Other Extension Metadata+--+-- [__Last Modified Date__]+-- 2022-03-10+--+-- [__IP Status__]+-- No known IP claims.+--+-- [__Interactions and External Dependencies__]+--+-- - This extension requires+-- <https://htmlpreview.github.io/?https://github.com/KhronosGroup/SPIRV-Registry/blob/master/extensions/KHR/SPV_KHR_fragment_shader_barycentric.html SPV_KHR_fragment_shader_barycentric>+--+-- - This extension provides API support for+-- <https://github.com/KhronosGroup/GLSL/blob/master/extensions/ext/GLSL_EXT_fragment_shader_barycentric.txt GL_EXT_fragment_shader_barycentric>+--+-- [__Contributors__]+--+-- - Stu Smith, AMD+--+-- - Tobias Hector, AMD+--+-- - Graeme Leese, Broadcom+--+-- - Jan-Harald Fredriksen, Arm+--+-- - Slawek Grajewski, Intel+--+-- - Pat Brown, NVIDIA+--+-- - Hans-Kristian Arntzen, Valve+--+-- - Contributors to the VK_NV_fragment_shader_barycentric+-- specification+--+-- == Description+--+-- This extension is based on the @VK_NV_fragment_shader_barycentric@+-- extension, and adds support for the following SPIR-V extension in+-- Vulkan:+--+-- - <https://htmlpreview.github.io/?https://github.com/KhronosGroup/SPIRV-Registry/blob/master/extensions/KHR/SPV_KHR_fragment_shader_barycentric.html SPV_KHR_fragment_shader_barycentric>+--+-- The extension provides access to three additional fragment shader+-- variable decorations in SPIR-V:+--+-- - @PerVertexKHR@, which indicates that a fragment shader input will+-- not have interpolated values, but instead must be accessed with an+-- extra array index that identifies one of the vertices of the+-- primitive producing the fragment+--+-- - @BaryCoordKHR@, which indicates that the variable is a+-- three-component floating-point vector holding barycentric weights+-- for the fragment produced using perspective interpolation+--+-- - @BaryCoordNoPerspKHR@, which indicates that the variable is a+-- three-component floating-point vector holding barycentric weights+-- for the fragment produced using linear interpolation+--+-- When using GLSL source-based shader languages, the following variables+-- from @GL_EXT_fragment_shader_barycentric@ map to these SPIR-V built-in+-- decorations:+--+-- - @in vec3 gl_BaryCoordEXT;@ → @BaryCoordKHR@+--+-- - @in vec3 gl_BaryCoordNoPerspEXT;@ → @BaryCoordNoPerspKHR@+--+-- GLSL variables declared using the @pervertexEXT@ GLSL qualifier are+-- expected to be decorated with @PerVertexKHR@ in SPIR-V.+--+-- == New Structures+--+-- - Extending+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',+-- 'Vulkan.Core10.Device.DeviceCreateInfo':+--+-- - 'PhysicalDeviceFragmentShaderBarycentricFeaturesKHR'+--+-- - Extending+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2':+--+-- - 'PhysicalDeviceFragmentShaderBarycentricPropertiesKHR'+--+-- == New Enum Constants+--+-- - 'KHR_FRAGMENT_SHADER_BARYCENTRIC_EXTENSION_NAME'+--+-- - 'KHR_FRAGMENT_SHADER_BARYCENTRIC_SPEC_VERSION'+--+-- - Extending 'Vulkan.Core10.Enums.StructureType.StructureType':+--+-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_KHR'+--+-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_PROPERTIES_KHR'+--+-- == New Built-In Variables+--+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-barycoordkhr BaryCoordKHR>+--+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-barycoordnoperspkhr BaryCoordNoPerspKHR>+--+-- == New SPIR-V Decorations+--+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-interpolation-decorations-pervertexkhr PerVertexKHR>+--+-- == New SPIR-V Capabilities+--+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-FragmentBarycentricKHR FragmentBarycentricKHR>+--+-- == Issues+--+-- 1) What are the interactions with MSAA and how are @BaryCoordKHR@ and+-- @BaryCoordNoPerspKHR@ interpolated?+--+-- __RESOLVED__: The inputs decorated with @BaryCoordKHR@ or+-- @BaryCoordNoPerspKHR@ /may/ also be decorated with the @Centroid@ or+-- @Sample@ qualifiers to specify interpolation, like any other fragment+-- shader input. If+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-shaderSampleRateInterpolationFunctions shaderSampleRateInterpolationFunctions>+-- is enabled, the extended instructions InterpolateAtCentroid,+-- InterpolateAtOffset, and InterpolateAtSample from the GLSL.std.450 /may/+-- also be used with inputs decorated with @BaryCoordKHR@ or+-- @BaryCoordNoPerspKHR@.+--+-- == Version History+--+-- - Revision 1, 2022-03-10 (Stu Smith)+--+-- - Initial revision+--+-- == See Also+--+-- 'PhysicalDeviceFragmentShaderBarycentricFeaturesKHR',+-- 'PhysicalDeviceFragmentShaderBarycentricPropertiesKHR'+--+-- == Document Notes+--+-- For more information, see the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_fragment_shader_barycentric Vulkan Specification>+--+-- This page is a generated document. Fixes and changes should be made to+-- the generator scripts, not directly.+module Vulkan.Extensions.VK_KHR_fragment_shader_barycentric ( PhysicalDeviceFragmentShaderBarycentricFeaturesKHR(..)+ , PhysicalDeviceFragmentShaderBarycentricPropertiesKHR(..)+ , KHR_FRAGMENT_SHADER_BARYCENTRIC_SPEC_VERSION+ , pattern KHR_FRAGMENT_SHADER_BARYCENTRIC_SPEC_VERSION+ , KHR_FRAGMENT_SHADER_BARYCENTRIC_EXTENSION_NAME+ , pattern KHR_FRAGMENT_SHADER_BARYCENTRIC_EXTENSION_NAME+ ) where++import Foreign.Marshal.Alloc (allocaBytes)+import Foreign.Ptr (nullPtr)+import Foreign.Ptr (plusPtr)+import Vulkan.CStruct (FromCStruct)+import Vulkan.CStruct (FromCStruct(..))+import Vulkan.CStruct (ToCStruct)+import Vulkan.CStruct (ToCStruct(..))+import Vulkan.Zero (Zero(..))+import Data.String (IsString)+import Data.Typeable (Typeable)+import Foreign.Storable (Storable)+import Foreign.Storable (Storable(peek))+import Foreign.Storable (Storable(poke))+import qualified Foreign.Storable (Storable(..))+import GHC.Generics (Generic)+import Foreign.Ptr (Ptr)+import Data.Kind (Type)+import Vulkan.Core10.FundamentalTypes (bool32ToBool)+import Vulkan.Core10.FundamentalTypes (boolToBool32)+import Vulkan.Core10.FundamentalTypes (Bool32)+import Vulkan.Core10.Enums.StructureType (StructureType)+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_KHR))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_PROPERTIES_KHR))+-- | VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR - Structure+-- describing barycentric support in fragment shaders that can be supported+-- by an implementation+--+-- = Members+--+-- This structure describes the following feature:+--+-- = Description+--+-- See+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-barycentric Barycentric Interpolation>+-- for more information.+--+-- If the 'PhysicalDeviceFragmentShaderBarycentricFeaturesKHR' structure is+-- included in the @pNext@ chain of the+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2'+-- structure passed to+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceFeatures2',+-- it is filled in to indicate whether each corresponding feature is+-- supported. 'PhysicalDeviceFragmentShaderBarycentricFeaturesKHR' /can/+-- also be used in the @pNext@ chain of+-- 'Vulkan.Core10.Device.DeviceCreateInfo' to selectively enable these+-- features.+--+-- == Valid Usage (Implicit)+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_fragment_shader_barycentric VK_KHR_fragment_shader_barycentric>,+-- 'Vulkan.Core10.FundamentalTypes.Bool32',+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data PhysicalDeviceFragmentShaderBarycentricFeaturesKHR = PhysicalDeviceFragmentShaderBarycentricFeaturesKHR+ { -- | #features-fragmentShaderBarycentric# @fragmentShaderBarycentric@+ -- indicates that the implementation supports the @BaryCoordKHR@ and+ -- @BaryCoordNoPerspKHR@ SPIR-V fragment shader built-ins and supports the+ -- @PerVertexKHR@ SPIR-V decoration on fragment shader input variables.+ fragmentShaderBarycentric :: Bool }+ deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (PhysicalDeviceFragmentShaderBarycentricFeaturesKHR)+#endif+deriving instance Show PhysicalDeviceFragmentShaderBarycentricFeaturesKHR++instance ToCStruct PhysicalDeviceFragmentShaderBarycentricFeaturesKHR where+ withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)+ pokeCStruct p PhysicalDeviceFragmentShaderBarycentricFeaturesKHR{..} f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_KHR)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (fragmentShaderBarycentric))+ f+ cStructSize = 24+ cStructAlignment = 8+ pokeZeroCStruct p f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_KHR)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (zero))+ f++instance FromCStruct PhysicalDeviceFragmentShaderBarycentricFeaturesKHR where+ peekCStruct p = do+ fragmentShaderBarycentric <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))+ pure $ PhysicalDeviceFragmentShaderBarycentricFeaturesKHR+ (bool32ToBool fragmentShaderBarycentric)++instance Storable PhysicalDeviceFragmentShaderBarycentricFeaturesKHR where+ sizeOf ~_ = 24+ alignment ~_ = 8+ peek = peekCStruct+ poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero PhysicalDeviceFragmentShaderBarycentricFeaturesKHR where+ zero = PhysicalDeviceFragmentShaderBarycentricFeaturesKHR+ zero+++-- | VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR - Structure+-- describing fragment shader barycentric limits of an implementation+--+-- = Description+--+-- If the 'PhysicalDeviceFragmentShaderBarycentricPropertiesKHR' structure+-- is included in the @pNext@ chain of the+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2'+-- structure passed to+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceProperties2',+-- it is filled in with each corresponding implementation-dependent+-- property.+--+-- == Valid Usage (Implicit)+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_fragment_shader_barycentric VK_KHR_fragment_shader_barycentric>,+-- 'Vulkan.Core10.FundamentalTypes.Bool32',+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data PhysicalDeviceFragmentShaderBarycentricPropertiesKHR = PhysicalDeviceFragmentShaderBarycentricPropertiesKHR+ { -- | #limits-triStripVertexOrderIndependentOfProvokingVertex#+ -- @triStripVertexOrderIndependentOfProvokingVertex@ indicates that the+ -- implementation does not change its vertex numbering for triangle strip+ -- primitives when the+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#vertexpostproc-flatshading provoking vertex mode>+ -- is+ -- 'Vulkan.Extensions.VK_EXT_provoking_vertex.PROVOKING_VERTEX_MODE_LAST_VERTEX_EXT',+ -- as shown in the+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-barycentric-order-table-last-vertex last vertex table>.+ triStripVertexOrderIndependentOfProvokingVertex :: Bool }+ deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (PhysicalDeviceFragmentShaderBarycentricPropertiesKHR)+#endif+deriving instance Show PhysicalDeviceFragmentShaderBarycentricPropertiesKHR++instance ToCStruct PhysicalDeviceFragmentShaderBarycentricPropertiesKHR where+ withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)+ pokeCStruct p PhysicalDeviceFragmentShaderBarycentricPropertiesKHR{..} f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_PROPERTIES_KHR)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (triStripVertexOrderIndependentOfProvokingVertex))+ f+ cStructSize = 24+ cStructAlignment = 8+ pokeZeroCStruct p f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_PROPERTIES_KHR)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (zero))+ f++instance FromCStruct PhysicalDeviceFragmentShaderBarycentricPropertiesKHR where+ peekCStruct p = do+ triStripVertexOrderIndependentOfProvokingVertex <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))+ pure $ PhysicalDeviceFragmentShaderBarycentricPropertiesKHR+ (bool32ToBool triStripVertexOrderIndependentOfProvokingVertex)++instance Storable PhysicalDeviceFragmentShaderBarycentricPropertiesKHR where+ sizeOf ~_ = 24+ alignment ~_ = 8+ peek = peekCStruct+ poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero PhysicalDeviceFragmentShaderBarycentricPropertiesKHR where+ zero = PhysicalDeviceFragmentShaderBarycentricPropertiesKHR+ zero+++type KHR_FRAGMENT_SHADER_BARYCENTRIC_SPEC_VERSION = 1++-- No documentation found for TopLevel "VK_KHR_FRAGMENT_SHADER_BARYCENTRIC_SPEC_VERSION"+pattern KHR_FRAGMENT_SHADER_BARYCENTRIC_SPEC_VERSION :: forall a . Integral a => a+pattern KHR_FRAGMENT_SHADER_BARYCENTRIC_SPEC_VERSION = 1+++type KHR_FRAGMENT_SHADER_BARYCENTRIC_EXTENSION_NAME = "VK_KHR_fragment_shader_barycentric"++-- No documentation found for TopLevel "VK_KHR_FRAGMENT_SHADER_BARYCENTRIC_EXTENSION_NAME"+pattern KHR_FRAGMENT_SHADER_BARYCENTRIC_EXTENSION_NAME :: forall a . (Eq a, IsString a) => a+pattern KHR_FRAGMENT_SHADER_BARYCENTRIC_EXTENSION_NAME = "VK_KHR_fragment_shader_barycentric"+
+ src/Vulkan/Extensions/VK_KHR_fragment_shader_barycentric.hs-boot view
@@ -0,0 +1,198 @@+{-# language CPP #-}+-- | = Name+--+-- VK_KHR_fragment_shader_barycentric - device extension+--+-- == VK_KHR_fragment_shader_barycentric+--+-- [__Name String__]+-- @VK_KHR_fragment_shader_barycentric@+--+-- [__Extension Type__]+-- Device extension+--+-- [__Registered Extension Number__]+-- 323+--+-- [__Revision__]+-- 1+--+-- [__Extension and Version Dependencies__]+--+-- - Requires support for Vulkan 1.0+--+-- - Requires @VK_KHR_get_physical_device_properties2@ to be enabled+-- for any device-level functionality+--+-- [__Contact__]+--+-- - Stu Smith+--+-- [__Extension Proposal__]+-- <https://github.com/KhronosGroup/Vulkan-Docs/tree/main/proposals/VK_KHR_fragment_shader_barycentric.adoc VK_KHR_fragment_shader_barycentric>+--+-- == Other Extension Metadata+--+-- [__Last Modified Date__]+-- 2022-03-10+--+-- [__IP Status__]+-- No known IP claims.+--+-- [__Interactions and External Dependencies__]+--+-- - This extension requires+-- <https://htmlpreview.github.io/?https://github.com/KhronosGroup/SPIRV-Registry/blob/master/extensions/KHR/SPV_KHR_fragment_shader_barycentric.html SPV_KHR_fragment_shader_barycentric>+--+-- - This extension provides API support for+-- <https://github.com/KhronosGroup/GLSL/blob/master/extensions/ext/GLSL_EXT_fragment_shader_barycentric.txt GL_EXT_fragment_shader_barycentric>+--+-- [__Contributors__]+--+-- - Stu Smith, AMD+--+-- - Tobias Hector, AMD+--+-- - Graeme Leese, Broadcom+--+-- - Jan-Harald Fredriksen, Arm+--+-- - Slawek Grajewski, Intel+--+-- - Pat Brown, NVIDIA+--+-- - Hans-Kristian Arntzen, Valve+--+-- - Contributors to the VK_NV_fragment_shader_barycentric+-- specification+--+-- == Description+--+-- This extension is based on the @VK_NV_fragment_shader_barycentric@+-- extension, and adds support for the following SPIR-V extension in+-- Vulkan:+--+-- - <https://htmlpreview.github.io/?https://github.com/KhronosGroup/SPIRV-Registry/blob/master/extensions/KHR/SPV_KHR_fragment_shader_barycentric.html SPV_KHR_fragment_shader_barycentric>+--+-- The extension provides access to three additional fragment shader+-- variable decorations in SPIR-V:+--+-- - @PerVertexKHR@, which indicates that a fragment shader input will+-- not have interpolated values, but instead must be accessed with an+-- extra array index that identifies one of the vertices of the+-- primitive producing the fragment+--+-- - @BaryCoordKHR@, which indicates that the variable is a+-- three-component floating-point vector holding barycentric weights+-- for the fragment produced using perspective interpolation+--+-- - @BaryCoordNoPerspKHR@, which indicates that the variable is a+-- three-component floating-point vector holding barycentric weights+-- for the fragment produced using linear interpolation+--+-- When using GLSL source-based shader languages, the following variables+-- from @GL_EXT_fragment_shader_barycentric@ map to these SPIR-V built-in+-- decorations:+--+-- - @in vec3 gl_BaryCoordEXT;@ → @BaryCoordKHR@+--+-- - @in vec3 gl_BaryCoordNoPerspEXT;@ → @BaryCoordNoPerspKHR@+--+-- GLSL variables declared using the @pervertexEXT@ GLSL qualifier are+-- expected to be decorated with @PerVertexKHR@ in SPIR-V.+--+-- == New Structures+--+-- - Extending+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',+-- 'Vulkan.Core10.Device.DeviceCreateInfo':+--+-- - 'PhysicalDeviceFragmentShaderBarycentricFeaturesKHR'+--+-- - Extending+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2':+--+-- - 'PhysicalDeviceFragmentShaderBarycentricPropertiesKHR'+--+-- == New Enum Constants+--+-- - 'KHR_FRAGMENT_SHADER_BARYCENTRIC_EXTENSION_NAME'+--+-- - 'KHR_FRAGMENT_SHADER_BARYCENTRIC_SPEC_VERSION'+--+-- - Extending 'Vulkan.Core10.Enums.StructureType.StructureType':+--+-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_KHR'+--+-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_PROPERTIES_KHR'+--+-- == New Built-In Variables+--+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-barycoordkhr BaryCoordKHR>+--+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-barycoordnoperspkhr BaryCoordNoPerspKHR>+--+-- == New SPIR-V Decorations+--+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-interpolation-decorations-pervertexkhr PerVertexKHR>+--+-- == New SPIR-V Capabilities+--+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-FragmentBarycentricKHR FragmentBarycentricKHR>+--+-- == Issues+--+-- 1) What are the interactions with MSAA and how are @BaryCoordKHR@ and+-- @BaryCoordNoPerspKHR@ interpolated?+--+-- __RESOLVED__: The inputs decorated with @BaryCoordKHR@ or+-- @BaryCoordNoPerspKHR@ /may/ also be decorated with the @Centroid@ or+-- @Sample@ qualifiers to specify interpolation, like any other fragment+-- shader input. If+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-shaderSampleRateInterpolationFunctions shaderSampleRateInterpolationFunctions>+-- is enabled, the extended instructions InterpolateAtCentroid,+-- InterpolateAtOffset, and InterpolateAtSample from the GLSL.std.450 /may/+-- also be used with inputs decorated with @BaryCoordKHR@ or+-- @BaryCoordNoPerspKHR@.+--+-- == Version History+--+-- - Revision 1, 2022-03-10 (Stu Smith)+--+-- - Initial revision+--+-- == See Also+--+-- 'PhysicalDeviceFragmentShaderBarycentricFeaturesKHR',+-- 'PhysicalDeviceFragmentShaderBarycentricPropertiesKHR'+--+-- == Document Notes+--+-- For more information, see the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_fragment_shader_barycentric Vulkan Specification>+--+-- This page is a generated document. Fixes and changes should be made to+-- the generator scripts, not directly.+module Vulkan.Extensions.VK_KHR_fragment_shader_barycentric ( PhysicalDeviceFragmentShaderBarycentricFeaturesKHR+ , PhysicalDeviceFragmentShaderBarycentricPropertiesKHR+ ) where++import Vulkan.CStruct (FromCStruct)+import Vulkan.CStruct (ToCStruct)+import Data.Kind (Type)++data PhysicalDeviceFragmentShaderBarycentricFeaturesKHR++instance ToCStruct PhysicalDeviceFragmentShaderBarycentricFeaturesKHR+instance Show PhysicalDeviceFragmentShaderBarycentricFeaturesKHR++instance FromCStruct PhysicalDeviceFragmentShaderBarycentricFeaturesKHR+++data PhysicalDeviceFragmentShaderBarycentricPropertiesKHR++instance ToCStruct PhysicalDeviceFragmentShaderBarycentricPropertiesKHR+instance Show PhysicalDeviceFragmentShaderBarycentricPropertiesKHR++instance FromCStruct PhysicalDeviceFragmentShaderBarycentricPropertiesKHR+
src/Vulkan/Extensions/VK_KHR_fragment_shading_rate.hs view
@@ -19,11 +19,13 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_create_renderpass2@+-- - Requires @VK_KHR_create_renderpass2@ to be enabled for any+-- device-level functionality ----- - Requires @VK_KHR_get_physical_device_properties2@+-- - Requires @VK_KHR_get_physical_device_properties2@ to be enabled+-- for any device-level functionality -- -- [__Contact__] --@@ -31,7 +33,7 @@ -- <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_KHR_fragment_shading_rate] @tobski%0A<<Here describe the issue or question you have about the VK_KHR_fragment_shading_rate extension>> > -- -- [__Extension Proposal__]--- <https://github.com/KhronosGroup/Vulkan-Docs/tree/main/proposals/VK_KHR_fragment_shading_rate.asciidoc VK_KHR_fragment_shading_rate>+-- <https://github.com/KhronosGroup/Vulkan-Docs/tree/main/proposals/VK_KHR_fragment_shading_rate.adoc VK_KHR_fragment_shading_rate> -- -- == Other Extension Metadata --@@ -80,14 +82,14 @@ -- Up to three methods are available to the application to change the -- fragment shading rate: ----- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-fragment-shading-rate-pipeline>,+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-fragment-shading-rate-pipeline>, -- which allows the specification of a rate per-draw. ----- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-fragment-shading-rate-primitive>,+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-fragment-shading-rate-primitive>, -- which allows the specification of a rate per primitive, specified -- during shading. ----- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-fragment-shading-rate-attachment>,+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-fragment-shading-rate-attachment>, -- which allows the specification of a rate per-region of the -- framebuffer, specified in a specialized image attachment. --@@ -101,7 +103,7 @@ -- -- This extension also adds support for the @SPV_KHR_fragment_shading_rate@ -- extension which enables setting the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-fragment-shading-rate-primitive primitive fragment shading rate>,+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-fragment-shading-rate-primitive primitive fragment shading rate>, -- and allows querying the final shading rate from a fragment shader. -- -- == New Commands@@ -216,7 +218,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_fragment_shading_rate Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_fragment_shading_rate Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.@@ -346,37 +348,37 @@ -- -- - #VUID-vkCmdSetFragmentShadingRateKHR-pipelineFragmentShadingRate-04507# -- If--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-pipelineFragmentShadingRate pipelineFragmentShadingRate>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-pipelineFragmentShadingRate pipelineFragmentShadingRate> -- is not enabled, @pFragmentSize->width@ /must/ be @1@ -- -- - #VUID-vkCmdSetFragmentShadingRateKHR-pipelineFragmentShadingRate-04508# -- If--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-pipelineFragmentShadingRate pipelineFragmentShadingRate>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-pipelineFragmentShadingRate pipelineFragmentShadingRate> -- is not enabled, @pFragmentSize->height@ /must/ be @1@ -- -- - #VUID-vkCmdSetFragmentShadingRateKHR-pipelineFragmentShadingRate-04509# -- One of--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-pipelineFragmentShadingRate pipelineFragmentShadingRate>,--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-primitiveFragmentShadingRate primitiveFragmentShadingRate>,+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-pipelineFragmentShadingRate pipelineFragmentShadingRate>,+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-primitiveFragmentShadingRate primitiveFragmentShadingRate>, -- or--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-attachmentFragmentShadingRate attachmentFragmentShadingRate>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-attachmentFragmentShadingRate attachmentFragmentShadingRate> -- /must/ be enabled -- -- - #VUID-vkCmdSetFragmentShadingRateKHR-primitiveFragmentShadingRate-04510# -- If the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-primitiveFragmentShadingRate primitiveFragmentShadingRate feature>--- is not enabled, @combinerOps@[0] /must/ be+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-primitiveFragmentShadingRate primitiveFragmentShadingRate>+-- feature is not enabled, @combinerOps@[0] /must/ be -- 'FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR' -- -- - #VUID-vkCmdSetFragmentShadingRateKHR-attachmentFragmentShadingRate-04511# -- If the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-attachmentFragmentShadingRate attachmentFragmentShadingRate feature>--- is not enabled, @combinerOps@[1] /must/ be+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-attachmentFragmentShadingRate attachmentFragmentShadingRate>+-- feature is not enabled, @combinerOps@[1] /must/ be -- 'FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR' -- -- - #VUID-vkCmdSetFragmentShadingRateKHR-fragmentSizeNonTrivialCombinerOps-04512# -- If the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-fragmentShadingRateNonTrivialCombinerOps fragmentSizeNonTrivialCombinerOps>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-fragmentShadingRateNonTrivialCombinerOps fragmentSizeNonTrivialCombinerOps> -- limit is not supported, elements of @combinerOps@ /must/ be either -- 'FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR' or -- 'FRAGMENT_SHADING_RATE_COMBINER_OP_REPLACE_KHR'@@ -421,6 +423,9 @@ -- 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was -- allocated from /must/ support graphics operations --+-- - #VUID-vkCmdSetFragmentShadingRateKHR-videocoding# This command+-- /must/ only be called outside of a video coding scope+-- -- == Host Synchronization -- -- - Host access to @commandBuffer@ /must/ be externally synchronized@@ -432,12 +437,12 @@ -- -- \' ----- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | Primary | Both | Graphics |--- | Secondary | | |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================++-- | Primary | Both | Outside | Graphics |+-- | Secondary | | | |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+ -- -- = See Also --@@ -455,12 +460,12 @@ ("fragmentSize" ::: Extent2D) -> -- | @combinerOps@ specifies a 'FragmentShadingRateCombinerOpKHR' determining -- how the- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-fragment-shading-rate-pipeline pipeline>,- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-fragment-shading-rate-primitive primitive>,+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-fragment-shading-rate-pipeline pipeline>,+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-fragment-shading-rate-primitive primitive>, -- and- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-fragment-shading-rate-attachment attachment shading rates>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-fragment-shading-rate-attachment attachment shading rates> -- are- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-fragment-shading-rate-combining combined>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-fragment-shading-rate-combining combined> -- for fragments generated by subsequent drawing commands. ("combinerOps" ::: (FragmentShadingRateCombinerOpKHR, FragmentShadingRateCombinerOpKHR)) -> io ()@@ -513,7 +518,7 @@ -- For any entry in the array, the following rules also apply: -- -- - The value of @fragmentSize.width@ /must/ be less than or equal to--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxFragmentSize maxFragmentSize.width>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxFragmentSize maxFragmentSize.width>. -- -- - The value of @fragmentSize.width@ /must/ be greater than or equal to -- @1@.@@ -521,7 +526,7 @@ -- - The value of @fragmentSize.width@ /must/ be a power-of-two. -- -- - The value of @fragmentSize.height@ /must/ be less than or equal to--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxFragmentSize maxFragmentSize.height>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxFragmentSize maxFragmentSize.height>. -- -- - The value of @fragmentSize.height@ /must/ be greater than or equal -- to @1@.@@ -530,12 +535,12 @@ -- -- - The highest sample count in @sampleCounts@ /must/ be less than or -- equal to--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxFragmentShadingRateRasterizationSamples maxFragmentShadingRateRasterizationSamples>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxFragmentShadingRateRasterizationSamples maxFragmentShadingRateRasterizationSamples>. -- -- - The product of @fragmentSize.width@, @fragmentSize.height@, and the -- highest sample count in @sampleCounts@ /must/ be less than or equal -- to--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxFragmentShadingRateCoverageSamples maxFragmentShadingRateCoverageSamples>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxFragmentShadingRateCoverageSamples maxFragmentShadingRateCoverageSamples>. -- -- Implementations /must/ support at least the following shading rates: --@@ -554,7 +559,7 @@ -- +--------------------------------------------------------------+-----------------------------------+ -- -- If--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-framebufferColorSampleCounts framebufferColorSampleCounts>,+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-framebufferColorSampleCounts framebufferColorSampleCounts>, -- includes 'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_2_BIT', -- the required rates /must/ also include -- 'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_2_BIT'.@@ -675,7 +680,7 @@ -- 'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED', -- @shadingRateAttachmentTexelSize.width@ /must/ be less than or equal -- to--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxFragmentShadingRateAttachmentTexelSize maxFragmentShadingRateAttachmentTexelSize.width>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxFragmentShadingRateAttachmentTexelSize maxFragmentShadingRateAttachmentTexelSize.width> -- -- - #VUID-VkFragmentShadingRateAttachmentInfoKHR-pFragmentShadingRateAttachment-04527# -- If @pFragmentShadingRateAttachment@ is not @NULL@ and its@@ -683,7 +688,7 @@ -- 'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED', -- @shadingRateAttachmentTexelSize.width@ /must/ be greater than or -- equal to--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-minFragmentShadingRateAttachmentTexelSize minFragmentShadingRateAttachmentTexelSize.width>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-minFragmentShadingRateAttachmentTexelSize minFragmentShadingRateAttachmentTexelSize.width> -- -- - #VUID-VkFragmentShadingRateAttachmentInfoKHR-pFragmentShadingRateAttachment-04528# -- If @pFragmentShadingRateAttachment@ is not @NULL@ and its@@ -698,7 +703,7 @@ -- 'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED', -- @shadingRateAttachmentTexelSize.height@ /must/ be less than or equal -- to--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxFragmentShadingRateAttachmentTexelSize maxFragmentShadingRateAttachmentTexelSize.height>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxFragmentShadingRateAttachmentTexelSize maxFragmentShadingRateAttachmentTexelSize.height> -- -- - #VUID-VkFragmentShadingRateAttachmentInfoKHR-pFragmentShadingRateAttachment-04530# -- If @pFragmentShadingRateAttachment@ is not @NULL@ and its@@ -706,7 +711,7 @@ -- 'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED', -- @shadingRateAttachmentTexelSize.height@ /must/ be greater than or -- equal to--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-minFragmentShadingRateAttachmentTexelSize minFragmentShadingRateAttachmentTexelSize.height>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-minFragmentShadingRateAttachmentTexelSize minFragmentShadingRateAttachmentTexelSize.height> -- -- - #VUID-VkFragmentShadingRateAttachmentInfoKHR-pFragmentShadingRateAttachment-04531# -- If @pFragmentShadingRateAttachment@ is not @NULL@ and its@@ -715,7 +720,7 @@ -- @shadingRateAttachmentTexelSize.width@ and -- @shadingRateAttachmentTexelSize.height@ /must/ be less than or equal -- to--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxFragmentShadingRateAttachmentTexelSizeAspectRatio maxFragmentShadingRateAttachmentTexelSizeAspectRatio>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxFragmentShadingRateAttachmentTexelSizeAspectRatio maxFragmentShadingRateAttachmentTexelSizeAspectRatio> -- -- - #VUID-VkFragmentShadingRateAttachmentInfoKHR-pFragmentShadingRateAttachment-04532# -- If @pFragmentShadingRateAttachment@ is not @NULL@ and its@@ -724,7 +729,7 @@ -- @shadingRateAttachmentTexelSize.height@ and -- @shadingRateAttachmentTexelSize.width@ /must/ be less than or equal -- to--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxFragmentShadingRateAttachmentTexelSizeAspectRatio maxFragmentShadingRateAttachmentTexelSizeAspectRatio>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxFragmentShadingRateAttachmentTexelSizeAspectRatio maxFragmentShadingRateAttachmentTexelSizeAspectRatio> -- -- == Valid Usage (Implicit) --@@ -825,12 +830,12 @@ fragmentSize :: Extent2D , -- | @combinerOps@ specifies a 'FragmentShadingRateCombinerOpKHR' value -- determining how the- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-fragment-shading-rate-pipeline pipeline>,- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-fragment-shading-rate-primitive primitive>,+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-fragment-shading-rate-pipeline pipeline>,+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-fragment-shading-rate-primitive primitive>, -- and- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-fragment-shading-rate-attachment attachment shading rates>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-fragment-shading-rate-attachment attachment shading rates> -- are- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-fragment-shading-rate-combining combined>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-fragment-shading-rate-combining combined> -- for fragments generated by drawing commands using the created pipeline. combinerOps :: (FragmentShadingRateCombinerOpKHR, FragmentShadingRateCombinerOpKHR) }@@ -915,15 +920,15 @@ data PhysicalDeviceFragmentShadingRateFeaturesKHR = PhysicalDeviceFragmentShadingRateFeaturesKHR { -- | #features-pipelineFragmentShadingRate# @pipelineFragmentShadingRate@ -- indicates that the implementation supports the- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-fragment-shading-rate-pipeline pipeline fragment shading rate>.+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-fragment-shading-rate-pipeline pipeline fragment shading rate>. pipelineFragmentShadingRate :: Bool , -- | #features-primitiveFragmentShadingRate# @primitiveFragmentShadingRate@ -- indicates that the implementation supports the- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-fragment-shading-rate-primitive primitive fragment shading rate>.+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-fragment-shading-rate-primitive primitive fragment shading rate>. primitiveFragmentShadingRate :: Bool , -- | #features-attachmentFragmentShadingRate# @attachmentFragmentShadingRate@ -- indicates that the implementation supports the- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-fragment-shading-rate-attachment attachment fragment shading rate>.+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-fragment-shading-rate-attachment attachment fragment shading rate>. attachmentFragmentShadingRate :: Bool } deriving (Typeable, Eq)@@ -985,7 +990,7 @@ -- Some implementations inadvertently implemented an addition in linear -- space due to unclear requirements originating outside of this -- specification. This resulted in--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-fragmentShadingRateStrictMultiplyCombiner fragmentShadingRateStrictMultiplyCombiner>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-fragmentShadingRateStrictMultiplyCombiner fragmentShadingRateStrictMultiplyCombiner> -- being added. Fortunately, this only affects situations where a rate of 1 -- in either dimension is combined with another rate of 1. All other -- combinations result in the exact same result as if multiplication was@@ -1002,7 +1007,7 @@ -- property. -- -- These properties are related to--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-fragment-shading-rate fragment shading rates>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-fragment-shading-rate fragment shading rates>. -- -- == Valid Usage (Implicit) --@@ -1021,7 +1026,7 @@ -- than or equal to the values in -- @maxFragmentShadingRateAttachmentTexelSize@. Each value /must/ be a -- power-of-two. It /must/ be (0,0) if the- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-attachmentFragmentShadingRate attachmentFragmentShadingRate>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-attachmentFragmentShadingRate attachmentFragmentShadingRate> -- feature is not supported. minFragmentShadingRateAttachmentTexelSize :: Extent2D , -- | #limits-maxFragmentShadingRateAttachmentTexelSize#@@ -1031,7 +1036,7 @@ -- greater than or equal to the values in -- @minFragmentShadingRateAttachmentTexelSize@. Each value /must/ be a -- power-of-two. It /must/ be (0,0) if the- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-attachmentFragmentShadingRate attachmentFragmentShadingRate>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-attachmentFragmentShadingRate attachmentFragmentShadingRate> -- feature is not supported. maxFragmentShadingRateAttachmentTexelSize :: Extent2D , -- | #limits-maxFragmentShadingRateAttachmentTexelSizeAspectRatio#@@ -1045,23 +1050,23 @@ -- @maxFragmentShadingRateAttachmentTexelSize.height@ \/ -- @minFragmentShadingRateAttachmentTexelSize.width@). It /must/ be 0 if -- the- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-attachmentFragmentShadingRate attachmentFragmentShadingRate>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-attachmentFragmentShadingRate attachmentFragmentShadingRate> -- feature is not supported. maxFragmentShadingRateAttachmentTexelSizeAspectRatio :: Word32 , -- | #limits-primitiveFragmentShadingRateWithMultipleViewports# -- @primitiveFragmentShadingRateWithMultipleViewports@ specifies whether -- the- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-fragment-shading-rate-primitive primitive fragment shading rate>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-fragment-shading-rate-primitive primitive fragment shading rate> -- /can/ be used when multiple viewports are used. If this value is -- 'Vulkan.Core10.FundamentalTypes.FALSE', only a single viewport /must/ be -- used, and applications /must/ not write to the @ViewportMaskNV@ or -- @ViewportIndex@ built-in when setting @PrimitiveShadingRateKHR@. It -- /must/ be 'Vulkan.Core10.FundamentalTypes.FALSE' if the- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-shaderOutputViewportIndex shaderOutputViewportIndex>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-shaderOutputViewportIndex shaderOutputViewportIndex> -- feature, the @VK_EXT_shader_viewport_index_layer@ extension, or the- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-geometryShader geometryShader>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-geometryShader geometryShader> -- feature is not supported, or if the- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-primitiveFragmentShadingRate primitiveFragmentShadingRate>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-primitiveFragmentShadingRate primitiveFragmentShadingRate> -- feature is not supported. primitiveFragmentShadingRateWithMultipleViewports :: Bool , -- | #limits-layeredShadingRateAttachments# @layeredShadingRateAttachments@@@ -1072,13 +1077,13 @@ -- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR', -- @layerCount@ /must/ be @1@. It /must/ be -- 'Vulkan.Core10.FundamentalTypes.FALSE' if the- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-multiview multiview>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-multiview multiview> -- feature, the- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-shaderOutputViewportIndex shaderOutputViewportIndex>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-shaderOutputViewportIndex shaderOutputViewportIndex> -- feature, the @VK_EXT_shader_viewport_index_layer@ extension, or the- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-geometryShader geometryShader>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-geometryShader geometryShader> -- feature is not supported, or if the- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-attachmentFragmentShadingRate attachmentFragmentShadingRate>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-attachmentFragmentShadingRate attachmentFragmentShadingRate> -- feature is not supported. layeredShadingRateAttachments :: Bool , -- | #limits-fragmentShadingRateNonTrivialCombinerOps#@@ -1087,9 +1092,9 @@ -- 'FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR' or -- 'FRAGMENT_SHADING_RATE_COMBINER_OP_REPLACE_KHR' /can/ be used. It /must/ -- be 'Vulkan.Core10.FundamentalTypes.FALSE' unless either the- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-primitiveFragmentShadingRate primitiveFragmentShadingRate>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-primitiveFragmentShadingRate primitiveFragmentShadingRate> -- or- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-attachmentFragmentShadingRate attachmentFragmentShadingRate>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-attachmentFragmentShadingRate attachmentFragmentShadingRate> -- feature is supported. fragmentShadingRateNonTrivialCombinerOps :: Bool , -- | #limits-maxFragmentSize# @maxFragmentSize@ indicates the maximum@@ -1146,32 +1151,32 @@ fragmentShadingRateWithShaderSampleMask :: Bool , -- | #limits-fragmentShadingRateWithConservativeRasterization# -- @fragmentShadingRateWithConservativeRasterization@ specifies whether- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-conservativeraster conservative rasterization>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-conservativeraster conservative rasterization> -- is supported for multi-pixel fragments. It /must/ be -- 'Vulkan.Core10.FundamentalTypes.FALSE' if -- @VK_EXT_conservative_rasterization@ is not supported. If this value is -- 'Vulkan.Core10.FundamentalTypes.FALSE', using- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-conservativeraster conservative rasterization>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-conservativeraster conservative rasterization> -- will clamp the fragment shading rate to (1,1). fragmentShadingRateWithConservativeRasterization :: Bool , -- | #limits-fragmentShadingRateWithFragmentShaderInterlock# -- @fragmentShadingRateWithFragmentShaderInterlock@ specifies whether- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#fragops-shader-interlock fragment shader interlock>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fragops-shader-interlock fragment shader interlock> -- is supported for multi-pixel fragments. It /must/ be -- 'Vulkan.Core10.FundamentalTypes.FALSE' if -- @VK_EXT_fragment_shader_interlock@ is not supported. If this value is -- 'Vulkan.Core10.FundamentalTypes.FALSE', using- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#fragops-shader-interlock fragment shader interlock>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fragops-shader-interlock fragment shader interlock> -- will clamp the fragment shading rate to (1,1). fragmentShadingRateWithFragmentShaderInterlock :: Bool , -- | #limits-fragmentShadingRateWithCustomSampleLocations# -- @fragmentShadingRateWithCustomSampleLocations@ specifies whether- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-samplelocations custom sample locations>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-samplelocations custom sample locations> -- are supported for multi-pixel fragments. It /must/ be -- 'Vulkan.Core10.FundamentalTypes.FALSE' if @VK_EXT_sample_locations@ is -- not supported. If this value is 'Vulkan.Core10.FundamentalTypes.FALSE', -- using- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-samplelocations custom sample locations>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-samplelocations custom sample locations> -- will clamp the fragment shading rate to (1,1). fragmentShadingRateWithCustomSampleLocations :: Bool , -- | #limits-fragmentShadingRateStrictMultiplyCombiner#@@ -1360,12 +1365,12 @@ -- inputs to the operation. -- -- If--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-fragmentShadingRateStrictMultiplyCombiner fragmentShadingRateStrictMultiplyCombiner>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-fragmentShadingRateStrictMultiplyCombiner fragmentShadingRateStrictMultiplyCombiner> -- is 'Vulkan.Core10.FundamentalTypes.FALSE', using -- 'FRAGMENT_SHADING_RATE_COMBINER_OP_MUL_KHR' with values of 1 for both A -- and B in the same dimension results in the value 2 being produced for -- that dimension. See the definition of--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-fragmentShadingRateStrictMultiplyCombiner fragmentShadingRateStrictMultiplyCombiner>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-fragmentShadingRateStrictMultiplyCombiner fragmentShadingRateStrictMultiplyCombiner> -- for more information. -- -- These operations are performed in a component-wise fashion.
src/Vulkan/Extensions/VK_KHR_fragment_shading_rate.hs-boot view
@@ -19,11 +19,13 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_create_renderpass2@+-- - Requires @VK_KHR_create_renderpass2@ to be enabled for any+-- device-level functionality ----- - Requires @VK_KHR_get_physical_device_properties2@+-- - Requires @VK_KHR_get_physical_device_properties2@ to be enabled+-- for any device-level functionality -- -- [__Contact__] --@@ -31,7 +33,7 @@ -- <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_KHR_fragment_shading_rate] @tobski%0A<<Here describe the issue or question you have about the VK_KHR_fragment_shading_rate extension>> > -- -- [__Extension Proposal__]--- <https://github.com/KhronosGroup/Vulkan-Docs/tree/main/proposals/VK_KHR_fragment_shading_rate.asciidoc VK_KHR_fragment_shading_rate>+-- <https://github.com/KhronosGroup/Vulkan-Docs/tree/main/proposals/VK_KHR_fragment_shading_rate.adoc VK_KHR_fragment_shading_rate> -- -- == Other Extension Metadata --@@ -80,14 +82,14 @@ -- Up to three methods are available to the application to change the -- fragment shading rate: ----- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-fragment-shading-rate-pipeline>,+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-fragment-shading-rate-pipeline>, -- which allows the specification of a rate per-draw. ----- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-fragment-shading-rate-primitive>,+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-fragment-shading-rate-primitive>, -- which allows the specification of a rate per primitive, specified -- during shading. ----- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-fragment-shading-rate-attachment>,+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-fragment-shading-rate-attachment>, -- which allows the specification of a rate per-region of the -- framebuffer, specified in a specialized image attachment. --@@ -101,7 +103,7 @@ -- -- This extension also adds support for the @SPV_KHR_fragment_shading_rate@ -- extension which enables setting the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-fragment-shading-rate-primitive primitive fragment shading rate>,+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-fragment-shading-rate-primitive primitive fragment shading rate>, -- and allows querying the final shading rate from a fragment shader. -- -- == New Commands@@ -216,7 +218,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_fragment_shading_rate Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_fragment_shading_rate Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_KHR_get_display_properties2.hs view
@@ -19,9 +19,9 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_display@+-- - Requires @VK_KHR_display@ to be enabled -- -- [__Contact__] --@@ -143,7 +143,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_get_display_properties2 Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_get_display_properties2 Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_KHR_get_display_properties2.hs-boot view
@@ -19,9 +19,9 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_display@+-- - Requires @VK_KHR_display@ to be enabled -- -- [__Contact__] --@@ -143,7 +143,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_get_display_properties2 Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_get_display_properties2 Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_KHR_get_memory_requirements2.hs view
@@ -19,7 +19,7 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 -- -- [__Deprecation state__] --@@ -124,7 +124,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_get_memory_requirements2 Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_get_memory_requirements2 Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_KHR_get_memory_requirements2.hs-boot view
@@ -19,7 +19,7 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 -- -- [__Deprecation state__] --@@ -124,7 +124,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_get_memory_requirements2 Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_get_memory_requirements2 Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_KHR_get_physical_device_properties2.hs view
@@ -19,7 +19,7 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 -- -- [__Deprecation state__] --@@ -212,7 +212,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_KHR_get_surface_capabilities2.hs view
@@ -19,9 +19,9 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_surface@+-- - Requires @VK_KHR_surface@ to be enabled -- -- [__Contact__] --@@ -137,7 +137,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_get_surface_capabilities2 Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_get_surface_capabilities2 Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.@@ -186,10 +186,8 @@ import Data.String (IsString) import Data.Type.Equality ((:~:)(Refl)) import Data.Typeable (Typeable)-import Foreign.Storable (Storable) import Foreign.Storable (Storable(peek)) import Foreign.Storable (Storable(poke))-import qualified Foreign.Storable (Storable(..)) import GHC.Generics (Generic) import GHC.IO.Exception (IOErrorType(..)) import GHC.IO.Exception (IOException(..))@@ -207,6 +205,7 @@ import Vulkan.CStruct.Extends (Extends) import Vulkan.CStruct.Extends (Extendss) import Vulkan.CStruct.Extends (Extensible(..))+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_image_compression_control (ImageCompressionPropertiesEXT) import Vulkan.Dynamic (InstanceCmds(pVkGetPhysicalDeviceSurfaceCapabilities2KHR)) import Vulkan.Dynamic (InstanceCmds(pVkGetPhysicalDeviceSurfaceFormats2KHR)) import Vulkan.CStruct.Extends (PeekChain)@@ -341,7 +340,7 @@ unsafe #endif "dynamic" mkVkGetPhysicalDeviceSurfaceFormats2KHR- :: FunPtr (Ptr PhysicalDevice_T -> Ptr (SomeStruct PhysicalDeviceSurfaceInfo2KHR) -> Ptr Word32 -> Ptr SurfaceFormat2KHR -> IO Result) -> Ptr PhysicalDevice_T -> Ptr (SomeStruct PhysicalDeviceSurfaceInfo2KHR) -> Ptr Word32 -> Ptr SurfaceFormat2KHR -> IO Result+ :: FunPtr (Ptr PhysicalDevice_T -> Ptr (SomeStruct PhysicalDeviceSurfaceInfo2KHR) -> Ptr Word32 -> Ptr (SomeStruct SurfaceFormat2KHR) -> IO Result) -> Ptr PhysicalDevice_T -> Ptr (SomeStruct PhysicalDeviceSurfaceInfo2KHR) -> Ptr Word32 -> Ptr (SomeStruct SurfaceFormat2KHR) -> IO Result -- | vkGetPhysicalDeviceSurfaceFormats2KHR - Query color formats supported by -- surface@@ -419,8 +418,8 @@ -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_surface_capabilities2 VK_KHR_get_surface_capabilities2>, -- 'Vulkan.Core10.Handles.PhysicalDevice', 'PhysicalDeviceSurfaceInfo2KHR', -- 'SurfaceFormat2KHR'-getPhysicalDeviceSurfaceFormats2KHR :: forall a io- . (Extendss PhysicalDeviceSurfaceInfo2KHR a, PokeChain a, MonadIO io)+getPhysicalDeviceSurfaceFormats2KHR :: forall a b io+ . (Extendss PhysicalDeviceSurfaceInfo2KHR a, PokeChain a, Extendss SurfaceFormat2KHR b, PokeChain b, PeekChain b, MonadIO io) => -- | @physicalDevice@ is the physical device that will be associated with the -- swapchain to be created, as described for -- 'Vulkan.Extensions.VK_KHR_swapchain.createSwapchainKHR'.@@ -429,7 +428,7 @@ -- structure describing the surface and other fixed parameters that would -- be consumed by 'Vulkan.Extensions.VK_KHR_swapchain.createSwapchainKHR'. (PhysicalDeviceSurfaceInfo2KHR a)- -> io (Result, ("surfaceFormats" ::: Vector SurfaceFormat2KHR))+ -> io (Result, ("surfaceFormats" ::: Vector (SurfaceFormat2KHR b))) getPhysicalDeviceSurfaceFormats2KHR physicalDevice surfaceInfo = liftIO . evalContT $ do let vkGetPhysicalDeviceSurfaceFormats2KHRPtr = pVkGetPhysicalDeviceSurfaceFormats2KHR (case physicalDevice of PhysicalDevice{instanceCmds} -> instanceCmds) lift $ unless (vkGetPhysicalDeviceSurfaceFormats2KHRPtr /= nullFunPtr) $@@ -439,15 +438,15 @@ pSurfaceInfo <- ContT $ withCStruct (surfaceInfo) let x9 = forgetExtensions pSurfaceInfo pPSurfaceFormatCount <- ContT $ bracket (callocBytes @Word32 4) free- r <- lift $ traceAroundEvent "vkGetPhysicalDeviceSurfaceFormats2KHR" (vkGetPhysicalDeviceSurfaceFormats2KHR' physicalDevice' x9 (pPSurfaceFormatCount) (nullPtr))+ r <- lift $ traceAroundEvent "vkGetPhysicalDeviceSurfaceFormats2KHR" (vkGetPhysicalDeviceSurfaceFormats2KHR' physicalDevice' x9 (pPSurfaceFormatCount) (forgetExtensions (nullPtr))) lift $ when (r < SUCCESS) (throwIO (VulkanException r)) pSurfaceFormatCount <- lift $ peek @Word32 pPSurfaceFormatCount- pPSurfaceFormats <- ContT $ bracket (callocBytes @SurfaceFormat2KHR ((fromIntegral (pSurfaceFormatCount)) * 24)) free- _ <- traverse (\i -> ContT $ pokeZeroCStruct (pPSurfaceFormats `advancePtrBytes` (i * 24) :: Ptr SurfaceFormat2KHR) . ($ ())) [0..(fromIntegral (pSurfaceFormatCount)) - 1]- r' <- lift $ traceAroundEvent "vkGetPhysicalDeviceSurfaceFormats2KHR" (vkGetPhysicalDeviceSurfaceFormats2KHR' physicalDevice' x9 (pPSurfaceFormatCount) ((pPSurfaceFormats)))+ pPSurfaceFormats <- ContT $ bracket (callocBytes @(SurfaceFormat2KHR _) ((fromIntegral (pSurfaceFormatCount)) * 24)) free+ _ <- traverse (\i -> ContT $ pokeZeroCStruct (pPSurfaceFormats `advancePtrBytes` (i * 24) :: Ptr (SurfaceFormat2KHR _)) . ($ ())) [0..(fromIntegral (pSurfaceFormatCount)) - 1]+ r' <- lift $ traceAroundEvent "vkGetPhysicalDeviceSurfaceFormats2KHR" (vkGetPhysicalDeviceSurfaceFormats2KHR' physicalDevice' x9 (pPSurfaceFormatCount) (forgetExtensions ((pPSurfaceFormats)))) lift $ when (r' < SUCCESS) (throwIO (VulkanException r')) pSurfaceFormatCount' <- lift $ peek @Word32 pPSurfaceFormatCount- pSurfaceFormats' <- lift $ generateM (fromIntegral (pSurfaceFormatCount')) (\i -> peekCStruct @SurfaceFormat2KHR (((pPSurfaceFormats) `advancePtrBytes` (24 * (i)) :: Ptr SurfaceFormat2KHR)))+ pSurfaceFormats' <- lift $ generateM (fromIntegral (pSurfaceFormatCount')) (\i -> peekCStruct @(SurfaceFormat2KHR _) (((pPSurfaceFormats) `advancePtrBytes` (24 * (i)) :: Ptr (SurfaceFormat2KHR _)))) pure $ ((r'), pSurfaceFormats') @@ -679,54 +678,83 @@ -- | VkSurfaceFormat2KHR - Structure describing a supported swapchain format -- tuple --+-- == Valid Usage+--+-- - #VUID-VkSurfaceFormat2KHR-pNext-06750# If the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-imageCompressionControlSwapchain imageCompressionControlSwapchain>+-- feature is not enabled, the @pNext@ chain /must/ not include an+-- 'Vulkan.Extensions.VK_EXT_image_compression_control.ImageCompressionPropertiesEXT'+-- structure+-- -- == Valid Usage (Implicit) --+-- - #VUID-VkSurfaceFormat2KHR-sType-sType# @sType@ /must/ be+-- 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_SURFACE_FORMAT_2_KHR'+--+-- - #VUID-VkSurfaceFormat2KHR-pNext-pNext# @pNext@ /must/ be @NULL@ or a+-- pointer to a valid instance of+-- 'Vulkan.Extensions.VK_EXT_image_compression_control.ImageCompressionPropertiesEXT'+--+-- - #VUID-VkSurfaceFormat2KHR-sType-unique# The @sType@ value of each+-- struct in the @pNext@ chain /must/ be unique+-- -- = See Also -- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_surface_capabilities2 VK_KHR_get_surface_capabilities2>, -- 'Vulkan.Core10.Enums.StructureType.StructureType', -- 'Vulkan.Extensions.VK_KHR_surface.SurfaceFormatKHR', -- 'getPhysicalDeviceSurfaceFormats2KHR'-data SurfaceFormat2KHR = SurfaceFormat2KHR- { -- | @surfaceFormat@ is a 'Vulkan.Extensions.VK_KHR_surface.SurfaceFormatKHR'+data SurfaceFormat2KHR (es :: [Type]) = SurfaceFormat2KHR+ { -- | @pNext@ is @NULL@ or a pointer to a structure extending this structure.+ next :: Chain es+ , -- | @surfaceFormat@ is a 'Vulkan.Extensions.VK_KHR_surface.SurfaceFormatKHR' -- structure describing a format-color space pair that is compatible with -- the specified surface.- surfaceFormat :: SurfaceFormatKHR }+ surfaceFormat :: SurfaceFormatKHR+ } deriving (Typeable) #if defined(GENERIC_INSTANCES)-deriving instance Generic (SurfaceFormat2KHR)+deriving instance Generic (SurfaceFormat2KHR (es :: [Type])) #endif-deriving instance Show SurfaceFormat2KHR+deriving instance Show (Chain es) => Show (SurfaceFormat2KHR es) -instance ToCStruct SurfaceFormat2KHR where+instance Extensible SurfaceFormat2KHR where+ extensibleTypeName = "SurfaceFormat2KHR"+ setNext SurfaceFormat2KHR{..} next' = SurfaceFormat2KHR{next = next', ..}+ getNext SurfaceFormat2KHR{..} = next+ extends :: forall e b proxy. Typeable e => proxy e -> (Extends SurfaceFormat2KHR e => b) -> Maybe b+ extends _ f+ | Just Refl <- eqT @e @ImageCompressionPropertiesEXT = Just f+ | otherwise = Nothing++instance (Extendss SurfaceFormat2KHR es, PokeChain es) => ToCStruct (SurfaceFormat2KHR es) where withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)- pokeCStruct p SurfaceFormat2KHR{..} f = do- poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_SURFACE_FORMAT_2_KHR)- poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)- poke ((p `plusPtr` 16 :: Ptr SurfaceFormatKHR)) (surfaceFormat)- f+ pokeCStruct p SurfaceFormat2KHR{..} f = evalContT $ do+ lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_SURFACE_FORMAT_2_KHR)+ pNext'' <- fmap castPtr . ContT $ withChain (next)+ lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext''+ lift $ poke ((p `plusPtr` 16 :: Ptr SurfaceFormatKHR)) (surfaceFormat)+ lift $ f cStructSize = 24 cStructAlignment = 8- pokeZeroCStruct p f = do- poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_SURFACE_FORMAT_2_KHR)- poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)- poke ((p `plusPtr` 16 :: Ptr SurfaceFormatKHR)) (zero)- f+ pokeZeroCStruct p f = evalContT $ do+ lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_SURFACE_FORMAT_2_KHR)+ pNext' <- fmap castPtr . ContT $ withZeroChain @es+ lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext'+ lift $ poke ((p `plusPtr` 16 :: Ptr SurfaceFormatKHR)) (zero)+ lift $ f -instance FromCStruct SurfaceFormat2KHR where+instance (Extendss SurfaceFormat2KHR es, PeekChain es) => FromCStruct (SurfaceFormat2KHR es) where peekCStruct p = do+ pNext <- peek @(Ptr ()) ((p `plusPtr` 8 :: Ptr (Ptr ())))+ next <- peekChain (castPtr pNext) surfaceFormat <- peekCStruct @SurfaceFormatKHR ((p `plusPtr` 16 :: Ptr SurfaceFormatKHR)) pure $ SurfaceFormat2KHR- surfaceFormat--instance Storable SurfaceFormat2KHR where- sizeOf ~_ = 24- alignment ~_ = 8- peek = peekCStruct- poke ptr poked = pokeCStruct ptr poked (pure ())+ next surfaceFormat -instance Zero SurfaceFormat2KHR where+instance es ~ '[] => Zero (SurfaceFormat2KHR es) where zero = SurfaceFormat2KHR+ () zero
src/Vulkan/Extensions/VK_KHR_get_surface_capabilities2.hs-boot view
@@ -19,9 +19,9 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_surface@+-- - Requires @VK_KHR_surface@ to be enabled -- -- [__Contact__] --@@ -137,7 +137,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_get_surface_capabilities2 Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_get_surface_capabilities2 Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.@@ -171,10 +171,11 @@ instance (Extendss SurfaceCapabilities2KHR es, PeekChain es) => FromCStruct (SurfaceCapabilities2KHR es) -data SurfaceFormat2KHR+type role SurfaceFormat2KHR nominal+data SurfaceFormat2KHR (es :: [Type]) -instance ToCStruct SurfaceFormat2KHR-instance Show SurfaceFormat2KHR+instance (Extendss SurfaceFormat2KHR es, PokeChain es) => ToCStruct (SurfaceFormat2KHR es)+instance Show (Chain es) => Show (SurfaceFormat2KHR es) -instance FromCStruct SurfaceFormat2KHR+instance (Extendss SurfaceFormat2KHR es, PeekChain es) => FromCStruct (SurfaceFormat2KHR es)
src/Vulkan/Extensions/VK_KHR_global_priority.hs view
@@ -19,7 +19,7 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 -- -- [__Contact__] --@@ -35,11 +35,9 @@ -- -- - Tobias Hector, AMD ----- - Contributors to--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_global_priority VK_EXT_global_priority>+-- - Contributors to @VK_EXT_global_priority@ ----- - Contributors to--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_global_priority_query VK_EXT_global_priority_query>+-- - Contributors to @VK_EXT_global_priority_query@ -- -- == Description --@@ -155,7 +153,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_global_priority Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_global_priority Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.@@ -248,7 +246,7 @@ -- -- = Description ----- A queue created without specifying+-- Queues created without specifying -- 'DeviceQueueGlobalPriorityCreateInfoKHR' will default to -- 'QUEUE_GLOBAL_PRIORITY_MEDIUM_KHR'. --@@ -261,8 +259,8 @@ -- 'QueueGlobalPriorityKHR', -- 'Vulkan.Core10.Enums.StructureType.StructureType' data DeviceQueueGlobalPriorityCreateInfoKHR = DeviceQueueGlobalPriorityCreateInfoKHR- { -- | @globalPriority@ is the system-wide priority associated to this queue as- -- specified by+ { -- | @globalPriority@ is the system-wide priority associated to these queues+ -- as specified by -- 'Vulkan.Extensions.VK_EXT_global_priority.QueueGlobalPriorityEXT' -- -- #VUID-VkDeviceQueueGlobalPriorityCreateInfoKHR-globalPriority-parameter#@@ -311,9 +309,7 @@ -- -- = Members ----- The members of the--- 'Vulkan.Extensions.VK_EXT_global_priority_query.PhysicalDeviceGlobalPriorityQueryFeaturesEXT'--- structure describe the following features:+-- This structure describes the following feature: -- -- = Description --
src/Vulkan/Extensions/VK_KHR_global_priority.hs-boot view
@@ -19,7 +19,7 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 -- -- [__Contact__] --@@ -35,11 +35,9 @@ -- -- - Tobias Hector, AMD ----- - Contributors to--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_global_priority VK_EXT_global_priority>+-- - Contributors to @VK_EXT_global_priority@ ----- - Contributors to--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_global_priority_query VK_EXT_global_priority_query>+-- - Contributors to @VK_EXT_global_priority_query@ -- -- == Description --@@ -155,7 +153,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_global_priority Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_global_priority Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_KHR_image_format_list.hs view
@@ -19,7 +19,7 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 -- -- [__Deprecation state__] --@@ -108,7 +108,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_image_format_list Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_image_format_list Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_KHR_imageless_framebuffer.hs view
@@ -19,11 +19,13 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_maintenance2@+-- - Requires @VK_KHR_maintenance2@ to be enabled for any+-- device-level functionality ----- - Requires @VK_KHR_image_format_list@+-- - Requires @VK_KHR_image_format_list@ to be enabled for any+-- device-level functionality -- -- [__Deprecation state__] --@@ -123,7 +125,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_imageless_framebuffer Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_imageless_framebuffer Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_KHR_incremental_present.hs view
@@ -19,9 +19,10 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_swapchain@+-- - Requires @VK_KHR_swapchain@ to be enabled for any device-level+-- functionality -- -- [__Contact__] --@@ -135,7 +136,7 @@ -- with the @preTransform@? -- -- __RESOLVED__: No. The rectangular region in 'RectLayerKHR' should not be--- tranformed. As such, it may not align with the extents of the+-- transformed. As such, it may not align with the extents of the -- swapchain’s image(s). It is the responsibility of the presentation -- engine to transform the rectangular region. This matches the behavior of -- the Android presentation engine, which set the precedent.@@ -158,7 +159,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_incremental_present Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_incremental_present Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_KHR_incremental_present.hs-boot view
@@ -19,9 +19,10 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_swapchain@+-- - Requires @VK_KHR_swapchain@ to be enabled for any device-level+-- functionality -- -- [__Contact__] --@@ -135,7 +136,7 @@ -- with the @preTransform@? -- -- __RESOLVED__: No. The rectangular region in 'RectLayerKHR' should not be--- tranformed. As such, it may not align with the extents of the+-- transformed. As such, it may not align with the extents of the -- swapchain’s image(s). It is the responsibility of the presentation -- engine to transform the rectangular region. This matches the behavior of -- the Android presentation engine, which set the precedent.@@ -158,7 +159,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_incremental_present Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_incremental_present Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_KHR_maintenance1.hs view
@@ -19,7 +19,7 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 -- -- [__Deprecation state__] --@@ -182,7 +182,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_maintenance1 Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_maintenance1 Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_KHR_maintenance2.hs view
@@ -19,7 +19,7 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 -- -- [__Deprecation state__] --@@ -240,7 +240,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_maintenance2 Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_maintenance2 Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_KHR_maintenance3.hs view
@@ -19,9 +19,10 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_get_physical_device_properties2@+-- - Requires @VK_KHR_get_physical_device_properties2@ to be enabled+-- for any device-level functionality -- -- [__Deprecation state__] --@@ -111,7 +112,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_maintenance3 Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_maintenance3 Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_KHR_maintenance4.hs view
@@ -19,7 +19,7 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.1+-- - Requires support for Vulkan 1.1 -- -- [__Deprecation state__] --@@ -75,7 +75,7 @@ -- its handle valid while the created object is in use. -- -- - Add a new--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxBufferSize maxBufferSize>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxBufferSize maxBufferSize> -- implementation-defined limit for the maximum size -- 'Vulkan.Core10.Handles.Buffer' that /can/ be created. --@@ -181,7 +181,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_maintenance4 Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_maintenance4 Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_KHR_multiview.hs view
@@ -19,9 +19,10 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_get_physical_device_properties2@+-- - Requires @VK_KHR_get_physical_device_properties2@ to be enabled+-- for any device-level functionality -- -- [__Deprecation state__] --@@ -66,7 +67,7 @@ -- and gives implementations freedom to render the views in the most -- efficient way possible. This is done with a multiview configuration -- specified during--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass render pass>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass render pass> -- creation with the -- 'Vulkan.Core11.Promoted_From_VK_KHR_multiview.RenderPassMultiviewCreateInfo' -- passed into 'Vulkan.Core10.Pass.RenderPassCreateInfo'::@pNext@.@@ -124,11 +125,11 @@ -- -- == New Built-In Variables ----- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-viewindex ViewIndex>+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-viewindex ViewIndex> -- -- == New SPIR-V Capabilities ----- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-MultiView MultiView>+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-MultiView MultiView> -- -- == Version History --@@ -145,7 +146,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_multiview Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_multiview Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_KHR_performance_query.hs view
@@ -19,9 +19,10 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_get_physical_device_properties2@+-- - Requires @VK_KHR_get_physical_device_properties2@ to be enabled+-- for any device-level functionality -- -- [__Special Use__] --@@ -473,7 +474,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_performance_query Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_performance_query Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.@@ -1203,7 +1204,7 @@ -- -- - #VUID-VkQueryPoolPerformanceCreateInfoKHR-performanceCounterQueryPools-03237# -- The--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-performanceCounterQueryPools performanceCounterQueryPools>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-performanceCounterQueryPools performanceCounterQueryPools> -- feature /must/ be enabled -- -- - #VUID-VkQueryPoolPerformanceCreateInfoKHR-pCounterIndices-03321#@@ -1285,7 +1286,7 @@ -- == Valid Usage (Implicit) -- -- If @timeout@ is 0, 'acquireProfilingLockKHR' will not block while--- attempting to acquire the profling lock. If @timeout@ is @UINT64_MAX@,+-- attempting to acquire the profiling lock. If @timeout@ is @UINT64_MAX@, -- the function will not return until the profiling lock was acquired. -- -- = See Also
src/Vulkan/Extensions/VK_KHR_performance_query.hs-boot view
@@ -19,9 +19,10 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_get_physical_device_properties2@+-- - Requires @VK_KHR_get_physical_device_properties2@ to be enabled+-- for any device-level functionality -- -- [__Special Use__] --@@ -473,7 +474,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_performance_query Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_performance_query Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_KHR_pipeline_executable_properties.hs view
@@ -19,9 +19,10 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_get_physical_device_properties2@+-- - Requires @VK_KHR_get_physical_device_properties2@ to be enabled+-- for any device-level functionality -- -- [__Special Use__] --@@ -172,7 +173,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_pipeline_executable_properties Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_pipeline_executable_properties Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.@@ -312,10 +313,11 @@ -- == Valid Usage -- -- - #VUID-vkGetPipelineExecutablePropertiesKHR-pipelineExecutableInfo-03270#--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-pipelineExecutableInfo pipelineExecutableInfo>--- /must/ be enabled+-- The+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-pipelineExecutableInfo pipelineExecutableInfo>+-- feature /must/ be enabled ----- - #VUID-vkGetPipelineExecutablePropertiesKHR-pipeline-03271#+-- - #VUID-vkGetPipelineExecutablePropertiesKHR-pipeline-03271# The -- @pipeline@ member of @pPipelineInfo@ /must/ have been created with -- @device@ --@@ -410,14 +412,15 @@ -- == Valid Usage -- -- - #VUID-vkGetPipelineExecutableStatisticsKHR-pipelineExecutableInfo-03272#--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-pipelineExecutableInfo pipelineExecutableInfo>--- /must/ be enabled+-- The+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-pipelineExecutableInfo pipelineExecutableInfo>+-- feature /must/ be enabled ----- - #VUID-vkGetPipelineExecutableStatisticsKHR-pipeline-03273#+-- - #VUID-vkGetPipelineExecutableStatisticsKHR-pipeline-03273# The -- @pipeline@ member of @pExecutableInfo@ /must/ have been created with -- @device@ ----- - #VUID-vkGetPipelineExecutableStatisticsKHR-pipeline-03274#+-- - #VUID-vkGetPipelineExecutableStatisticsKHR-pipeline-03274# The -- @pipeline@ member of @pExecutableInfo@ /must/ have been created with -- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_CAPTURE_STATISTICS_BIT_KHR' --@@ -519,15 +522,17 @@ -- == Valid Usage -- -- - #VUID-vkGetPipelineExecutableInternalRepresentationsKHR-pipelineExecutableInfo-03276#--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-pipelineExecutableInfo pipelineExecutableInfo>--- /must/ be enabled+-- The+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-pipelineExecutableInfo pipelineExecutableInfo>+-- feature /must/ be enabled -- -- - #VUID-vkGetPipelineExecutableInternalRepresentationsKHR-pipeline-03277#--- @pipeline@ member of @pExecutableInfo@ /must/ have been created with--- @device@+-- The @pipeline@ member of @pExecutableInfo@ /must/ have been created+-- with @device@ -- -- - #VUID-vkGetPipelineExecutableInternalRepresentationsKHR-pipeline-03278#--- @pipeline@ member of @pExecutableInfo@ /must/ have been created with+-- The @pipeline@ member of @pExecutableInfo@ /must/ have been created+-- with -- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR' -- -- == Valid Usage (Implicit)@@ -672,10 +677,12 @@ -- -- = See Also --+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_pipeline_properties VK_EXT_pipeline_properties>, -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_pipeline_executable_properties VK_KHR_pipeline_executable_properties>, -- 'Vulkan.Core10.Handles.Pipeline', -- 'Vulkan.Core10.Enums.StructureType.StructureType',--- 'getPipelineExecutablePropertiesKHR'+-- 'getPipelineExecutablePropertiesKHR',+-- 'Vulkan.Extensions.VK_EXT_pipeline_properties.getPipelinePropertiesEXT' data PipelineInfoKHR = PipelineInfoKHR { -- | @pipeline@ is a 'Vulkan.Core10.Handles.Pipeline' handle. --
src/Vulkan/Extensions/VK_KHR_pipeline_executable_properties.hs-boot view
@@ -19,9 +19,10 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_get_physical_device_properties2@+-- - Requires @VK_KHR_get_physical_device_properties2@ to be enabled+-- for any device-level functionality -- -- [__Special Use__] --@@ -172,7 +173,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_pipeline_executable_properties Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_pipeline_executable_properties Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_KHR_pipeline_library.hs view
@@ -19,7 +19,7 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 -- -- [__Contact__] --@@ -80,7 +80,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_pipeline_library Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_pipeline_library Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.@@ -126,6 +126,14 @@ -- - #VUID-VkPipelineLibraryCreateInfoKHR-pLibraries-03381# Each element -- of @pLibraries@ /must/ have been created with -- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_LIBRARY_BIT_KHR'+--+-- - #VUID-VkPipelineLibraryCreateInfoKHR-pLibraries-06855# If any+-- library in @pLibraries@ was created with a shader stage with+-- 'Vulkan.Extensions.VK_EXT_shader_module_identifier.PipelineShaderStageModuleIdentifierCreateInfoEXT'+-- and @identifierSize@ not equal to 0, the pipeline /must/ be created+-- with the+-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT'+-- flag set -- -- == Valid Usage (Implicit) --
src/Vulkan/Extensions/VK_KHR_pipeline_library.hs-boot view
@@ -19,7 +19,7 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 -- -- [__Contact__] --@@ -80,7 +80,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_pipeline_library Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_pipeline_library Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_KHR_portability_enumeration.hs view
@@ -19,7 +19,7 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 -- -- [__Contact__] --@@ -83,7 +83,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_portability_enumeration Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_portability_enumeration Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_KHR_portability_subset.hs view
@@ -19,9 +19,10 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_get_physical_device_properties2@+-- - Requires @VK_KHR_get_physical_device_properties2@ to be enabled+-- for any device-level functionality -- -- - __This is a /provisional/ extension and /must/ be used with -- caution. See the@@ -81,7 +82,7 @@ -- The intent is that this extension will be advertised only on -- implementations of the Vulkan 1.0 Portability Subset, and not on -- conformant implementations of Vulkan 1.0. Fully-conformant Vulkan--- implementations provide all the required capabilies, and so will not+-- implementations provide all the required capabilities, and so will not -- provide this extension. Therefore, the existence of this extension can -- be used to determine that an implementation is likely not fully -- conformant with the Vulkan spec.@@ -136,7 +137,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_portability_subset Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_portability_subset Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.@@ -203,13 +204,13 @@ { -- | #features-constantAlphaColorBlendFactors# -- @constantAlphaColorBlendFactors@ indicates whether this implementation -- supports constant /alpha/- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#framebuffer-blendfactors>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#framebuffer-blendfactors> -- used as source or destination /color/- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#framebuffer-blending>.+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#framebuffer-blending>. constantAlphaColorBlendFactors :: Bool , -- | #features-events# @events@ indicates whether this implementation -- supports synchronization using- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-events>.+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-events>. events :: Bool , -- | #features-imageViewFormatReinterpretation# -- @imageViewFormatReinterpretation@ indicates whether this implementation@@ -236,56 +237,56 @@ , -- | #features-mutableComparisonSamplers# @mutableComparisonSamplers@ -- indicates whether this implementation allows descriptors with comparison -- samplers to be- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-updates updated>.+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-updates updated>. mutableComparisonSamplers :: Bool , -- | #features-pointPolygons# @pointPolygons@ indicates whether this -- implementation supports- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast> -- using a /point/- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-polygonmode>.+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-polygonmode>. pointPolygons :: Bool , -- | #features-samplerMipLodBias# @samplerMipLodBias@ indicates whether this -- implementation supports setting a- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#samplers-mipLodBias mipmap LOD bias value>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#samplers-mipLodBias mipmap LOD bias value> -- when- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#samplers creating a sampler>.+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#samplers creating a sampler>. samplerMipLodBias :: Bool , -- | #features-separateStencilMaskRef# @separateStencilMaskRef@ indicates -- whether this implementation supports separate front and back- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#fragops-stencil>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fragops-stencil> -- reference values. separateStencilMaskRef :: Bool , -- | #features-shaderSampleRateInterpolationFunctions# -- @shaderSampleRateInterpolationFunctions@ indicates whether this -- implementation supports fragment shaders which use the- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-InterpolationFunction InterpolationFunction>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-InterpolationFunction InterpolationFunction> -- capability and the extended instructions @InterpolateAtCentroid@, -- @InterpolateAtOffset@, and @InterpolateAtSample@ from the @GLSL.std.450@ -- extended instruction set. This member is only meaningful if the- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-sampleRateShading sampleRateShading>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-sampleRateShading sampleRateShading> -- feature is supported. shaderSampleRateInterpolationFunctions :: Bool , -- | #features-tessellationIsolines# @tessellationIsolines@ indicates whether -- this implementation supports- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#tessellation-isoline-tessellation isoline output>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#tessellation-isoline-tessellation isoline output> -- from the- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#tessellation>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#tessellation> -- stage of a graphics pipeline. This member is only meaningful if- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-tessellationShader tessellation shaders>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-tessellationShader tessellationShader> -- are supported. tessellationIsolines :: Bool , -- | #features-tessellationPointMode# @tessellationPointMode@ indicates -- whether this implementation supports- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#tessellation-point-mode point output>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#tessellation-point-mode point output> -- from the- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#tessellation>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#tessellation> -- stage of a graphics pipeline. This member is only meaningful if- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-tessellationShader tessellation shaders>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-tessellationShader tessellationShader> -- are supported. tessellationPointMode :: Bool , -- | #features-triangleFans# @triangleFans@ indicates whether this -- implementation supports- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#drawing-triangle-fans>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#drawing-triangle-fans> -- primitive topology. triangleFans :: Bool , -- | #features-vertexAttributeAccessBeyondStride#
src/Vulkan/Extensions/VK_KHR_portability_subset.hs-boot view
@@ -19,9 +19,10 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_get_physical_device_properties2@+-- - Requires @VK_KHR_get_physical_device_properties2@ to be enabled+-- for any device-level functionality -- -- - __This is a /provisional/ extension and /must/ be used with -- caution. See the@@ -81,7 +82,7 @@ -- The intent is that this extension will be advertised only on -- implementations of the Vulkan 1.0 Portability Subset, and not on -- conformant implementations of Vulkan 1.0. Fully-conformant Vulkan--- implementations provide all the required capabilies, and so will not+-- implementations provide all the required capabilities, and so will not -- provide this extension. Therefore, the existence of this extension can -- be used to determine that an implementation is likely not fully -- conformant with the Vulkan spec.@@ -136,7 +137,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_portability_subset Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_portability_subset Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_KHR_present_id.hs view
@@ -19,9 +19,10 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_swapchain@+-- - Requires @VK_KHR_swapchain@ to be enabled for any device-level+-- functionality -- -- [__Contact__] --@@ -92,7 +93,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_present_id Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_present_id Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.@@ -219,7 +220,7 @@ -- queued by a call to -- 'Vulkan.Extensions.VK_KHR_swapchain.queuePresentKHR', an identifier -- needs to be associated with them. When the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-presentId presentId>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-presentId presentId> -- feature is enabled, applications /can/ include the 'PresentIdKHR' -- structure in the @pNext@ chain of the -- 'Vulkan.Extensions.VK_KHR_swapchain.PresentInfoKHR' structure to supply
src/Vulkan/Extensions/VK_KHR_present_id.hs-boot view
@@ -19,9 +19,10 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_swapchain@+-- - Requires @VK_KHR_swapchain@ to be enabled for any device-level+-- functionality -- -- [__Contact__] --@@ -92,7 +93,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_present_id Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_present_id Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_KHR_present_wait.hs view
@@ -19,11 +19,13 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_swapchain@+-- - Requires @VK_KHR_swapchain@ to be enabled for any device-level+-- functionality ----- - Requires @VK_KHR_present_id@+-- - Requires @VK_KHR_present_id@ to be enabled for any device-level+-- functionality -- -- [__Contact__] --@@ -135,7 +137,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_present_wait Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_present_wait Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.@@ -277,7 +279,7 @@ -- in the retired state -- -- - #VUID-vkWaitForPresentKHR-presentWait-06234# The--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-presentWait presentWait>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-presentWait presentWait> -- feature /must/ be enabled -- -- == Valid Usage (Implicit)@@ -304,6 +306,8 @@ -- -- - 'Vulkan.Core10.Enums.Result.TIMEOUT' --+-- - 'Vulkan.Core10.Enums.Result.SUBOPTIMAL_KHR'+-- -- [<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodes Failure>] -- -- - 'Vulkan.Core10.Enums.Result.ERROR_OUT_OF_HOST_MEMORY'@@ -311,6 +315,12 @@ -- - 'Vulkan.Core10.Enums.Result.ERROR_OUT_OF_DEVICE_MEMORY' -- -- - 'Vulkan.Core10.Enums.Result.ERROR_DEVICE_LOST'+--+-- - 'Vulkan.Core10.Enums.Result.ERROR_OUT_OF_DATE_KHR'+--+-- - 'Vulkan.Core10.Enums.Result.ERROR_SURFACE_LOST_KHR'+--+-- - 'Vulkan.Core10.Enums.Result.ERROR_FULL_SCREEN_EXCLUSIVE_MODE_LOST_EXT' -- -- = See Also --
src/Vulkan/Extensions/VK_KHR_present_wait.hs-boot view
@@ -19,11 +19,13 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_swapchain@+-- - Requires @VK_KHR_swapchain@ to be enabled for any device-level+-- functionality ----- - Requires @VK_KHR_present_id@+-- - Requires @VK_KHR_present_id@ to be enabled for any device-level+-- functionality -- -- [__Contact__] --@@ -135,7 +137,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_present_wait Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_present_wait Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_KHR_push_descriptor.hs view
@@ -19,9 +19,10 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_get_physical_device_properties2@+-- - Requires @VK_KHR_get_physical_device_properties2@ to be enabled+-- for any device-level functionality -- -- [__Contact__] --@@ -122,7 +123,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_push_descriptor Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_push_descriptor Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.@@ -208,15 +209,15 @@ -- When a command buffer begins recording, all push descriptors are -- undefined. Push descriptors /can/ be updated incrementally and cause -- shaders to use the updated descriptors for subsequent--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-bindpoint-commands bound pipeline commands>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-bindpoint-commands bound pipeline commands> -- with the pipeline type set by @pipelineBindPoint@ until the descriptor -- is overwritten, or else until the set is disturbed as described in--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-compatibility Pipeline Layout Compatibility>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-compatibility Pipeline Layout Compatibility>. -- When the set is disturbed or push descriptors with a different -- descriptor set layout are set, all push descriptors are undefined. -- -- Push descriptors that are--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-staticuse statically used>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-staticuse statically used> -- by a pipeline /must/ not be undefined at the time that a drawing or -- dispatching command is recorded to execute using that pipeline. This -- includes immutable sampler descriptors, which /must/ be pushed before@@ -297,6 +298,9 @@ -- 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was -- allocated from /must/ support graphics, or compute operations --+-- - #VUID-vkCmdPushDescriptorSetKHR-videocoding# This command /must/+-- only be called outside of a video coding scope+-- -- - #VUID-vkCmdPushDescriptorSetKHR-descriptorWriteCount-arraylength# -- @descriptorWriteCount@ /must/ be greater than @0@ --@@ -315,12 +319,12 @@ -- -- \' ----- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | Primary | Both | Graphics |--- | Secondary | | Compute |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================++-- | Primary | Both | Outside | Graphics |+-- | Secondary | | | Compute |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+ -- -- = See Also --@@ -409,6 +413,9 @@ -- The 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was -- allocated from /must/ support graphics, or compute operations --+-- - #VUID-vkCmdPushDescriptorSetWithTemplateKHR-videocoding# This+-- command /must/ only be called outside of a video coding scope+-- -- - #VUID-vkCmdPushDescriptorSetWithTemplateKHR-commonparent# Each of -- @commandBuffer@, @descriptorUpdateTemplate@, and @layout@ /must/ -- have been created, allocated, or retrieved from the same@@ -425,12 +432,12 @@ -- -- \' ----- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | Primary | Both | Graphics |--- | Secondary | | Compute |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================++-- | Primary | Both | Outside | Graphics |+-- | Secondary | | | Compute |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+ -- -- __API example__ --
src/Vulkan/Extensions/VK_KHR_push_descriptor.hs-boot view
@@ -19,9 +19,10 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_get_physical_device_properties2@+-- - Requires @VK_KHR_get_physical_device_properties2@ to be enabled+-- for any device-level functionality -- -- [__Contact__] --@@ -122,7 +123,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_push_descriptor Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_push_descriptor Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_KHR_ray_query.hs view
@@ -19,11 +19,13 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.1+-- - Requires support for Vulkan 1.1 ----- - Requires @VK_KHR_spirv_1_4@+-- - Requires @VK_KHR_spirv_1_4@ to be enabled for any device-level+-- functionality ----- - Requires @VK_KHR_acceleration_structure@+-- - Requires @VK_KHR_acceleration_structure@ to be enabled for any+-- device-level functionality -- -- [__Contact__] --@@ -167,27 +169,26 @@ -- -- == New SPIR-V Capabilities ----- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-RayQueryKHR RayQueryKHR>+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-RayQueryKHR RayQueryKHR> ----- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-RayTraversalPrimitiveCullingKHR RayTraversalPrimitiveCullingKHR>+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-RayTraversalPrimitiveCullingKHR RayTraversalPrimitiveCullingKHR> -- -- == Sample Code ----- Example of ray query in a GLSL shader+-- Example of ray query in a GLSL shader, illustrating how to use ray+-- queries to determine whether a given position (at ray origin) is in+-- shadow or not, by tracing a ray towards the light, and checking for any+-- intersections with geometry occluding the light. -- -- > rayQueryEXT rq; -- >--- > rayQueryInitializeEXT(rq, accStruct, gl_RayFlagsNoneEXT, 0, origin, tMin, direction, tMax);+-- > rayQueryInitializeEXT(rq, accStruct, gl_RayFlagsTerminateOnFirstHitEXT, cullMask, origin, tMin, direction, tMax); -- >--- > while(rayQueryProceedEXT(rq)) {--- > if (rayQueryGetIntersectionTypeEXT(rq, false) == gl_RayQueryCandidateIntersectionTriangleEXT) {--- > //...--- > rayQueryConfirmIntersectionEXT(rq);--- > }--- > }+-- > // Traverse the acceleration structure and store information about the first intersection (if any)+-- > rayQueryProceedEXT(rq); -- > -- > if (rayQueryGetIntersectionTypeEXT(rq, true) == gl_RayQueryCommittedIntersectionNoneEXT) {--- > //...+-- > // Not in shadow -- > } -- -- == Issues@@ -240,7 +241,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_ray_query Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_ray_query Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_KHR_ray_query.hs-boot view
@@ -19,11 +19,13 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.1+-- - Requires support for Vulkan 1.1 ----- - Requires @VK_KHR_spirv_1_4@+-- - Requires @VK_KHR_spirv_1_4@ to be enabled for any device-level+-- functionality ----- - Requires @VK_KHR_acceleration_structure@+-- - Requires @VK_KHR_acceleration_structure@ to be enabled for any+-- device-level functionality -- -- [__Contact__] --@@ -167,27 +169,26 @@ -- -- == New SPIR-V Capabilities ----- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-RayQueryKHR RayQueryKHR>+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-RayQueryKHR RayQueryKHR> ----- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-RayTraversalPrimitiveCullingKHR RayTraversalPrimitiveCullingKHR>+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-RayTraversalPrimitiveCullingKHR RayTraversalPrimitiveCullingKHR> -- -- == Sample Code ----- Example of ray query in a GLSL shader+-- Example of ray query in a GLSL shader, illustrating how to use ray+-- queries to determine whether a given position (at ray origin) is in+-- shadow or not, by tracing a ray towards the light, and checking for any+-- intersections with geometry occluding the light. -- -- > rayQueryEXT rq; -- >--- > rayQueryInitializeEXT(rq, accStruct, gl_RayFlagsNoneEXT, 0, origin, tMin, direction, tMax);+-- > rayQueryInitializeEXT(rq, accStruct, gl_RayFlagsTerminateOnFirstHitEXT, cullMask, origin, tMin, direction, tMax); -- >--- > while(rayQueryProceedEXT(rq)) {--- > if (rayQueryGetIntersectionTypeEXT(rq, false) == gl_RayQueryCandidateIntersectionTriangleEXT) {--- > //...--- > rayQueryConfirmIntersectionEXT(rq);--- > }--- > }+-- > // Traverse the acceleration structure and store information about the first intersection (if any)+-- > rayQueryProceedEXT(rq); -- > -- > if (rayQueryGetIntersectionTypeEXT(rq, true) == gl_RayQueryCommittedIntersectionNoneEXT) {--- > //...+-- > // Not in shadow -- > } -- -- == Issues@@ -240,7 +241,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_ray_query Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_ray_query Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
+ src/Vulkan/Extensions/VK_KHR_ray_tracing_maintenance1.hs view
@@ -0,0 +1,1161 @@+{-# language CPP #-}+-- | = Name+--+-- VK_KHR_ray_tracing_maintenance1 - device extension+--+-- == VK_KHR_ray_tracing_maintenance1+--+-- [__Name String__]+-- @VK_KHR_ray_tracing_maintenance1@+--+-- [__Extension Type__]+-- Device extension+--+-- [__Registered Extension Number__]+-- 387+--+-- [__Revision__]+-- 1+--+-- [__Extension and Version Dependencies__]+--+-- - Requires support for Vulkan 1.1+--+-- - Requires @VK_KHR_acceleration_structure@ to be enabled for any+-- device-level functionality+--+-- [__Contact__]+--+-- - Daniel Koch+-- <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_KHR_ray_tracing_maintenance1] @dgkoch%0A<<Here describe the issue or question you have about the VK_KHR_ray_tracing_maintenance1 extension>> >+--+-- == Other Extension Metadata+--+-- [__Last Modified Date__]+-- 2022-02-21+--+-- [__Interactions and External Dependencies__]+--+-- - This extension requires+-- <https://htmlpreview.github.io/?https://github.com/KhronosGroup/SPIRV-Registry/blob/master/extensions/KHR/SPV_KHR_ray_cull_mask.html SPV_KHR_ray_cull_mask>+--+-- - This extension provides API support for+-- <https://github.com/KhronosGroup/GLSL/blob/master/extensions/ext/GLSL_EXT_ray_cull_mask.txt GLSL_EXT_ray_cull_mask>+--+-- - Interacts with @VK_KHR_ray_tracing_pipeline@+--+-- - Interacts with @VK_KHR_synchronization2@+--+-- [__Contributors__]+--+-- - Stu Smith, AMD+--+-- - Tobias Hector, AMD+--+-- - Marius Bjorge, Arm+--+-- - Tom Olson, Arm+--+-- - Yuriy O’Donnell, Epic Games+--+-- - Yunpeng Zhu, Huawei+--+-- - Andrew Garrard, Imagination+--+-- - Dae Kim, Imagination+--+-- - Joshua Barczak, Intel+--+-- - Lionel Landwerlin, Intel+--+-- - Daniel Koch, NVIDIA+--+-- - Eric Werness, NVIDIA+--+-- - Spencer Fricke, Samsung+--+-- == Description+--+-- @VK_KHR_ray_tracing_maintenance1@ adds a collection of minor ray tracing+-- features, none of which would warrant an entire extension of their own.+--+-- The new features are as follows:+--+-- - Adds support for the @SPV_KHR_ray_cull_mask@ SPIR-V extension in+-- Vulkan. This extension provides access to built-in @CullMaskKHR@+-- shader variable which contains the value of the @OpTrace*@+-- @Cull Mask@ parameter. This new shader variable is accessible in the+-- intersection, any-hit, closest-hit and miss shader stages.+--+-- - Adds support for a new pipeline stage and access mask built on top+-- of @VK_KHR_synchronization2@:+--+-- - 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR'+-- to specify execution of+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#acceleration-structure-copying acceleration structure copy commands>+--+-- - 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_SHADER_BINDING_TABLE_READ_BIT_KHR'+-- to specify read access to a+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#shader-binding-table shader binding table>+-- in any shader pipeline stage+--+-- - Adds two new acceleration structure query parameters:+--+-- - 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_ACCELERATION_STRUCTURE_SIZE_KHR'+-- to query the acceleration structure size on the device timeline+--+-- - 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_BOTTOM_LEVEL_POINTERS_KHR'+-- to query the number of bottom level acceleration structure+-- pointers for serialization+--+-- - Adds an optional new indirect ray tracing dispatch command,+-- 'cmdTraceRaysIndirect2KHR', which sources the shader binding table+-- parameters as well as the dispatch dimensions from the device. The+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-rayTracingPipelineTraceRaysIndirect2 rayTracingPipelineTraceRaysIndirect2>+-- feature indicates whether this functionality is supported.+--+-- == New Commands+--+-- If+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_ray_tracing_pipeline VK_KHR_ray_tracing_pipeline>+-- is supported:+--+-- - 'cmdTraceRaysIndirect2KHR'+--+-- == New Structures+--+-- - Extending+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',+-- 'Vulkan.Core10.Device.DeviceCreateInfo':+--+-- - 'PhysicalDeviceRayTracingMaintenance1FeaturesKHR'+--+-- If+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_ray_tracing_pipeline VK_KHR_ray_tracing_pipeline>+-- is supported:+--+-- - 'TraceRaysIndirectCommand2KHR'+--+-- == New Enum Constants+--+-- - 'KHR_RAY_TRACING_MAINTENANCE_1_EXTENSION_NAME'+--+-- - 'KHR_RAY_TRACING_MAINTENANCE_1_SPEC_VERSION'+--+-- - Extending 'Vulkan.Core10.Enums.QueryType.QueryType':+--+-- - 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_BOTTOM_LEVEL_POINTERS_KHR'+--+-- - 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_ACCELERATION_STRUCTURE_SIZE_KHR'+--+-- - Extending 'Vulkan.Core10.Enums.StructureType.StructureType':+--+-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MAINTENANCE_1_FEATURES_KHR'+--+-- If+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_synchronization2 VK_KHR_synchronization2>+-- is supported:+--+-- - Extending+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PipelineStageFlagBits2':+--+-- - 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR'+--+-- If+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_synchronization2 VK_KHR_synchronization2>+-- and+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_ray_tracing_pipeline VK_KHR_ray_tracing_pipeline>+-- is supported:+--+-- - Extending 'Vulkan.Core13.Enums.AccessFlags2.AccessFlagBits2':+--+-- - 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_SHADER_BINDING_TABLE_READ_BIT_KHR'+--+-- == New Built-In Variables+--+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-cullmask CullMaskKHR>+--+-- == New SPIR-V Capabilities+--+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-RayCullMaskKHR RayCullMaskKHR>+--+-- == Issues+--+-- None Yet!+--+-- == Version History+--+-- - Revision 1, 2022-02-21 (Members of the Vulkan Ray Tracing TSG)+--+-- - internal revisions+--+-- == See Also+--+-- 'PhysicalDeviceRayTracingMaintenance1FeaturesKHR'+--+-- == Document Notes+--+-- For more information, see the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_ray_tracing_maintenance1 Vulkan Specification>+--+-- This page is a generated document. Fixes and changes should be made to+-- the generator scripts, not directly.+module Vulkan.Extensions.VK_KHR_ray_tracing_maintenance1 ( cmdTraceRaysIndirect2KHR+ , TraceRaysIndirectCommand2KHR(..)+ , PhysicalDeviceRayTracingMaintenance1FeaturesKHR(..)+ , KHR_RAY_TRACING_MAINTENANCE_1_SPEC_VERSION+ , pattern KHR_RAY_TRACING_MAINTENANCE_1_SPEC_VERSION+ , KHR_RAY_TRACING_MAINTENANCE_1_EXTENSION_NAME+ , pattern KHR_RAY_TRACING_MAINTENANCE_1_EXTENSION_NAME+ ) where++import Vulkan.Internal.Utils (traceAroundEvent)+import Control.Monad (unless)+import Control.Monad.IO.Class (liftIO)+import Foreign.Marshal.Alloc (allocaBytes)+import GHC.IO (throwIO)+import GHC.Ptr (nullFunPtr)+import Foreign.Ptr (nullPtr)+import Foreign.Ptr (plusPtr)+import Vulkan.CStruct (FromCStruct)+import Vulkan.CStruct (FromCStruct(..))+import Vulkan.CStruct (ToCStruct)+import Vulkan.CStruct (ToCStruct(..))+import Vulkan.Zero (Zero(..))+import Control.Monad.IO.Class (MonadIO)+import Data.String (IsString)+import Data.Typeable (Typeable)+import Foreign.Storable (Storable)+import Foreign.Storable (Storable(peek))+import Foreign.Storable (Storable(poke))+import qualified Foreign.Storable (Storable(..))+import GHC.Generics (Generic)+import GHC.IO.Exception (IOErrorType(..))+import GHC.IO.Exception (IOException(..))+import Foreign.Ptr (FunPtr)+import Foreign.Ptr (Ptr)+import Data.Word (Word32)+import Data.Kind (Type)+import Vulkan.Core10.FundamentalTypes (bool32ToBool)+import Vulkan.Core10.FundamentalTypes (boolToBool32)+import Vulkan.NamedType ((:::))+import Vulkan.Core10.FundamentalTypes (Bool32)+import Vulkan.Core10.Handles (CommandBuffer)+import Vulkan.Core10.Handles (CommandBuffer(..))+import Vulkan.Core10.Handles (CommandBuffer(CommandBuffer))+import Vulkan.Core10.Handles (CommandBuffer_T)+import Vulkan.Core10.FundamentalTypes (DeviceAddress)+import Vulkan.Dynamic (DeviceCmds(pVkCmdTraceRaysIndirect2KHR))+import Vulkan.Core10.FundamentalTypes (DeviceSize)+import Vulkan.Core10.Enums.StructureType (StructureType)+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MAINTENANCE_1_FEATURES_KHR))+foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+ unsafe+#endif+ "dynamic" mkVkCmdTraceRaysIndirect2KHR+ :: FunPtr (Ptr CommandBuffer_T -> DeviceAddress -> IO ()) -> Ptr CommandBuffer_T -> DeviceAddress -> IO ()++-- | vkCmdTraceRaysIndirect2KHR - Initialize an indirect ray tracing dispatch+-- with indirect shader binding tables+--+-- = Description+--+-- 'cmdTraceRaysIndirect2KHR' behaves similarly to+-- 'Vulkan.Extensions.VK_KHR_ray_tracing_pipeline.cmdTraceRaysIndirectKHR'+-- except that shader binding table parameters as well as dispatch+-- dimensions are read by the device from @indirectDeviceAddress@ during+-- execution.+--+-- == Valid Usage+--+-- - #VUID-vkCmdTraceRaysIndirect2KHR-magFilter-04553# If a+-- 'Vulkan.Core10.Handles.Sampler' created with @magFilter@ or+-- @minFilter@ equal to 'Vulkan.Core10.Enums.Filter.FILTER_LINEAR' and+-- @compareEnable@ equal to 'Vulkan.Core10.FundamentalTypes.FALSE' is+-- used to sample a 'Vulkan.Core10.Handles.ImageView' as a result of+-- this command, then the image view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain+-- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT'+--+-- - #VUID-vkCmdTraceRaysIndirect2KHR-mipmapMode-04770# If a+-- 'Vulkan.Core10.Handles.Sampler' created with @mipmapMode@ equal to+-- 'Vulkan.Core10.Enums.SamplerMipmapMode.SAMPLER_MIPMAP_MODE_LINEAR'+-- and @compareEnable@ equal to 'Vulkan.Core10.FundamentalTypes.FALSE'+-- is used to sample a 'Vulkan.Core10.Handles.ImageView' as a result of+-- this command, then the image view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain+-- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT'+--+-- - #VUID-vkCmdTraceRaysIndirect2KHR-None-06479# If a+-- 'Vulkan.Core10.Handles.ImageView' is sampled with+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-depth-compare-operation depth comparison>,+-- the image view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT'+--+-- - #VUID-vkCmdTraceRaysIndirect2KHR-None-02691# If a+-- 'Vulkan.Core10.Handles.ImageView' is accessed using atomic+-- operations as a result of this command, then the image view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain+-- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT'+--+-- - #VUID-vkCmdTraceRaysIndirect2KHR-None-02692# If a+-- 'Vulkan.Core10.Handles.ImageView' is sampled with+-- 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as a result of this+-- command, then the image view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain+-- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT'+--+-- - #VUID-vkCmdTraceRaysIndirect2KHR-filterCubic-02694# Any+-- 'Vulkan.Core10.Handles.ImageView' being sampled with+-- 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as a result of this+-- command /must/ have a+-- 'Vulkan.Core10.Enums.ImageViewType.ImageViewType' and format that+-- supports cubic filtering, as specified by+-- 'Vulkan.Extensions.VK_EXT_filter_cubic.FilterCubicImageViewImageFormatPropertiesEXT'::@filterCubic@+-- returned by+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceImageFormatProperties2'+--+-- - #VUID-vkCmdTraceRaysIndirect2KHR-filterCubicMinmax-02695# Any+-- 'Vulkan.Core10.Handles.ImageView' being sampled with+-- 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' with a reduction mode+-- of either+-- 'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MIN'+-- or+-- 'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MAX'+-- as a result of this command /must/ have a+-- 'Vulkan.Core10.Enums.ImageViewType.ImageViewType' and format that+-- supports cubic filtering together with minmax filtering, as+-- specified by+-- 'Vulkan.Extensions.VK_EXT_filter_cubic.FilterCubicImageViewImageFormatPropertiesEXT'::@filterCubicMinmax@+-- returned by+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceImageFormatProperties2'+--+-- - #VUID-vkCmdTraceRaysIndirect2KHR-flags-02696# Any+-- 'Vulkan.Core10.Handles.Image' created with a+-- 'Vulkan.Core10.Image.ImageCreateInfo'::@flags@ containing+-- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_CORNER_SAMPLED_BIT_NV'+-- sampled as a result of this command /must/ only be sampled using a+-- 'Vulkan.Core10.Enums.SamplerAddressMode.SamplerAddressMode' of+-- 'Vulkan.Core10.Enums.SamplerAddressMode.SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE'+--+-- - #VUID-vkCmdTraceRaysIndirect2KHR-OpTypeImage-07027# For any+-- 'Vulkan.Core10.Handles.ImageView' being written as a storage image+-- where the image format field of the @OpTypeImage@ is @Unknown@, the+-- view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT'+--+-- - #VUID-vkCmdTraceRaysIndirect2KHR-OpTypeImage-07028# For any+-- 'Vulkan.Core10.Handles.ImageView' being read as a storage image+-- where the image format field of the @OpTypeImage@ is @Unknown@, the+-- view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT'+--+-- - #VUID-vkCmdTraceRaysIndirect2KHR-OpTypeImage-07029# For any+-- 'Vulkan.Core10.Handles.BufferView' being written as a storage texel+-- buffer where the image format field of the @OpTypeImage@ is+-- @Unknown@, the view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkFormatProperties3 buffer features>+-- /must/ contain+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT'+--+-- - #VUID-vkCmdTraceRaysIndirect2KHR-OpTypeImage-07030# Any+-- 'Vulkan.Core10.Handles.BufferView' being read as a storage texel+-- buffer where the image format field of the @OpTypeImage@ is+-- @Unknown@ then the view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkFormatProperties3 buffer features>+-- /must/ contain+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT'+--+-- - #VUID-vkCmdTraceRaysIndirect2KHR-None-02697# For each set /n/ that+-- is statically used by the 'Vulkan.Core10.Handles.Pipeline' bound to+-- the pipeline bind point used by this command, a descriptor set+-- /must/ have been bound to /n/ at the same pipeline bind point, with+-- a 'Vulkan.Core10.Handles.PipelineLayout' that is compatible for set+-- /n/, with the 'Vulkan.Core10.Handles.PipelineLayout' used to create+-- the current 'Vulkan.Core10.Handles.Pipeline', as described in+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>+--+-- - #VUID-vkCmdTraceRaysIndirect2KHR-maintenance4-06425# If the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-maintenance4 maintenance4>+-- feature is not enabled, then for each push constant that is+-- statically used by the 'Vulkan.Core10.Handles.Pipeline' bound to the+-- pipeline bind point used by this command, a push constant value+-- /must/ have been set for the same pipeline bind point, with a+-- 'Vulkan.Core10.Handles.PipelineLayout' that is compatible for push+-- constants, with the 'Vulkan.Core10.Handles.PipelineLayout' used to+-- create the current 'Vulkan.Core10.Handles.Pipeline', as described in+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>+--+-- - #VUID-vkCmdTraceRaysIndirect2KHR-None-02699# Descriptors in each+-- bound descriptor set, specified via+-- 'Vulkan.Core10.CommandBufferBuilding.cmdBindDescriptorSets', /must/+-- be valid if they are statically used by the+-- 'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind point+-- used by this command+--+-- - #VUID-vkCmdTraceRaysIndirect2KHR-None-02700# A valid pipeline /must/+-- be bound to the pipeline bind point used by this command+--+-- - #VUID-vkCmdTraceRaysIndirect2KHR-commandBuffer-02701# If the+-- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind+-- point used by this command requires any dynamic state, that state+-- /must/ have been set or inherited (if the+-- @VK_NV_inherited_viewport_scissor@ extension is enabled) for+-- @commandBuffer@, and done so after any previously bound pipeline+-- with the corresponding state not specified as dynamic+--+-- - #VUID-vkCmdTraceRaysIndirect2KHR-None-02859# There /must/ not have+-- been any calls to dynamic state setting commands for any state not+-- specified as dynamic in the 'Vulkan.Core10.Handles.Pipeline' object+-- bound to the pipeline bind point used by this command, since that+-- pipeline was bound+--+-- - #VUID-vkCmdTraceRaysIndirect2KHR-None-02702# If the+-- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind+-- point used by this command accesses a+-- 'Vulkan.Core10.Handles.Sampler' object that uses unnormalized+-- coordinates, that sampler /must/ not be used to sample from any+-- 'Vulkan.Core10.Handles.Image' with a+-- 'Vulkan.Core10.Handles.ImageView' of the type+-- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_3D',+-- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE',+-- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_1D_ARRAY',+-- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_2D_ARRAY' or+-- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE_ARRAY', in+-- any shader stage+--+-- - #VUID-vkCmdTraceRaysIndirect2KHR-None-02703# If the+-- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind+-- point used by this command accesses a+-- 'Vulkan.Core10.Handles.Sampler' object that uses unnormalized+-- coordinates, that sampler /must/ not be used with any of the SPIR-V+-- @OpImageSample*@ or @OpImageSparseSample*@ instructions with+-- @ImplicitLod@, @Dref@ or @Proj@ in their name, in any shader stage+--+-- - #VUID-vkCmdTraceRaysIndirect2KHR-None-02704# If the+-- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind+-- point used by this command accesses a+-- 'Vulkan.Core10.Handles.Sampler' object that uses unnormalized+-- coordinates, that sampler /must/ not be used with any of the SPIR-V+-- @OpImageSample*@ or @OpImageSparseSample*@ instructions that+-- includes a LOD bias or any offset values, in any shader stage+--+-- - #VUID-vkCmdTraceRaysIndirect2KHR-uniformBuffers-06935# If any stage+-- of the 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline+-- bind point used by this command accesses a uniform buffer, and that+-- stage was created without enabling either+-- 'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT'+-- or+-- 'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT'+-- for @uniformBuffers@, and the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>+-- feature is not enabled, that stage /must/ not access values outside+-- of the range of the buffer as specified in the descriptor set bound+-- to the same pipeline bind point+--+-- - #VUID-vkCmdTraceRaysIndirect2KHR-storageBuffers-06936# If any stage+-- of the 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline+-- bind point used by this command accesses a storage buffer, and that+-- stage was created without enabling either+-- 'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT'+-- or+-- 'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT'+-- for @storageBuffers@, and the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>+-- feature is not enabled, that stage /must/ not access values outside+-- of the range of the buffer as specified in the descriptor set bound+-- to the same pipeline bind point+--+-- - #VUID-vkCmdTraceRaysIndirect2KHR-commandBuffer-02707# If+-- @commandBuffer@ is an unprotected command buffer and+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>+-- is not supported, any resource accessed by the+-- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind+-- point used by this command /must/ not be a protected resource+--+-- - #VUID-vkCmdTraceRaysIndirect2KHR-None-06550# If the+-- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind+-- point used by this command accesses a+-- 'Vulkan.Core10.Handles.Sampler' or 'Vulkan.Core10.Handles.ImageView'+-- object that enables+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion>,+-- that object /must/ only be used with @OpImageSample*@ or+-- @OpImageSparseSample*@ instructions+--+-- - #VUID-vkCmdTraceRaysIndirect2KHR-ConstOffset-06551# If the+-- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind+-- point used by this command accesses a+-- 'Vulkan.Core10.Handles.Sampler' or 'Vulkan.Core10.Handles.ImageView'+-- object that enables+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion>,+-- that object /must/ not use the @ConstOffset@ and @Offset@ operands+--+-- - #VUID-vkCmdTraceRaysIndirect2KHR-None-04115# If a+-- 'Vulkan.Core10.Handles.ImageView' is accessed using @OpImageWrite@+-- as a result of this command, then the @Type@ of the @Texel@ operand+-- of that instruction /must/ have at least as many components as the+-- image view’s format+--+-- - #VUID-vkCmdTraceRaysIndirect2KHR-OpImageWrite-04469# If a+-- 'Vulkan.Core10.Handles.BufferView' is accessed using @OpImageWrite@+-- as a result of this command, then the @Type@ of the @Texel@ operand+-- of that instruction /must/ have at least as many components as the+-- buffer view’s format+--+-- - #VUID-vkCmdTraceRaysIndirect2KHR-SampledType-04470# If a+-- 'Vulkan.Core10.Handles.ImageView' with a+-- 'Vulkan.Core10.Enums.Format.Format' that has a 64-bit component+-- width is accessed as a result of this command, the @SampledType@ of+-- the @OpTypeImage@ operand of that instruction /must/ have a @Width@+-- of 64+--+-- - #VUID-vkCmdTraceRaysIndirect2KHR-SampledType-04471# If a+-- 'Vulkan.Core10.Handles.ImageView' with a+-- 'Vulkan.Core10.Enums.Format.Format' that has a component width less+-- than 64-bit is accessed as a result of this command, the+-- @SampledType@ of the @OpTypeImage@ operand of that instruction+-- /must/ have a @Width@ of 32+--+-- - #VUID-vkCmdTraceRaysIndirect2KHR-SampledType-04472# If a+-- 'Vulkan.Core10.Handles.BufferView' with a+-- 'Vulkan.Core10.Enums.Format.Format' that has a 64-bit component+-- width is accessed as a result of this command, the @SampledType@ of+-- the @OpTypeImage@ operand of that instruction /must/ have a @Width@+-- of 64+--+-- - #VUID-vkCmdTraceRaysIndirect2KHR-SampledType-04473# If a+-- 'Vulkan.Core10.Handles.BufferView' with a+-- 'Vulkan.Core10.Enums.Format.Format' that has a component width less+-- than 64-bit is accessed as a result of this command, the+-- @SampledType@ of the @OpTypeImage@ operand of that instruction+-- /must/ have a @Width@ of 32+--+-- - #VUID-vkCmdTraceRaysIndirect2KHR-sparseImageInt64Atomics-04474# If+-- the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-sparseImageInt64Atomics sparseImageInt64Atomics>+-- feature is not enabled, 'Vulkan.Core10.Handles.Image' objects+-- created with the+-- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SPARSE_RESIDENCY_BIT'+-- flag /must/ not be accessed by atomic instructions through an+-- @OpTypeImage@ with a @SampledType@ with a @Width@ of 64 by this+-- command+--+-- - #VUID-vkCmdTraceRaysIndirect2KHR-sparseImageInt64Atomics-04475# If+-- the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-sparseImageInt64Atomics sparseImageInt64Atomics>+-- feature is not enabled, 'Vulkan.Core10.Handles.Buffer' objects+-- created with the+-- 'Vulkan.Core10.Enums.BufferCreateFlagBits.BUFFER_CREATE_SPARSE_RESIDENCY_BIT'+-- flag /must/ not be accessed by atomic instructions through an+-- @OpTypeImage@ with a @SampledType@ with a @Width@ of 64 by this+-- command+--+-- - #VUID-vkCmdTraceRaysIndirect2KHR-OpImageWeightedSampleQCOM-06971# If+-- @OpImageWeightedSampleQCOM@ is used to sample a+-- 'Vulkan.Core10.Handles.ImageView' as a result of this command, then+-- the image view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM'+--+-- - #VUID-vkCmdTraceRaysIndirect2KHR-OpImageWeightedSampleQCOM-06972# If+-- @OpImageWeightedSampleQCOM@ uses a 'Vulkan.Core10.Handles.ImageView'+-- as a sample weight image as a result of this command, then the image+-- view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM'+--+-- - #VUID-vkCmdTraceRaysIndirect2KHR-OpImageBoxFilterQCOM-06973# If+-- @OpImageBoxFilterQCOM@ is used to sample a+-- 'Vulkan.Core10.Handles.ImageView' as a result of this command, then+-- the image view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM'+--+-- - #VUID-vkCmdTraceRaysIndirect2KHR-OpImageBlockMatchSSDQCOM-06974# If+-- @OpImageBlockMatchSSDQCOM@ is used to read from an+-- 'Vulkan.Core10.Handles.ImageView' as a result of this command, then+-- the image view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM'+--+-- - #VUID-vkCmdTraceRaysIndirect2KHR-OpImageBlockMatchSADQCOM-06975# If+-- @OpImageBlockMatchSADQCOM@ is used to read from an+-- 'Vulkan.Core10.Handles.ImageView' as a result of this command, then+-- the image view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM'+--+-- - #VUID-vkCmdTraceRaysIndirect2KHR-OpImageBlockMatchSADQCOM-06976# If+-- @OpImageBlockMatchSADQCOM@ or OpImageBlockMatchSSDQCOM is used to+-- read from a reference image as result of this command, then the+-- specified reference coordinates /must/ not fail+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-integer-coordinate-validation integer texel coordinate validation>.+--+-- - #VUID-vkCmdTraceRaysIndirect2KHR-OpImageWeightedSampleQCOM-06977# If+-- @OpImageWeightedSampleQCOM@, @OpImageBoxFilterQCOM@,+-- @OpImageBlockMatchSSDQCOM@, or @OpImageBlockMatchSADQCOM@ uses a+-- 'Vulkan.Core10.Handles.Sampler' as a result of this command, then+-- the sampler /must/ have been created with+-- 'Vulkan.Core10.Enums.SamplerCreateFlagBits.SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM'.+--+-- - #VUID-vkCmdTraceRaysIndirect2KHR-OpImageWeightedSampleQCOM-06978# If+-- any command other than @OpImageWeightedSampleQCOM@,+-- @OpImageBoxFilterQCOM@, @OpImageBlockMatchSSDQCOM@, or+-- @OpImageBlockMatchSADQCOM@ uses a 'Vulkan.Core10.Handles.Sampler' as+-- a result of this command, then the sampler /must/ not have been+-- created with+-- 'Vulkan.Core10.Enums.SamplerCreateFlagBits.SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM'.+--+-- - #VUID-vkCmdTraceRaysIndirect2KHR-None-03429# Any shader group handle+-- referenced by this call /must/ have been queried from the currently+-- bound ray tracing pipeline+--+-- - #VUID-vkCmdTraceRaysIndirect2KHR-maxPipelineRayRecursionDepth-03679#+-- This command /must/ not cause a shader call instruction to be+-- executed from a shader invocation with a+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#ray-tracing-recursion-depth recursion depth>+-- greater than the value of @maxPipelineRayRecursionDepth@ used to+-- create the bound ray tracing pipeline+--+-- - #VUID-vkCmdTraceRaysIndirect2KHR-commandBuffer-03635#+-- @commandBuffer@ /must/ not be a protected command buffer+--+-- - #VUID-vkCmdTraceRaysIndirect2KHR-indirectDeviceAddress-03632# If the+-- buffer from which @indirectDeviceAddress@ was queried is non-sparse+-- then it /must/ be bound completely and contiguously to a single+-- 'Vulkan.Core10.Handles.DeviceMemory' object+--+-- - #VUID-vkCmdTraceRaysIndirect2KHR-indirectDeviceAddress-03633# The+-- buffer from which @indirectDeviceAddress@ was queried /must/ have+-- been created with the+-- 'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_INDIRECT_BUFFER_BIT'+-- bit set+--+-- - #VUID-vkCmdTraceRaysIndirect2KHR-indirectDeviceAddress-03634#+-- @indirectDeviceAddress@ /must/ be a multiple of @4@+--+-- - #VUID-vkCmdTraceRaysIndirect2KHR-indirectDeviceAddress-03636# All+-- device addresses between @indirectDeviceAddress@ and+-- @indirectDeviceAddress@ + @sizeof@('TraceRaysIndirectCommand2KHR') -+-- 1 /must/ be in the buffer device address range of the same buffer+--+-- - #VUID-vkCmdTraceRaysIndirect2KHR-rayTracingPipelineTraceRaysIndirect2-03637#+-- The+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-rayTracingPipelineTraceRaysIndirect2 rayTracingPipelineTraceRaysIndirect2>+-- feature /must/ be enabled+--+-- - #VUID-vkCmdTraceRaysIndirect2KHR-rayTracingMotionBlurPipelineTraceRaysIndirect-04951#+-- If the bound ray tracing pipeline was created with+-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV'+-- 'Vulkan.Extensions.VK_NV_ray_tracing_motion_blur.PhysicalDeviceRayTracingMotionBlurFeaturesNV'::@rayTracingMotionBlurPipelineTraceRaysIndirect@+-- feature /must/ be enabled+--+-- == Valid Usage (Implicit)+--+-- - #VUID-vkCmdTraceRaysIndirect2KHR-commandBuffer-parameter#+-- @commandBuffer@ /must/ be a valid+-- 'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- - #VUID-vkCmdTraceRaysIndirect2KHR-commandBuffer-recording#+-- @commandBuffer@ /must/ be in the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording state>+--+-- - #VUID-vkCmdTraceRaysIndirect2KHR-commandBuffer-cmdpool# The+-- 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+-- allocated from /must/ support compute operations+--+-- - #VUID-vkCmdTraceRaysIndirect2KHR-renderpass# This command /must/+-- only be called outside of a render pass instance+--+-- - #VUID-vkCmdTraceRaysIndirect2KHR-videocoding# This command /must/+-- only be called outside of a video coding scope+--+-- == Host Synchronization+--+-- - Host access to @commandBuffer@ /must/ be externally synchronized+--+-- - Host access to the 'Vulkan.Core10.Handles.CommandPool' that+-- @commandBuffer@ was allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- \'+--+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================++-- | Primary | Outside | Outside | Compute |+-- | Secondary | | | |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_ray_tracing_maintenance1 VK_KHR_ray_tracing_maintenance1>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_ray_tracing_pipeline VK_KHR_ray_tracing_pipeline>,+-- 'Vulkan.Core10.Handles.CommandBuffer',+-- 'Vulkan.Core10.FundamentalTypes.DeviceAddress'+cmdTraceRaysIndirect2KHR :: forall io+ . (MonadIO io)+ => -- | @commandBuffer@ is the command buffer into which the command will be+ -- recorded.+ CommandBuffer+ -> -- | @indirectDeviceAddress@ is a buffer device address which is a pointer to+ -- a 'TraceRaysIndirectCommand2KHR' structure containing the trace ray+ -- parameters.+ ("indirectDeviceAddress" ::: DeviceAddress)+ -> io ()+cmdTraceRaysIndirect2KHR commandBuffer indirectDeviceAddress = liftIO $ do+ let vkCmdTraceRaysIndirect2KHRPtr = pVkCmdTraceRaysIndirect2KHR (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)+ unless (vkCmdTraceRaysIndirect2KHRPtr /= nullFunPtr) $+ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdTraceRaysIndirect2KHR is null" Nothing Nothing+ let vkCmdTraceRaysIndirect2KHR' = mkVkCmdTraceRaysIndirect2KHR vkCmdTraceRaysIndirect2KHRPtr+ traceAroundEvent "vkCmdTraceRaysIndirect2KHR" (vkCmdTraceRaysIndirect2KHR' (commandBufferHandle (commandBuffer)) (indirectDeviceAddress))+ pure $ ()+++-- | VkTraceRaysIndirectCommand2KHR - Structure specifying the parameters of+-- an indirect trace ray command with indirect shader binding tables+--+-- = Description+--+-- The members of 'TraceRaysIndirectCommand2KHR' have the same meaning as+-- the similarly named parameters of+-- 'Vulkan.Extensions.VK_KHR_ray_tracing_pipeline.cmdTraceRaysKHR'.+--+-- Indirect shader binding table buffer parameters must satisfy the same+-- memory alignment and binding requirements as their counterparts in+-- 'Vulkan.Extensions.VK_KHR_ray_tracing_pipeline.cmdTraceRaysIndirectKHR'+-- and 'Vulkan.Extensions.VK_KHR_ray_tracing_pipeline.cmdTraceRaysKHR'.+--+-- == Valid Usage+--+-- - #VUID-VkTraceRaysIndirectCommand2KHR-pRayGenShaderBindingTable-03680#+-- If the buffer from which @raygenShaderRecordAddress@ was queried is+-- non-sparse then it /must/ be bound completely and contiguously to a+-- single 'Vulkan.Core10.Handles.DeviceMemory' object+--+-- - #VUID-VkTraceRaysIndirectCommand2KHR-pRayGenShaderBindingTable-03681#+-- The buffer from which the @raygenShaderRecordAddress@ is queried+-- /must/ have been created with the+-- 'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR'+-- usage flag+--+-- - #VUID-VkTraceRaysIndirectCommand2KHR-pRayGenShaderBindingTable-03682#+-- @raygenShaderRecordAddress@ /must/ be a multiple of+-- 'Vulkan.Extensions.VK_KHR_ray_tracing_pipeline.PhysicalDeviceRayTracingPipelinePropertiesKHR'::@shaderGroupBaseAlignment@+--+-- - #VUID-VkTraceRaysIndirectCommand2KHR-pMissShaderBindingTable-03683#+-- If the buffer from which @missShaderBindingTableAddress@ was queried+-- is non-sparse then it /must/ be bound completely and contiguously to+-- a single 'Vulkan.Core10.Handles.DeviceMemory' object+--+-- - #VUID-VkTraceRaysIndirectCommand2KHR-pMissShaderBindingTable-03684#+-- The buffer from which the @missShaderBindingTableAddress@ is queried+-- /must/ have been created with the+-- 'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR'+-- usage flag+--+-- - #VUID-VkTraceRaysIndirectCommand2KHR-pMissShaderBindingTable-03685#+-- @missShaderBindingTableAddress@ /must/ be a multiple of+-- 'Vulkan.Extensions.VK_KHR_ray_tracing_pipeline.PhysicalDeviceRayTracingPipelinePropertiesKHR'::@shaderGroupBaseAlignment@+--+-- - #VUID-VkTraceRaysIndirectCommand2KHR-stride-03686#+-- @missShaderBindingTableStride@ /must/ be a multiple of+-- 'Vulkan.Extensions.VK_KHR_ray_tracing_pipeline.PhysicalDeviceRayTracingPipelinePropertiesKHR'::@shaderGroupHandleAlignment@+--+-- - #VUID-VkTraceRaysIndirectCommand2KHR-stride-04029#+-- @missShaderBindingTableStride@ /must/ be less than or equal to+-- 'Vulkan.Extensions.VK_KHR_ray_tracing_pipeline.PhysicalDeviceRayTracingPipelinePropertiesKHR'::@maxShaderGroupStride@+--+-- - #VUID-VkTraceRaysIndirectCommand2KHR-pHitShaderBindingTable-03687#+-- If the buffer from which @hitShaderBindingTableAddress@ was queried+-- is non-sparse then it /must/ be bound completely and contiguously to+-- a single 'Vulkan.Core10.Handles.DeviceMemory' object+--+-- - #VUID-VkTraceRaysIndirectCommand2KHR-pHitShaderBindingTable-03688#+-- The buffer from which the @hitShaderBindingTableAddress@ is queried+-- /must/ have been created with the+-- 'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR'+-- usage flag+--+-- - #VUID-VkTraceRaysIndirectCommand2KHR-pHitShaderBindingTable-03689#+-- @hitShaderBindingTableAddress@ /must/ be a multiple of+-- 'Vulkan.Extensions.VK_KHR_ray_tracing_pipeline.PhysicalDeviceRayTracingPipelinePropertiesKHR'::@shaderGroupBaseAlignment@+--+-- - #VUID-VkTraceRaysIndirectCommand2KHR-stride-03690#+-- @hitShaderBindingTableStride@ /must/ be a multiple of+-- 'Vulkan.Extensions.VK_KHR_ray_tracing_pipeline.PhysicalDeviceRayTracingPipelinePropertiesKHR'::@shaderGroupHandleAlignment@+--+-- - #VUID-VkTraceRaysIndirectCommand2KHR-stride-04035#+-- @hitShaderBindingTableStride@ /must/ be less than or equal to+-- 'Vulkan.Extensions.VK_KHR_ray_tracing_pipeline.PhysicalDeviceRayTracingPipelinePropertiesKHR'::@maxShaderGroupStride@+--+-- - #VUID-VkTraceRaysIndirectCommand2KHR-pCallableShaderBindingTable-03691#+-- If the buffer from which @callableShaderBindingTableAddress@ was+-- queried is non-sparse then it /must/ be bound completely and+-- contiguously to a single 'Vulkan.Core10.Handles.DeviceMemory' object+--+-- - #VUID-VkTraceRaysIndirectCommand2KHR-pCallableShaderBindingTable-03692#+-- The buffer from which the @callableShaderBindingTableAddress@ is+-- queried /must/ have been created with the+-- 'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR'+-- usage flag+--+-- - #VUID-VkTraceRaysIndirectCommand2KHR-pCallableShaderBindingTable-03693#+-- @callableShaderBindingTableAddress@ /must/ be a multiple of+-- 'Vulkan.Extensions.VK_KHR_ray_tracing_pipeline.PhysicalDeviceRayTracingPipelinePropertiesKHR'::@shaderGroupBaseAlignment@+--+-- - #VUID-VkTraceRaysIndirectCommand2KHR-stride-03694#+-- @callableShaderBindingTableStride@ /must/ be a multiple of+-- 'Vulkan.Extensions.VK_KHR_ray_tracing_pipeline.PhysicalDeviceRayTracingPipelinePropertiesKHR'::@shaderGroupHandleAlignment@+--+-- - #VUID-VkTraceRaysIndirectCommand2KHR-stride-04041#+-- @callableShaderBindingTableStride@ /must/ be less than or equal to+-- 'Vulkan.Extensions.VK_KHR_ray_tracing_pipeline.PhysicalDeviceRayTracingPipelinePropertiesKHR'::@maxShaderGroupStride@+--+-- - #VUID-VkTraceRaysIndirectCommand2KHR-flags-03696# If the currently+-- bound ray tracing pipeline was created with @flags@ that included+-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR',+-- @hitShaderBindingTableAddress@ /must/ not be zero+--+-- - #VUID-VkTraceRaysIndirectCommand2KHR-flags-03697# If the currently+-- bound ray tracing pipeline was created with @flags@ that included+-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR',+-- @hitShaderBindingTableAddress@ /must/ not be zero+--+-- - #VUID-VkTraceRaysIndirectCommand2KHR-flags-03511# If the currently+-- bound ray tracing pipeline was created with @flags@ that included+-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR',+-- the shader group handle identified by+-- @missShaderBindingTableAddress@ /must/ not be set to zero+--+-- - #VUID-VkTraceRaysIndirectCommand2KHR-flags-03512# If the currently+-- bound ray tracing pipeline was created with @flags@ that included+-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR',+-- entries in the table identified by @hitShaderBindingTableAddress@+-- accessed as a result of this command in order to execute an any-hit+-- shader /must/ not be set to zero+--+-- - #VUID-VkTraceRaysIndirectCommand2KHR-flags-03513# If the currently+-- bound ray tracing pipeline was created with @flags@ that included+-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR',+-- entries in the table identified by @hitShaderBindingTableAddress@+-- accessed as a result of this command in order to execute a closest+-- hit shader /must/ not be set to zero+--+-- - #VUID-VkTraceRaysIndirectCommand2KHR-flags-03514# If the currently+-- bound ray tracing pipeline was created with @flags@ that included+-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR',+-- entries in the table identified by @hitShaderBindingTableAddress@+-- accessed as a result of this command in order to execute an+-- intersection shader /must/ not be set to zero+--+-- - #VUID-VkTraceRaysIndirectCommand2KHR-pHitShaderBindingTable-04735#+-- Any non-zero hit shader group entries in the table identified by+-- @hitShaderBindingTableAddress@ accessed by this call from a geometry+-- with a @geometryType@ of+-- 'Vulkan.Extensions.VK_KHR_acceleration_structure.GEOMETRY_TYPE_TRIANGLES_KHR'+-- /must/ have been created with+-- 'Vulkan.Extensions.VK_KHR_ray_tracing_pipeline.RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_KHR'+--+-- - #VUID-VkTraceRaysIndirectCommand2KHR-pHitShaderBindingTable-04736#+-- Any non-zero hit shader group entries in the table identified by+-- @hitShaderBindingTableAddress@ accessed by this call from a geometry+-- with a @geometryType@ of+-- 'Vulkan.Extensions.VK_KHR_acceleration_structure.GEOMETRY_TYPE_AABBS_KHR'+-- /must/ have been created with+-- 'Vulkan.Extensions.VK_KHR_ray_tracing_pipeline.RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_KHR'+--+-- - #VUID-VkTraceRaysIndirectCommand2KHR-width-03638# @width@ /must/ be+-- less than or equal to+-- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxComputeWorkGroupCount@[0]+-- ×+-- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxComputeWorkGroupSize@[0]+--+-- - #VUID-VkTraceRaysIndirectCommand2KHR-height-03639# @height@ /must/+-- be less than or equal to+-- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxComputeWorkGroupCount@[1]+-- ×+-- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxComputeWorkGroupSize@[1]+--+-- - #VUID-VkTraceRaysIndirectCommand2KHR-depth-03640# @depth@ /must/ be+-- less than or equal to+-- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxComputeWorkGroupCount@[2]+-- ×+-- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxComputeWorkGroupSize@[2]+--+-- - #VUID-VkTraceRaysIndirectCommand2KHR-width-03641# @width@ × @height@+-- × @depth@ /must/ be less than or equal to+-- 'Vulkan.Extensions.VK_KHR_ray_tracing_pipeline.PhysicalDeviceRayTracingPipelinePropertiesKHR'::@maxRayDispatchInvocationCount@+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_ray_tracing_maintenance1 VK_KHR_ray_tracing_maintenance1>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_ray_tracing_pipeline VK_KHR_ray_tracing_pipeline>,+-- 'Vulkan.Core10.FundamentalTypes.DeviceAddress',+-- 'Vulkan.Core10.FundamentalTypes.DeviceSize'+data TraceRaysIndirectCommand2KHR = TraceRaysIndirectCommand2KHR+ { -- | @raygenShaderRecordAddress@ is a+ -- 'Vulkan.Core10.FundamentalTypes.DeviceAddress' of the ray generation+ -- shader binding table record used by this command.+ raygenShaderRecordAddress :: DeviceAddress+ , -- | @raygenShaderRecordSize@ is a+ -- 'Vulkan.Core10.FundamentalTypes.DeviceSize' number of bytes+ -- corresponding to the ray generation shader binding table record at base+ -- address @raygenShaderRecordAddress@.+ raygenShaderRecordSize :: DeviceSize+ , -- | @missShaderBindingTableAddress@ is a+ -- 'Vulkan.Core10.FundamentalTypes.DeviceAddress' of the first record in+ -- the miss shader binding table used by this command.+ missShaderBindingTableAddress :: DeviceAddress+ , -- | @missShaderBindingTableSize@ is a+ -- 'Vulkan.Core10.FundamentalTypes.DeviceSize' number of bytes+ -- corresponding to the total size of the miss shader binding table at+ -- @missShaderBindingTableAddress@ that may be accessed by this command.+ missShaderBindingTableSize :: DeviceSize+ , -- | @missShaderBindingTableStride@ is a+ -- 'Vulkan.Core10.FundamentalTypes.DeviceSize' number of bytes between+ -- records of the miss shader binding table.+ missShaderBindingTableStride :: DeviceSize+ , -- | @hitShaderBindingTableAddress@ is a+ -- 'Vulkan.Core10.FundamentalTypes.DeviceAddress' of the first record in+ -- the hit shader binding table used by this command.+ hitShaderBindingTableAddress :: DeviceAddress+ , -- | @hitShaderBindingTableSize@ is a+ -- 'Vulkan.Core10.FundamentalTypes.DeviceSize' number of bytes+ -- corresponding to the total size of the hit shader binding table at+ -- @hitShaderBindingTableAddress@ that may be accessed by this command.+ hitShaderBindingTableSize :: DeviceSize+ , -- | @hitShaderBindingTableStride@ is a+ -- 'Vulkan.Core10.FundamentalTypes.DeviceSize' number of bytes between+ -- records of the hit shader binding table.+ hitShaderBindingTableStride :: DeviceSize+ , -- | @callableShaderBindingTableAddress@ is a+ -- 'Vulkan.Core10.FundamentalTypes.DeviceAddress' of the first record in+ -- the callable shader binding table used by this command.+ callableShaderBindingTableAddress :: DeviceAddress+ , -- | @callableShaderBindingTableSize@ is a+ -- 'Vulkan.Core10.FundamentalTypes.DeviceSize' number of bytes+ -- corresponding to the total size of the callable shader binding table at+ -- @callableShaderBindingTableAddress@ that may be accessed by this+ -- command.+ callableShaderBindingTableSize :: DeviceSize+ , -- | @callableShaderBindingTableStride@ is a+ -- 'Vulkan.Core10.FundamentalTypes.DeviceSize' number of bytes between+ -- records of the callable shader binding table.+ callableShaderBindingTableStride :: DeviceSize+ , -- | @width@ is the width of the ray trace query dimensions.+ width :: Word32+ , -- | @height@ is height of the ray trace query dimensions.+ height :: Word32+ , -- | @depth@ is depth of the ray trace query dimensions.+ depth :: Word32+ }+ deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (TraceRaysIndirectCommand2KHR)+#endif+deriving instance Show TraceRaysIndirectCommand2KHR++instance ToCStruct TraceRaysIndirectCommand2KHR where+ withCStruct x f = allocaBytes 104 $ \p -> pokeCStruct p x (f p)+ pokeCStruct p TraceRaysIndirectCommand2KHR{..} f = do+ poke ((p `plusPtr` 0 :: Ptr DeviceAddress)) (raygenShaderRecordAddress)+ poke ((p `plusPtr` 8 :: Ptr DeviceSize)) (raygenShaderRecordSize)+ poke ((p `plusPtr` 16 :: Ptr DeviceAddress)) (missShaderBindingTableAddress)+ poke ((p `plusPtr` 24 :: Ptr DeviceSize)) (missShaderBindingTableSize)+ poke ((p `plusPtr` 32 :: Ptr DeviceSize)) (missShaderBindingTableStride)+ poke ((p `plusPtr` 40 :: Ptr DeviceAddress)) (hitShaderBindingTableAddress)+ poke ((p `plusPtr` 48 :: Ptr DeviceSize)) (hitShaderBindingTableSize)+ poke ((p `plusPtr` 56 :: Ptr DeviceSize)) (hitShaderBindingTableStride)+ poke ((p `plusPtr` 64 :: Ptr DeviceAddress)) (callableShaderBindingTableAddress)+ poke ((p `plusPtr` 72 :: Ptr DeviceSize)) (callableShaderBindingTableSize)+ poke ((p `plusPtr` 80 :: Ptr DeviceSize)) (callableShaderBindingTableStride)+ poke ((p `plusPtr` 88 :: Ptr Word32)) (width)+ poke ((p `plusPtr` 92 :: Ptr Word32)) (height)+ poke ((p `plusPtr` 96 :: Ptr Word32)) (depth)+ f+ cStructSize = 104+ cStructAlignment = 8+ pokeZeroCStruct p f = do+ poke ((p `plusPtr` 0 :: Ptr DeviceAddress)) (zero)+ poke ((p `plusPtr` 8 :: Ptr DeviceSize)) (zero)+ poke ((p `plusPtr` 16 :: Ptr DeviceAddress)) (zero)+ poke ((p `plusPtr` 24 :: Ptr DeviceSize)) (zero)+ poke ((p `plusPtr` 32 :: Ptr DeviceSize)) (zero)+ poke ((p `plusPtr` 40 :: Ptr DeviceAddress)) (zero)+ poke ((p `plusPtr` 48 :: Ptr DeviceSize)) (zero)+ poke ((p `plusPtr` 56 :: Ptr DeviceSize)) (zero)+ poke ((p `plusPtr` 64 :: Ptr DeviceAddress)) (zero)+ poke ((p `plusPtr` 72 :: Ptr DeviceSize)) (zero)+ poke ((p `plusPtr` 80 :: Ptr DeviceSize)) (zero)+ poke ((p `plusPtr` 88 :: Ptr Word32)) (zero)+ poke ((p `plusPtr` 92 :: Ptr Word32)) (zero)+ poke ((p `plusPtr` 96 :: Ptr Word32)) (zero)+ f++instance FromCStruct TraceRaysIndirectCommand2KHR where+ peekCStruct p = do+ raygenShaderRecordAddress <- peek @DeviceAddress ((p `plusPtr` 0 :: Ptr DeviceAddress))+ raygenShaderRecordSize <- peek @DeviceSize ((p `plusPtr` 8 :: Ptr DeviceSize))+ missShaderBindingTableAddress <- peek @DeviceAddress ((p `plusPtr` 16 :: Ptr DeviceAddress))+ missShaderBindingTableSize <- peek @DeviceSize ((p `plusPtr` 24 :: Ptr DeviceSize))+ missShaderBindingTableStride <- peek @DeviceSize ((p `plusPtr` 32 :: Ptr DeviceSize))+ hitShaderBindingTableAddress <- peek @DeviceAddress ((p `plusPtr` 40 :: Ptr DeviceAddress))+ hitShaderBindingTableSize <- peek @DeviceSize ((p `plusPtr` 48 :: Ptr DeviceSize))+ hitShaderBindingTableStride <- peek @DeviceSize ((p `plusPtr` 56 :: Ptr DeviceSize))+ callableShaderBindingTableAddress <- peek @DeviceAddress ((p `plusPtr` 64 :: Ptr DeviceAddress))+ callableShaderBindingTableSize <- peek @DeviceSize ((p `plusPtr` 72 :: Ptr DeviceSize))+ callableShaderBindingTableStride <- peek @DeviceSize ((p `plusPtr` 80 :: Ptr DeviceSize))+ width <- peek @Word32 ((p `plusPtr` 88 :: Ptr Word32))+ height <- peek @Word32 ((p `plusPtr` 92 :: Ptr Word32))+ depth <- peek @Word32 ((p `plusPtr` 96 :: Ptr Word32))+ pure $ TraceRaysIndirectCommand2KHR+ raygenShaderRecordAddress raygenShaderRecordSize missShaderBindingTableAddress missShaderBindingTableSize missShaderBindingTableStride hitShaderBindingTableAddress hitShaderBindingTableSize hitShaderBindingTableStride callableShaderBindingTableAddress callableShaderBindingTableSize callableShaderBindingTableStride width height depth++instance Storable TraceRaysIndirectCommand2KHR where+ sizeOf ~_ = 104+ alignment ~_ = 8+ peek = peekCStruct+ poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero TraceRaysIndirectCommand2KHR where+ zero = TraceRaysIndirectCommand2KHR+ zero+ zero+ zero+ zero+ zero+ zero+ zero+ zero+ zero+ zero+ zero+ zero+ zero+ zero+++-- | VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR - Structure describing+-- the ray tracing maintenance features that can be supported by an+-- implementation+--+-- = Members+--+-- This structure describes the following features:+--+-- = Description+--+-- If the 'PhysicalDeviceRayTracingMaintenance1FeaturesKHR' structure is+-- included in the @pNext@ chain of the+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2'+-- structure passed to+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceFeatures2',+-- it is filled in to indicate whether each corresponding feature is+-- supported. 'PhysicalDeviceRayTracingMaintenance1FeaturesKHR' /can/ also+-- be used in the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo'+-- to selectively enable these features.+--+-- == Valid Usage (Implicit)+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_ray_tracing_maintenance1 VK_KHR_ray_tracing_maintenance1>,+-- 'Vulkan.Core10.FundamentalTypes.Bool32',+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data PhysicalDeviceRayTracingMaintenance1FeaturesKHR = PhysicalDeviceRayTracingMaintenance1FeaturesKHR+ { -- | #features-rayTracingMaintenance1# @rayTracingMaintenance1@ indicates+ -- that the implementation supports the following:+ --+ -- - The @CullMaskKHR@ SPIR-V builtin using the @SPV_KHR_ray_cull_mask@+ -- SPIR-V extension.+ --+ -- - Additional acceleration structure property queries:+ -- 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_BOTTOM_LEVEL_POINTERS_KHR'+ -- and+ -- 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_ACCELERATION_STRUCTURE_SIZE_KHR'.+ --+ -- - A new access flag+ -- 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_SHADER_BINDING_TABLE_READ_BIT_KHR'.+ --+ -- - A new pipeline stage flag bit+ -- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR'+ rayTracingMaintenance1 :: Bool+ , -- | #features-rayTracingPipelineTraceRaysIndirect2#+ -- @rayTracingPipelineTraceRaysIndirect2@ indicates whether the+ -- implementation supports the extended indirect ray tracing command+ -- 'cmdTraceRaysIndirect2KHR'.+ rayTracingPipelineTraceRaysIndirect2 :: Bool+ }+ deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (PhysicalDeviceRayTracingMaintenance1FeaturesKHR)+#endif+deriving instance Show PhysicalDeviceRayTracingMaintenance1FeaturesKHR++instance ToCStruct PhysicalDeviceRayTracingMaintenance1FeaturesKHR where+ withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)+ pokeCStruct p PhysicalDeviceRayTracingMaintenance1FeaturesKHR{..} f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MAINTENANCE_1_FEATURES_KHR)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (rayTracingMaintenance1))+ poke ((p `plusPtr` 20 :: Ptr Bool32)) (boolToBool32 (rayTracingPipelineTraceRaysIndirect2))+ f+ cStructSize = 24+ cStructAlignment = 8+ pokeZeroCStruct p f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MAINTENANCE_1_FEATURES_KHR)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (zero))+ poke ((p `plusPtr` 20 :: Ptr Bool32)) (boolToBool32 (zero))+ f++instance FromCStruct PhysicalDeviceRayTracingMaintenance1FeaturesKHR where+ peekCStruct p = do+ rayTracingMaintenance1 <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))+ rayTracingPipelineTraceRaysIndirect2 <- peek @Bool32 ((p `plusPtr` 20 :: Ptr Bool32))+ pure $ PhysicalDeviceRayTracingMaintenance1FeaturesKHR+ (bool32ToBool rayTracingMaintenance1) (bool32ToBool rayTracingPipelineTraceRaysIndirect2)++instance Storable PhysicalDeviceRayTracingMaintenance1FeaturesKHR where+ sizeOf ~_ = 24+ alignment ~_ = 8+ peek = peekCStruct+ poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero PhysicalDeviceRayTracingMaintenance1FeaturesKHR where+ zero = PhysicalDeviceRayTracingMaintenance1FeaturesKHR+ zero+ zero+++type KHR_RAY_TRACING_MAINTENANCE_1_SPEC_VERSION = 1++-- No documentation found for TopLevel "VK_KHR_RAY_TRACING_MAINTENANCE_1_SPEC_VERSION"+pattern KHR_RAY_TRACING_MAINTENANCE_1_SPEC_VERSION :: forall a . Integral a => a+pattern KHR_RAY_TRACING_MAINTENANCE_1_SPEC_VERSION = 1+++type KHR_RAY_TRACING_MAINTENANCE_1_EXTENSION_NAME = "VK_KHR_ray_tracing_maintenance1"++-- No documentation found for TopLevel "VK_KHR_RAY_TRACING_MAINTENANCE_1_EXTENSION_NAME"+pattern KHR_RAY_TRACING_MAINTENANCE_1_EXTENSION_NAME :: forall a . (Eq a, IsString a) => a+pattern KHR_RAY_TRACING_MAINTENANCE_1_EXTENSION_NAME = "VK_KHR_ray_tracing_maintenance1"+
+ src/Vulkan/Extensions/VK_KHR_ray_tracing_maintenance1.hs-boot view
@@ -0,0 +1,225 @@+{-# language CPP #-}+-- | = Name+--+-- VK_KHR_ray_tracing_maintenance1 - device extension+--+-- == VK_KHR_ray_tracing_maintenance1+--+-- [__Name String__]+-- @VK_KHR_ray_tracing_maintenance1@+--+-- [__Extension Type__]+-- Device extension+--+-- [__Registered Extension Number__]+-- 387+--+-- [__Revision__]+-- 1+--+-- [__Extension and Version Dependencies__]+--+-- - Requires support for Vulkan 1.1+--+-- - Requires @VK_KHR_acceleration_structure@ to be enabled for any+-- device-level functionality+--+-- [__Contact__]+--+-- - Daniel Koch+-- <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_KHR_ray_tracing_maintenance1] @dgkoch%0A<<Here describe the issue or question you have about the VK_KHR_ray_tracing_maintenance1 extension>> >+--+-- == Other Extension Metadata+--+-- [__Last Modified Date__]+-- 2022-02-21+--+-- [__Interactions and External Dependencies__]+--+-- - This extension requires+-- <https://htmlpreview.github.io/?https://github.com/KhronosGroup/SPIRV-Registry/blob/master/extensions/KHR/SPV_KHR_ray_cull_mask.html SPV_KHR_ray_cull_mask>+--+-- - This extension provides API support for+-- <https://github.com/KhronosGroup/GLSL/blob/master/extensions/ext/GLSL_EXT_ray_cull_mask.txt GLSL_EXT_ray_cull_mask>+--+-- - Interacts with @VK_KHR_ray_tracing_pipeline@+--+-- - Interacts with @VK_KHR_synchronization2@+--+-- [__Contributors__]+--+-- - Stu Smith, AMD+--+-- - Tobias Hector, AMD+--+-- - Marius Bjorge, Arm+--+-- - Tom Olson, Arm+--+-- - Yuriy O’Donnell, Epic Games+--+-- - Yunpeng Zhu, Huawei+--+-- - Andrew Garrard, Imagination+--+-- - Dae Kim, Imagination+--+-- - Joshua Barczak, Intel+--+-- - Lionel Landwerlin, Intel+--+-- - Daniel Koch, NVIDIA+--+-- - Eric Werness, NVIDIA+--+-- - Spencer Fricke, Samsung+--+-- == Description+--+-- @VK_KHR_ray_tracing_maintenance1@ adds a collection of minor ray tracing+-- features, none of which would warrant an entire extension of their own.+--+-- The new features are as follows:+--+-- - Adds support for the @SPV_KHR_ray_cull_mask@ SPIR-V extension in+-- Vulkan. This extension provides access to built-in @CullMaskKHR@+-- shader variable which contains the value of the @OpTrace*@+-- @Cull Mask@ parameter. This new shader variable is accessible in the+-- intersection, any-hit, closest-hit and miss shader stages.+--+-- - Adds support for a new pipeline stage and access mask built on top+-- of @VK_KHR_synchronization2@:+--+-- - 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR'+-- to specify execution of+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#acceleration-structure-copying acceleration structure copy commands>+--+-- - 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_SHADER_BINDING_TABLE_READ_BIT_KHR'+-- to specify read access to a+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#shader-binding-table shader binding table>+-- in any shader pipeline stage+--+-- - Adds two new acceleration structure query parameters:+--+-- - 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_ACCELERATION_STRUCTURE_SIZE_KHR'+-- to query the acceleration structure size on the device timeline+--+-- - 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_BOTTOM_LEVEL_POINTERS_KHR'+-- to query the number of bottom level acceleration structure+-- pointers for serialization+--+-- - Adds an optional new indirect ray tracing dispatch command,+-- 'cmdTraceRaysIndirect2KHR', which sources the shader binding table+-- parameters as well as the dispatch dimensions from the device. The+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-rayTracingPipelineTraceRaysIndirect2 rayTracingPipelineTraceRaysIndirect2>+-- feature indicates whether this functionality is supported.+--+-- == New Commands+--+-- If+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_ray_tracing_pipeline VK_KHR_ray_tracing_pipeline>+-- is supported:+--+-- - 'cmdTraceRaysIndirect2KHR'+--+-- == New Structures+--+-- - Extending+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',+-- 'Vulkan.Core10.Device.DeviceCreateInfo':+--+-- - 'PhysicalDeviceRayTracingMaintenance1FeaturesKHR'+--+-- If+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_ray_tracing_pipeline VK_KHR_ray_tracing_pipeline>+-- is supported:+--+-- - 'TraceRaysIndirectCommand2KHR'+--+-- == New Enum Constants+--+-- - 'KHR_RAY_TRACING_MAINTENANCE_1_EXTENSION_NAME'+--+-- - 'KHR_RAY_TRACING_MAINTENANCE_1_SPEC_VERSION'+--+-- - Extending 'Vulkan.Core10.Enums.QueryType.QueryType':+--+-- - 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_BOTTOM_LEVEL_POINTERS_KHR'+--+-- - 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_ACCELERATION_STRUCTURE_SIZE_KHR'+--+-- - Extending 'Vulkan.Core10.Enums.StructureType.StructureType':+--+-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MAINTENANCE_1_FEATURES_KHR'+--+-- If+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_synchronization2 VK_KHR_synchronization2>+-- is supported:+--+-- - Extending+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PipelineStageFlagBits2':+--+-- - 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR'+--+-- If+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_synchronization2 VK_KHR_synchronization2>+-- and+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_ray_tracing_pipeline VK_KHR_ray_tracing_pipeline>+-- is supported:+--+-- - Extending 'Vulkan.Core13.Enums.AccessFlags2.AccessFlagBits2':+--+-- - 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_SHADER_BINDING_TABLE_READ_BIT_KHR'+--+-- == New Built-In Variables+--+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-cullmask CullMaskKHR>+--+-- == New SPIR-V Capabilities+--+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-RayCullMaskKHR RayCullMaskKHR>+--+-- == Issues+--+-- None Yet!+--+-- == Version History+--+-- - Revision 1, 2022-02-21 (Members of the Vulkan Ray Tracing TSG)+--+-- - internal revisions+--+-- == See Also+--+-- 'PhysicalDeviceRayTracingMaintenance1FeaturesKHR'+--+-- == Document Notes+--+-- For more information, see the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_ray_tracing_maintenance1 Vulkan Specification>+--+-- This page is a generated document. Fixes and changes should be made to+-- the generator scripts, not directly.+module Vulkan.Extensions.VK_KHR_ray_tracing_maintenance1 ( PhysicalDeviceRayTracingMaintenance1FeaturesKHR+ , TraceRaysIndirectCommand2KHR+ ) where++import Vulkan.CStruct (FromCStruct)+import Vulkan.CStruct (ToCStruct)+import Data.Kind (Type)++data PhysicalDeviceRayTracingMaintenance1FeaturesKHR++instance ToCStruct PhysicalDeviceRayTracingMaintenance1FeaturesKHR+instance Show PhysicalDeviceRayTracingMaintenance1FeaturesKHR++instance FromCStruct PhysicalDeviceRayTracingMaintenance1FeaturesKHR+++data TraceRaysIndirectCommand2KHR++instance ToCStruct TraceRaysIndirectCommand2KHR+instance Show TraceRaysIndirectCommand2KHR++instance FromCStruct TraceRaysIndirectCommand2KHR+
src/Vulkan/Extensions/VK_KHR_ray_tracing_pipeline.hs view
@@ -19,11 +19,13 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.1+-- - Requires support for Vulkan 1.1 ----- - Requires @VK_KHR_spirv_1_4@+-- - Requires @VK_KHR_spirv_1_4@ to be enabled for any device-level+-- functionality ----- - Requires @VK_KHR_acceleration_structure@+-- - Requires @VK_KHR_acceleration_structure@ to be enabled for any+-- device-level functionality -- -- [__Contact__] --@@ -44,13 +46,13 @@ -- <https://github.com/KhronosGroup/GLSL/blob/master/extensions/ext/GLSL_EXT_ray_tracing.txt GLSL_EXT_ray_tracing> -- -- - This extension interacts with--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#versions-1.2 Vulkan 1.2>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#versions-1.2 Vulkan 1.2> -- and @VK_KHR_vulkan_memory_model@, adding the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#shader-call-related shader-call-related>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#shader-call-related shader-call-related> -- relation of invocations,--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#shader-call-order shader-call-order>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#shader-call-order shader-call-order> -- partial order of dynamic instances of instructions, and the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-scope-shadercall ShaderCallKHR>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-scope-shadercall ShaderCallKHR> -- scope. -- -- - This extension interacts with @VK_KHR_pipeline_library@,@@ -287,43 +289,43 @@ -- -- == New or Modified Built-In Variables ----- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-launchid LaunchIdKHR>+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-launchid LaunchIdKHR> ----- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-launchsize LaunchSizeKHR>+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-launchsize LaunchSizeKHR> ----- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-worldrayorigin WorldRayOriginKHR>+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-worldrayorigin WorldRayOriginKHR> ----- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-worldraydirection WorldRayDirectionKHR>+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-worldraydirection WorldRayDirectionKHR> ----- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-objectrayorigin ObjectRayOriginKHR>+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-objectrayorigin ObjectRayOriginKHR> ----- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-objectraydirection ObjectRayDirectionKHR>+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-objectraydirection ObjectRayDirectionKHR> ----- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-raytmin RayTminKHR>+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-raytmin RayTminKHR> ----- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-raytmax RayTmaxKHR>+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-raytmax RayTmaxKHR> ----- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-instancecustomindex InstanceCustomIndexKHR>+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-instancecustomindex InstanceCustomIndexKHR> ----- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-instanceid InstanceId>+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-instanceid InstanceId> ----- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-objecttoworld ObjectToWorldKHR>+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-objecttoworld ObjectToWorldKHR> ----- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-worldtoobject WorldToObjectKHR>+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-worldtoobject WorldToObjectKHR> ----- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-hitkind HitKindKHR>+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-hitkind HitKindKHR> ----- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-incomingrayflags IncomingRayFlagsKHR>+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-incomingrayflags IncomingRayFlagsKHR> ----- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-raygeometryindex RayGeometryIndexKHR>+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-raygeometryindex RayGeometryIndexKHR> -- -- - (modified)@PrimitiveId@ -- -- == New SPIR-V Capabilities ----- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-RayTracingKHR RayTracingKHR>+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-RayTracingKHR RayTracingKHR> ----- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-RayTraversalPrimitiveCullingKHR RayTraversalPrimitiveCullingKHR>+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-RayTraversalPrimitiveCullingKHR RayTraversalPrimitiveCullingKHR> -- -- == Issues --@@ -345,7 +347,7 @@ -- -- - removed vkCompileDeferredNV compilation functionality and replaced -- with--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#deferred-host-operations deferred host operations>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#deferred-host-operations deferred host operations> -- interactions for ray tracing -- -- - added 'PhysicalDeviceRayTracingPipelineFeaturesKHR' structure@@ -370,25 +372,25 @@ -- device build -- -- - added--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-library pipeline library>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-library pipeline library> -- support for ray tracing -- -- - added--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#ray-traversal-watertight watertightness guarantees>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#ray-traversal-watertight watertightness guarantees> -- -- - added no-null-shader pipeline flags -- (@VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_*_SHADERS_BIT_KHR@) -- -- - added--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#ray-tracing-shader-call memory model interactions>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#ray-tracing-shader-call memory model interactions> -- with ray tracing and define how subgroups work and can be repacked ----- (2) Can you give a more detailed comparision of differences and+-- (2) Can you give a more detailed comparison of differences and -- similarities between VK_NV_ray_tracing and VK_KHR_ray_tracing_pipeline? -- -- __DISCUSSION__: ----- The following is a more detailed comparision of which commands,+-- The following is a more detailed comparison of which commands, -- structures, and enums are aliased, changed, or removed. -- -- - Aliased functionality — enums, structures, and commands that are@@ -603,6 +605,17 @@ -- - there is no “baseInstance” relevant for these shaders, and so ID -- makes it more obvious that this is zero-based. --+-- (6) Why is @VK_KHR_pipeline_library@ an interaction instead of a+-- required dependency, particularly when the “Feature Requirements”+-- section says it is required to be supported anyhow?+--+-- __RESOLVED__: If @VK_KHR_pipeline_library@ were a required extension+-- dependency, then every application would need to enable the extension+-- whether or not they actually want to use the pipeline library+-- functionality. Developers found this to be annoying and unfriendly+-- behavior. We do wish to require all __implementations__ to support it+-- though, and thus it is listed in the feature requirements section.+-- -- == Sample Code -- -- Example ray generation GLSL shader@@ -644,7 +657,7 @@ -- - rename maxRecursionDepth to maxRayPipelineRecursionDepth and -- maxRayRecursionDepth (#2203,!3937) ----- - add queriable maxRayHitAttributeSize and rename members of+-- - add queryable maxRayHitAttributeSize and rename members of -- VkRayTracingPipelineInterfaceCreateInfoKHR (#2102,!3966) -- -- - update to use @RayTracingKHR@ SPIR-V capability@@ -706,7 +719,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_ray_tracing_pipeline Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_ray_tracing_pipeline Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.@@ -844,6 +857,7 @@ import Vulkan.Core10.Pipeline (PipelineDynamicStateCreateInfo) import Vulkan.Core10.Handles (PipelineLayout) import Vulkan.Extensions.VK_KHR_pipeline_library (PipelineLibraryCreateInfoKHR)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_pipeline_robustness (PipelineRobustnessCreateInfoEXT) import Vulkan.Core10.Pipeline (PipelineShaderStageCreateInfo) import Vulkan.CStruct.Extends (PokeChain) import Vulkan.CStruct.Extends (PokeChain(..))@@ -915,16 +929,16 @@ -- -- - #VUID-vkCmdTraceRaysKHR-None-02692# If a -- 'Vulkan.Core10.Handles.ImageView' is sampled with--- 'Vulkan.Extensions.VK_EXT_filter_cubic.FILTER_CUBIC_EXT' as a result--- of this command, then the image view’s+-- 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as a result of this+-- command, then the image view’s -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features> -- /must/ contain--- 'Vulkan.Extensions.VK_EXT_filter_cubic.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT'+-- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT' -- -- - #VUID-vkCmdTraceRaysKHR-filterCubic-02694# Any -- 'Vulkan.Core10.Handles.ImageView' being sampled with--- 'Vulkan.Extensions.VK_EXT_filter_cubic.FILTER_CUBIC_EXT' as a result--- of this command /must/ have a+-- 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as a result of this+-- command /must/ have a -- 'Vulkan.Core10.Enums.ImageViewType.ImageViewType' and format that -- supports cubic filtering, as specified by -- 'Vulkan.Extensions.VK_EXT_filter_cubic.FilterCubicImageViewImageFormatPropertiesEXT'::@filterCubic@@@ -933,8 +947,8 @@ -- -- - #VUID-vkCmdTraceRaysKHR-filterCubicMinmax-02695# Any -- 'Vulkan.Core10.Handles.ImageView' being sampled with--- 'Vulkan.Extensions.VK_EXT_filter_cubic.FILTER_CUBIC_EXT' with a--- reduction mode of either+-- 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' with a reduction mode+-- of either -- 'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MIN' -- or -- 'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MAX'@@ -954,22 +968,38 @@ -- 'Vulkan.Core10.Enums.SamplerAddressMode.SamplerAddressMode' of -- 'Vulkan.Core10.Enums.SamplerAddressMode.SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE' ----- - #VUID-vkCmdTraceRaysKHR-OpTypeImage-06423# Any--- 'Vulkan.Core10.Handles.ImageView' or--- 'Vulkan.Core10.Handles.BufferView' being written as a storage image--- or storage texel buffer where the image format field of the--- @OpTypeImage@ is @Unknown@ then the view’s format feature /must/--- contain+-- - #VUID-vkCmdTraceRaysKHR-OpTypeImage-07027# For any+-- 'Vulkan.Core10.Handles.ImageView' being written as a storage image+-- where the image format field of the @OpTypeImage@ is @Unknown@, the+-- view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain -- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT' ----- - #VUID-vkCmdTraceRaysKHR-OpTypeImage-06424# Any--- 'Vulkan.Core10.Handles.ImageView' or--- 'Vulkan.Core10.Handles.BufferView' being read as a storage image or--- storage texel buffer where the image format field of the--- @OpTypeImage@ is @Unknown@ then the view’s format feature /must/--- contain+-- - #VUID-vkCmdTraceRaysKHR-OpTypeImage-07028# For any+-- 'Vulkan.Core10.Handles.ImageView' being read as a storage image+-- where the image format field of the @OpTypeImage@ is @Unknown@, the+-- view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain -- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT' --+-- - #VUID-vkCmdTraceRaysKHR-OpTypeImage-07029# For any+-- 'Vulkan.Core10.Handles.BufferView' being written as a storage texel+-- buffer where the image format field of the @OpTypeImage@ is+-- @Unknown@, the view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkFormatProperties3 buffer features>+-- /must/ contain+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT'+--+-- - #VUID-vkCmdTraceRaysKHR-OpTypeImage-07030# Any+-- 'Vulkan.Core10.Handles.BufferView' being read as a storage texel+-- buffer where the image format field of the @OpTypeImage@ is+-- @Unknown@ then the view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkFormatProperties3 buffer features>+-- /must/ contain+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT'+-- -- - #VUID-vkCmdTraceRaysKHR-None-02697# For each set /n/ that is -- statically used by the 'Vulkan.Core10.Handles.Pipeline' bound to the -- pipeline bind point used by this command, a descriptor set /must/@@ -1044,21 +1074,31 @@ -- @OpImageSample*@ or @OpImageSparseSample*@ instructions that -- includes a LOD bias or any offset values, in any shader stage ----- - #VUID-vkCmdTraceRaysKHR-None-02705# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robust buffer access>--- feature is not enabled, and if the 'Vulkan.Core10.Handles.Pipeline'--- object bound to the pipeline bind point used by this command--- accesses a uniform buffer, it /must/ not access values outside of--- the range of the buffer as specified in the descriptor set bound to--- the same pipeline bind point+-- - #VUID-vkCmdTraceRaysKHR-uniformBuffers-06935# If any stage of the+-- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind+-- point used by this command accesses a uniform buffer, and that stage+-- was created without enabling either+-- 'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT'+-- or+-- 'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT'+-- for @uniformBuffers@, and the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>+-- feature is not enabled, that stage /must/ not access values outside+-- of the range of the buffer as specified in the descriptor set bound+-- to the same pipeline bind point ----- - #VUID-vkCmdTraceRaysKHR-None-02706# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robust buffer access>--- feature is not enabled, and if the 'Vulkan.Core10.Handles.Pipeline'--- object bound to the pipeline bind point used by this command--- accesses a storage buffer, it /must/ not access values outside of--- the range of the buffer as specified in the descriptor set bound to--- the same pipeline bind point+-- - #VUID-vkCmdTraceRaysKHR-storageBuffers-06936# If any stage of the+-- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind+-- point used by this command accesses a storage buffer, and that stage+-- was created without enabling either+-- 'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT'+-- or+-- 'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT'+-- for @storageBuffers@, and the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>+-- feature is not enabled, that stage /must/ not access values outside+-- of the range of the buffer as specified in the descriptor set bound+-- to the same pipeline bind point -- -- - #VUID-vkCmdTraceRaysKHR-commandBuffer-02707# If @commandBuffer@ is -- an unprotected command buffer and@@ -1142,6 +1182,67 @@ -- @OpTypeImage@ with a @SampledType@ with a @Width@ of 64 by this -- command --+-- - #VUID-vkCmdTraceRaysKHR-OpImageWeightedSampleQCOM-06971# If+-- @OpImageWeightedSampleQCOM@ is used to sample a+-- 'Vulkan.Core10.Handles.ImageView' as a result of this command, then+-- the image view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM'+--+-- - #VUID-vkCmdTraceRaysKHR-OpImageWeightedSampleQCOM-06972# If+-- @OpImageWeightedSampleQCOM@ uses a 'Vulkan.Core10.Handles.ImageView'+-- as a sample weight image as a result of this command, then the image+-- view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM'+--+-- - #VUID-vkCmdTraceRaysKHR-OpImageBoxFilterQCOM-06973# If+-- @OpImageBoxFilterQCOM@ is used to sample a+-- 'Vulkan.Core10.Handles.ImageView' as a result of this command, then+-- the image view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM'+--+-- - #VUID-vkCmdTraceRaysKHR-OpImageBlockMatchSSDQCOM-06974# If+-- @OpImageBlockMatchSSDQCOM@ is used to read from an+-- 'Vulkan.Core10.Handles.ImageView' as a result of this command, then+-- the image view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM'+--+-- - #VUID-vkCmdTraceRaysKHR-OpImageBlockMatchSADQCOM-06975# If+-- @OpImageBlockMatchSADQCOM@ is used to read from an+-- 'Vulkan.Core10.Handles.ImageView' as a result of this command, then+-- the image view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM'+--+-- - #VUID-vkCmdTraceRaysKHR-OpImageBlockMatchSADQCOM-06976# If+-- @OpImageBlockMatchSADQCOM@ or OpImageBlockMatchSSDQCOM is used to+-- read from a reference image as result of this command, then the+-- specified reference coordinates /must/ not fail+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-integer-coordinate-validation integer texel coordinate validation>.+--+-- - #VUID-vkCmdTraceRaysKHR-OpImageWeightedSampleQCOM-06977# If+-- @OpImageWeightedSampleQCOM@, @OpImageBoxFilterQCOM@,+-- @OpImageBlockMatchSSDQCOM@, or @OpImageBlockMatchSADQCOM@ uses a+-- 'Vulkan.Core10.Handles.Sampler' as a result of this command, then+-- the sampler /must/ have been created with+-- 'Vulkan.Core10.Enums.SamplerCreateFlagBits.SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM'.+--+-- - #VUID-vkCmdTraceRaysKHR-OpImageWeightedSampleQCOM-06978# If any+-- command other than @OpImageWeightedSampleQCOM@,+-- @OpImageBoxFilterQCOM@, @OpImageBlockMatchSSDQCOM@, or+-- @OpImageBlockMatchSADQCOM@ uses a 'Vulkan.Core10.Handles.Sampler' as+-- a result of this command, then the sampler /must/ not have been+-- created with+-- 'Vulkan.Core10.Enums.SamplerCreateFlagBits.SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM'.+-- -- - #VUID-vkCmdTraceRaysKHR-None-03429# Any shader group handle -- referenced by this call /must/ have been queried from the currently -- bound ray tracing pipeline@@ -1153,6 +1254,12 @@ -- greater than the value of @maxPipelineRayRecursionDepth@ used to -- create the bound ray tracing pipeline --+-- - #VUID-vkCmdTraceRaysKHR-commandBuffer-03635# @commandBuffer@ /must/+-- not be a protected command buffer+--+-- - #VUID-vkCmdTraceRaysKHR-size-04023# The @size@ member of+-- @pRayGenShaderBindingTable@ /must/ be equal to its @stride@ member+-- -- - #VUID-vkCmdTraceRaysKHR-pRayGenShaderBindingTable-03680# If the -- buffer from which @pRayGenShaderBindingTable->deviceAddress@ was -- queried is non-sparse then it /must/ be bound completely and@@ -1168,9 +1275,6 @@ -- @pRayGenShaderBindingTable->deviceAddress@ /must/ be a multiple of -- 'PhysicalDeviceRayTracingPipelinePropertiesKHR'::@shaderGroupBaseAlignment@ ----- - #VUID-vkCmdTraceRaysKHR-size-04023# The @size@ member of--- @pRayGenShaderBindingTable@ /must/ be equal to its @stride@ member--- -- - #VUID-vkCmdTraceRaysKHR-pMissShaderBindingTable-03683# If the buffer -- from which @pMissShaderBindingTable->deviceAddress@ was queried is -- non-sparse then it /must/ be bound completely and contiguously to a@@ -1186,12 +1290,12 @@ -- @pMissShaderBindingTable->deviceAddress@ /must/ be a multiple of -- 'PhysicalDeviceRayTracingPipelinePropertiesKHR'::@shaderGroupBaseAlignment@ ----- - #VUID-vkCmdTraceRaysKHR-stride-03686# The @stride@ member of--- @pMissShaderBindingTable@ /must/ be a multiple of+-- - #VUID-vkCmdTraceRaysKHR-stride-03686#+-- @pMissShaderBindingTable->stride@ /must/ be a multiple of -- 'PhysicalDeviceRayTracingPipelinePropertiesKHR'::@shaderGroupHandleAlignment@ ----- - #VUID-vkCmdTraceRaysKHR-stride-04029# The @stride@ member of--- @pMissShaderBindingTable@ /must/ be less than or equal to+-- - #VUID-vkCmdTraceRaysKHR-stride-04029#+-- @pMissShaderBindingTable->stride@ /must/ be less than or equal to -- 'PhysicalDeviceRayTracingPipelinePropertiesKHR'::@maxShaderGroupStride@ -- -- - #VUID-vkCmdTraceRaysKHR-pHitShaderBindingTable-03687# If the buffer@@ -1209,12 +1313,12 @@ -- @pHitShaderBindingTable->deviceAddress@ /must/ be a multiple of -- 'PhysicalDeviceRayTracingPipelinePropertiesKHR'::@shaderGroupBaseAlignment@ ----- - #VUID-vkCmdTraceRaysKHR-stride-03690# The @stride@ member of--- @pHitShaderBindingTable@ /must/ be a multiple of+-- - #VUID-vkCmdTraceRaysKHR-stride-03690#+-- @pHitShaderBindingTable->stride@ /must/ be a multiple of -- 'PhysicalDeviceRayTracingPipelinePropertiesKHR'::@shaderGroupHandleAlignment@ ----- - #VUID-vkCmdTraceRaysKHR-stride-04035# The @stride@ member of--- @pHitShaderBindingTable@ /must/ be less than or equal to+-- - #VUID-vkCmdTraceRaysKHR-stride-04035#+-- @pHitShaderBindingTable->stride@ /must/ be less than or equal to -- 'PhysicalDeviceRayTracingPipelinePropertiesKHR'::@maxShaderGroupStride@ -- -- - #VUID-vkCmdTraceRaysKHR-pCallableShaderBindingTable-03691# If the@@ -1232,89 +1336,90 @@ -- @pCallableShaderBindingTable->deviceAddress@ /must/ be a multiple of -- 'PhysicalDeviceRayTracingPipelinePropertiesKHR'::@shaderGroupBaseAlignment@ ----- - #VUID-vkCmdTraceRaysKHR-stride-03694# The @stride@ member of--- @pCallableShaderBindingTable@ /must/ be a multiple of+-- - #VUID-vkCmdTraceRaysKHR-stride-03694#+-- @pCallableShaderBindingTable->stride@ /must/ be a multiple of -- 'PhysicalDeviceRayTracingPipelinePropertiesKHR'::@shaderGroupHandleAlignment@ ----- - #VUID-vkCmdTraceRaysKHR-stride-04041# The @stride@ member of--- @pCallableShaderBindingTable@ /must/ be less than or equal to+-- - #VUID-vkCmdTraceRaysKHR-stride-04041#+-- @pCallableShaderBindingTable->stride@ /must/ be less than or equal+-- to -- 'PhysicalDeviceRayTracingPipelinePropertiesKHR'::@maxShaderGroupStride@ -- -- - #VUID-vkCmdTraceRaysKHR-flags-03696# If the currently bound ray -- tracing pipeline was created with @flags@ that included -- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR',--- the @deviceAddress@ member of @pHitShaderBindingTable@ /must/ not be--- zero+-- @pHitShaderBindingTable->deviceAddress@ /must/ not be zero -- -- - #VUID-vkCmdTraceRaysKHR-flags-03697# If the currently bound ray -- tracing pipeline was created with @flags@ that included -- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR',--- the @deviceAddress@ member of @pHitShaderBindingTable@ /must/ not be--- zero+-- @pHitShaderBindingTable->deviceAddress@ /must/ not be zero -- -- - #VUID-vkCmdTraceRaysKHR-flags-03511# If the currently bound ray -- tracing pipeline was created with @flags@ that included -- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR',--- the shader group handle identified by @pMissShaderBindingTable@--- /must/ not be set to zero+-- the shader group handle identified by+-- @pMissShaderBindingTable->deviceAddress@ /must/ not be set to zero -- -- - #VUID-vkCmdTraceRaysKHR-flags-03512# If the currently bound ray -- tracing pipeline was created with @flags@ that included -- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR',--- entries in @pHitShaderBindingTable@ accessed as a result of this+-- entries in the table identified by+-- @pHitShaderBindingTable->deviceAddress@ accessed as a result of this -- command in order to execute an any-hit shader /must/ not be set to -- zero -- -- - #VUID-vkCmdTraceRaysKHR-flags-03513# If the currently bound ray -- tracing pipeline was created with @flags@ that included -- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR',--- entries in @pHitShaderBindingTable@ accessed as a result of this+-- entries in the table identified by+-- @pHitShaderBindingTable->deviceAddress@ accessed as a result of this -- command in order to execute a closest hit shader /must/ not be set -- to zero -- -- - #VUID-vkCmdTraceRaysKHR-flags-03514# If the currently bound ray -- tracing pipeline was created with @flags@ that included -- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR',--- entries in @pHitShaderBindingTable@ accessed as a result of this+-- entries in the table identified by+-- @pHitShaderBindingTable->deviceAddress@ accessed as a result of this -- command in order to execute an intersection shader /must/ not be set -- to zero -- -- - #VUID-vkCmdTraceRaysKHR-pHitShaderBindingTable-04735# Any non-zero--- hit shader group entries in @pHitShaderBindingTable@ accessed by--- this call from a geometry with a @geometryType@ of+-- hit shader group entries in the table identified by+-- @pHitShaderBindingTable->deviceAddress@ accessed by this call from a+-- geometry with a @geometryType@ of -- 'Vulkan.Extensions.VK_KHR_acceleration_structure.GEOMETRY_TYPE_TRIANGLES_KHR' -- /must/ have been created with -- 'RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_KHR' -- -- - #VUID-vkCmdTraceRaysKHR-pHitShaderBindingTable-04736# Any non-zero--- hit shader group entries in @pHitShaderBindingTable@ accessed by--- this call from a geometry with a @geometryType@ of+-- hit shader group entries in the table identified by+-- @pHitShaderBindingTable->deviceAddress@ accessed by this call from a+-- geometry with a @geometryType@ of -- 'Vulkan.Extensions.VK_KHR_acceleration_structure.GEOMETRY_TYPE_AABBS_KHR' -- /must/ have been created with -- 'RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_KHR' ----- - #VUID-vkCmdTraceRaysKHR-commandBuffer-04625# @commandBuffer@ /must/--- not be a protected command buffer------ - #VUID-vkCmdTraceRaysKHR-width-03626# @width@ /must/ be less than or+-- - #VUID-vkCmdTraceRaysKHR-width-03638# @width@ /must/ be less than or -- equal to -- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxComputeWorkGroupCount@[0] -- × -- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxComputeWorkGroupSize@[0] ----- - #VUID-vkCmdTraceRaysKHR-height-03627# @height@ /must/ be less than+-- - #VUID-vkCmdTraceRaysKHR-height-03639# @height@ /must/ be less than -- or equal to -- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxComputeWorkGroupCount@[1] -- × -- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxComputeWorkGroupSize@[1] ----- - #VUID-vkCmdTraceRaysKHR-depth-03628# @depth@ /must/ be less than or+-- - #VUID-vkCmdTraceRaysKHR-depth-03640# @depth@ /must/ be less than or -- equal to -- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxComputeWorkGroupCount@[2] -- × -- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxComputeWorkGroupSize@[2] ----- - #VUID-vkCmdTraceRaysKHR-width-03629# @width@ × @height@ × @depth@+-- - #VUID-vkCmdTraceRaysKHR-width-03641# @width@ × @height@ × @depth@ -- /must/ be less than or equal to -- 'PhysicalDeviceRayTracingPipelinePropertiesKHR'::@maxRayDispatchInvocationCount@ --@@ -1350,6 +1455,9 @@ -- - #VUID-vkCmdTraceRaysKHR-renderpass# This command /must/ only be -- called outside of a render pass instance --+-- - #VUID-vkCmdTraceRaysKHR-videocoding# This command /must/ only be+-- called outside of a video coding scope+-- -- == Host Synchronization -- -- - Host access to @commandBuffer@ /must/ be externally synchronized@@ -1361,12 +1469,12 @@ -- -- \' ----- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | Primary | Outside | Compute |--- | Secondary | | |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================++-- | Primary | Outside | Outside | Compute |+-- | Secondary | | | |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+ -- -- = See Also --@@ -1438,7 +1546,7 @@ -- × @groupCount@ -- -- - #VUID-vkGetRayTracingShaderGroupHandlesKHR-pipeline-03482#--- @pipeline@ /must/ have not been created with+-- @pipeline@ /must/ not have been created with -- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_LIBRARY_BIT_KHR' -- -- == Valid Usage (Implicit)@@ -1540,6 +1648,10 @@ -- @pipeline@ /must/ have been created with a @flags@ that included -- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR' --+-- - #VUID-vkGetRayTracingCaptureReplayShaderGroupHandlesKHR-pipeline-06720#+-- @pipeline@ /must/ not have been created with+-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_LIBRARY_BIT_KHR'+-- -- == Valid Usage (Implicit) -- -- - #VUID-vkGetRayTracingCaptureReplayShaderGroupHandlesKHR-device-parameter#@@ -1657,7 +1769,7 @@ -- @deferredOperation@ /must/ be complete -- -- - #VUID-vkCreateRayTracingPipelinesKHR-rayTracingPipeline-03586# The--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-rayTracingPipeline rayTracingPipeline>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-rayTracingPipeline rayTracingPipeline> -- feature /must/ be enabled -- -- - #VUID-vkCreateRayTracingPipelinesKHR-deferredOperation-03587# If@@ -1737,12 +1849,12 @@ Device -> -- | @deferredOperation@ is 'Vulkan.Core10.APIConstants.NULL_HANDLE' or the -- handle of a valid 'Vulkan.Extensions.Handles.DeferredOperationKHR'- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#deferred-host-operations-requesting request deferral>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#deferred-host-operations-requesting request deferral> -- object for this command. DeferredOperationKHR -> -- | @pipelineCache@ is either 'Vulkan.Core10.APIConstants.NULL_HANDLE', -- indicating that pipeline caching is disabled, or the handle of a valid- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-cache pipeline cache>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-cache pipeline cache> -- object, in which case use of that cache is enabled for the duration of -- the command. PipelineCache@@ -1750,7 +1862,7 @@ -- 'RayTracingPipelineCreateInfoKHR' structures. ("createInfos" ::: Vector (SomeStruct RayTracingPipelineCreateInfoKHR)) -> -- | @pAllocator@ controls host memory allocation as described in the- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation> -- chapter. ("allocator" ::: Maybe AllocationCallbacks) -> io (Result, ("pipelines" ::: Vector Pipeline))@@ -1838,16 +1950,16 @@ -- -- - #VUID-vkCmdTraceRaysIndirectKHR-None-02692# If a -- 'Vulkan.Core10.Handles.ImageView' is sampled with--- 'Vulkan.Extensions.VK_EXT_filter_cubic.FILTER_CUBIC_EXT' as a result--- of this command, then the image view’s+-- 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as a result of this+-- command, then the image view’s -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features> -- /must/ contain--- 'Vulkan.Extensions.VK_EXT_filter_cubic.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT'+-- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT' -- -- - #VUID-vkCmdTraceRaysIndirectKHR-filterCubic-02694# Any -- 'Vulkan.Core10.Handles.ImageView' being sampled with--- 'Vulkan.Extensions.VK_EXT_filter_cubic.FILTER_CUBIC_EXT' as a result--- of this command /must/ have a+-- 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as a result of this+-- command /must/ have a -- 'Vulkan.Core10.Enums.ImageViewType.ImageViewType' and format that -- supports cubic filtering, as specified by -- 'Vulkan.Extensions.VK_EXT_filter_cubic.FilterCubicImageViewImageFormatPropertiesEXT'::@filterCubic@@@ -1856,8 +1968,8 @@ -- -- - #VUID-vkCmdTraceRaysIndirectKHR-filterCubicMinmax-02695# Any -- 'Vulkan.Core10.Handles.ImageView' being sampled with--- 'Vulkan.Extensions.VK_EXT_filter_cubic.FILTER_CUBIC_EXT' with a--- reduction mode of either+-- 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' with a reduction mode+-- of either -- 'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MIN' -- or -- 'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MAX'@@ -1877,22 +1989,38 @@ -- 'Vulkan.Core10.Enums.SamplerAddressMode.SamplerAddressMode' of -- 'Vulkan.Core10.Enums.SamplerAddressMode.SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE' ----- - #VUID-vkCmdTraceRaysIndirectKHR-OpTypeImage-06423# Any--- 'Vulkan.Core10.Handles.ImageView' or--- 'Vulkan.Core10.Handles.BufferView' being written as a storage image--- or storage texel buffer where the image format field of the--- @OpTypeImage@ is @Unknown@ then the view’s format feature /must/--- contain+-- - #VUID-vkCmdTraceRaysIndirectKHR-OpTypeImage-07027# For any+-- 'Vulkan.Core10.Handles.ImageView' being written as a storage image+-- where the image format field of the @OpTypeImage@ is @Unknown@, the+-- view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain -- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT' ----- - #VUID-vkCmdTraceRaysIndirectKHR-OpTypeImage-06424# Any--- 'Vulkan.Core10.Handles.ImageView' or--- 'Vulkan.Core10.Handles.BufferView' being read as a storage image or--- storage texel buffer where the image format field of the--- @OpTypeImage@ is @Unknown@ then the view’s format feature /must/--- contain+-- - #VUID-vkCmdTraceRaysIndirectKHR-OpTypeImage-07028# For any+-- 'Vulkan.Core10.Handles.ImageView' being read as a storage image+-- where the image format field of the @OpTypeImage@ is @Unknown@, the+-- view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain -- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT' --+-- - #VUID-vkCmdTraceRaysIndirectKHR-OpTypeImage-07029# For any+-- 'Vulkan.Core10.Handles.BufferView' being written as a storage texel+-- buffer where the image format field of the @OpTypeImage@ is+-- @Unknown@, the view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkFormatProperties3 buffer features>+-- /must/ contain+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT'+--+-- - #VUID-vkCmdTraceRaysIndirectKHR-OpTypeImage-07030# Any+-- 'Vulkan.Core10.Handles.BufferView' being read as a storage texel+-- buffer where the image format field of the @OpTypeImage@ is+-- @Unknown@ then the view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkFormatProperties3 buffer features>+-- /must/ contain+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT'+-- -- - #VUID-vkCmdTraceRaysIndirectKHR-None-02697# For each set /n/ that is -- statically used by the 'Vulkan.Core10.Handles.Pipeline' bound to the -- pipeline bind point used by this command, a descriptor set /must/@@ -1967,21 +2095,31 @@ -- @OpImageSample*@ or @OpImageSparseSample*@ instructions that -- includes a LOD bias or any offset values, in any shader stage ----- - #VUID-vkCmdTraceRaysIndirectKHR-None-02705# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robust buffer access>--- feature is not enabled, and if the 'Vulkan.Core10.Handles.Pipeline'--- object bound to the pipeline bind point used by this command--- accesses a uniform buffer, it /must/ not access values outside of--- the range of the buffer as specified in the descriptor set bound to--- the same pipeline bind point+-- - #VUID-vkCmdTraceRaysIndirectKHR-uniformBuffers-06935# If any stage+-- of the 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline+-- bind point used by this command accesses a uniform buffer, and that+-- stage was created without enabling either+-- 'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT'+-- or+-- 'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT'+-- for @uniformBuffers@, and the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>+-- feature is not enabled, that stage /must/ not access values outside+-- of the range of the buffer as specified in the descriptor set bound+-- to the same pipeline bind point ----- - #VUID-vkCmdTraceRaysIndirectKHR-None-02706# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robust buffer access>--- feature is not enabled, and if the 'Vulkan.Core10.Handles.Pipeline'--- object bound to the pipeline bind point used by this command--- accesses a storage buffer, it /must/ not access values outside of--- the range of the buffer as specified in the descriptor set bound to--- the same pipeline bind point+-- - #VUID-vkCmdTraceRaysIndirectKHR-storageBuffers-06936# If any stage+-- of the 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline+-- bind point used by this command accesses a storage buffer, and that+-- stage was created without enabling either+-- 'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT'+-- or+-- 'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT'+-- for @storageBuffers@, and the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>+-- feature is not enabled, that stage /must/ not access values outside+-- of the range of the buffer as specified in the descriptor set bound+-- to the same pipeline bind point -- -- - #VUID-vkCmdTraceRaysIndirectKHR-commandBuffer-02707# If -- @commandBuffer@ is an unprotected command buffer and@@ -2067,6 +2205,67 @@ -- @OpTypeImage@ with a @SampledType@ with a @Width@ of 64 by this -- command --+-- - #VUID-vkCmdTraceRaysIndirectKHR-OpImageWeightedSampleQCOM-06971# If+-- @OpImageWeightedSampleQCOM@ is used to sample a+-- 'Vulkan.Core10.Handles.ImageView' as a result of this command, then+-- the image view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM'+--+-- - #VUID-vkCmdTraceRaysIndirectKHR-OpImageWeightedSampleQCOM-06972# If+-- @OpImageWeightedSampleQCOM@ uses a 'Vulkan.Core10.Handles.ImageView'+-- as a sample weight image as a result of this command, then the image+-- view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM'+--+-- - #VUID-vkCmdTraceRaysIndirectKHR-OpImageBoxFilterQCOM-06973# If+-- @OpImageBoxFilterQCOM@ is used to sample a+-- 'Vulkan.Core10.Handles.ImageView' as a result of this command, then+-- the image view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM'+--+-- - #VUID-vkCmdTraceRaysIndirectKHR-OpImageBlockMatchSSDQCOM-06974# If+-- @OpImageBlockMatchSSDQCOM@ is used to read from an+-- 'Vulkan.Core10.Handles.ImageView' as a result of this command, then+-- the image view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM'+--+-- - #VUID-vkCmdTraceRaysIndirectKHR-OpImageBlockMatchSADQCOM-06975# If+-- @OpImageBlockMatchSADQCOM@ is used to read from an+-- 'Vulkan.Core10.Handles.ImageView' as a result of this command, then+-- the image view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM'+--+-- - #VUID-vkCmdTraceRaysIndirectKHR-OpImageBlockMatchSADQCOM-06976# If+-- @OpImageBlockMatchSADQCOM@ or OpImageBlockMatchSSDQCOM is used to+-- read from a reference image as result of this command, then the+-- specified reference coordinates /must/ not fail+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-integer-coordinate-validation integer texel coordinate validation>.+--+-- - #VUID-vkCmdTraceRaysIndirectKHR-OpImageWeightedSampleQCOM-06977# If+-- @OpImageWeightedSampleQCOM@, @OpImageBoxFilterQCOM@,+-- @OpImageBlockMatchSSDQCOM@, or @OpImageBlockMatchSADQCOM@ uses a+-- 'Vulkan.Core10.Handles.Sampler' as a result of this command, then+-- the sampler /must/ have been created with+-- 'Vulkan.Core10.Enums.SamplerCreateFlagBits.SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM'.+--+-- - #VUID-vkCmdTraceRaysIndirectKHR-OpImageWeightedSampleQCOM-06978# If+-- any command other than @OpImageWeightedSampleQCOM@,+-- @OpImageBoxFilterQCOM@, @OpImageBlockMatchSSDQCOM@, or+-- @OpImageBlockMatchSADQCOM@ uses a 'Vulkan.Core10.Handles.Sampler' as+-- a result of this command, then the sampler /must/ not have been+-- created with+-- 'Vulkan.Core10.Enums.SamplerCreateFlagBits.SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM'.+-- -- - #VUID-vkCmdTraceRaysIndirectKHR-None-03429# Any shader group handle -- referenced by this call /must/ have been queried from the currently -- bound ray tracing pipeline@@ -2078,6 +2277,12 @@ -- greater than the value of @maxPipelineRayRecursionDepth@ used to -- create the bound ray tracing pipeline --+-- - #VUID-vkCmdTraceRaysIndirectKHR-commandBuffer-03635# @commandBuffer@+-- /must/ not be a protected command buffer+--+-- - #VUID-vkCmdTraceRaysIndirectKHR-size-04023# The @size@ member of+-- @pRayGenShaderBindingTable@ /must/ be equal to its @stride@ member+-- -- - #VUID-vkCmdTraceRaysIndirectKHR-pRayGenShaderBindingTable-03680# If -- the buffer from which @pRayGenShaderBindingTable->deviceAddress@ was -- queried is non-sparse then it /must/ be bound completely and@@ -2093,9 +2298,6 @@ -- @pRayGenShaderBindingTable->deviceAddress@ /must/ be a multiple of -- 'PhysicalDeviceRayTracingPipelinePropertiesKHR'::@shaderGroupBaseAlignment@ ----- - #VUID-vkCmdTraceRaysIndirectKHR-size-04023# The @size@ member of--- @pRayGenShaderBindingTable@ /must/ be equal to its @stride@ member--- -- - #VUID-vkCmdTraceRaysIndirectKHR-pMissShaderBindingTable-03683# If -- the buffer from which @pMissShaderBindingTable->deviceAddress@ was -- queried is non-sparse then it /must/ be bound completely and@@ -2111,12 +2313,12 @@ -- @pMissShaderBindingTable->deviceAddress@ /must/ be a multiple of -- 'PhysicalDeviceRayTracingPipelinePropertiesKHR'::@shaderGroupBaseAlignment@ ----- - #VUID-vkCmdTraceRaysIndirectKHR-stride-03686# The @stride@ member of--- @pMissShaderBindingTable@ /must/ be a multiple of+-- - #VUID-vkCmdTraceRaysIndirectKHR-stride-03686#+-- @pMissShaderBindingTable->stride@ /must/ be a multiple of -- 'PhysicalDeviceRayTracingPipelinePropertiesKHR'::@shaderGroupHandleAlignment@ ----- - #VUID-vkCmdTraceRaysIndirectKHR-stride-04029# The @stride@ member of--- @pMissShaderBindingTable@ /must/ be less than or equal to+-- - #VUID-vkCmdTraceRaysIndirectKHR-stride-04029#+-- @pMissShaderBindingTable->stride@ /must/ be less than or equal to -- 'PhysicalDeviceRayTracingPipelinePropertiesKHR'::@maxShaderGroupStride@ -- -- - #VUID-vkCmdTraceRaysIndirectKHR-pHitShaderBindingTable-03687# If the@@ -2134,12 +2336,12 @@ -- @pHitShaderBindingTable->deviceAddress@ /must/ be a multiple of -- 'PhysicalDeviceRayTracingPipelinePropertiesKHR'::@shaderGroupBaseAlignment@ ----- - #VUID-vkCmdTraceRaysIndirectKHR-stride-03690# The @stride@ member of--- @pHitShaderBindingTable@ /must/ be a multiple of+-- - #VUID-vkCmdTraceRaysIndirectKHR-stride-03690#+-- @pHitShaderBindingTable->stride@ /must/ be a multiple of -- 'PhysicalDeviceRayTracingPipelinePropertiesKHR'::@shaderGroupHandleAlignment@ ----- - #VUID-vkCmdTraceRaysIndirectKHR-stride-04035# The @stride@ member of--- @pHitShaderBindingTable@ /must/ be less than or equal to+-- - #VUID-vkCmdTraceRaysIndirectKHR-stride-04035#+-- @pHitShaderBindingTable->stride@ /must/ be less than or equal to -- 'PhysicalDeviceRayTracingPipelinePropertiesKHR'::@maxShaderGroupStride@ -- -- - #VUID-vkCmdTraceRaysIndirectKHR-pCallableShaderBindingTable-03691#@@ -2159,63 +2361,67 @@ -- @pCallableShaderBindingTable->deviceAddress@ /must/ be a multiple of -- 'PhysicalDeviceRayTracingPipelinePropertiesKHR'::@shaderGroupBaseAlignment@ ----- - #VUID-vkCmdTraceRaysIndirectKHR-stride-03694# The @stride@ member of--- @pCallableShaderBindingTable@ /must/ be a multiple of+-- - #VUID-vkCmdTraceRaysIndirectKHR-stride-03694#+-- @pCallableShaderBindingTable->stride@ /must/ be a multiple of -- 'PhysicalDeviceRayTracingPipelinePropertiesKHR'::@shaderGroupHandleAlignment@ ----- - #VUID-vkCmdTraceRaysIndirectKHR-stride-04041# The @stride@ member of--- @pCallableShaderBindingTable@ /must/ be less than or equal to+-- - #VUID-vkCmdTraceRaysIndirectKHR-stride-04041#+-- @pCallableShaderBindingTable->stride@ /must/ be less than or equal+-- to -- 'PhysicalDeviceRayTracingPipelinePropertiesKHR'::@maxShaderGroupStride@ -- -- - #VUID-vkCmdTraceRaysIndirectKHR-flags-03696# If the currently bound -- ray tracing pipeline was created with @flags@ that included -- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR',--- the @deviceAddress@ member of @pHitShaderBindingTable@ /must/ not be--- zero+-- @pHitShaderBindingTable->deviceAddress@ /must/ not be zero -- -- - #VUID-vkCmdTraceRaysIndirectKHR-flags-03697# If the currently bound -- ray tracing pipeline was created with @flags@ that included -- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR',--- the @deviceAddress@ member of @pHitShaderBindingTable@ /must/ not be--- zero+-- @pHitShaderBindingTable->deviceAddress@ /must/ not be zero -- -- - #VUID-vkCmdTraceRaysIndirectKHR-flags-03511# If the currently bound -- ray tracing pipeline was created with @flags@ that included -- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR',--- the shader group handle identified by @pMissShaderBindingTable@--- /must/ not be set to zero+-- the shader group handle identified by+-- @pMissShaderBindingTable->deviceAddress@ /must/ not be set to zero -- -- - #VUID-vkCmdTraceRaysIndirectKHR-flags-03512# If the currently bound -- ray tracing pipeline was created with @flags@ that included -- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR',--- entries in @pHitShaderBindingTable@ accessed as a result of this+-- entries in the table identified by+-- @pHitShaderBindingTable->deviceAddress@ accessed as a result of this -- command in order to execute an any-hit shader /must/ not be set to -- zero -- -- - #VUID-vkCmdTraceRaysIndirectKHR-flags-03513# If the currently bound -- ray tracing pipeline was created with @flags@ that included -- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR',--- entries in @pHitShaderBindingTable@ accessed as a result of this+-- entries in the table identified by+-- @pHitShaderBindingTable->deviceAddress@ accessed as a result of this -- command in order to execute a closest hit shader /must/ not be set -- to zero -- -- - #VUID-vkCmdTraceRaysIndirectKHR-flags-03514# If the currently bound -- ray tracing pipeline was created with @flags@ that included -- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR',--- entries in @pHitShaderBindingTable@ accessed as a result of this+-- entries in the table identified by+-- @pHitShaderBindingTable->deviceAddress@ accessed as a result of this -- command in order to execute an intersection shader /must/ not be set -- to zero -- -- - #VUID-vkCmdTraceRaysIndirectKHR-pHitShaderBindingTable-04735# Any--- non-zero hit shader group entries in @pHitShaderBindingTable@--- accessed by this call from a geometry with a @geometryType@ of+-- non-zero hit shader group entries in the table identified by+-- @pHitShaderBindingTable->deviceAddress@ accessed by this call from a+-- geometry with a @geometryType@ of -- 'Vulkan.Extensions.VK_KHR_acceleration_structure.GEOMETRY_TYPE_TRIANGLES_KHR' -- /must/ have been created with -- 'RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_KHR' -- -- - #VUID-vkCmdTraceRaysIndirectKHR-pHitShaderBindingTable-04736# Any--- non-zero hit shader group entries in @pHitShaderBindingTable@--- accessed by this call from a geometry with a @geometryType@ of+-- non-zero hit shader group entries in the table identified by+-- @pHitShaderBindingTable->deviceAddress@ accessed by this call from a+-- geometry with a @geometryType@ of -- 'Vulkan.Extensions.VK_KHR_acceleration_structure.GEOMETRY_TYPE_AABBS_KHR' -- /must/ have been created with -- 'RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_KHR'@@ -2234,9 +2440,6 @@ -- - #VUID-vkCmdTraceRaysIndirectKHR-indirectDeviceAddress-03634# -- @indirectDeviceAddress@ /must/ be a multiple of @4@ ----- - #VUID-vkCmdTraceRaysIndirectKHR-commandBuffer-03635# @commandBuffer@--- /must/ not be a protected command buffer--- -- - #VUID-vkCmdTraceRaysIndirectKHR-indirectDeviceAddress-03636# All -- device addresses between @indirectDeviceAddress@ and -- @indirectDeviceAddress@ + @sizeof@('TraceRaysIndirectCommandKHR') -@@ -2244,7 +2447,7 @@ -- -- - #VUID-vkCmdTraceRaysIndirectKHR-rayTracingPipelineTraceRaysIndirect-03637# -- The--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-rayTracingPipelineTraceRaysIndirect ::rayTracingPipelineTraceRaysIndirect>+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-rayTracingPipelineTraceRaysIndirect rayTracingPipelineTraceRaysIndirect> -- feature /must/ be enabled -- -- - #VUID-vkCmdTraceRaysIndirectKHR-rayTracingMotionBlurPipelineTraceRaysIndirect-04951#@@ -2286,6 +2489,9 @@ -- - #VUID-vkCmdTraceRaysIndirectKHR-renderpass# This command /must/ only -- be called outside of a render pass instance --+-- - #VUID-vkCmdTraceRaysIndirectKHR-videocoding# This command /must/+-- only be called outside of a video coding scope+-- -- == Host Synchronization -- -- - Host access to @commandBuffer@ /must/ be externally synchronized@@ -2297,12 +2503,12 @@ -- -- \' ----- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | Primary | Outside | Compute |--- | Secondary | | |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================++-- | Primary | Outside | Outside | Compute |+-- | Secondary | | | |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+ -- -- = See Also --@@ -2432,7 +2638,7 @@ -- set in -- 'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@. -- Otherwise, the stack size is computed as described in--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#ray-tracing-pipeline-stack Ray Tracing Pipeline Stack>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#ray-tracing-pipeline-stack Ray Tracing Pipeline Stack>. -- -- == Valid Usage --@@ -2458,6 +2664,9 @@ -- - #VUID-vkCmdSetRayTracingPipelineStackSizeKHR-renderpass# This -- command /must/ only be called outside of a render pass instance --+-- - #VUID-vkCmdSetRayTracingPipelineStackSizeKHR-videocoding# This+-- command /must/ only be called outside of a video coding scope+-- -- == Host Synchronization -- -- - Host access to @commandBuffer@ /must/ be externally synchronized@@ -2469,12 +2678,12 @@ -- -- \' ----- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | Primary | Outside | Compute |--- | Secondary | | |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================++-- | Primary | Outside | Outside | Compute |+-- | Secondary | | | |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+ -- -- = See Also --@@ -2677,7 +2886,7 @@ -- -- The parameters @basePipelineHandle@ and @basePipelineIndex@ are -- described in more detail in--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-pipeline-derivatives Pipeline Derivatives>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-pipeline-derivatives Pipeline Derivatives>. -- -- When -- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_LIBRARY_BIT_KHR'@@ -2703,7 +2912,7 @@ -- The default stack size for a pipeline if -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RAY_TRACING_PIPELINE_STACK_SIZE_KHR' -- is not provided is computed as described in--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#ray-tracing-pipeline-stack Ray Tracing Pipeline Stack>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#ray-tracing-pipeline-stack Ray Tracing Pipeline Stack>. -- -- == Valid Usage --@@ -2780,8 +2989,7 @@ -- -- - #VUID-VkRayTracingPipelineCreateInfoKHR-pLibraryInfo-03590# If -- @pLibraryInfo@ is not @NULL@ and its @libraryCount@ member is--- greater than @0@, its @pLibraryInterface@ member /must/ not be--- @NULL@+-- greater than @0@, @pLibraryInterface@ /must/ not be @NULL@ -- -- - #VUID-VkRayTracingPipelineCreateInfoKHR-pLibraries-03591# Each -- element of @pLibraryInfo->pLibraries@ /must/ have been created with@@ -2879,13 +3087,13 @@ -- -- - #VUID-VkRayTracingPipelineCreateInfoKHR-rayTraversalPrimitiveCulling-03596# -- If the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-rayTraversalPrimitiveCulling rayTraversalPrimitiveCulling>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-rayTraversalPrimitiveCulling rayTraversalPrimitiveCulling> -- feature is not enabled, @flags@ /must/ not include -- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHR' -- -- - #VUID-VkRayTracingPipelineCreateInfoKHR-rayTraversalPrimitiveCulling-03597# -- If the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-rayTraversalPrimitiveCulling rayTraversalPrimitiveCulling>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-rayTraversalPrimitiveCulling rayTraversalPrimitiveCulling> -- feature is not enabled, @flags@ /must/ not include -- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR' --@@ -2898,7 +3106,7 @@ -- - #VUID-VkRayTracingPipelineCreateInfoKHR-flags-03598# If @flags@ -- includes -- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR',--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-rayTracingPipelineShaderGroupHandleCaptureReplay rayTracingPipelineShaderGroupHandleCaptureReplay>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-rayTracingPipelineShaderGroupHandleCaptureReplay rayTracingPipelineShaderGroupHandleCaptureReplay> -- /must/ be enabled -- -- - #VUID-VkRayTracingPipelineCreateInfoKHR-rayTracingPipelineShaderGroupHandleCaptureReplay-03599#@@ -2926,15 +3134,28 @@ -- 'Vulkan.Core13.Promoted_From_VK_EXT_pipeline_creation_feedback.PipelineCreationFeedbackCreateInfo'::@pipelineStageCreationFeedbackCount@ -- is not @0@, it /must/ be equal to @stageCount@ --+-- - #VUID-VkRayTracingPipelineCreateInfoKHR-stage-06899# The @stage@+-- value in all @pStages@ elements /must/ be one of+-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_RAYGEN_BIT_KHR',+-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_ANY_HIT_BIT_KHR',+-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_CLOSEST_HIT_BIT_KHR',+-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MISS_BIT_KHR',+-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_INTERSECTION_BIT_KHR',+-- or+-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_CALLABLE_BIT_KHR'+-- -- == Valid Usage (Implicit) -- -- - #VUID-VkRayTracingPipelineCreateInfoKHR-sType-sType# @sType@ /must/ -- be -- 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_KHR' ----- - #VUID-VkRayTracingPipelineCreateInfoKHR-pNext-pNext# @pNext@ /must/--- be @NULL@ or a pointer to a valid instance of+-- - #VUID-VkRayTracingPipelineCreateInfoKHR-pNext-pNext# Each @pNext@+-- member of any structure (including this one) in the @pNext@ chain+-- /must/ be either @NULL@ or a pointer to a valid instance of -- 'Vulkan.Core13.Promoted_From_VK_EXT_pipeline_creation_feedback.PipelineCreationFeedbackCreateInfo'+-- or+-- 'Vulkan.Extensions.VK_EXT_pipeline_robustness.PipelineRobustnessCreateInfoEXT' -- -- - #VUID-VkRayTracingPipelineCreateInfoKHR-sType-unique# The @sType@ -- value of each struct in the @pNext@ chain /must/ be unique@@ -3009,7 +3230,7 @@ -- pipeline. groups :: Vector RayTracingShaderGroupCreateInfoKHR , -- | @maxPipelineRayRecursionDepth@ is the- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#ray-tracing-recursion-depth maximum recursion depth>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#ray-tracing-recursion-depth maximum recursion depth> -- of shaders executed by this pipeline. maxPipelineRayRecursionDepth :: Word32 , -- | @pLibraryInfo@ is a pointer to a@@ -3048,6 +3269,7 @@ getNext RayTracingPipelineCreateInfoKHR{..} = next extends :: forall e b proxy. Typeable e => proxy e -> (Extends RayTracingPipelineCreateInfoKHR e => b) -> Maybe b extends _ f+ | Just Refl <- eqT @e @PipelineRobustnessCreateInfoEXT = Just f | Just Refl <- eqT @e @PipelineCreationFeedbackCreateInfo = Just f | otherwise = Nothing @@ -3150,7 +3372,7 @@ -- - #features-rayTracingPipeline# @rayTracingPipeline@ indicates whether -- the implementation supports the ray tracing pipeline functionality. -- See--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#ray-tracing Ray Tracing>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#ray-tracing Ray Tracing>. -- -- - #features-rayTracingPipelineShaderGroupHandleCaptureReplay# -- @rayTracingPipelineShaderGroupHandleCaptureReplay@ indicates whether@@ -3173,7 +3395,7 @@ -- - #features-rayTraversalPrimitiveCulling# -- @rayTraversalPrimitiveCulling@ indicates whether the implementation -- supports--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#ray-traversal-culling-primitive primitive culling during ray traversal>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#ray-traversal-culling-primitive primitive culling during ray traversal>. -- -- If the 'PhysicalDeviceRayTracingPipelineFeaturesKHR' structure is -- included in the @pNext@ chain of the@@ -3553,7 +3775,7 @@ -- bytes used by any block declared in the @HitAttributeKHR@ storage class. -- As variables in these storage classes do not have explicit offsets, the -- size should be calculated as if each variable has a--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-alignment-requirements scalar alignment>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-alignment-requirements scalar alignment> -- equal to the largest scalar alignment of any of the block’s members. -- -- Note
src/Vulkan/Extensions/VK_KHR_ray_tracing_pipeline.hs-boot view
@@ -19,11 +19,13 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.1+-- - Requires support for Vulkan 1.1 ----- - Requires @VK_KHR_spirv_1_4@+-- - Requires @VK_KHR_spirv_1_4@ to be enabled for any device-level+-- functionality ----- - Requires @VK_KHR_acceleration_structure@+-- - Requires @VK_KHR_acceleration_structure@ to be enabled for any+-- device-level functionality -- -- [__Contact__] --@@ -44,13 +46,13 @@ -- <https://github.com/KhronosGroup/GLSL/blob/master/extensions/ext/GLSL_EXT_ray_tracing.txt GLSL_EXT_ray_tracing> -- -- - This extension interacts with--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#versions-1.2 Vulkan 1.2>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#versions-1.2 Vulkan 1.2> -- and @VK_KHR_vulkan_memory_model@, adding the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#shader-call-related shader-call-related>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#shader-call-related shader-call-related> -- relation of invocations,--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#shader-call-order shader-call-order>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#shader-call-order shader-call-order> -- partial order of dynamic instances of instructions, and the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-scope-shadercall ShaderCallKHR>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-scope-shadercall ShaderCallKHR> -- scope. -- -- - This extension interacts with @VK_KHR_pipeline_library@,@@ -287,43 +289,43 @@ -- -- == New or Modified Built-In Variables ----- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-launchid LaunchIdKHR>+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-launchid LaunchIdKHR> ----- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-launchsize LaunchSizeKHR>+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-launchsize LaunchSizeKHR> ----- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-worldrayorigin WorldRayOriginKHR>+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-worldrayorigin WorldRayOriginKHR> ----- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-worldraydirection WorldRayDirectionKHR>+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-worldraydirection WorldRayDirectionKHR> ----- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-objectrayorigin ObjectRayOriginKHR>+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-objectrayorigin ObjectRayOriginKHR> ----- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-objectraydirection ObjectRayDirectionKHR>+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-objectraydirection ObjectRayDirectionKHR> ----- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-raytmin RayTminKHR>+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-raytmin RayTminKHR> ----- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-raytmax RayTmaxKHR>+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-raytmax RayTmaxKHR> ----- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-instancecustomindex InstanceCustomIndexKHR>+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-instancecustomindex InstanceCustomIndexKHR> ----- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-instanceid InstanceId>+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-instanceid InstanceId> ----- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-objecttoworld ObjectToWorldKHR>+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-objecttoworld ObjectToWorldKHR> ----- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-worldtoobject WorldToObjectKHR>+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-worldtoobject WorldToObjectKHR> ----- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-hitkind HitKindKHR>+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-hitkind HitKindKHR> ----- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-incomingrayflags IncomingRayFlagsKHR>+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-incomingrayflags IncomingRayFlagsKHR> ----- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-raygeometryindex RayGeometryIndexKHR>+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-raygeometryindex RayGeometryIndexKHR> -- -- - (modified)@PrimitiveId@ -- -- == New SPIR-V Capabilities ----- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-RayTracingKHR RayTracingKHR>+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-RayTracingKHR RayTracingKHR> ----- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-RayTraversalPrimitiveCullingKHR RayTraversalPrimitiveCullingKHR>+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-RayTraversalPrimitiveCullingKHR RayTraversalPrimitiveCullingKHR> -- -- == Issues --@@ -345,7 +347,7 @@ -- -- - removed vkCompileDeferredNV compilation functionality and replaced -- with--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#deferred-host-operations deferred host operations>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#deferred-host-operations deferred host operations> -- interactions for ray tracing -- -- - added 'PhysicalDeviceRayTracingPipelineFeaturesKHR' structure@@ -370,25 +372,25 @@ -- device build -- -- - added--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-library pipeline library>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-library pipeline library> -- support for ray tracing -- -- - added--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#ray-traversal-watertight watertightness guarantees>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#ray-traversal-watertight watertightness guarantees> -- -- - added no-null-shader pipeline flags -- (@VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_*_SHADERS_BIT_KHR@) -- -- - added--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#ray-tracing-shader-call memory model interactions>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#ray-tracing-shader-call memory model interactions> -- with ray tracing and define how subgroups work and can be repacked ----- (2) Can you give a more detailed comparision of differences and+-- (2) Can you give a more detailed comparison of differences and -- similarities between VK_NV_ray_tracing and VK_KHR_ray_tracing_pipeline? -- -- __DISCUSSION__: ----- The following is a more detailed comparision of which commands,+-- The following is a more detailed comparison of which commands, -- structures, and enums are aliased, changed, or removed. -- -- - Aliased functionality — enums, structures, and commands that are@@ -603,6 +605,17 @@ -- - there is no “baseInstance” relevant for these shaders, and so ID -- makes it more obvious that this is zero-based. --+-- (6) Why is @VK_KHR_pipeline_library@ an interaction instead of a+-- required dependency, particularly when the “Feature Requirements”+-- section says it is required to be supported anyhow?+--+-- __RESOLVED__: If @VK_KHR_pipeline_library@ were a required extension+-- dependency, then every application would need to enable the extension+-- whether or not they actually want to use the pipeline library+-- functionality. Developers found this to be annoying and unfriendly+-- behavior. We do wish to require all __implementations__ to support it+-- though, and thus it is listed in the feature requirements section.+-- -- == Sample Code -- -- Example ray generation GLSL shader@@ -644,7 +657,7 @@ -- - rename maxRecursionDepth to maxRayPipelineRecursionDepth and -- maxRayRecursionDepth (#2203,!3937) ----- - add queriable maxRayHitAttributeSize and rename members of+-- - add queryable maxRayHitAttributeSize and rename members of -- VkRayTracingPipelineInterfaceCreateInfoKHR (#2102,!3966) -- -- - update to use @RayTracingKHR@ SPIR-V capability@@ -706,7 +719,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_ray_tracing_pipeline Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_ray_tracing_pipeline Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_KHR_relaxed_block_layout.hs view
@@ -19,7 +19,7 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 -- -- [__Deprecation state__] --@@ -54,7 +54,7 @@ -- For example, placing a vector of three floats at an offset of 16×N + 4. -- -- See--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-resources-layout Offset and Stride Assignment>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-resources-layout Offset and Stride Assignment> -- for details. -- -- == Promotion to Vulkan 1.1@@ -80,7 +80,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_relaxed_block_layout Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_relaxed_block_layout Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_KHR_sampler_mirror_clamp_to_edge.hs view
@@ -19,7 +19,7 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 -- -- [__Deprecation state__] --@@ -144,7 +144,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_sampler_mirror_clamp_to_edge Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_sampler_mirror_clamp_to_edge Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_KHR_sampler_ycbcr_conversion.hs view
@@ -19,15 +19,19 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_maintenance1@+-- - Requires @VK_KHR_maintenance1@ to be enabled for any+-- device-level functionality ----- - Requires @VK_KHR_bind_memory2@+-- - Requires @VK_KHR_bind_memory2@ to be enabled for any+-- device-level functionality ----- - Requires @VK_KHR_get_memory_requirements2@+-- - Requires @VK_KHR_get_memory_requirements2@ to be enabled for any+-- device-level functionality ----- - Requires @VK_KHR_get_physical_device_properties2@+-- - Requires @VK_KHR_get_physical_device_properties2@ to be enabled+-- for any device-level functionality -- -- [__Deprecation state__] --@@ -392,7 +396,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_sampler_ycbcr_conversion Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_sampler_ycbcr_conversion Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_KHR_separate_depth_stencil_layouts.hs view
@@ -19,11 +19,13 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_get_physical_device_properties2@+-- - Requires @VK_KHR_get_physical_device_properties2@ to be enabled+-- for any device-level functionality ----- - Requires @VK_KHR_create_renderpass2@+-- - Requires @VK_KHR_create_renderpass2@ to be enabled for any+-- device-level functionality -- -- [__Deprecation state__] --@@ -128,7 +130,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_separate_depth_stencil_layouts Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_separate_depth_stencil_layouts Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_KHR_shader_atomic_int64.hs view
@@ -19,9 +19,10 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_get_physical_device_properties2@+-- - Requires @VK_KHR_get_physical_device_properties2@ to be enabled+-- for any device-level functionality -- -- [__Deprecation state__] --@@ -43,7 +44,7 @@ -- - Promoted to Vulkan 1.2 Core -- -- - This extension provides API support for--- <https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_gpu_shader_int64.txt GL_ARB_gpu_shader_int64>+-- <https://registry.khronos.org/OpenGL/extensions/ARB/ARB_gpu_shader_int64.txt GL_ARB_gpu_shader_int64> -- and -- <https://github.com/KhronosGroup/GLSL/blob/master/extensions/ext/GL_EXT_shader_atomic_int64.txt GL_EXT_shader_atomic_int64> --@@ -93,7 +94,7 @@ -- -- == New SPIR-V Capabilities ----- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-Int64Atomics Int64Atomics>+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-Int64Atomics Int64Atomics> -- -- == Version History --@@ -108,7 +109,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_shader_atomic_int64 Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_shader_atomic_int64 Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_KHR_shader_clock.hs view
@@ -19,9 +19,10 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_get_physical_device_properties2@+-- - Requires @VK_KHR_get_physical_device_properties2@ to be enabled+-- for any device-level functionality -- -- [__Contact__] --@@ -42,7 +43,7 @@ -- <https://htmlpreview.github.io/?https://github.com/KhronosGroup/SPIRV-Registry/blob/master/extensions/KHR/SPV_KHR_shader_clock.html SPV_KHR_shader_clock>. -- -- - This extension provides API support for--- <https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_shader_clock.txt ARB_shader_clock>+-- <https://registry.khronos.org/OpenGL/extensions/ARB/ARB_shader_clock.txt ARB_shader_clock> -- and -- <https://github.com/KhronosGroup/GLSL/blob/master/extensions/ext/GL_EXT_shader_realtime_clock.txt EXT_shader_realtime_clock> --@@ -86,7 +87,7 @@ -- -- == New SPIR-V Capabilities ----- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-ShaderClockKHR ShaderClockKHR>+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-ShaderClockKHR ShaderClockKHR> -- -- == Version History --@@ -101,7 +102,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_shader_clock Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_shader_clock Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_KHR_shader_clock.hs-boot view
@@ -19,9 +19,10 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_get_physical_device_properties2@+-- - Requires @VK_KHR_get_physical_device_properties2@ to be enabled+-- for any device-level functionality -- -- [__Contact__] --@@ -42,7 +43,7 @@ -- <https://htmlpreview.github.io/?https://github.com/KhronosGroup/SPIRV-Registry/blob/master/extensions/KHR/SPV_KHR_shader_clock.html SPV_KHR_shader_clock>. -- -- - This extension provides API support for--- <https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_shader_clock.txt ARB_shader_clock>+-- <https://registry.khronos.org/OpenGL/extensions/ARB/ARB_shader_clock.txt ARB_shader_clock> -- and -- <https://github.com/KhronosGroup/GLSL/blob/master/extensions/ext/GL_EXT_shader_realtime_clock.txt EXT_shader_realtime_clock> --@@ -86,7 +87,7 @@ -- -- == New SPIR-V Capabilities ----- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-ShaderClockKHR ShaderClockKHR>+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-ShaderClockKHR ShaderClockKHR> -- -- == Version History --@@ -101,7 +102,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_shader_clock Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_shader_clock Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_KHR_shader_draw_parameters.hs view
@@ -19,7 +19,7 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 -- -- [__Deprecation state__] --@@ -45,7 +45,7 @@ -- <https://htmlpreview.github.io/?https://github.com/KhronosGroup/SPIRV-Registry/blob/master/extensions/KHR/SPV_KHR_shader_draw_parameters.html SPV_KHR_shader_draw_parameters> -- -- - This extension provides API support for--- <https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_shader_draw_parameters.txt GL_ARB_shader_draw_parameters>+-- <https://registry.khronos.org/OpenGL/extensions/ARB/ARB_shader_draw_parameters.txt GL_ARB_shader_draw_parameters> -- -- - Promoted to Vulkan 1.1 Core --@@ -94,10 +94,11 @@ -- -- == Promotion to Vulkan 1.1 ----- All functionality in this extension is included in core Vulkan 1.1,--- however a--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-shaderDrawParameters feature bit was added>--- to distinguish whether it is actually available or not.+-- All functionality in this extension is included in core Vulkan 1.1.+-- However, the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-shaderDrawParameters shaderDrawParameters>+-- feature bit was added to distinguish whether it is actually available or+-- not. -- -- == New Enum Constants --@@ -107,15 +108,15 @@ -- -- == New Built-In Variables ----- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-baseinstance BaseInstance>+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-baseinstance BaseInstance> ----- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-basevertex BaseVertex>+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-basevertex BaseVertex> ----- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-drawindex DrawIndex>+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-drawindex DrawIndex> -- -- == New SPIR-V Capabilities ----- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-DrawParameters DrawParameters>+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-DrawParameters DrawParameters> -- -- == Issues --@@ -149,7 +150,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_shader_draw_parameters Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_shader_draw_parameters Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_KHR_shader_float16_int8.hs view
@@ -19,9 +19,10 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_get_physical_device_properties2@+-- - Requires @VK_KHR_get_physical_device_properties2@ to be enabled+-- for any device-level functionality -- -- [__Deprecation state__] --@@ -78,7 +79,7 @@ -- requirements for half-precision floating-point SPIR-V operations. This -- extension does not enable use of 8-bit integer types or 16-bit -- floating-point types in any--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-iointerfaces shader input and output interfaces>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-iointerfaces shader input and output interfaces> -- and therefore does not supersede the @VK_KHR_8bit_storage@ or -- @VK_KHR_16bit_storage@ extensions. --@@ -126,7 +127,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_shader_float16_int8 Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_shader_float16_int8 Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_KHR_shader_float_controls.hs view
@@ -19,9 +19,10 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_get_physical_device_properties2@+-- - Requires @VK_KHR_get_physical_device_properties2@ to be enabled+-- for any device-level functionality -- -- [__Deprecation state__] --@@ -105,15 +106,15 @@ -- -- == New SPIR-V Capabilities ----- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-DenormPreserve DenormPreserve>+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-DenormPreserve DenormPreserve> ----- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-DenormFlushToZero DenormFlushToZero>+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-DenormFlushToZero DenormFlushToZero> ----- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-SignedZeroInfNanPreserve SignedZeroInfNanPreserve>+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-SignedZeroInfNanPreserve SignedZeroInfNanPreserve> ----- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-RoundingModeRTE RoundingModeRTE>+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-RoundingModeRTE RoundingModeRTE> ----- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-RoundingModeRTZ RoundingModeRTZ>+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-RoundingModeRTZ RoundingModeRTZ> -- -- == Issues --@@ -212,7 +213,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_shader_float_controls Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_shader_float_controls Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_KHR_shader_integer_dot_product.hs view
@@ -19,9 +19,10 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_get_physical_device_properties2@+-- - Requires @VK_KHR_get_physical_device_properties2@ to be enabled+-- for any device-level functionality -- -- [__Deprecation state__] --@@ -34,7 +35,7 @@ -- <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_KHR_shader_integer_dot_product] @kevinpetit%0A<<Here describe the issue or question you have about the VK_KHR_shader_integer_dot_product extension>> > -- -- [__Extension Proposal__]--- <https://github.com/KhronosGroup/Vulkan-Docs/tree/main/proposals/VK_KHR_shader_integer_dot_product.asciidoc VK_KHR_shader_integer_dot_product>+-- <https://github.com/KhronosGroup/Vulkan-Docs/tree/main/proposals/VK_KHR_shader_integer_dot_product.adoc VK_KHR_shader_integer_dot_product> -- -- == Other Extension Metadata --@@ -125,13 +126,13 @@ -- -- == New SPIR-V Capabilities ----- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-DotProductInputAllKHR DotProductInputAllKHR>+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-DotProductInputAllKHR DotProductInputAllKHR> ----- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-DotProductInput4x8BitKHR DotProductInput4x8BitKHR>+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-DotProductInput4x8BitKHR DotProductInput4x8BitKHR> ----- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-DotProductInput4x8BitPackedKHR DotProductInput4x8BitPackedKHR>+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-DotProductInput4x8BitPackedKHR DotProductInput4x8BitPackedKHR> ----- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-DotProductKHR DotProductKHR>+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-DotProductKHR DotProductKHR> -- -- == Version History --@@ -147,7 +148,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_shader_integer_dot_product Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_shader_integer_dot_product Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_KHR_shader_non_semantic_info.hs view
@@ -19,7 +19,7 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 -- -- [__Deprecation state__] --@@ -66,7 +66,7 @@ -- Functionality in this extension is included in core Vulkan 1.3 Because -- the extension has no API controlling its functionality, this results -- only in a change to the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-extensions-table SPIR-V Extensions table>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-extensions-table SPIR-V Extensions table>. -- -- == Version History --@@ -81,7 +81,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_shader_non_semantic_info Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_shader_non_semantic_info Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_KHR_shader_subgroup_extended_types.hs view
@@ -19,7 +19,7 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.1+-- - Requires support for Vulkan 1.1 -- -- [__Deprecation state__] --@@ -107,7 +107,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_shader_subgroup_extended_types Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_shader_subgroup_extended_types Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_KHR_shader_subgroup_uniform_control_flow.hs view
@@ -19,7 +19,7 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.1+-- - Requires support for Vulkan 1.1 -- -- [__Contact__] --@@ -61,7 +61,7 @@ -- to reduce the work performed by a uniform subgroup. This extension will -- guarantee that uniform subgroup will reconverge in the same manner as -- invocation groups (see “Uniform Control Flow” in the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirv-spec Khronos SPIR-V Specification>).+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#spirv-spec Khronos SPIR-V Specification>). -- -- == New Structures --@@ -94,7 +94,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_shader_subgroup_uniform_control_flow Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_shader_subgroup_uniform_control_flow Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_KHR_shader_subgroup_uniform_control_flow.hs-boot view
@@ -19,7 +19,7 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.1+-- - Requires support for Vulkan 1.1 -- -- [__Contact__] --@@ -61,7 +61,7 @@ -- to reduce the work performed by a uniform subgroup. This extension will -- guarantee that uniform subgroup will reconverge in the same manner as -- invocation groups (see “Uniform Control Flow” in the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirv-spec Khronos SPIR-V Specification>).+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#spirv-spec Khronos SPIR-V Specification>). -- -- == New Structures --@@ -94,7 +94,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_shader_subgroup_uniform_control_flow Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_shader_subgroup_uniform_control_flow Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_KHR_shader_terminate_invocation.hs view
@@ -19,9 +19,10 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_get_physical_device_properties2@+-- - Requires @VK_KHR_get_physical_device_properties2@ to be enabled+-- for any device-level functionality -- -- [__Deprecation state__] --@@ -112,7 +113,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_shader_terminate_invocation Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_shader_terminate_invocation Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
@@ -19,13 +19,16 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_swapchain@+-- - Requires @VK_KHR_swapchain@ to be enabled for any device-level+-- functionality ----- - Requires @VK_KHR_get_physical_device_properties2@+-- - Requires @VK_KHR_get_physical_device_properties2@ to be enabled+-- for any device-level functionality ----- - Requires @VK_KHR_get_surface_capabilities2@+-- - Requires @VK_KHR_get_surface_capabilities2@ to be enabled for+-- any device-level functionality -- -- [__Contact__] --@@ -212,7 +215,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_shared_presentable_image Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_shared_presentable_image Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
@@ -19,13 +19,16 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_swapchain@+-- - Requires @VK_KHR_swapchain@ to be enabled for any device-level+-- functionality ----- - Requires @VK_KHR_get_physical_device_properties2@+-- - Requires @VK_KHR_get_physical_device_properties2@ to be enabled+-- for any device-level functionality ----- - Requires @VK_KHR_get_surface_capabilities2@+-- - Requires @VK_KHR_get_surface_capabilities2@ to be enabled for+-- any device-level functionality -- -- [__Contact__] --@@ -212,7 +215,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_shared_presentable_image Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_shared_presentable_image Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_KHR_spirv_1_4.hs view
@@ -19,9 +19,10 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.1+-- - Requires support for Vulkan 1.1 ----- - Requires @VK_KHR_shader_float_controls@+-- - Requires @VK_KHR_shader_float_controls@ to be enabled for any+-- device-level functionality -- -- [__Deprecation state__] --@@ -166,7 +167,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_spirv_1_4 Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_spirv_1_4 Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_KHR_storage_buffer_storage_class.hs view
@@ -19,7 +19,7 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 -- -- [__Deprecation state__] --@@ -86,7 +86,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_storage_buffer_storage_class Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_storage_buffer_storage_class Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_KHR_surface.hs view
@@ -19,7 +19,7 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 -- -- [__Contact__] --@@ -367,7 +367,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_surface Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_surface Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.@@ -572,7 +572,7 @@ SurfaceKHR -> -- | @pAllocator@ is the allocator used for host memory allocated for the -- surface object when there is no more specific allocator available (see- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>).+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>). ("allocator" ::: Maybe AllocationCallbacks) -> io () destroySurfaceKHR instance' surface allocator = liftIO . evalContT $ do@@ -1363,6 +1363,11 @@ -- XYZ. The old name is deprecated but is maintained for backwards -- compatibility. --+-- Note+--+-- For a traditional \"Linear\" or non-gamma transfer function color space+-- use 'COLOR_SPACE_PASS_THROUGH_EXT'.+-- -- The color components of non-linear color space swap chain images /must/ -- have had the appropriate transfer function applied. The color space -- selected for the swap chain image will not affect the processing of data@@ -1416,7 +1421,7 @@ -- -- The transfer functions are described in the “Transfer Functions” chapter -- of the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#data-format Khronos Data Format Specification>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#data-format Khronos Data Format Specification>. -- -- Except Display-P3 OETF, which is: --
src/Vulkan/Extensions/VK_KHR_surface.hs-boot view
@@ -19,7 +19,7 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 -- -- [__Contact__] --@@ -367,7 +367,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_surface Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_surface Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_KHR_surface_protected_capabilities.hs view
@@ -19,9 +19,9 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.1+-- - Requires support for Vulkan 1.1 ----- - Requires @VK_KHR_get_surface_capabilities2@+-- - Requires @VK_KHR_get_surface_capabilities2@ to be enabled -- -- [__Contact__] --@@ -103,7 +103,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_surface_protected_capabilities Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_surface_protected_capabilities Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_KHR_surface_protected_capabilities.hs-boot view
@@ -19,9 +19,9 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.1+-- - Requires support for Vulkan 1.1 ----- - Requires @VK_KHR_get_surface_capabilities2@+-- - Requires @VK_KHR_get_surface_capabilities2@ to be enabled -- -- [__Contact__] --@@ -103,7 +103,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_surface_protected_capabilities Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_surface_protected_capabilities Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_KHR_swapchain.hs view
@@ -19,9 +19,10 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_surface@+-- - Requires @VK_KHR_surface@ to be enabled for any device-level+-- functionality -- -- [__Contact__] --@@ -705,8 +706,8 @@ -- -- - Revision 17, 2015-06-15 (Ian Elliott) ----- - Changed special value from \"-1\" to \"0\" so that the data--- types can be unsigned.+-- - Changed special value from “-1” to “0” so that the data types+-- can be unsigned. -- -- - Revision 18, 2015-06-15 (Ian Elliott) --@@ -720,8 +721,8 @@ -- - Fixed clarification of VkSurfacePropertiesKHR::minImageCount -- made in version 18. ----- - Added a brief \"Image Ownership\" definition to the list of--- terms used in the spec.+-- - Added a brief “Image Ownership” definition to the list of terms+-- used in the spec. -- -- - Revision 20, 2015-06-17 (James Jones) --@@ -1069,7 +1070,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_swapchain Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_swapchain Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.@@ -1206,6 +1207,7 @@ import Vulkan.Core10.Enums.Format (Format) import Vulkan.Core10.Handles (Image) import Vulkan.Core10.Handles (Image(..))+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_image_compression_control (ImageCompressionControlEXT) import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_image_format_list (ImageFormatListCreateInfo) import Vulkan.Core10.Enums.ImageUsageFlagBits (ImageUsageFlags) import Vulkan.Dynamic (InstanceCmds(pVkGetPhysicalDevicePresentRectanglesKHR))@@ -1345,7 +1347,7 @@ -- 'createSwapchainKHR' will return -- 'Vulkan.Core10.Enums.Result.ERROR_DEVICE_LOST' if the logical device was -- lost. The 'Vulkan.Extensions.Handles.SwapchainKHR' is a child of the--- @device@, and /must/ not be destroyed before the @device@. However,+-- @device@, and /must/ be destroyed before the @device@. However, -- 'Vulkan.Extensions.Handles.SurfaceKHR' is not a child of any -- 'Vulkan.Core10.Handles.Device' and is not affected by the lost device. -- After successfully recreating a 'Vulkan.Core10.Handles.Device', the same@@ -1434,6 +1436,8 @@ -- -- - 'Vulkan.Core10.Enums.Result.ERROR_INITIALIZATION_FAILED' --+-- - 'Vulkan.Core10.Enums.Result.ERROR_COMPRESSION_EXHAUSTED_EXT'+-- -- = See Also -- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_swapchain VK_KHR_swapchain>,@@ -1449,7 +1453,7 @@ (SwapchainCreateInfoKHR a) -> -- | @pAllocator@ is the allocator used for host memory allocated for the -- swapchain object when there is no more specific allocator available (see- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>).+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>). ("allocator" ::: Maybe AllocationCallbacks) -> io (SwapchainKHR) createSwapchainKHR device createInfo allocator = liftIO . evalContT $ do@@ -1566,7 +1570,7 @@ SwapchainKHR -> -- | @pAllocator@ is the allocator used for host memory allocated for the -- swapchain object when there is no more specific allocator available (see- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>).+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>). ("allocator" ::: Maybe AllocationCallbacks) -> io () destroySwapchainKHR device swapchain allocator = liftIO . evalContT $ do@@ -1898,7 +1902,7 @@ -- - #VUID-vkQueuePresentKHR-pWaitSemaphores-01295# All elements of the -- @pWaitSemaphores@ member of @pPresentInfo@ /must/ be semaphores that -- are signaled, or have--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-semaphores-signaling semaphore signal operations>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-semaphores-signaling semaphore signal operations> -- previously submitted for execution -- -- - #VUID-vkQueuePresentKHR-pWaitSemaphores-03267# All elements of the@@ -1989,11 +1993,11 @@ -- -- \' ----- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | - | - | Any |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================++-- | - | - | - | Any |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+ -- -- == Return Codes --@@ -2579,7 +2583,7 @@ -- referred to by @surface@ -- -- - #VUID-VkSwapchainCreateInfoKHR-imageFormat-01778# The--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#swapchain-wsi-image-create-info implied image creation parameters>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#swapchain-wsi-image-create-info implied image creation parameters> -- of the swapchain /must/ be supported as reported by -- 'Vulkan.Core10.DeviceInitialization.getPhysicalDeviceImageFormatProperties' --@@ -2597,7 +2601,7 @@ -- is not zero then all of the formats in -- 'Vulkan.Core12.Promoted_From_VK_KHR_image_format_list.ImageFormatListCreateInfo'::@pViewFormats@ -- /must/ be compatible with the @format@ as described in the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#formats-compatibility compatibility table>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#formats-compatibility compatibility table> -- -- - #VUID-VkSwapchainCreateInfoKHR-flags-04100# If @flags@ does not -- contain 'SWAPCHAIN_CREATE_MUTABLE_FORMAT_BIT_KHR' and the @pNext@@@ -2626,6 +2630,12 @@ -- 'Vulkan.Extensions.VK_EXT_full_screen_exclusive.SurfaceFullScreenExclusiveWin32InfoEXT' -- structure /must/ be included in the @pNext@ chain --+-- - #VUID-VkSwapchainCreateInfoKHR-pNext-06752# If the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-imageCompressionControlSwapchain imageCompressionControlSwapchain>+-- feature is not enabled, the @pNext@ chain /must/ not include an+-- 'Vulkan.Extensions.VK_EXT_image_compression_control.ImageCompressionControlEXT'+-- structure+-- -- == Valid Usage (Implicit) -- -- - #VUID-VkSwapchainCreateInfoKHR-sType-sType# @sType@ /must/ be@@ -2635,6 +2645,7 @@ -- any structure (including this one) in the @pNext@ chain /must/ be -- either @NULL@ or a pointer to a valid instance of -- 'DeviceGroupSwapchainCreateInfoKHR',+-- 'Vulkan.Extensions.VK_EXT_image_compression_control.ImageCompressionControlEXT', -- 'Vulkan.Core12.Promoted_From_VK_KHR_image_format_list.ImageFormatListCreateInfo', -- 'Vulkan.Extensions.VK_EXT_full_screen_exclusive.SurfaceFullScreenExclusiveInfoEXT', -- 'Vulkan.Extensions.VK_EXT_full_screen_exclusive.SurfaceFullScreenExclusiveWin32InfoEXT',@@ -2822,6 +2833,7 @@ getNext SwapchainCreateInfoKHR{..} = next extends :: forall e b proxy. Typeable e => proxy e -> (Extends SwapchainCreateInfoKHR e => b) -> Maybe b extends _ f+ | Just Refl <- eqT @e @ImageCompressionControlEXT = Just f | Just Refl <- eqT @e @SurfaceFullScreenExclusiveWin32InfoEXT = Just f | Just Refl <- eqT @e @SurfaceFullScreenExclusiveInfoEXT = Just f | Just Refl <- eqT @e @ImageFormatListCreateInfo = Just f@@ -2958,7 +2970,7 @@ -- - #VUID-VkPresentInfoKHR-pNext-06235# If a -- 'Vulkan.Extensions.VK_KHR_present_id.PresentIdKHR' structure is -- included in the @pNext@ chain, and the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-presentId presentId>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-presentId presentId> -- feature is not enabled, each @presentIds@ entry in that structure -- /must/ be NULL --@@ -3200,7 +3212,7 @@ -- - #VUID-VkImageSwapchainCreateInfoKHR-swapchain-00995# If @swapchain@ -- is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the fields of -- 'Vulkan.Core10.Image.ImageCreateInfo' /must/ match the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#swapchain-wsi-image-create-info implied image creation parameters>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#swapchain-wsi-image-create-info implied image creation parameters> -- of the swapchain -- -- == Valid Usage (Implicit)
src/Vulkan/Extensions/VK_KHR_swapchain.hs-boot view
@@ -19,9 +19,10 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_surface@+-- - Requires @VK_KHR_surface@ to be enabled for any device-level+-- functionality -- -- [__Contact__] --@@ -705,8 +706,8 @@ -- -- - Revision 17, 2015-06-15 (Ian Elliott) ----- - Changed special value from \"-1\" to \"0\" so that the data--- types can be unsigned.+-- - Changed special value from “-1” to “0” so that the data types+-- can be unsigned. -- -- - Revision 18, 2015-06-15 (Ian Elliott) --@@ -720,8 +721,8 @@ -- - Fixed clarification of VkSurfacePropertiesKHR::minImageCount -- made in version 18. ----- - Added a brief \"Image Ownership\" definition to the list of--- terms used in the spec.+-- - Added a brief “Image Ownership” definition to the list of terms+-- used in the spec. -- -- - Revision 20, 2015-06-17 (James Jones) --@@ -1069,7 +1070,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_swapchain Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_swapchain Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_KHR_swapchain_mutable_format.hs view
@@ -19,13 +19,16 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_swapchain@+-- - Requires @VK_KHR_swapchain@ to be enabled for any device-level+-- functionality ----- - Requires @VK_KHR_maintenance2@+-- - Requires @VK_KHR_maintenance2@ to be enabled for any+-- device-level functionality ----- - Requires @VK_KHR_image_format_list@+-- - Requires @VK_KHR_image_format_list@ to be enabled for any+-- device-level functionality -- -- [__Contact__] --@@ -114,7 +117,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_swapchain_mutable_format Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_swapchain_mutable_format Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_KHR_synchronization2.hs view
@@ -19,9 +19,10 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_get_physical_device_properties2@+-- - Requires @VK_KHR_get_physical_device_properties2@ to be enabled+-- for any device-level functionality -- -- [__Deprecation state__] --@@ -287,6 +288,17 @@ -- - 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT' -- -- If+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_mesh_shader VK_EXT_mesh_shader>+-- is supported:+--+-- - Extending+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PipelineStageFlagBits2':+--+-- - 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_MESH_SHADER_BIT_EXT'+--+-- - 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TASK_SHADER_BIT_EXT'+--+-- If -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_transform_feedback VK_EXT_transform_feedback> -- is supported: --@@ -372,9 +384,9 @@ -- - Extending -- 'Vulkan.Core13.Enums.PipelineStageFlags2.PipelineStageFlagBits2': ----- - 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_MESH_SHADER_BIT_NV'+-- - 'PIPELINE_STAGE_2_MESH_SHADER_BIT_NV' ----- - 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TASK_SHADER_BIT_NV'+-- - 'PIPELINE_STAGE_2_TASK_SHADER_BIT_NV' -- -- If -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_ray_tracing VK_NV_ray_tracing>@@ -438,7 +450,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_synchronization2 Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_synchronization2 Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.@@ -463,6 +475,8 @@ , pattern PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_NV , pattern ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_NV , pattern ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_NV+ , pattern PIPELINE_STAGE_2_TASK_SHADER_BIT_NV+ , pattern PIPELINE_STAGE_2_MESH_SHADER_BIT_NV , cmdSetEvent2KHR , cmdResetEvent2KHR , cmdWaitEvents2KHR@@ -580,7 +594,11 @@ import Vulkan.Core13.Enums.PipelineStageFlags2 (PipelineStageFlags2) import Vulkan.Core13.Enums.PipelineStageFlags2 (PipelineStageFlagBits2(PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR)) import Vulkan.Core13.Enums.PipelineStageFlags2 (PipelineStageFlags2)+import Vulkan.Core13.Enums.PipelineStageFlags2 (PipelineStageFlagBits2(PIPELINE_STAGE_2_MESH_SHADER_BIT_EXT))+import Vulkan.Core13.Enums.PipelineStageFlags2 (PipelineStageFlags2) import Vulkan.Core13.Enums.PipelineStageFlags2 (PipelineStageFlagBits2(PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR))+import Vulkan.Core13.Enums.PipelineStageFlags2 (PipelineStageFlags2)+import Vulkan.Core13.Enums.PipelineStageFlags2 (PipelineStageFlagBits2(PIPELINE_STAGE_2_TASK_SHADER_BIT_EXT)) import Vulkan.Core10.Enums.PipelineStageFlagBits (PipelineStageFlags) import Vulkan.Core10.Enums.PipelineStageFlagBits (PipelineStageFlagBits(PIPELINE_STAGE_NONE)) import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2))@@ -638,59 +656,59 @@ -- == Valid Usage -- -- - #VUID-vkCmdWriteBufferMarker2AMD-stage-03929# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryShader geometry shaders>+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryShader geometryShader> -- feature is not enabled, @stage@ /must/ not contain -- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT' -- -- - #VUID-vkCmdWriteBufferMarker2AMD-stage-03930# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShader tessellation shaders>+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShader tessellationShader> -- feature is not enabled, @stage@ /must/ not contain -- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT' -- or -- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT' -- -- - #VUID-vkCmdWriteBufferMarker2AMD-stage-03931# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-conditionalRendering conditional rendering>+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-conditionalRendering conditionalRendering> -- feature is not enabled, @stage@ /must/ not contain -- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT' -- -- - #VUID-vkCmdWriteBufferMarker2AMD-stage-03932# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-fragmentDensityMap fragment density map>+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-fragmentDensityMap fragmentDensityMap> -- feature is not enabled, @stage@ /must/ not contain -- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT' -- -- - #VUID-vkCmdWriteBufferMarker2AMD-stage-03933# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-transformFeedback transform feedback>+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-transformFeedback transformFeedback> -- feature is not enabled, @stage@ /must/ not contain -- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT' -- -- - #VUID-vkCmdWriteBufferMarker2AMD-stage-03934# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader mesh shaders>+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader> -- feature is not enabled, @stage@ /must/ not contain--- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_MESH_SHADER_BIT_NV'+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_MESH_SHADER_BIT_EXT' -- -- - #VUID-vkCmdWriteBufferMarker2AMD-stage-03935# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader task shaders>+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader> -- feature is not enabled, @stage@ /must/ not contain--- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TASK_SHADER_BIT_NV'+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TASK_SHADER_BIT_EXT' -- -- - #VUID-vkCmdWriteBufferMarker2AMD-stage-04956# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shading rate image>+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage> -- feature is not enabled, @stage@ /must/ not contain -- 'PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV' -- -- - #VUID-vkCmdWriteBufferMarker2AMD-stage-04957# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-subpassShading subpass shading>+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-subpassShading subpassShading> -- feature is not enabled, @stage@ /must/ not contain -- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI' -- -- - #VUID-vkCmdWriteBufferMarker2AMD-stage-04995# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-invocationMask invocation mask image>+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-invocationMask invocationMask> -- feature is not enabled, @stage@ /must/ not contain -- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI' -- -- - #VUID-vkCmdWriteBufferMarker2AMD-synchronization2-03893# The--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-synchronization2 synchronization2>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-synchronization2 synchronization2> -- feature /must/ be enabled -- -- - #VUID-vkCmdWriteBufferMarker2AMD-stage-03894# @stage@ /must/ include@@ -738,6 +756,9 @@ -- allocated from /must/ support transfer, graphics, or compute -- operations --+-- - #VUID-vkCmdWriteBufferMarker2AMD-videocoding# This command /must/+-- only be called outside of a video coding scope+-- -- - #VUID-vkCmdWriteBufferMarker2AMD-commonparent# Both of -- @commandBuffer@, and @dstBuffer@ /must/ have been created, -- allocated, or retrieved from the same 'Vulkan.Core10.Handles.Device'@@ -753,13 +774,13 @@ -- -- \' ----- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | Primary | Both | Transfer |--- | Secondary | | Graphics |--- | | | Compute |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================++-- | Primary | Both | Outside | Transfer |+-- | Secondary | | | Graphics |+-- | | | | Compute |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+ -- -- = See Also --@@ -936,6 +957,14 @@ -- No documentation found for TopLevel "VK_ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_NV" pattern ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_NV = ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_KHR+++-- No documentation found for TopLevel "VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_NV"+pattern PIPELINE_STAGE_2_TASK_SHADER_BIT_NV = PIPELINE_STAGE_2_TASK_SHADER_BIT_EXT+++-- No documentation found for TopLevel "VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_NV"+pattern PIPELINE_STAGE_2_MESH_SHADER_BIT_NV = PIPELINE_STAGE_2_MESH_SHADER_BIT_EXT -- No documentation found for TopLevel "vkCmdSetEvent2KHR"
src/Vulkan/Extensions/VK_KHR_synchronization2.hs-boot view
@@ -19,9 +19,10 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_get_physical_device_properties2@+-- - Requires @VK_KHR_get_physical_device_properties2@ to be enabled+-- for any device-level functionality -- -- [__Deprecation state__] --@@ -287,6 +288,17 @@ -- - 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT' -- -- If+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_mesh_shader VK_EXT_mesh_shader>+-- is supported:+--+-- - Extending+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PipelineStageFlagBits2':+--+-- - 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_MESH_SHADER_BIT_EXT'+--+-- - 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TASK_SHADER_BIT_EXT'+--+-- If -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_transform_feedback VK_EXT_transform_feedback> -- is supported: --@@ -372,9 +384,9 @@ -- - Extending -- 'Vulkan.Core13.Enums.PipelineStageFlags2.PipelineStageFlagBits2': ----- - 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_MESH_SHADER_BIT_NV'+-- - 'PIPELINE_STAGE_2_MESH_SHADER_BIT_NV' ----- - 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TASK_SHADER_BIT_NV'+-- - 'PIPELINE_STAGE_2_TASK_SHADER_BIT_NV' -- -- If -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_ray_tracing VK_NV_ray_tracing>@@ -438,7 +450,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_synchronization2 Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_synchronization2 Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_KHR_timeline_semaphore.hs view
@@ -19,9 +19,10 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_get_physical_device_properties2@+-- - Requires @VK_KHR_get_physical_device_properties2@ to be enabled+-- for any device-level functionality -- -- [__Deprecation state__] --@@ -199,7 +200,7 @@ -- -- __RESOLVED__: No, allowing the payload value to “go backwards” is -- problematic. Applications looking for reset behavior should create a new--- instance of the sychronization primitive instead.+-- instance of the synchronization primitive instead. -- -- 5) How do we enable host waits on the synchronization primitive? --@@ -283,7 +284,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_timeline_semaphore Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_timeline_semaphore Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_KHR_uniform_buffer_standard_layout.hs view
@@ -19,9 +19,10 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_get_physical_device_properties2@+-- - Requires @VK_KHR_get_physical_device_properties2@ to be enabled+-- for any device-level functionality -- -- [__Deprecation state__] --@@ -62,7 +63,7 @@ -- It modifies the alignment rules for uniform buffers, allowing for -- tighter packing of arrays and structures. This allows, for example, the -- std430 layout, as defined in--- <https://www.khronos.org/registry/OpenGL/specs/gl/GLSLangSpec.4.60.pdf GLSL>+-- <https://registry.khronos.org/OpenGL/specs/gl/GLSLangSpec.4.60.pdf GLSL> -- to be supported in uniform buffers. -- -- == Promotion to Vulkan 1.2@@ -102,7 +103,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_uniform_buffer_standard_layout Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_uniform_buffer_standard_layout Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_KHR_variable_pointers.hs view
@@ -19,11 +19,13 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_get_physical_device_properties2@+-- - Requires @VK_KHR_get_physical_device_properties2@ to be enabled+-- for any device-level functionality ----- - Requires @VK_KHR_storage_buffer_storage_class@+-- - Requires @VK_KHR_storage_buffer_storage_class@ to be enabled for+-- any device-level functionality -- -- [__Deprecation state__] --@@ -87,7 +89,7 @@ -- -- All functionality in this extension is included in core Vulkan 1.1, with -- the KHR suffix omitted, however support for the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-variablePointersStorageBuffer variablePointersStorageBuffer>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-variablePointersStorageBuffer variablePointersStorageBuffer> -- feature is made optional. The original type, enum and command names are -- still available as aliases of the core functionality. --@@ -115,9 +117,9 @@ -- -- == New SPIR-V Capabilities ----- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-VariablePointers VariablePointers>+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-VariablePointers VariablePointers> ----- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-VariablePointersStorageBuffer VariablePointersStorageBuffer>+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-VariablePointersStorageBuffer VariablePointersStorageBuffer> -- -- == Issues --@@ -155,7 +157,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_variable_pointers Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_variable_pointers Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_KHR_vulkan_memory_model.hs view
@@ -19,7 +19,7 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 -- -- [__Deprecation state__] --@@ -63,7 +63,7 @@ -- == Description -- -- The @VK_KHR_vulkan_memory_model@ extension allows use of the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-model Vulkan Memory Model>,+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-model Vulkan Memory Model>, -- which formally defines how to synchronize memory accesses to the same -- memory locations performed by multiple shader invocations. --@@ -102,7 +102,7 @@ -- -- == New SPIR-V Capabilities ----- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-VulkanMemoryModel VulkanMemoryModelKHR>+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-VulkanMemoryModel VulkanMemoryModelKHR> -- -- == Version History --@@ -122,7 +122,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_vulkan_memory_model Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_vulkan_memory_model Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_KHR_wayland_surface.hs view
@@ -19,9 +19,9 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_surface@+-- - Requires @VK_KHR_surface@ to be enabled -- -- [__Contact__] --@@ -182,7 +182,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_wayland_surface Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_wayland_surface Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.@@ -322,7 +322,7 @@ WaylandSurfaceCreateInfoKHR -> -- | @pAllocator@ is the allocator used for host memory allocated for the -- surface object when there is no more specific allocator available (see- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>).+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>). ("allocator" ::: Maybe AllocationCallbacks) -> io (SurfaceKHR) createWaylandSurfaceKHR instance' createInfo allocator = liftIO . evalContT $ do
src/Vulkan/Extensions/VK_KHR_wayland_surface.hs-boot view
@@ -19,9 +19,9 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_surface@+-- - Requires @VK_KHR_surface@ to be enabled -- -- [__Contact__] --@@ -182,7 +182,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_wayland_surface Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_wayland_surface Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_KHR_win32_keyed_mutex.hs view
@@ -19,9 +19,10 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_external_memory_win32@+-- - Requires @VK_KHR_external_memory_win32@ to be enabled for any+-- device-level functionality -- -- [__Contact__] --@@ -83,7 +84,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_win32_keyed_mutex Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_win32_keyed_mutex Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_KHR_win32_keyed_mutex.hs-boot view
@@ -19,9 +19,10 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_external_memory_win32@+-- - Requires @VK_KHR_external_memory_win32@ to be enabled for any+-- device-level functionality -- -- [__Contact__] --@@ -83,7 +84,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_win32_keyed_mutex Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_win32_keyed_mutex Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_KHR_win32_surface.hs view
@@ -19,9 +19,9 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_surface@+-- - Requires @VK_KHR_surface@ to be enabled -- -- [__Contact__] --@@ -208,7 +208,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_win32_surface Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_win32_surface Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.@@ -347,7 +347,7 @@ Win32SurfaceCreateInfoKHR -> -- | @pAllocator@ is the allocator used for host memory allocated for the -- surface object when there is no more specific allocator available (see- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>).+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>). ("allocator" ::: Maybe AllocationCallbacks) -> io (SurfaceKHR) createWin32SurfaceKHR instance' createInfo allocator = liftIO . evalContT $ do
src/Vulkan/Extensions/VK_KHR_win32_surface.hs-boot view
@@ -19,9 +19,9 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_surface@+-- - Requires @VK_KHR_surface@ to be enabled -- -- [__Contact__] --@@ -208,7 +208,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_win32_surface Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_win32_surface Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_KHR_workgroup_memory_explicit_layout.hs view
@@ -19,9 +19,10 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_get_physical_device_properties2@+-- - Requires @VK_KHR_get_physical_device_properties2@ to be enabled+-- for any device-level functionality -- -- [__Contact__] --@@ -94,11 +95,11 @@ -- -- == New SPIR-V Capabilities ----- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-WorkgroupMemoryExplicitLayoutKHR WorkgroupMemoryExplicitLayoutKHR>+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-WorkgroupMemoryExplicitLayoutKHR WorkgroupMemoryExplicitLayoutKHR> ----- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-WorkgroupMemoryExplicitLayout8BitAccessKHR WorkgroupMemoryExplicitLayout8BitAccessKHR>+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-WorkgroupMemoryExplicitLayout8BitAccessKHR WorkgroupMemoryExplicitLayout8BitAccessKHR> ----- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-WorkgroupMemoryExplicitLayout16BitAccessKHR WorkgroupMemoryExplicitLayout16BitAccessKHR>+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-WorkgroupMemoryExplicitLayout16BitAccessKHR WorkgroupMemoryExplicitLayout16BitAccessKHR> -- -- == Version History --@@ -113,7 +114,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_workgroup_memory_explicit_layout Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_workgroup_memory_explicit_layout Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_KHR_workgroup_memory_explicit_layout.hs-boot view
@@ -19,9 +19,10 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_get_physical_device_properties2@+-- - Requires @VK_KHR_get_physical_device_properties2@ to be enabled+-- for any device-level functionality -- -- [__Contact__] --@@ -94,11 +95,11 @@ -- -- == New SPIR-V Capabilities ----- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-WorkgroupMemoryExplicitLayoutKHR WorkgroupMemoryExplicitLayoutKHR>+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-WorkgroupMemoryExplicitLayoutKHR WorkgroupMemoryExplicitLayoutKHR> ----- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-WorkgroupMemoryExplicitLayout8BitAccessKHR WorkgroupMemoryExplicitLayout8BitAccessKHR>+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-WorkgroupMemoryExplicitLayout8BitAccessKHR WorkgroupMemoryExplicitLayout8BitAccessKHR> ----- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-WorkgroupMemoryExplicitLayout16BitAccessKHR WorkgroupMemoryExplicitLayout16BitAccessKHR>+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-WorkgroupMemoryExplicitLayout16BitAccessKHR WorkgroupMemoryExplicitLayout16BitAccessKHR> -- -- == Version History --@@ -113,7 +114,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_workgroup_memory_explicit_layout Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_workgroup_memory_explicit_layout Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_KHR_xcb_surface.hs view
@@ -19,9 +19,9 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_surface@+-- - Requires @VK_KHR_surface@ to be enabled -- -- [__Contact__] --@@ -164,7 +164,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_xcb_surface Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_xcb_surface Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.@@ -303,7 +303,7 @@ XcbSurfaceCreateInfoKHR -> -- | @pAllocator@ is the allocator used for host memory allocated for the -- surface object when there is no more specific allocator available (see- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>).+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>). ("allocator" ::: Maybe AllocationCallbacks) -> io (SurfaceKHR) createXcbSurfaceKHR instance' createInfo allocator = liftIO . evalContT $ do
src/Vulkan/Extensions/VK_KHR_xcb_surface.hs-boot view
@@ -19,9 +19,9 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_surface@+-- - Requires @VK_KHR_surface@ to be enabled -- -- [__Contact__] --@@ -164,7 +164,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_xcb_surface Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_xcb_surface Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_KHR_xlib_surface.hs view
@@ -19,9 +19,9 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_surface@+-- - Requires @VK_KHR_surface@ to be enabled -- -- [__Contact__] --@@ -164,7 +164,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_xlib_surface Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_xlib_surface Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.@@ -305,7 +305,7 @@ XlibSurfaceCreateInfoKHR -> -- | @pAllocator@ is the allocator used for host memory allocated for the -- surface object when there is no more specific allocator available (see- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>).+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>). ("allocator" ::: Maybe AllocationCallbacks) -> io (SurfaceKHR) createXlibSurfaceKHR instance' createInfo allocator = liftIO . evalContT $ do
src/Vulkan/Extensions/VK_KHR_xlib_surface.hs-boot view
@@ -19,9 +19,9 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_surface@+-- - Requires @VK_KHR_surface@ to be enabled -- -- [__Contact__] --@@ -164,7 +164,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_xlib_surface Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_xlib_surface Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_KHR_zero_initialize_workgroup_memory.hs view
@@ -19,9 +19,10 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_get_physical_device_properties2@+-- - Requires @VK_KHR_get_physical_device_properties2@ to be enabled+-- for any device-level functionality -- -- [__Deprecation state__] --@@ -98,7 +99,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_zero_initialize_workgroup_memory Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_zero_initialize_workgroup_memory Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_MVK_ios_surface.hs view
@@ -19,9 +19,9 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_surface@+-- - Requires @VK_KHR_surface@ to be enabled -- -- [__Deprecation state__] --@@ -94,7 +94,7 @@ -- -- - Revision 3, 2020-07-31 (Bill Hollings) ----- - Update documentation on requirements for UIView.+-- - Update documentation on requirements for @UIView@. -- -- - Mark as deprecated by @VK_EXT_metal_surface@. --@@ -106,7 +106,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_MVK_ios_surface Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_MVK_ios_surface Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.@@ -207,7 +207,7 @@ -- - @pAllocator@ is the allocator used for host memory allocated for the -- surface object when there is no more specific allocator available -- (see--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>).+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>). -- -- - @pSurface@ is a pointer to a 'Vulkan.Extensions.Handles.SurfaceKHR' -- handle in which the created surface object is returned.
src/Vulkan/Extensions/VK_MVK_ios_surface.hs-boot view
@@ -19,9 +19,9 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_surface@+-- - Requires @VK_KHR_surface@ to be enabled -- -- [__Deprecation state__] --@@ -94,7 +94,7 @@ -- -- - Revision 3, 2020-07-31 (Bill Hollings) ----- - Update documentation on requirements for UIView.+-- - Update documentation on requirements for @UIView@. -- -- - Mark as deprecated by @VK_EXT_metal_surface@. --@@ -106,7 +106,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_MVK_ios_surface Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_MVK_ios_surface Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_MVK_macos_surface.hs view
@@ -19,9 +19,9 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_surface@+-- - Requires @VK_KHR_surface@ to be enabled -- -- [__Deprecation state__] --@@ -106,7 +106,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_MVK_macos_surface Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_MVK_macos_surface Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.@@ -209,7 +209,7 @@ -- - @pAllocator@ is the allocator used for host memory allocated for the -- surface object when there is no more specific allocator available -- (see--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>).+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>). -- -- - @pSurface@ is a pointer to a 'Vulkan.Extensions.Handles.SurfaceKHR' -- handle in which the created surface object is returned.
src/Vulkan/Extensions/VK_MVK_macos_surface.hs-boot view
@@ -19,9 +19,9 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_surface@+-- - Requires @VK_KHR_surface@ to be enabled -- -- [__Deprecation state__] --@@ -106,7 +106,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_MVK_macos_surface Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_MVK_macos_surface Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_NN_vi_surface.hs view
@@ -19,9 +19,9 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_surface@+-- - Requires @VK_KHR_surface@ to be enabled -- -- [__Contact__] --@@ -105,7 +105,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NN_vi_surface Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NN_vi_surface Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.@@ -249,7 +249,7 @@ ViSurfaceCreateInfoNN -> -- | @pAllocator@ is the allocator used for host memory allocated for the -- surface object when there is no more specific allocator available (see- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>).+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>). ("allocator" ::: Maybe AllocationCallbacks) -> io (SurfaceKHR) createViSurfaceNN instance' createInfo allocator = liftIO . evalContT $ do
src/Vulkan/Extensions/VK_NN_vi_surface.hs-boot view
@@ -19,9 +19,9 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_surface@+-- - Requires @VK_KHR_surface@ to be enabled -- -- [__Contact__] --@@ -105,7 +105,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NN_vi_surface Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NN_vi_surface Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_NVX_binary_import.hs view
@@ -19,7 +19,7 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 -- -- [__Contact__] --@@ -327,6 +327,9 @@ -- 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was -- allocated from /must/ support graphics, or compute operations --+-- - #VUID-vkCmdCuLaunchKernelNVX-videocoding# This command /must/ only+-- be called outside of a video coding scope+-- -- === Host Synchronization -- -- - Host access to the 'Vulkan.Core10.Handles.CommandPool' that@@ -336,12 +339,12 @@ -- -- \' ----- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | Primary | Both | Graphics |--- | Secondary | | Compute |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================++-- | Primary | Both | Outside | Graphics |+-- | Secondary | | | Compute |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+ -- -- There is currently no specification language written for this type. This -- section acts only as placeholder and to avoid dead links in the@@ -400,7 +403,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NVX_binary_import Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NVX_binary_import Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.@@ -791,6 +794,9 @@ -- 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was -- allocated from /must/ support graphics, or compute operations --+-- - #VUID-vkCmdCuLaunchKernelNVX-videocoding# This command /must/ only+-- be called outside of a video coding scope+-- -- == Host Synchronization -- -- - Host access to the 'Vulkan.Core10.Handles.CommandPool' that@@ -800,12 +806,12 @@ -- -- \' ----- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | Primary | Both | Graphics |--- | Secondary | | Compute |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================++-- | Primary | Both | Outside | Graphics |+-- | Secondary | | | Compute |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+ -- -- = See Also --
src/Vulkan/Extensions/VK_NVX_binary_import.hs-boot view
@@ -19,7 +19,7 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 -- -- [__Contact__] --@@ -327,6 +327,9 @@ -- 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was -- allocated from /must/ support graphics, or compute operations --+-- - #VUID-vkCmdCuLaunchKernelNVX-videocoding# This command /must/ only+-- be called outside of a video coding scope+-- -- === Host Synchronization -- -- - Host access to the 'Vulkan.Core10.Handles.CommandPool' that@@ -336,12 +339,12 @@ -- -- \' ----- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | Primary | Both | Graphics |--- | Secondary | | Compute |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================++-- | Primary | Both | Outside | Graphics |+-- | Secondary | | | Compute |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+ -- -- There is currently no specification language written for this type. This -- section acts only as placeholder and to avoid dead links in the@@ -400,7 +403,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NVX_binary_import Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NVX_binary_import Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_NVX_image_view_handle.hs view
@@ -19,7 +19,7 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 -- -- [__Contact__] --@@ -87,7 +87,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NVX_image_view_handle Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NVX_image_view_handle Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_NVX_image_view_handle.hs-boot view
@@ -19,7 +19,7 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 -- -- [__Contact__] --@@ -87,7 +87,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NVX_image_view_handle Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NVX_image_view_handle Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_NVX_multiview_per_view_attributes.hs view
@@ -19,9 +19,10 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_multiview@+-- - Requires @VK_KHR_multiview@ to be enabled for any device-level+-- functionality -- -- [__Contact__] --@@ -57,14 +58,14 @@ -- This extension adds a new way to write shaders to be used with multiview -- subpasses, where the attributes for all views are written out by a -- single invocation of the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader stages>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader stages>. -- Related SPIR-V and GLSL extensions -- @SPV_NVX_multiview_per_view_attributes@ and -- @GL_NVX_multiview_per_view_attributes@ introduce per-view position and -- viewport mask attributes arrays, and this extension defines how those -- per-view attribute arrays are interpreted by Vulkan. Pipelines using -- per-view attributes /may/ only execute the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader stages>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader stages> -- once for all views rather than once per-view, which reduces redundant -- shading work. --@@ -113,13 +114,13 @@ -- -- == New Built-In Variables ----- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-positionperview PositionPerViewNV>+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-positionperview PositionPerViewNV> ----- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-viewportmaskperview ViewportMaskPerViewNV>+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-viewportmaskperview ViewportMaskPerViewNV> -- -- == New SPIR-V Capabilities ----- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-PerViewAttributesNV PerViewAttributesNV>+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-PerViewAttributesNV PerViewAttributesNV> -- -- == Examples --@@ -153,7 +154,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NVX_multiview_per_view_attributes Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NVX_multiview_per_view_attributes Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_NVX_multiview_per_view_attributes.hs-boot view
@@ -19,9 +19,10 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_multiview@+-- - Requires @VK_KHR_multiview@ to be enabled for any device-level+-- functionality -- -- [__Contact__] --@@ -57,14 +58,14 @@ -- This extension adds a new way to write shaders to be used with multiview -- subpasses, where the attributes for all views are written out by a -- single invocation of the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader stages>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader stages>. -- Related SPIR-V and GLSL extensions -- @SPV_NVX_multiview_per_view_attributes@ and -- @GL_NVX_multiview_per_view_attributes@ introduce per-view position and -- viewport mask attributes arrays, and this extension defines how those -- per-view attribute arrays are interpreted by Vulkan. Pipelines using -- per-view attributes /may/ only execute the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader stages>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader stages> -- once for all views rather than once per-view, which reduces redundant -- shading work. --@@ -113,13 +114,13 @@ -- -- == New Built-In Variables ----- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-positionperview PositionPerViewNV>+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-positionperview PositionPerViewNV> ----- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-viewportmaskperview ViewportMaskPerViewNV>+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-viewportmaskperview ViewportMaskPerViewNV> -- -- == New SPIR-V Capabilities ----- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-PerViewAttributesNV PerViewAttributesNV>+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-PerViewAttributesNV PerViewAttributesNV> -- -- == Examples --@@ -153,7 +154,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NVX_multiview_per_view_attributes Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NVX_multiview_per_view_attributes Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_NV_acquire_winrt_display.hs view
@@ -19,9 +19,10 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_EXT_direct_mode_display@+-- - Requires @VK_EXT_direct_mode_display@ to be enabled for any+-- device-level functionality -- -- [__Contact__] --@@ -166,7 +167,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_acquire_winrt_display Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_acquire_winrt_display Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_NV_clip_space_w_scaling.hs view
@@ -19,7 +19,7 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 -- -- [__Contact__] --@@ -199,7 +199,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_clip_space_w_scaling Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_clip_space_w_scaling Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.@@ -313,6 +313,9 @@ -- 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was -- allocated from /must/ support graphics operations --+-- - #VUID-vkCmdSetViewportWScalingNV-videocoding# This command /must/+-- only be called outside of a video coding scope+-- -- - #VUID-vkCmdSetViewportWScalingNV-viewportCount-arraylength# -- @viewportCount@ /must/ be greater than @0@ --@@ -327,12 +330,12 @@ -- -- \' ----- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | Primary | Both | Graphics |--- | Secondary | | |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================++-- | Primary | Both | Outside | Graphics |+-- | Secondary | | | |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+ -- -- = See Also --
src/Vulkan/Extensions/VK_NV_clip_space_w_scaling.hs-boot view
@@ -19,7 +19,7 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 -- -- [__Contact__] --@@ -199,7 +199,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_clip_space_w_scaling Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_clip_space_w_scaling Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_NV_compute_shader_derivatives.hs view
@@ -19,9 +19,10 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_get_physical_device_properties2@+-- - Requires @VK_KHR_get_physical_device_properties2@ to be enabled+-- for any device-level functionality -- -- [__Contact__] --@@ -84,9 +85,9 @@ -- -- == New SPIR-V Capability ----- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-ComputeDerivativeGroupQuadsNV ComputeDerivativeGroupQuadsNV>+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-ComputeDerivativeGroupQuadsNV ComputeDerivativeGroupQuadsNV> ----- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-ComputeDerivativeGroupLinearNV ComputeDerivativeGroupLinearNV>+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-ComputeDerivativeGroupLinearNV ComputeDerivativeGroupLinearNV> -- -- == Issues --@@ -113,7 +114,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_compute_shader_derivatives Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_compute_shader_derivatives Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.@@ -157,7 +158,7 @@ -- = Description -- -- See--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-scope-quad Quad shader scope>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-scope-quad Quad shader scope> -- for more information. -- -- If the @VkPhysicalDeviceComputeShaderDerivativesFeaturesNVfeatures@.
src/Vulkan/Extensions/VK_NV_compute_shader_derivatives.hs-boot view
@@ -19,9 +19,10 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_get_physical_device_properties2@+-- - Requires @VK_KHR_get_physical_device_properties2@ to be enabled+-- for any device-level functionality -- -- [__Contact__] --@@ -84,9 +85,9 @@ -- -- == New SPIR-V Capability ----- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-ComputeDerivativeGroupQuadsNV ComputeDerivativeGroupQuadsNV>+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-ComputeDerivativeGroupQuadsNV ComputeDerivativeGroupQuadsNV> ----- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-ComputeDerivativeGroupLinearNV ComputeDerivativeGroupLinearNV>+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-ComputeDerivativeGroupLinearNV ComputeDerivativeGroupLinearNV> -- -- == Issues --@@ -113,7 +114,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_compute_shader_derivatives Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_compute_shader_derivatives Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_NV_cooperative_matrix.hs view
@@ -19,9 +19,10 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_get_physical_device_properties2@+-- - Requires @VK_KHR_get_physical_device_properties2@ to be enabled+-- for any device-level functionality -- -- [__Contact__] --@@ -107,7 +108,7 @@ -- -- == New SPIR-V Capabilities ----- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-CooperativeMatrixNV CooperativeMatrixNV>+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-CooperativeMatrixNV CooperativeMatrixNV> -- -- == Issues --@@ -143,7 +144,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_cooperative_matrix Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_cooperative_matrix Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_NV_cooperative_matrix.hs-boot view
@@ -19,9 +19,10 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_get_physical_device_properties2@+-- - Requires @VK_KHR_get_physical_device_properties2@ to be enabled+-- for any device-level functionality -- -- [__Contact__] --@@ -107,7 +108,7 @@ -- -- == New SPIR-V Capabilities ----- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-CooperativeMatrixNV CooperativeMatrixNV>+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-CooperativeMatrixNV CooperativeMatrixNV> -- -- == Issues --@@ -143,7 +144,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_cooperative_matrix Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_cooperative_matrix Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_NV_corner_sampled_image.hs view
@@ -19,9 +19,10 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_get_physical_device_properties2@+-- - Requires @VK_KHR_get_physical_device_properties2@ to be enabled+-- for any device-level functionality -- -- [__Contact__] --@@ -48,24 +49,24 @@ -- differs from a conventional image in the following ways: -- -- - Texels are centered on integer coordinates. See--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#textures-unnormalized-to-integer Unnormalized Texel Coordinate Operations>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#textures-unnormalized-to-integer Unnormalized Texel Coordinate Operations> -- -- - Normalized coordinates are scaled using coord × (dim - 1) rather -- than coord × dim, where dim is the size of one dimension of the -- image. See--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#textures-normalized-to-unnormalized normalized texel coordinate transform>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#textures-normalized-to-unnormalized normalized texel coordinate transform>. -- -- - Partial derivatives are scaled using coord × (dim - 1) rather than -- coord × dim. See--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#textures-scale-factor Scale Factor Operation>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#textures-scale-factor Scale Factor Operation>. -- -- - Calculation of the next higher lod size goes according to ⌈dim \/ 2⌉ -- rather than ⌊dim \/ 2⌋. See--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-miplevel-sizing Image Miplevel Sizing>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-miplevel-sizing Image Miplevel Sizing>. -- -- - The minimum level size is 2x2 for 2D images and 2x2x2 for 3D images. -- See--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-miplevel-sizing Image Miplevel Sizing>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-miplevel-sizing Image Miplevel Sizing>. -- -- This image organization is designed to facilitate a system like Ptex -- with separate textures for each face of a subdivision or polygon mesh.@@ -129,7 +130,7 @@ -- 5. Should we have a diagram in the “Image Operations” chapter -- demonstrating different texel sampling locations? ----- __UNRESOLVED__: Probaby, but later.+-- __UNRESOLVED__: Probably, but later. -- -- == Version History --@@ -148,7 +149,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_corner_sampled_image Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_corner_sampled_image Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.@@ -213,7 +214,7 @@ -- 'Vulkan.Core10.Image.ImageCreateInfo'::@flags@ containing -- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_CORNER_SAMPLED_BIT_NV'. -- See- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#resources-images-corner-sampled Corner-Sampled Images>.+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#resources-images-corner-sampled Corner-Sampled Images>. cornerSampledImage :: Bool } deriving (Typeable, Eq) #if defined(GENERIC_INSTANCES)
src/Vulkan/Extensions/VK_NV_corner_sampled_image.hs-boot view
@@ -19,9 +19,10 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_get_physical_device_properties2@+-- - Requires @VK_KHR_get_physical_device_properties2@ to be enabled+-- for any device-level functionality -- -- [__Contact__] --@@ -48,24 +49,24 @@ -- differs from a conventional image in the following ways: -- -- - Texels are centered on integer coordinates. See--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#textures-unnormalized-to-integer Unnormalized Texel Coordinate Operations>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#textures-unnormalized-to-integer Unnormalized Texel Coordinate Operations> -- -- - Normalized coordinates are scaled using coord × (dim - 1) rather -- than coord × dim, where dim is the size of one dimension of the -- image. See--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#textures-normalized-to-unnormalized normalized texel coordinate transform>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#textures-normalized-to-unnormalized normalized texel coordinate transform>. -- -- - Partial derivatives are scaled using coord × (dim - 1) rather than -- coord × dim. See--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#textures-scale-factor Scale Factor Operation>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#textures-scale-factor Scale Factor Operation>. -- -- - Calculation of the next higher lod size goes according to ⌈dim \/ 2⌉ -- rather than ⌊dim \/ 2⌋. See--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-miplevel-sizing Image Miplevel Sizing>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-miplevel-sizing Image Miplevel Sizing>. -- -- - The minimum level size is 2x2 for 2D images and 2x2x2 for 3D images. -- See--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-miplevel-sizing Image Miplevel Sizing>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-miplevel-sizing Image Miplevel Sizing>. -- -- This image organization is designed to facilitate a system like Ptex -- with separate textures for each face of a subdivision or polygon mesh.@@ -129,7 +130,7 @@ -- 5. Should we have a diagram in the “Image Operations” chapter -- demonstrating different texel sampling locations? ----- __UNRESOLVED__: Probaby, but later.+-- __UNRESOLVED__: Probably, but later. -- -- == Version History --@@ -148,7 +149,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_corner_sampled_image Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_corner_sampled_image Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_NV_coverage_reduction_mode.hs view
@@ -19,9 +19,10 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_NV_framebuffer_mixed_samples@+-- - Requires @VK_NV_framebuffer_mixed_samples@ to be enabled for any+-- device-level functionality -- -- [__Contact__] --@@ -126,7 +127,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_coverage_reduction_mode Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_coverage_reduction_mode Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.@@ -326,7 +327,7 @@ data PhysicalDeviceCoverageReductionModeFeaturesNV = PhysicalDeviceCoverageReductionModeFeaturesNV { -- | #features-coverageReductionMode# @coverageReductionMode@ indicates -- whether the implementation supports coverage reduction modes. See- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#fragops-coverage-reduction Coverage Reduction>.+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fragops-coverage-reduction Coverage Reduction>. coverageReductionMode :: Bool } deriving (Typeable, Eq) #if defined(GENERIC_INSTANCES)@@ -591,7 +592,7 @@ -- | 'COVERAGE_REDUCTION_MODE_TRUNCATE_NV' specifies that for color samples -- present in the color attachments, a color sample is covered if the pixel -- coverage sample with the same--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-multisampling-coverage-mask sample index>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-multisampling-coverage-mask sample index> -- i is covered; other pixel coverage samples are discarded. pattern COVERAGE_REDUCTION_MODE_TRUNCATE_NV = CoverageReductionModeNV 1 {-# complete COVERAGE_REDUCTION_MODE_MERGE_NV,
src/Vulkan/Extensions/VK_NV_coverage_reduction_mode.hs-boot view
@@ -19,9 +19,10 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_NV_framebuffer_mixed_samples@+-- - Requires @VK_NV_framebuffer_mixed_samples@ to be enabled for any+-- device-level functionality -- -- [__Contact__] --@@ -126,7 +127,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_coverage_reduction_mode Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_coverage_reduction_mode Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_NV_dedicated_allocation.hs view
@@ -19,7 +19,7 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 -- -- [__Deprecation state__] --@@ -171,7 +171,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_dedicated_allocation Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_dedicated_allocation Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_NV_dedicated_allocation.hs-boot view
@@ -19,7 +19,7 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 -- -- [__Deprecation state__] --@@ -171,7 +171,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_dedicated_allocation Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_dedicated_allocation Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_NV_dedicated_allocation_image_aliasing.hs view
@@ -19,9 +19,10 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_dedicated_allocation@+-- - Requires @VK_KHR_dedicated_allocation@ to be enabled for any+-- device-level functionality -- -- [__Contact__] --@@ -82,7 +83,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_dedicated_allocation_image_aliasing Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_dedicated_allocation_image_aliasing Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_NV_dedicated_allocation_image_aliasing.hs-boot view
@@ -19,9 +19,10 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_dedicated_allocation@+-- - Requires @VK_KHR_dedicated_allocation@ to be enabled for any+-- device-level functionality -- -- [__Contact__] --@@ -82,7 +83,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_dedicated_allocation_image_aliasing Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_dedicated_allocation_image_aliasing Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_NV_device_diagnostic_checkpoints.hs view
@@ -19,9 +19,10 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_get_physical_device_properties2@+-- - Requires @VK_KHR_get_physical_device_properties2@ to be enabled+-- for any device-level functionality -- -- [__Contact__] --@@ -100,7 +101,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_device_diagnostic_checkpoints Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_device_diagnostic_checkpoints Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.@@ -189,6 +190,9 @@ -- allocated from /must/ support graphics, compute, or transfer -- operations --+-- - #VUID-vkCmdSetCheckpointNV-videocoding# This command /must/ only be+-- called outside of a video coding scope+-- -- == Host Synchronization -- -- - Host access to @commandBuffer@ /must/ be externally synchronized@@ -200,13 +204,13 @@ -- -- \' ----- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | Primary | Both | Graphics |--- | Secondary | | Compute |--- | | | Transfer |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================++-- | Primary | Both | Outside | Graphics |+-- | Secondary | | | Compute |+-- | | | | Transfer |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+ -- -- = See Also --
src/Vulkan/Extensions/VK_NV_device_diagnostic_checkpoints.hs-boot view
@@ -19,9 +19,10 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_get_physical_device_properties2@+-- - Requires @VK_KHR_get_physical_device_properties2@ to be enabled+-- for any device-level functionality -- -- [__Contact__] --@@ -100,7 +101,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_device_diagnostic_checkpoints Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_device_diagnostic_checkpoints Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_NV_device_diagnostics_config.hs view
@@ -15,13 +15,14 @@ -- 301 -- -- [__Revision__]--- 1+-- 2 -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_get_physical_device_properties2@+-- - Requires @VK_KHR_get_physical_device_properties2@ to be enabled+-- for any device-level functionality -- -- [__Contact__] --@@ -31,7 +32,7 @@ -- == Other Extension Metadata -- -- [__Last Modified Date__]--- 2019-12-15+-- 2022-04-06 -- -- [__Contributors__] --@@ -45,6 +46,10 @@ -- device crash dumps into their error reporting mechanisms, /may/ use this -- extension to configure options related to device crash dump creation. --+-- Version 2 of this extension adds+-- 'DEVICE_DIAGNOSTICS_CONFIG_ENABLE_SHADER_ERROR_REPORTING_BIT_NV' which+-- when set enables enhanced reporting of shader execution errors.+-- -- == New Structures -- -- - Extending 'Vulkan.Core10.Device.DeviceCreateInfo':@@ -83,6 +88,11 @@ -- -- - Internal revisions --+-- - Revision 2, 2022-04-06 (Kedarnath Thangudu)+--+-- - Added a config bit+-- 'DEVICE_DIAGNOSTICS_CONFIG_ENABLE_SHADER_ERROR_REPORTING_BIT_NV'+-- -- == See Also -- -- 'DeviceDiagnosticsConfigCreateInfoNV',@@ -92,7 +102,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_device_diagnostics_config Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_device_diagnostics_config Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.@@ -102,6 +112,7 @@ , DeviceDiagnosticsConfigFlagBitsNV( DEVICE_DIAGNOSTICS_CONFIG_ENABLE_SHADER_DEBUG_INFO_BIT_NV , DEVICE_DIAGNOSTICS_CONFIG_ENABLE_RESOURCE_TRACKING_BIT_NV , DEVICE_DIAGNOSTICS_CONFIG_ENABLE_AUTOMATIC_CHECKPOINTS_BIT_NV+ , DEVICE_DIAGNOSTICS_CONFIG_ENABLE_SHADER_ERROR_REPORTING_BIT_NV , .. ) , NV_DEVICE_DIAGNOSTICS_CONFIG_SPEC_VERSION@@ -224,7 +235,7 @@ -- 'Vulkan.Core10.Enums.StructureType.StructureType' data DeviceDiagnosticsConfigCreateInfoNV = DeviceDiagnosticsConfigCreateInfoNV { -- | @flags@ is a bitmask of 'DeviceDiagnosticsConfigFlagBitsNV' specifying- -- addtional parameters for configuring diagnostic tools.+ -- additional parameters for configuring diagnostic tools. -- -- #VUID-VkDeviceDiagnosticsConfigCreateInfoNV-flags-parameter# @flags@ -- /must/ be a valid combination of 'DeviceDiagnosticsConfigFlagBitsNV'@@ -281,18 +292,21 @@ -- | 'DEVICE_DIAGNOSTICS_CONFIG_ENABLE_SHADER_DEBUG_INFO_BIT_NV' enables the -- generation of debug information for shaders.-pattern DEVICE_DIAGNOSTICS_CONFIG_ENABLE_SHADER_DEBUG_INFO_BIT_NV = DeviceDiagnosticsConfigFlagBitsNV 0x00000001+pattern DEVICE_DIAGNOSTICS_CONFIG_ENABLE_SHADER_DEBUG_INFO_BIT_NV = DeviceDiagnosticsConfigFlagBitsNV 0x00000001 -- | 'DEVICE_DIAGNOSTICS_CONFIG_ENABLE_RESOURCE_TRACKING_BIT_NV' enables -- driver side tracking of resources (images, buffers, etc.) used to -- augment the device fault information.-pattern DEVICE_DIAGNOSTICS_CONFIG_ENABLE_RESOURCE_TRACKING_BIT_NV = DeviceDiagnosticsConfigFlagBitsNV 0x00000002+pattern DEVICE_DIAGNOSTICS_CONFIG_ENABLE_RESOURCE_TRACKING_BIT_NV = DeviceDiagnosticsConfigFlagBitsNV 0x00000002 -- | 'DEVICE_DIAGNOSTICS_CONFIG_ENABLE_AUTOMATIC_CHECKPOINTS_BIT_NV' enables -- automatic insertion of--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#device-diagnostic-checkpoints diagnostic checkpoints>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#device-diagnostic-checkpoints diagnostic checkpoints> -- for draw calls, dispatches, trace rays, and copies. The CPU call stack -- at the time of the command will be associated as the marker data for the -- automatically inserted checkpoints.-pattern DEVICE_DIAGNOSTICS_CONFIG_ENABLE_AUTOMATIC_CHECKPOINTS_BIT_NV = DeviceDiagnosticsConfigFlagBitsNV 0x00000004+pattern DEVICE_DIAGNOSTICS_CONFIG_ENABLE_AUTOMATIC_CHECKPOINTS_BIT_NV = DeviceDiagnosticsConfigFlagBitsNV 0x00000004+-- | 'DEVICE_DIAGNOSTICS_CONFIG_ENABLE_SHADER_ERROR_REPORTING_BIT_NV' enables+-- shader error reporting.+pattern DEVICE_DIAGNOSTICS_CONFIG_ENABLE_SHADER_ERROR_REPORTING_BIT_NV = DeviceDiagnosticsConfigFlagBitsNV 0x00000008 conNameDeviceDiagnosticsConfigFlagBitsNV :: String conNameDeviceDiagnosticsConfigFlagBitsNV = "DeviceDiagnosticsConfigFlagBitsNV"@@ -302,9 +316,10 @@ showTableDeviceDiagnosticsConfigFlagBitsNV :: [(DeviceDiagnosticsConfigFlagBitsNV, String)] showTableDeviceDiagnosticsConfigFlagBitsNV =- [ (DEVICE_DIAGNOSTICS_CONFIG_ENABLE_SHADER_DEBUG_INFO_BIT_NV , "SHADER_DEBUG_INFO_BIT_NV")- , (DEVICE_DIAGNOSTICS_CONFIG_ENABLE_RESOURCE_TRACKING_BIT_NV , "RESOURCE_TRACKING_BIT_NV")- , (DEVICE_DIAGNOSTICS_CONFIG_ENABLE_AUTOMATIC_CHECKPOINTS_BIT_NV, "AUTOMATIC_CHECKPOINTS_BIT_NV")+ [ (DEVICE_DIAGNOSTICS_CONFIG_ENABLE_SHADER_DEBUG_INFO_BIT_NV , "SHADER_DEBUG_INFO_BIT_NV")+ , (DEVICE_DIAGNOSTICS_CONFIG_ENABLE_RESOURCE_TRACKING_BIT_NV , "RESOURCE_TRACKING_BIT_NV")+ , (DEVICE_DIAGNOSTICS_CONFIG_ENABLE_AUTOMATIC_CHECKPOINTS_BIT_NV , "AUTOMATIC_CHECKPOINTS_BIT_NV")+ , (DEVICE_DIAGNOSTICS_CONFIG_ENABLE_SHADER_ERROR_REPORTING_BIT_NV, "SHADER_ERROR_REPORTING_BIT_NV") ] instance Show DeviceDiagnosticsConfigFlagBitsNV where@@ -321,11 +336,11 @@ DeviceDiagnosticsConfigFlagBitsNV -type NV_DEVICE_DIAGNOSTICS_CONFIG_SPEC_VERSION = 1+type NV_DEVICE_DIAGNOSTICS_CONFIG_SPEC_VERSION = 2 -- No documentation found for TopLevel "VK_NV_DEVICE_DIAGNOSTICS_CONFIG_SPEC_VERSION" pattern NV_DEVICE_DIAGNOSTICS_CONFIG_SPEC_VERSION :: forall a . Integral a => a-pattern NV_DEVICE_DIAGNOSTICS_CONFIG_SPEC_VERSION = 1+pattern NV_DEVICE_DIAGNOSTICS_CONFIG_SPEC_VERSION = 2 type NV_DEVICE_DIAGNOSTICS_CONFIG_EXTENSION_NAME = "VK_NV_device_diagnostics_config"
src/Vulkan/Extensions/VK_NV_device_diagnostics_config.hs-boot view
@@ -15,13 +15,14 @@ -- 301 -- -- [__Revision__]--- 1+-- 2 -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_get_physical_device_properties2@+-- - Requires @VK_KHR_get_physical_device_properties2@ to be enabled+-- for any device-level functionality -- -- [__Contact__] --@@ -31,7 +32,7 @@ -- == Other Extension Metadata -- -- [__Last Modified Date__]--- 2019-12-15+-- 2022-04-06 -- -- [__Contributors__] --@@ -45,6 +46,10 @@ -- device crash dumps into their error reporting mechanisms, /may/ use this -- extension to configure options related to device crash dump creation. --+-- Version 2 of this extension adds+-- 'DEVICE_DIAGNOSTICS_CONFIG_ENABLE_SHADER_ERROR_REPORTING_BIT_NV' which+-- when set enables enhanced reporting of shader execution errors.+-- -- == New Structures -- -- - Extending 'Vulkan.Core10.Device.DeviceCreateInfo':@@ -83,6 +88,11 @@ -- -- - Internal revisions --+-- - Revision 2, 2022-04-06 (Kedarnath Thangudu)+--+-- - Added a config bit+-- 'DEVICE_DIAGNOSTICS_CONFIG_ENABLE_SHADER_ERROR_REPORTING_BIT_NV'+-- -- == See Also -- -- 'DeviceDiagnosticsConfigCreateInfoNV',@@ -92,7 +102,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_device_diagnostics_config Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_device_diagnostics_config Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_NV_device_generated_commands.hs view
@@ -19,9 +19,10 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.1+-- - Requires support for Vulkan 1.1 ----- - Requires @VK_KHR_buffer_device_address@+-- - Requires @VK_KHR_buffer_device_address@ to be enabled for any+-- device-level functionality -- -- [__Contact__] --@@ -291,7 +292,7 @@ -- -- 5) Should the input be provided as SoA or AoS? ----- Both ways are desireable. AoS can provide portability to other APIs and+-- Both ways are desirable. AoS can provide portability to other APIs and -- easier to setup, while SoA allows to update individual inputs in a -- cache-efficient manner, when others remain static. --@@ -540,7 +541,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_device_generated_commands Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_device_generated_commands Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.@@ -582,6 +583,7 @@ , INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_NV , INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NV , INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_TASKS_NV+ , INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_NV , .. ) , NV_DEVICE_GENERATED_COMMANDS_SPEC_VERSION@@ -751,16 +753,16 @@ -- -- - #VUID-vkCmdExecuteGeneratedCommandsNV-None-02692# If a -- 'Vulkan.Core10.Handles.ImageView' is sampled with--- 'Vulkan.Extensions.VK_EXT_filter_cubic.FILTER_CUBIC_EXT' as a result--- of this command, then the image view’s+-- 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as a result of this+-- command, then the image view’s -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features> -- /must/ contain--- 'Vulkan.Extensions.VK_EXT_filter_cubic.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT'+-- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT' -- -- - #VUID-vkCmdExecuteGeneratedCommandsNV-filterCubic-02694# Any -- 'Vulkan.Core10.Handles.ImageView' being sampled with--- 'Vulkan.Extensions.VK_EXT_filter_cubic.FILTER_CUBIC_EXT' as a result--- of this command /must/ have a+-- 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as a result of this+-- command /must/ have a -- 'Vulkan.Core10.Enums.ImageViewType.ImageViewType' and format that -- supports cubic filtering, as specified by -- 'Vulkan.Extensions.VK_EXT_filter_cubic.FilterCubicImageViewImageFormatPropertiesEXT'::@filterCubic@@@ -769,8 +771,8 @@ -- -- - #VUID-vkCmdExecuteGeneratedCommandsNV-filterCubicMinmax-02695# Any -- 'Vulkan.Core10.Handles.ImageView' being sampled with--- 'Vulkan.Extensions.VK_EXT_filter_cubic.FILTER_CUBIC_EXT' with a--- reduction mode of either+-- 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' with a reduction mode+-- of either -- 'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MIN' -- or -- 'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MAX'@@ -790,22 +792,38 @@ -- 'Vulkan.Core10.Enums.SamplerAddressMode.SamplerAddressMode' of -- 'Vulkan.Core10.Enums.SamplerAddressMode.SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE' ----- - #VUID-vkCmdExecuteGeneratedCommandsNV-OpTypeImage-06423# Any--- 'Vulkan.Core10.Handles.ImageView' or--- 'Vulkan.Core10.Handles.BufferView' being written as a storage image--- or storage texel buffer where the image format field of the--- @OpTypeImage@ is @Unknown@ then the view’s format feature /must/--- contain+-- - #VUID-vkCmdExecuteGeneratedCommandsNV-OpTypeImage-07027# For any+-- 'Vulkan.Core10.Handles.ImageView' being written as a storage image+-- where the image format field of the @OpTypeImage@ is @Unknown@, the+-- view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain -- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT' ----- - #VUID-vkCmdExecuteGeneratedCommandsNV-OpTypeImage-06424# Any--- 'Vulkan.Core10.Handles.ImageView' or--- 'Vulkan.Core10.Handles.BufferView' being read as a storage image or--- storage texel buffer where the image format field of the--- @OpTypeImage@ is @Unknown@ then the view’s format feature /must/--- contain+-- - #VUID-vkCmdExecuteGeneratedCommandsNV-OpTypeImage-07028# For any+-- 'Vulkan.Core10.Handles.ImageView' being read as a storage image+-- where the image format field of the @OpTypeImage@ is @Unknown@, the+-- view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain -- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT' --+-- - #VUID-vkCmdExecuteGeneratedCommandsNV-OpTypeImage-07029# For any+-- 'Vulkan.Core10.Handles.BufferView' being written as a storage texel+-- buffer where the image format field of the @OpTypeImage@ is+-- @Unknown@, the view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkFormatProperties3 buffer features>+-- /must/ contain+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT'+--+-- - #VUID-vkCmdExecuteGeneratedCommandsNV-OpTypeImage-07030# Any+-- 'Vulkan.Core10.Handles.BufferView' being read as a storage texel+-- buffer where the image format field of the @OpTypeImage@ is+-- @Unknown@ then the view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkFormatProperties3 buffer features>+-- /must/ contain+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT'+-- -- - #VUID-vkCmdExecuteGeneratedCommandsNV-None-02697# For each set /n/ -- that is statically used by the 'Vulkan.Core10.Handles.Pipeline' -- bound to the pipeline bind point used by this command, a descriptor@@ -880,21 +898,31 @@ -- @OpImageSample*@ or @OpImageSparseSample*@ instructions that -- includes a LOD bias or any offset values, in any shader stage ----- - #VUID-vkCmdExecuteGeneratedCommandsNV-None-02705# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robust buffer access>--- feature is not enabled, and if the 'Vulkan.Core10.Handles.Pipeline'--- object bound to the pipeline bind point used by this command--- accesses a uniform buffer, it /must/ not access values outside of--- the range of the buffer as specified in the descriptor set bound to--- the same pipeline bind point+-- - #VUID-vkCmdExecuteGeneratedCommandsNV-uniformBuffers-06935# If any+-- stage of the 'Vulkan.Core10.Handles.Pipeline' object bound to the+-- pipeline bind point used by this command accesses a uniform buffer,+-- and that stage was created without enabling either+-- 'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT'+-- or+-- 'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT'+-- for @uniformBuffers@, and the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>+-- feature is not enabled, that stage /must/ not access values outside+-- of the range of the buffer as specified in the descriptor set bound+-- to the same pipeline bind point ----- - #VUID-vkCmdExecuteGeneratedCommandsNV-None-02706# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robust buffer access>--- feature is not enabled, and if the 'Vulkan.Core10.Handles.Pipeline'--- object bound to the pipeline bind point used by this command--- accesses a storage buffer, it /must/ not access values outside of--- the range of the buffer as specified in the descriptor set bound to--- the same pipeline bind point+-- - #VUID-vkCmdExecuteGeneratedCommandsNV-storageBuffers-06936# If any+-- stage of the 'Vulkan.Core10.Handles.Pipeline' object bound to the+-- pipeline bind point used by this command accesses a storage buffer,+-- and that stage was created without enabling either+-- 'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT'+-- or+-- 'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT'+-- for @storageBuffers@, and the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>+-- feature is not enabled, that stage /must/ not access values outside+-- of the range of the buffer as specified in the descriptor set bound+-- to the same pipeline bind point -- -- - #VUID-vkCmdExecuteGeneratedCommandsNV-commandBuffer-02707# If -- @commandBuffer@ is an unprotected command buffer and@@ -980,6 +1008,67 @@ -- @OpTypeImage@ with a @SampledType@ with a @Width@ of 64 by this -- command --+-- - #VUID-vkCmdExecuteGeneratedCommandsNV-OpImageWeightedSampleQCOM-06971#+-- If @OpImageWeightedSampleQCOM@ is used to sample a+-- 'Vulkan.Core10.Handles.ImageView' as a result of this command, then+-- the image view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM'+--+-- - #VUID-vkCmdExecuteGeneratedCommandsNV-OpImageWeightedSampleQCOM-06972#+-- If @OpImageWeightedSampleQCOM@ uses a+-- 'Vulkan.Core10.Handles.ImageView' as a sample weight image as a+-- result of this command, then the image view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM'+--+-- - #VUID-vkCmdExecuteGeneratedCommandsNV-OpImageBoxFilterQCOM-06973# If+-- @OpImageBoxFilterQCOM@ is used to sample a+-- 'Vulkan.Core10.Handles.ImageView' as a result of this command, then+-- the image view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM'+--+-- - #VUID-vkCmdExecuteGeneratedCommandsNV-OpImageBlockMatchSSDQCOM-06974#+-- If @OpImageBlockMatchSSDQCOM@ is used to read from an+-- 'Vulkan.Core10.Handles.ImageView' as a result of this command, then+-- the image view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM'+--+-- - #VUID-vkCmdExecuteGeneratedCommandsNV-OpImageBlockMatchSADQCOM-06975#+-- If @OpImageBlockMatchSADQCOM@ is used to read from an+-- 'Vulkan.Core10.Handles.ImageView' as a result of this command, then+-- the image view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM'+--+-- - #VUID-vkCmdExecuteGeneratedCommandsNV-OpImageBlockMatchSADQCOM-06976#+-- If @OpImageBlockMatchSADQCOM@ or OpImageBlockMatchSSDQCOM is used to+-- read from a reference image as result of this command, then the+-- specified reference coordinates /must/ not fail+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-integer-coordinate-validation integer texel coordinate validation>.+--+-- - #VUID-vkCmdExecuteGeneratedCommandsNV-OpImageWeightedSampleQCOM-06977#+-- If @OpImageWeightedSampleQCOM@, @OpImageBoxFilterQCOM@,+-- @OpImageBlockMatchSSDQCOM@, or @OpImageBlockMatchSADQCOM@ uses a+-- 'Vulkan.Core10.Handles.Sampler' as a result of this command, then+-- the sampler /must/ have been created with+-- 'Vulkan.Core10.Enums.SamplerCreateFlagBits.SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM'.+--+-- - #VUID-vkCmdExecuteGeneratedCommandsNV-OpImageWeightedSampleQCOM-06978#+-- If any command other than @OpImageWeightedSampleQCOM@,+-- @OpImageBoxFilterQCOM@, @OpImageBlockMatchSSDQCOM@, or+-- @OpImageBlockMatchSADQCOM@ uses a 'Vulkan.Core10.Handles.Sampler' as+-- a result of this command, then the sampler /must/ not have been+-- created with+-- 'Vulkan.Core10.Enums.SamplerCreateFlagBits.SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM'.+-- -- - #VUID-vkCmdExecuteGeneratedCommandsNV-renderPass-02684# The current -- render pass /must/ be -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-compatibility compatible>@@ -1015,6 +1104,18 @@ -- used as an attachment in any way other than as an attachment, this -- command /must/ not write to that image subresource as an attachment --+-- - #VUID-vkCmdExecuteGeneratedCommandsNV-None-06886# If the current+-- render pass instance uses a depth\/stencil attachment with a+-- read-only layout for the depth aspect,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragops-depth-write depth writes>+-- /must/ be disabled+--+-- - #VUID-vkCmdExecuteGeneratedCommandsNV-None-06887# If the current+-- render pass instance uses a depth\/stencil attachment with a+-- read-only layout for the stencil aspect and stencil test is enabled,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragops-stencil all stencil ops>+-- /must/ be 'Vulkan.Core10.Enums.StencilOp.STENCIL_OP_KEEP'+-- -- - #VUID-vkCmdExecuteGeneratedCommandsNV-maxMultiviewInstanceIndex-02688# -- If the draw is recorded in a render pass instance with multiview -- enabled, the maximum instance index /must/ be less than or equal to@@ -1133,8 +1234,9 @@ -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT' -- dynamic state enabled and a -- 'Vulkan.Extensions.VK_NV_viewport_swizzle.PipelineViewportSwizzleStateCreateInfoNV'--- structure chained from @VkPipelineVieportCreateInfo@, then the bound--- graphics pipeline /must/ have been created with+-- structure chained from+-- 'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo', then the+-- bound graphics pipeline /must/ have been created with -- 'Vulkan.Extensions.VK_NV_viewport_swizzle.PipelineViewportSwizzleStateCreateInfoNV'::@viewportCount@ -- greater or equal to the @viewportCount@ parameter in the last call -- to@@ -1145,8 +1247,9 @@ -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT' -- dynamic state enabled and a -- 'Vulkan.Extensions.VK_NV_scissor_exclusive.PipelineViewportExclusiveScissorStateCreateInfoNV'--- structure chained from @VkPipelineVieportCreateInfo@, then the bound--- graphics pipeline /must/ have been created with+-- structure chained from+-- 'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo', then the+-- bound graphics pipeline /must/ have been created with -- 'Vulkan.Extensions.VK_NV_scissor_exclusive.PipelineViewportExclusiveScissorStateCreateInfoNV'::@exclusiveScissorCount@ -- greater or equal to the @viewportCount@ parameter in the last call -- to@@ -1305,31 +1408,42 @@ -- /must/ have been called in the current command buffer prior to this -- drawing command, and the @attachmentCount@ parameter of -- 'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'--- /must/ be equal to the+-- /must/ be greater than or equal to the -- 'Vulkan.Core10.Pipeline.PipelineColorBlendStateCreateInfo'::@attachmentCount@ -- of the currently bound graphics pipeline --+-- - #VUID-vkCmdExecuteGeneratedCommandsNV-attachmentCount-06815# If the+-- bound graphics pipeline state was created with the+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT'+-- dynamic state enabled then+-- 'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'+-- /must/ have been called in the current command buffer prior to this+-- drawing command, and the @attachmentCount@ parameter of+-- 'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'+-- /must/ be less than or equal to the @maxColorAttachments@ member of+-- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'+-- -- - #VUID-vkCmdExecuteGeneratedCommandsNV-pDepthAttachment-06181# If the -- current render pass instance was begun with -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' -- and--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->pname@:imageView+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@ -- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@depthAttachmentFormat@ -- used to create the currently bound graphics pipeline /must/ be equal -- to the 'Vulkan.Core10.Enums.Format.Format' used to create--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->pname@:imageView+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@ -- -- - #VUID-vkCmdExecuteGeneratedCommandsNV-pStencilAttachment-06182# If -- the current render pass instance was begun with -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' -- and--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->pname@:imageView+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@ -- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@stencilAttachmentFormat@ -- used to create the currently bound graphics pipeline /must/ be equal -- to the 'Vulkan.Core10.Enums.Format.Format' used to create--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->pname@:imageView+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@ -- -- - #VUID-vkCmdExecuteGeneratedCommandsNV-imageView-06183# If the -- current render pass instance was begun with@@ -1377,7 +1491,7 @@ -- or -- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV' -- structure, and--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->pname@:imageView+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@ -- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of the -- @depthStencilAttachmentSamples@ member of -- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'@@ -1385,7 +1499,7 @@ -- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV' -- used to create the currently bound graphics pipeline /must/ be equal -- to the sample count used to create--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->pname@:imageView+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@ -- -- - #VUID-vkCmdExecuteGeneratedCommandsNV-pStencilAttachment-06187# If -- the current render pass instance was begun with@@ -1395,7 +1509,7 @@ -- or -- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV' -- structure, and--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->pname@:imageView+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@ -- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of the -- @depthStencilAttachmentSamples@ member of -- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'@@ -1403,7 +1517,7 @@ -- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV' -- used to create the currently bound graphics pipeline /must/ be equal -- to the sample count used to create--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->pname@:imageView+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@ -- -- - #VUID-vkCmdExecuteGeneratedCommandsNV-colorAttachmentCount-06188# If -- the currently bound pipeline was created without a@@ -1430,12 +1544,12 @@ -- or -- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV' -- structure, and--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->pname@:imageView+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@ -- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of -- 'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'::@rasterizationSamples@ -- used to create the currently bound graphics pipeline /must/ be equal -- to the sample count used to create--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->pname@:imageView+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@ -- -- - #VUID-vkCmdExecuteGeneratedCommandsNV-pStencilAttachment-06190# If -- the current render pass instance was begun with@@ -1445,12 +1559,12 @@ -- or -- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV' -- structure, and--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->pname@:imageView+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@ -- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of -- 'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'::@rasterizationSamples@ -- used to create the currently bound graphics pipeline /must/ be equal -- to the sample count used to create--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->pname@:imageView+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@ -- -- - #VUID-vkCmdExecuteGeneratedCommandsNV-renderPass-06198# If the -- current render pass instance was begun with@@ -1477,6 +1591,21 @@ -- created with a non-zero value in -- 'Vulkan.Extensions.VK_EXT_transform_feedback.PipelineRasterizationStateStreamCreateInfoEXT'::@rasterizationStream@. --+-- - #VUID-vkCmdExecuteGeneratedCommandsNV-stage-07073# If the currently+-- bound pipeline was created with the+-- 'Vulkan.Core10.Pipeline.PipelineShaderStageCreateInfo'::@stage@+-- member of an element of+-- 'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo'::@pStages@ set+-- to+-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT',+-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_CONTROL_BIT',+-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT'+-- or+-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT',+-- then+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#queries-mesh-shader Mesh Shader Queries>+-- must not be active+-- -- - #VUID-vkCmdExecuteGeneratedCommandsNV-None-04007# All vertex input -- bindings accessed via vertex input variables declared in the vertex -- shader entry point’s interface /must/ have either valid or@@ -1560,9 +1689,9 @@ -- member of an element of -- 'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo'::@pStages@ set -- to--- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_NV'+-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT' -- or--- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_NV'+-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT' -- -- - #VUID-vkCmdExecuteGeneratedCommandsNV-commandBuffer-02970# -- @commandBuffer@ /must/ not be a protected command buffer@@ -1586,7 +1715,7 @@ -- -- - #VUID-vkCmdExecuteGeneratedCommandsNV-deviceGeneratedCommands-02911# -- The--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-deviceGeneratedCommands ::deviceGeneratedCommands>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-deviceGeneratedCommands ::deviceGeneratedCommands> -- feature /must/ be enabled -- -- == Valid Usage (Implicit)@@ -1610,6 +1739,9 @@ -- - #VUID-vkCmdExecuteGeneratedCommandsNV-renderpass# This command -- /must/ only be called inside of a render pass instance --+-- - #VUID-vkCmdExecuteGeneratedCommandsNV-videocoding# This command+-- /must/ only be called outside of a video coding scope+-- -- == Host Synchronization -- -- - Host access to @commandBuffer@ /must/ be externally synchronized@@ -1621,12 +1753,12 @@ -- -- \' ----- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | Primary | Inside | Graphics |--- | Secondary | | Compute |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================++-- | Primary | Inside | Outside | Graphics |+-- | Secondary | | | Compute |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+ -- -- = See Also --@@ -1679,7 +1811,7 @@ -- -- - #VUID-vkCmdPreprocessGeneratedCommandsNV-deviceGeneratedCommands-02928# -- The--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-deviceGeneratedCommands ::deviceGeneratedCommands>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-deviceGeneratedCommands ::deviceGeneratedCommands> -- feature /must/ be enabled -- -- == Valid Usage (Implicit)@@ -1703,6 +1835,9 @@ -- - #VUID-vkCmdPreprocessGeneratedCommandsNV-renderpass# This command -- /must/ only be called outside of a render pass instance --+-- - #VUID-vkCmdPreprocessGeneratedCommandsNV-videocoding# This command+-- /must/ only be called outside of a video coding scope+-- -- == Host Synchronization -- -- - Host access to @commandBuffer@ /must/ be externally synchronized@@ -1714,12 +1849,12 @@ -- -- \' ----- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | Primary | Outside | Graphics |--- | Secondary | | Compute |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================++-- | Primary | Outside | Outside | Graphics |+-- | Secondary | | | Compute |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+ -- -- = See Also --@@ -1771,7 +1906,7 @@ -- -- - #VUID-vkCmdBindPipelineShaderGroupNV-deviceGeneratedCommands-02896# -- The--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-deviceGeneratedCommands ::deviceGeneratedCommands>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-deviceGeneratedCommands deviceGeneratedCommands> -- feature /must/ be enabled -- -- == Valid Usage (Implicit)@@ -1795,6 +1930,9 @@ -- 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was -- allocated from /must/ support graphics, or compute operations --+-- - #VUID-vkCmdBindPipelineShaderGroupNV-videocoding# This command+-- /must/ only be called outside of a video coding scope+-- -- - #VUID-vkCmdBindPipelineShaderGroupNV-commonparent# Both of -- @commandBuffer@, and @pipeline@ /must/ have been created, allocated, -- or retrieved from the same 'Vulkan.Core10.Handles.Device'@@ -1810,12 +1948,12 @@ -- -- \' ----- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | Primary | Both | Graphics |--- | Secondary | | Compute |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================++-- | Primary | Both | Outside | Graphics |+-- | Secondary | | | Compute |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+ -- -- = See Also --@@ -1859,7 +1997,7 @@ -- -- - #VUID-vkGetGeneratedCommandsMemoryRequirementsNV-deviceGeneratedCommands-02906# -- The--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-deviceGeneratedCommands ::deviceGeneratedCommands>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-deviceGeneratedCommands ::deviceGeneratedCommands> -- feature /must/ be enabled -- -- == Valid Usage (Implicit)@@ -1917,7 +2055,7 @@ -- -- - #VUID-vkCreateIndirectCommandsLayoutNV-deviceGeneratedCommands-02929# -- The--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-deviceGeneratedCommands ::deviceGeneratedCommands>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-deviceGeneratedCommands ::deviceGeneratedCommands> -- feature /must/ be enabled -- -- == Valid Usage (Implicit)@@ -1965,7 +2103,7 @@ -- command layout. IndirectCommandsLayoutCreateInfoNV -> -- | @pAllocator@ controls host memory allocation as described in the- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation> -- chapter. ("allocator" ::: Maybe AllocationCallbacks) -> io (IndirectCommandsLayoutNV)@@ -2025,7 +2163,7 @@ -- -- - #VUID-vkDestroyIndirectCommandsLayoutNV-deviceGeneratedCommands-02941# -- The--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-deviceGeneratedCommands ::deviceGeneratedCommands>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-deviceGeneratedCommands ::deviceGeneratedCommands> -- feature /must/ be enabled -- -- == Valid Usage (Implicit)@@ -2066,7 +2204,7 @@ -> -- | @indirectCommandsLayout@ is the layout to destroy. IndirectCommandsLayoutNV -> -- | @pAllocator@ controls host memory allocation as described in the- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation> -- chapter. ("allocator" ::: Maybe AllocationCallbacks) -> io ()@@ -2113,7 +2251,7 @@ { -- | #features-deviceGeneratedCommands# @deviceGeneratedCommands@ indicates -- whether the implementation supports functionality to generate commands -- on the device. See- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#device-generated-commands Device-Generated Commands>.+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#device-generated-commands Device-Generated Commands>. deviceGeneratedCommands :: Bool } deriving (Typeable, Eq) #if defined(GENERIC_INSTANCES)@@ -2437,7 +2575,7 @@ -- -- - #VUID-VkGraphicsPipelineShaderGroupsCreateInfoNV-deviceGeneratedCommands-02887# -- The--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-deviceGeneratedCommands ::deviceGeneratedCommands>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-deviceGeneratedCommands deviceGeneratedCommands> -- feature /must/ be enabled -- -- == Valid Usage (Implicit)@@ -2865,6 +3003,10 @@ -- be less than or equal to -- 'PhysicalDeviceDeviceGeneratedCommandsPropertiesNV'::@maxIndirectCommandsTokenOffset@ --+-- - #VUID-VkIndirectCommandsLayoutTokenNV-offset-06888# @offset@ /must/+-- be aligned to the scalar alignment of @tokenType@ or+-- @minIndirectCommandsBufferOffsetAlignment@, whichever is lower+-- -- - #VUID-VkIndirectCommandsLayoutTokenNV-tokenType-02976# If -- @tokenType@ is 'INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_NV', -- @vertexBindingUnit@ /must/ stay within device supported limits for@@ -3097,6 +3239,22 @@ -- > } -- > } --+-- When tokens are consumed, an offset is computed based on token offset+-- and stream stride. The resulting offset is required to be aligned. The+-- alignment for a specific token is equal to the scalar alignment of the+-- data type as defined in+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-alignment-requirements Alignment Requirements>,+-- or+-- 'PhysicalDeviceDeviceGeneratedCommandsPropertiesNV'::@minIndirectCommandsBufferOffsetAlignment@,+-- whichever is lower.+--+-- Note+--+-- A @minIndirectCommandsBufferOffsetAlignment@ of 4 allows+-- 'Vulkan.Core10.FundamentalTypes.DeviceAddress' to be packed as @uvec2@+-- with scalar layout instead of @uint64_t@ with 8 byte alignment. This+-- enables direct compatibility with D3D12 command signature layouts.+-- -- == Valid Usage -- -- - #VUID-VkIndirectCommandsLayoutCreateInfoNV-pipelineBindPoint-02930#@@ -3119,10 +3277,11 @@ -- single element of such token type -- -- - #VUID-VkIndirectCommandsLayoutCreateInfoNV-pTokens-02934# All state--- tokens in @pTokens@ /must/ occur prior work provoking tokens+-- tokens in @pTokens@ /must/ occur before any work provoking tokens -- ('INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NV', -- 'INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_NV',--- 'INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_TASKS_NV')+-- 'INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_TASKS_NV',+-- 'INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_NV') -- -- - #VUID-VkIndirectCommandsLayoutCreateInfoNV-pTokens-02935# The -- content of @pTokens@ /must/ include one single work provoking token@@ -3347,6 +3506,18 @@ -- /must/ be bound completely and contiguously to a single -- 'Vulkan.Core10.Handles.DeviceMemory' object --+-- - #VUID-VkGeneratedCommandsInfoNV-indirectCommandsLayout-07078# If the+-- @indirectCommandsLayout@ uses a token of+-- 'INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_TASKS_NV', then the @pipeline@+-- /must/ contain a shader stage using the @MeshNV@ @Execution@+-- @Model@.+--+-- - #VUID-VkGeneratedCommandsInfoNV-indirectCommandsLayout-07079# If the+-- @indirectCommandsLayout@ uses a token of+-- 'INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_NV', then the+-- @pipeline@ /must/ contain a shader stage using the @MeshEXT@+-- @Execution@ @Model@.+-- -- == Valid Usage (Implicit) -- -- - #VUID-VkGeneratedCommandsInfoNV-sType-sType# @sType@ /must/ be@@ -3427,7 +3598,9 @@ -- for preprocessing the input data for execution. If this structure is -- used with 'cmdExecuteGeneratedCommandsNV' with its @isPreprocessed@ set -- to 'Vulkan.Core10.FundamentalTypes.TRUE', then the preprocessing step is- -- skipped and data is only read from this buffer.+ -- skipped and data is only read from this buffer. The contents and the+ -- layout of this buffer is opaque to applications and /must/ not be+ -- modified or copied to another buffer for reuse. preprocessBuffer :: Buffer , -- | @preprocessOffset@ is the byte offset into @preprocessBuffer@ where the -- preprocessed data is stored.@@ -3693,8 +3866,8 @@ type IndirectStateFlagsNV = IndirectStateFlagBitsNV --- | VkIndirectStateFlagBitsNV - Bitmask specifiying state that can be--- altered on the device+-- | VkIndirectStateFlagBitsNV - Bitmask specifying state that can be altered+-- on the device -- -- = See Also --@@ -3737,25 +3910,27 @@ -- -- \' ----- +-------------------------------------------------+------------------------------------------------------------------+--- | Token type | Equivalent command |--- +=================================================+==================================================================+--- | 'INDIRECT_COMMANDS_TOKEN_TYPE_SHADER_GROUP_NV' | 'cmdBindPipelineShaderGroupNV' |--- +-------------------------------------------------+------------------------------------------------------------------+--- | 'INDIRECT_COMMANDS_TOKEN_TYPE_STATE_FLAGS_NV' | - |--- +-------------------------------------------------+------------------------------------------------------------------+--- | 'INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_NV' | 'Vulkan.Core10.CommandBufferBuilding.cmdBindIndexBuffer' |--- +-------------------------------------------------+------------------------------------------------------------------+--- | 'INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_NV' | 'Vulkan.Core10.CommandBufferBuilding.cmdBindVertexBuffers' |--- +-------------------------------------------------+------------------------------------------------------------------+--- | 'INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV' | 'Vulkan.Core10.CommandBufferBuilding.cmdPushConstants' |--- +-------------------------------------------------+------------------------------------------------------------------+--- | 'INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_NV' | 'Vulkan.Core10.CommandBufferBuilding.cmdDrawIndexedIndirect' |--- +-------------------------------------------------+------------------------------------------------------------------+--- | 'INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NV' | 'Vulkan.Core10.CommandBufferBuilding.cmdDrawIndirect' |--- +-------------------------------------------------+------------------------------------------------------------------+--- | 'INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_TASKS_NV' | 'Vulkan.Extensions.VK_NV_mesh_shader.cmdDrawMeshTasksIndirectNV' |--- +-------------------------------------------------+------------------------------------------------------------------++-- +---------------------------------------------------+--------------------------------------------------------------------++-- | Token type | Equivalent command |+-- +===================================================+====================================================================++-- | 'INDIRECT_COMMANDS_TOKEN_TYPE_SHADER_GROUP_NV' | 'cmdBindPipelineShaderGroupNV' |+-- +---------------------------------------------------+--------------------------------------------------------------------++-- | 'INDIRECT_COMMANDS_TOKEN_TYPE_STATE_FLAGS_NV' | - |+-- +---------------------------------------------------+--------------------------------------------------------------------++-- | 'INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_NV' | 'Vulkan.Core10.CommandBufferBuilding.cmdBindIndexBuffer' |+-- +---------------------------------------------------+--------------------------------------------------------------------++-- | 'INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_NV' | 'Vulkan.Core10.CommandBufferBuilding.cmdBindVertexBuffers' |+-- +---------------------------------------------------+--------------------------------------------------------------------++-- | 'INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV' | 'Vulkan.Core10.CommandBufferBuilding.cmdPushConstants' |+-- +---------------------------------------------------+--------------------------------------------------------------------++-- | 'INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_NV' | 'Vulkan.Core10.CommandBufferBuilding.cmdDrawIndexedIndirect' |+-- +---------------------------------------------------+--------------------------------------------------------------------++-- | 'INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NV' | 'Vulkan.Core10.CommandBufferBuilding.cmdDrawIndirect' |+-- +---------------------------------------------------+--------------------------------------------------------------------++-- | 'INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_TASKS_NV' | 'Vulkan.Extensions.VK_NV_mesh_shader.cmdDrawMeshTasksIndirectNV' |+-- +---------------------------------------------------+--------------------------------------------------------------------++-- | 'INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_NV' | 'Vulkan.Extensions.VK_EXT_mesh_shader.cmdDrawMeshTasksIndirectEXT' |+-- +---------------------------------------------------+--------------------------------------------------------------------+ -- -- Supported indirect command tokens --@@ -3767,21 +3942,23 @@ deriving newtype (Eq, Ord, Storable, Zero) -- No documentation found for Nested "VkIndirectCommandsTokenTypeNV" "VK_INDIRECT_COMMANDS_TOKEN_TYPE_SHADER_GROUP_NV"-pattern INDIRECT_COMMANDS_TOKEN_TYPE_SHADER_GROUP_NV = IndirectCommandsTokenTypeNV 0+pattern INDIRECT_COMMANDS_TOKEN_TYPE_SHADER_GROUP_NV = IndirectCommandsTokenTypeNV 0 -- No documentation found for Nested "VkIndirectCommandsTokenTypeNV" "VK_INDIRECT_COMMANDS_TOKEN_TYPE_STATE_FLAGS_NV"-pattern INDIRECT_COMMANDS_TOKEN_TYPE_STATE_FLAGS_NV = IndirectCommandsTokenTypeNV 1+pattern INDIRECT_COMMANDS_TOKEN_TYPE_STATE_FLAGS_NV = IndirectCommandsTokenTypeNV 1 -- No documentation found for Nested "VkIndirectCommandsTokenTypeNV" "VK_INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_NV"-pattern INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_NV = IndirectCommandsTokenTypeNV 2+pattern INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_NV = IndirectCommandsTokenTypeNV 2 -- No documentation found for Nested "VkIndirectCommandsTokenTypeNV" "VK_INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_NV"-pattern INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_NV = IndirectCommandsTokenTypeNV 3+pattern INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_NV = IndirectCommandsTokenTypeNV 3 -- No documentation found for Nested "VkIndirectCommandsTokenTypeNV" "VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV"-pattern INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV = IndirectCommandsTokenTypeNV 4+pattern INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV = IndirectCommandsTokenTypeNV 4 -- No documentation found for Nested "VkIndirectCommandsTokenTypeNV" "VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_NV"-pattern INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_NV = IndirectCommandsTokenTypeNV 5+pattern INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_NV = IndirectCommandsTokenTypeNV 5 -- No documentation found for Nested "VkIndirectCommandsTokenTypeNV" "VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NV"-pattern INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NV = IndirectCommandsTokenTypeNV 6+pattern INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NV = IndirectCommandsTokenTypeNV 6 -- No documentation found for Nested "VkIndirectCommandsTokenTypeNV" "VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_TASKS_NV"-pattern INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_TASKS_NV = IndirectCommandsTokenTypeNV 7+pattern INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_TASKS_NV = IndirectCommandsTokenTypeNV 7+-- No documentation found for Nested "VkIndirectCommandsTokenTypeNV" "VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_NV"+pattern INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_NV = IndirectCommandsTokenTypeNV 1000328000 {-# complete INDIRECT_COMMANDS_TOKEN_TYPE_SHADER_GROUP_NV, INDIRECT_COMMANDS_TOKEN_TYPE_STATE_FLAGS_NV, INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_NV,@@ -3789,7 +3966,8 @@ INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV, INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_NV, INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NV,- INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_TASKS_NV :: IndirectCommandsTokenTypeNV #-}+ INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_TASKS_NV,+ INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_NV :: IndirectCommandsTokenTypeNV #-} conNameIndirectCommandsTokenTypeNV :: String conNameIndirectCommandsTokenTypeNV = "IndirectCommandsTokenTypeNV"@@ -3799,14 +3977,15 @@ showTableIndirectCommandsTokenTypeNV :: [(IndirectCommandsTokenTypeNV, String)] showTableIndirectCommandsTokenTypeNV =- [ (INDIRECT_COMMANDS_TOKEN_TYPE_SHADER_GROUP_NV , "SHADER_GROUP_NV")- , (INDIRECT_COMMANDS_TOKEN_TYPE_STATE_FLAGS_NV , "STATE_FLAGS_NV")- , (INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_NV , "INDEX_BUFFER_NV")- , (INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_NV, "VERTEX_BUFFER_NV")- , (INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV, "PUSH_CONSTANT_NV")- , (INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_NV , "DRAW_INDEXED_NV")- , (INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NV , "DRAW_NV")- , (INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_TASKS_NV , "DRAW_TASKS_NV")+ [ (INDIRECT_COMMANDS_TOKEN_TYPE_SHADER_GROUP_NV , "SHADER_GROUP_NV")+ , (INDIRECT_COMMANDS_TOKEN_TYPE_STATE_FLAGS_NV , "STATE_FLAGS_NV")+ , (INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_NV , "INDEX_BUFFER_NV")+ , (INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_NV , "VERTEX_BUFFER_NV")+ , (INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV , "PUSH_CONSTANT_NV")+ , (INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_NV , "DRAW_INDEXED_NV")+ , (INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NV , "DRAW_NV")+ , (INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_TASKS_NV , "DRAW_TASKS_NV")+ , (INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_NV, "DRAW_MESH_TASKS_NV") ] instance Show IndirectCommandsTokenTypeNV where
src/Vulkan/Extensions/VK_NV_device_generated_commands.hs-boot view
@@ -19,9 +19,10 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.1+-- - Requires support for Vulkan 1.1 ----- - Requires @VK_KHR_buffer_device_address@+-- - Requires @VK_KHR_buffer_device_address@ to be enabled for any+-- device-level functionality -- -- [__Contact__] --@@ -291,7 +292,7 @@ -- -- 5) Should the input be provided as SoA or AoS? ----- Both ways are desireable. AoS can provide portability to other APIs and+-- Both ways are desirable. AoS can provide portability to other APIs and -- easier to setup, while SoA allows to update individual inputs in a -- cache-efficient manner, when others remain static. --@@ -540,7 +541,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_device_generated_commands Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_device_generated_commands Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_NV_external_memory.hs view
@@ -19,9 +19,10 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_NV_external_memory_capabilities@+-- - Requires @VK_NV_external_memory_capabilities@ to be enabled for+-- any device-level functionality -- -- [__Deprecation state__] --@@ -85,7 +86,7 @@ -- -- 1) If memory objects are shared between processes and APIs, is this -- considered aliasing according to the rules outlined in the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#resources-memory-aliasing Memory Aliasing>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#resources-memory-aliasing Memory Aliasing> -- section? -- -- __RESOLVED__: Yes, but strict exceptions to the rules are added to allow@@ -100,7 +101,7 @@ -- -- __RESOLVED__: No. Separate instances of the same Vulkan driver running -- on the same GPU should have identical internal layout semantics, so--- applictions have the tools they need to ensure views of images are+-- applications have the tools they need to ensure views of images are -- consistent between the two instances. Other APIs will fall into two -- categories: Those that are Vulkan compatible (a term to be defined by -- subsequent interopability extensions), or Vulkan incompatible. When@@ -130,7 +131,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_external_memory Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_external_memory Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.@@ -178,7 +179,7 @@ -- 'Vulkan.Extensions.VK_NV_external_memory_capabilities.ExternalMemoryHandleTypeFlagsNV', -- 'Vulkan.Core10.Enums.StructureType.StructureType' data ExternalMemoryImageCreateInfoNV = ExternalMemoryImageCreateInfoNV- { -- | @handleTypes@ is zero, or a bitmask of+ { -- | @handleTypes@ is zero or a bitmask of -- 'Vulkan.Extensions.VK_NV_external_memory_capabilities.ExternalMemoryHandleTypeFlagBitsNV' -- specifying one or more external memory handle types. --
src/Vulkan/Extensions/VK_NV_external_memory.hs-boot view
@@ -19,9 +19,10 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_NV_external_memory_capabilities@+-- - Requires @VK_NV_external_memory_capabilities@ to be enabled for+-- any device-level functionality -- -- [__Deprecation state__] --@@ -85,7 +86,7 @@ -- -- 1) If memory objects are shared between processes and APIs, is this -- considered aliasing according to the rules outlined in the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#resources-memory-aliasing Memory Aliasing>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#resources-memory-aliasing Memory Aliasing> -- section? -- -- __RESOLVED__: Yes, but strict exceptions to the rules are added to allow@@ -100,7 +101,7 @@ -- -- __RESOLVED__: No. Separate instances of the same Vulkan driver running -- on the same GPU should have identical internal layout semantics, so--- applictions have the tools they need to ensure views of images are+-- applications have the tools they need to ensure views of images are -- consistent between the two instances. Other APIs will fall into two -- categories: Those that are Vulkan compatible (a term to be defined by -- subsequent interopability extensions), or Vulkan incompatible. When@@ -130,7 +131,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_external_memory Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_external_memory Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_NV_external_memory_capabilities.hs view
@@ -19,7 +19,7 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 -- -- [__Deprecation state__] --@@ -132,7 +132,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_external_memory_capabilities Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_external_memory_capabilities Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_NV_external_memory_capabilities.hs-boot view
@@ -19,7 +19,7 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 -- -- [__Deprecation state__] --@@ -132,7 +132,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_external_memory_capabilities Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_external_memory_capabilities Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_NV_external_memory_rdma.hs view
@@ -19,9 +19,10 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_external_memory@+-- - Requires @VK_KHR_external_memory@ to be enabled for any+-- device-level functionality -- -- [__Contact__] --@@ -166,7 +167,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_external_memory_rdma Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_external_memory_rdma Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_NV_external_memory_rdma.hs-boot view
@@ -19,9 +19,10 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_external_memory@+-- - Requires @VK_KHR_external_memory@ to be enabled for any+-- device-level functionality -- -- [__Contact__] --@@ -166,7 +167,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_external_memory_rdma Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_external_memory_rdma Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_NV_external_memory_win32.hs view
@@ -19,9 +19,10 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_NV_external_memory@+-- - Requires @VK_NV_external_memory@ to be enabled for any+-- device-level functionality -- -- [__Deprecation state__] --@@ -85,7 +86,7 @@ -- -- 1) If memory objects are shared between processes and APIs, is this -- considered aliasing according to the rules outlined in the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#resources-memory-aliasing Memory Aliasing>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#resources-memory-aliasing Memory Aliasing> -- section? -- -- __RESOLVED__: Yes, but strict exceptions to the rules are added to allow@@ -100,7 +101,7 @@ -- -- __RESOLVED__: No. Separate instances of the same Vulkan driver running -- on the same GPU should have identical internal layout semantics, so--- applictions have the tools they need to ensure views of images are+-- applications have the tools they need to ensure views of images are -- consistent between the two instances. Other APIs will fall into two -- categories: Those that are Vulkan compatible (a term to be defined by -- subsequent interopability extensions), or Vulkan incompatible. When@@ -271,7 +272,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_external_memory_win32 Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_external_memory_win32 Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_NV_external_memory_win32.hs-boot view
@@ -19,9 +19,10 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_NV_external_memory@+-- - Requires @VK_NV_external_memory@ to be enabled for any+-- device-level functionality -- -- [__Deprecation state__] --@@ -85,7 +86,7 @@ -- -- 1) If memory objects are shared between processes and APIs, is this -- considered aliasing according to the rules outlined in the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#resources-memory-aliasing Memory Aliasing>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#resources-memory-aliasing Memory Aliasing> -- section? -- -- __RESOLVED__: Yes, but strict exceptions to the rules are added to allow@@ -100,7 +101,7 @@ -- -- __RESOLVED__: No. Separate instances of the same Vulkan driver running -- on the same GPU should have identical internal layout semantics, so--- applictions have the tools they need to ensure views of images are+-- applications have the tools they need to ensure views of images are -- consistent between the two instances. Other APIs will fall into two -- categories: Those that are Vulkan compatible (a term to be defined by -- subsequent interopability extensions), or Vulkan incompatible. When@@ -271,7 +272,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_external_memory_win32 Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_external_memory_win32 Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_NV_fill_rectangle.hs view
@@ -19,7 +19,7 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 -- -- [__Contact__] --@@ -68,7 +68,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_fill_rectangle Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_fill_rectangle Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_NV_fragment_coverage_to_color.hs view
@@ -19,7 +19,7 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 -- -- [__Contact__] --@@ -86,7 +86,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_fragment_coverage_to_color Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_fragment_coverage_to_color Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.@@ -143,7 +143,7 @@ -- fragment color output and, if so, which output is replaced. -- -- If @coverageToColorEnable@ is 'Vulkan.Core10.FundamentalTypes.TRUE', the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-multisampling-coverage-mask coverage mask>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-multisampling-coverage-mask coverage mask> -- replaces the first component of the color value corresponding to the -- fragment shader output location with @Location@ equal to -- @coverageToColorLocation@ and @Index@ equal to zero. If the color
src/Vulkan/Extensions/VK_NV_fragment_coverage_to_color.hs-boot view
@@ -19,7 +19,7 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 -- -- [__Contact__] --@@ -86,7 +86,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_fragment_coverage_to_color Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_fragment_coverage_to_color Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_NV_fragment_shader_barycentric.hs view
@@ -19,10 +19,15 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_get_physical_device_properties2@+-- - Requires @VK_KHR_get_physical_device_properties2@ to be enabled+-- for any device-level functionality --+-- [__Deprecation state__]+--+-- - /Promoted/ to @VK_KHR_fragment_shader_barycentric@ extension+-- -- [__Contact__] -- -- - Pat Brown@@ -84,6 +89,11 @@ -- GLSL variables declared using the @__pervertexNV@ GLSL qualifier are -- expected to be decorated with @PerVertexNV@ in SPIR-V. --+-- == Promotion to @VK_KHR_fragment_shader_barycentric@+--+-- All functionality in this extension is included in+-- @VK_KHR_fragment_shader_barycentric@, with the suffix changed to KHR.+-- -- == New Structures -- -- - Extending@@ -100,21 +110,21 @@ -- -- - Extending 'Vulkan.Core10.Enums.StructureType.StructureType': ----- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_NV'+-- - 'STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_NV' -- -- == New Built-In Variables ----- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-barycoordnv BaryCoordNV>+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-barycoordkhr BaryCoordNV> ----- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-barycoordnoperspnv BaryCoordNoPerspNV>+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-barycoordnoperspkhr BaryCoordNoPerspNV> -- -- == New SPIR-V Decorations ----- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-interpolation-decorations-pervertexnv PerVertexNV>+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-interpolation-decorations-pervertexkhr PerVertexNV> -- -- == New SPIR-V Capabilities ----- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-FragmentBarycentricNV FragmentBarycentricNV>+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-FragmentBarycentricKHR FragmentBarycentricNV> -- -- == Issues --@@ -176,113 +186,29 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_fragment_shader_barycentric Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_fragment_shader_barycentric Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.-module Vulkan.Extensions.VK_NV_fragment_shader_barycentric ( PhysicalDeviceFragmentShaderBarycentricFeaturesNV(..)+module Vulkan.Extensions.VK_NV_fragment_shader_barycentric ( pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_NV+ , PhysicalDeviceFragmentShaderBarycentricFeaturesNV , NV_FRAGMENT_SHADER_BARYCENTRIC_SPEC_VERSION , pattern NV_FRAGMENT_SHADER_BARYCENTRIC_SPEC_VERSION , NV_FRAGMENT_SHADER_BARYCENTRIC_EXTENSION_NAME , pattern NV_FRAGMENT_SHADER_BARYCENTRIC_EXTENSION_NAME+ , PhysicalDeviceFragmentShaderBarycentricFeaturesKHR(..) ) where -import Foreign.Marshal.Alloc (allocaBytes)-import Foreign.Ptr (nullPtr)-import Foreign.Ptr (plusPtr)-import Vulkan.CStruct (FromCStruct)-import Vulkan.CStruct (FromCStruct(..))-import Vulkan.CStruct (ToCStruct)-import Vulkan.CStruct (ToCStruct(..))-import Vulkan.Zero (Zero(..)) import Data.String (IsString)-import Data.Typeable (Typeable)-import Foreign.Storable (Storable)-import Foreign.Storable (Storable(peek))-import Foreign.Storable (Storable(poke))-import qualified Foreign.Storable (Storable(..))-import GHC.Generics (Generic)-import Foreign.Ptr (Ptr)-import Data.Kind (Type)-import Vulkan.Core10.FundamentalTypes (bool32ToBool)-import Vulkan.Core10.FundamentalTypes (boolToBool32)-import Vulkan.Core10.FundamentalTypes (Bool32)-import Vulkan.Core10.Enums.StructureType (StructureType)-import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_NV))--- | VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV - Structure--- describing barycentric support in fragment shaders that can be supported--- by an implementation------ = Members------ This structure describes the following feature:------ = Description------ See--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-barycentric Barycentric Interpolation>--- for more information.------ If the 'PhysicalDeviceFragmentShaderBarycentricFeaturesNV' structure is--- included in the @pNext@ chain of the--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2'--- structure passed to--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceFeatures2',--- it is filled in to indicate whether each corresponding feature is--- supported. 'PhysicalDeviceFragmentShaderBarycentricFeaturesNV' /can/--- also be used in the @pNext@ chain of--- 'Vulkan.Core10.Device.DeviceCreateInfo' to selectively enable these--- features.------ == Valid Usage (Implicit)------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_fragment_shader_barycentric VK_NV_fragment_shader_barycentric>,--- 'Vulkan.Core10.FundamentalTypes.Bool32',--- 'Vulkan.Core10.Enums.StructureType.StructureType'-data PhysicalDeviceFragmentShaderBarycentricFeaturesNV = PhysicalDeviceFragmentShaderBarycentricFeaturesNV- { -- | #features-fragmentShaderBarycentric# @fragmentShaderBarycentric@- -- indicates that the implementation supports the @BaryCoordNV@ and- -- @BaryCoordNoPerspNV@ SPIR-V fragment shader built-ins and supports the- -- @PerVertexNV@ SPIR-V decoration on fragment shader input variables.- fragmentShaderBarycentric :: Bool }- deriving (Typeable, Eq)-#if defined(GENERIC_INSTANCES)-deriving instance Generic (PhysicalDeviceFragmentShaderBarycentricFeaturesNV)-#endif-deriving instance Show PhysicalDeviceFragmentShaderBarycentricFeaturesNV+import Vulkan.Extensions.VK_KHR_fragment_shader_barycentric (PhysicalDeviceFragmentShaderBarycentricFeaturesKHR)+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_KHR))+import Vulkan.Extensions.VK_KHR_fragment_shader_barycentric (PhysicalDeviceFragmentShaderBarycentricFeaturesKHR(..))+-- No documentation found for TopLevel "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_NV"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_NV = STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_KHR -instance ToCStruct PhysicalDeviceFragmentShaderBarycentricFeaturesNV where- withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)- pokeCStruct p PhysicalDeviceFragmentShaderBarycentricFeaturesNV{..} f = do- poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_NV)- poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)- poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (fragmentShaderBarycentric))- f- cStructSize = 24- cStructAlignment = 8- pokeZeroCStruct p f = do- poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_NV)- poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)- poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (zero))- f -instance FromCStruct PhysicalDeviceFragmentShaderBarycentricFeaturesNV where- peekCStruct p = do- fragmentShaderBarycentric <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))- pure $ PhysicalDeviceFragmentShaderBarycentricFeaturesNV- (bool32ToBool fragmentShaderBarycentric)--instance Storable PhysicalDeviceFragmentShaderBarycentricFeaturesNV where- sizeOf ~_ = 24- alignment ~_ = 8- peek = peekCStruct- poke ptr poked = pokeCStruct ptr poked (pure ())--instance Zero PhysicalDeviceFragmentShaderBarycentricFeaturesNV where- zero = PhysicalDeviceFragmentShaderBarycentricFeaturesNV- zero+-- No documentation found for TopLevel "VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV"+type PhysicalDeviceFragmentShaderBarycentricFeaturesNV = PhysicalDeviceFragmentShaderBarycentricFeaturesKHR type NV_FRAGMENT_SHADER_BARYCENTRIC_SPEC_VERSION = 1
− src/Vulkan/Extensions/VK_NV_fragment_shader_barycentric.hs-boot
@@ -1,195 +0,0 @@-{-# language CPP #-}--- | = Name------ VK_NV_fragment_shader_barycentric - device extension------ == VK_NV_fragment_shader_barycentric------ [__Name String__]--- @VK_NV_fragment_shader_barycentric@------ [__Extension Type__]--- Device extension------ [__Registered Extension Number__]--- 204------ [__Revision__]--- 1------ [__Extension and Version Dependencies__]------ - Requires Vulkan 1.0------ - Requires @VK_KHR_get_physical_device_properties2@------ [__Contact__]------ - Pat Brown--- <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_NV_fragment_shader_barycentric] @nvpbrown%0A<<Here describe the issue or question you have about the VK_NV_fragment_shader_barycentric extension>> >------ == Other Extension Metadata------ [__Last Modified Date__]--- 2018-08-03------ [__IP Status__]--- No known IP claims.------ [__Interactions and External Dependencies__]------ - This extension requires--- <https://htmlpreview.github.io/?https://github.com/KhronosGroup/SPIRV-Registry/blob/master/extensions/NV/SPV_NV_fragment_shader_barycentric.html SPV_NV_fragment_shader_barycentric>------ - This extension provides API support for--- <https://github.com/KhronosGroup/GLSL/blob/master/extensions/nv/GLSL_NV_fragment_shader_barycentric.txt GL_NV_fragment_shader_barycentric>------ [__Contributors__]------ - Pat Brown, NVIDIA------ - Daniel Koch, NVIDIA------ == Description------ This extension adds support for the following SPIR-V extension in--- Vulkan:------ - <https://htmlpreview.github.io/?https://github.com/KhronosGroup/SPIRV-Registry/blob/master/extensions/NV/SPV_NV_fragment_shader_barycentric.html SPV_NV_fragment_shader_barycentric>------ The extension provides access to three additional fragment shader--- variable decorations in SPIR-V:------ - @PerVertexNV@, which indicates that a fragment shader input will not--- have interpolated values, but instead must be accessed with an extra--- array index that identifies one of the vertices of the primitive--- producing the fragment------ - @BaryCoordNV@, which indicates that the variable is a--- three-component floating-point vector holding barycentric weights--- for the fragment produced using perspective interpolation------ - @BaryCoordNoPerspNV@, which indicates that the variable is a--- three-component floating-point vector holding barycentric weights--- for the fragment produced using linear interpolation------ When using GLSL source-based shader languages, the following variables--- from @GL_NV_fragment_shader_barycentric@ maps to these SPIR-V built-in--- decorations:------ - @in vec3 gl_BaryCoordNV;@ → @BaryCoordNV@------ - @in vec3 gl_BaryCoordNoPerspNV;@ → @BaryCoordNoPerspNV@------ GLSL variables declared using the @__pervertexNV@ GLSL qualifier are--- expected to be decorated with @PerVertexNV@ in SPIR-V.------ == New Structures------ - Extending--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',--- 'Vulkan.Core10.Device.DeviceCreateInfo':------ - 'PhysicalDeviceFragmentShaderBarycentricFeaturesNV'------ == New Enum Constants------ - 'NV_FRAGMENT_SHADER_BARYCENTRIC_EXTENSION_NAME'------ - 'NV_FRAGMENT_SHADER_BARYCENTRIC_SPEC_VERSION'------ - Extending 'Vulkan.Core10.Enums.StructureType.StructureType':------ - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_NV'------ == New Built-In Variables------ - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-barycoordnv BaryCoordNV>------ - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-barycoordnoperspnv BaryCoordNoPerspNV>------ == New SPIR-V Decorations------ - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-interpolation-decorations-pervertexnv PerVertexNV>------ == New SPIR-V Capabilities------ - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-FragmentBarycentricNV FragmentBarycentricNV>------ == Issues------ (1) The AMD_shader_explicit_vertex_parameter extension provides similar--- functionality. Why write a new extension, and how is this extension--- different?------ __RESOLVED__: For the purposes of Vulkan\/SPIR-V, we chose to implement--- a separate extension due to several functional differences.------ First, the hardware supporting this extension can provide a--- three-component barycentric weight vector for variables decorated with--- @BaryCoordNV@, while variables decorated with @BaryCoordSmoothAMD@--- provide only two components. In some cases, it may be more efficient to--- explicitly interpolate an attribute via:------ > float value = (baryCoordNV.x * v[0].attrib +--- > baryCoordNV.y * v[1].attrib +--- > baryCoordNV.z * v[2].attrib);------ instead of------ > float value = (baryCoordSmoothAMD.x * (v[0].attrib - v[2].attrib) +--- > baryCoordSmoothAMD.y * (v[1].attrib - v[2].attrib) +--- > v[2].attrib);------ Additionally, the semantics of the decoration @BaryCoordPullModelAMD@ do--- not appear to map to anything supported by the initial hardware--- implementation of this extension.------ This extension provides a smaller number of decorations than the AMD--- extension, as we expect that shaders could derive variables decorated--- with things like @BaryCoordNoPerspCentroidAMD@ with explicit attribute--- interpolation instructions. One other relevant difference is that--- explicit per-vertex attribute access using this extension does not--- require a constant vertex number.------ (2) Why do the built-in SPIR-V decorations for this extension include--- two separate built-ins @BaryCoordNV@ and @BaryCoordNoPerspNV@ when a “no--- perspective” variable could be decorated with @BaryCoordNV@ and--- @NoPerspective@?------ __RESOLVED__: The SPIR-V extension for this feature chose to mirror the--- behavior of the GLSL extension, which provides two built-in variables.--- Additionally, it is not clear that its a good idea (or even legal) to--- have two variables using the “same attribute”, but with different--- interpolation modifiers.------ == Version History------ - Revision 1, 2018-08-03 (Pat Brown)------ - Internal revisions------ == See Also------ 'PhysicalDeviceFragmentShaderBarycentricFeaturesNV'------ == Document Notes------ For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_fragment_shader_barycentric Vulkan Specification>------ This page is a generated document. Fixes and changes should be made to--- the generator scripts, not directly.-module Vulkan.Extensions.VK_NV_fragment_shader_barycentric (PhysicalDeviceFragmentShaderBarycentricFeaturesNV) where--import Vulkan.CStruct (FromCStruct)-import Vulkan.CStruct (ToCStruct)-import Data.Kind (Type)--data PhysicalDeviceFragmentShaderBarycentricFeaturesNV--instance ToCStruct PhysicalDeviceFragmentShaderBarycentricFeaturesNV-instance Show PhysicalDeviceFragmentShaderBarycentricFeaturesNV--instance FromCStruct PhysicalDeviceFragmentShaderBarycentricFeaturesNV-
src/Vulkan/Extensions/VK_NV_fragment_shading_rate_enums.hs view
@@ -19,9 +19,10 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_fragment_shading_rate@+-- - Requires @VK_KHR_fragment_shading_rate@ to be enabled for any+-- device-level functionality -- -- [__Contact__] --@@ -170,7 +171,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_fragment_shading_rate_enums Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_fragment_shading_rate_enums Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.@@ -293,13 +294,13 @@ -- -- - #VUID-vkCmdSetFragmentShadingRateEnumNV-pipelineFragmentShadingRate-04576# -- If--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-pipelineFragmentShadingRate pipelineFragmentShadingRate>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-pipelineFragmentShadingRate pipelineFragmentShadingRate> -- is not enabled, @shadingRate@ /must/ be -- 'FRAGMENT_SHADING_RATE_1_INVOCATION_PER_PIXEL_NV' -- -- - #VUID-vkCmdSetFragmentShadingRateEnumNV-supersampleFragmentShadingRates-04577# -- If--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-supersampleFragmentShadingRates supersampleFragmentShadingRates>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-supersampleFragmentShadingRates supersampleFragmentShadingRates> -- is not enabled, @shadingRate@ /must/ not be -- 'FRAGMENT_SHADING_RATE_2_INVOCATIONS_PER_PIXEL_NV', -- 'FRAGMENT_SHADING_RATE_4_INVOCATIONS_PER_PIXEL_NV',@@ -308,37 +309,38 @@ -- -- - #VUID-vkCmdSetFragmentShadingRateEnumNV-noInvocationFragmentShadingRates-04578# -- If--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-noInvocationFragmentShadingRates noInvocationFragmentShadingRates>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-noInvocationFragmentShadingRates noInvocationFragmentShadingRates> -- is not enabled, @shadingRate@ /must/ not be -- 'FRAGMENT_SHADING_RATE_NO_INVOCATIONS_NV' -- -- - #VUID-vkCmdSetFragmentShadingRateEnumNV-fragmentShadingRateEnums-04579#--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-fragmentShadingRateEnums fragmentShadingRateEnums>--- /must/ be enabled+-- The+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-fragmentShadingRateEnums fragmentShadingRateEnums>+-- feature /must/ be enabled -- -- - #VUID-vkCmdSetFragmentShadingRateEnumNV-pipelineFragmentShadingRate-04580#--- One of--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-pipelineFragmentShadingRate pipelineFragmentShadingRate>,--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-primitiveFragmentShadingRate primitiveFragmentShadingRate>,+-- One of the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-pipelineFragmentShadingRate pipelineFragmentShadingRate>,+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-primitiveFragmentShadingRate primitiveFragmentShadingRate>, -- or--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-attachmentFragmentShadingRate attachmentFragmentShadingRate>--- /must/ be enabled+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-attachmentFragmentShadingRate attachmentFragmentShadingRate>+-- features /must/ be enabled -- -- - #VUID-vkCmdSetFragmentShadingRateEnumNV-primitiveFragmentShadingRate-04581# -- If the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-primitiveFragmentShadingRate primitiveFragmentShadingRate feature>--- is not enabled, @combinerOps@[0] /must/ be+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-primitiveFragmentShadingRate primitiveFragmentShadingRate>+-- feature is not enabled, @combinerOps@[0] /must/ be -- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR' -- -- - #VUID-vkCmdSetFragmentShadingRateEnumNV-attachmentFragmentShadingRate-04582# -- If the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-attachmentFragmentShadingRate attachmentFragmentShadingRate feature>--- is not enabled, @combinerOps@[1] /must/ be+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-attachmentFragmentShadingRate attachmentFragmentShadingRate>+-- feature is not enabled, @combinerOps@[1] /must/ be -- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR' -- -- - #VUID-vkCmdSetFragmentShadingRateEnumNV-fragmentSizeNonTrivialCombinerOps-04583# -- If the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#limits-fragmentShadingRateNonTrivialCombinerOps fragmentSizeNonTrivialCombinerOps>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-fragmentShadingRateNonTrivialCombinerOps fragmentSizeNonTrivialCombinerOps> -- limit is not supported, elements of @combinerOps@ /must/ be either -- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR' -- or@@ -366,6 +368,9 @@ -- 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was -- allocated from /must/ support graphics operations --+-- - #VUID-vkCmdSetFragmentShadingRateEnumNV-videocoding# This command+-- /must/ only be called outside of a video coding scope+-- -- == Host Synchronization -- -- - Host access to @commandBuffer@ /must/ be externally synchronized@@ -377,12 +382,12 @@ -- -- \' ----- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | Primary | Both | Graphics |--- | Secondary | | |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================++-- | Primary | Both | Outside | Graphics |+-- | Secondary | | | |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+ -- -- = See Also --@@ -401,12 +406,12 @@ -> -- | @combinerOps@ specifies a -- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.FragmentShadingRateCombinerOpKHR' -- determining how the- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-fragment-shading-rate-pipeline pipeline>,- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-fragment-shading-rate-primitive primitive>,+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-fragment-shading-rate-pipeline pipeline>,+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-fragment-shading-rate-primitive primitive>, -- and- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-fragment-shading-rate-attachment attachment shading rates>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-fragment-shading-rate-attachment attachment shading rates> -- are- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-fragment-shading-rate-combining combined>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-fragment-shading-rate-combining combined> -- for fragments generated by subsequent drawing commands. ("combinerOps" ::: (FragmentShadingRateCombinerOpKHR, FragmentShadingRateCombinerOpKHR)) -> io ()@@ -528,7 +533,7 @@ -- property. -- -- These properties are related to--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-fragment-shading-rate fragment shading rates>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-fragment-shading-rate fragment shading rates>. -- -- == Valid Usage (Implicit) --@@ -625,12 +630,12 @@ , -- | @combinerOps@ specifies -- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.FragmentShadingRateCombinerOpKHR' -- values determining how the- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-fragment-shading-rate-pipeline pipeline>,- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-fragment-shading-rate-primitive primitive>,+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-fragment-shading-rate-pipeline pipeline>,+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-fragment-shading-rate-primitive primitive>, -- and- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-fragment-shading-rate-attachment attachment shading rates>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-fragment-shading-rate-attachment attachment shading rates> -- are- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-fragment-shading-rate-combining combined>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-fragment-shading-rate-combining combined> -- for fragments generated by drawing commands using the created pipeline. combinerOps :: (FragmentShadingRateCombinerOpKHR, FragmentShadingRateCombinerOpKHR) }
src/Vulkan/Extensions/VK_NV_fragment_shading_rate_enums.hs-boot view
@@ -19,9 +19,10 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_fragment_shading_rate@+-- - Requires @VK_KHR_fragment_shading_rate@ to be enabled for any+-- device-level functionality -- -- [__Contact__] --@@ -170,7 +171,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_fragment_shading_rate_enums Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_fragment_shading_rate_enums Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_NV_framebuffer_mixed_samples.hs view
@@ -19,7 +19,7 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 -- -- [__Contact__] --@@ -116,7 +116,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_framebuffer_mixed_samples Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_framebuffer_mixed_samples Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.@@ -228,7 +228,7 @@ -- @coverageModulationMode@ is 'COVERAGE_MODULATION_MODE_NONE_NV'. -- -- If the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#fragops-coverage-reduction coverage reduction mode>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fragops-coverage-reduction coverage reduction mode> -- is -- 'Vulkan.Extensions.VK_NV_coverage_reduction_mode.COVERAGE_REDUCTION_MODE_TRUNCATE_NV', -- each color sample is associated with only a single coverage sample. In
src/Vulkan/Extensions/VK_NV_framebuffer_mixed_samples.hs-boot view
@@ -19,7 +19,7 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 -- -- [__Contact__] --@@ -116,7 +116,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_framebuffer_mixed_samples Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_framebuffer_mixed_samples Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_NV_geometry_shader_passthrough.hs view
@@ -19,7 +19,7 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 -- -- [__Contact__] --@@ -37,7 +37,7 @@ -- <https://htmlpreview.github.io/?https://github.com/KhronosGroup/SPIRV-Registry/blob/master/extensions/NV/SPV_NV_geometry_shader_passthrough.html SPV_NV_geometry_shader_passthrough> -- -- - This extension provides API support for--- <https://www.khronos.org/registry/OpenGL/extensions/NV/NV_geometry_shader_passthrough.txt GL_NV_geometry_shader_passthrough>+-- <https://registry.khronos.org/OpenGL/extensions/NV/NV_geometry_shader_passthrough.txt GL_NV_geometry_shader_passthrough> -- -- - This extension requires the @geometryShader@ feature. --@@ -84,13 +84,13 @@ -- -- == New Variable Decoration ----- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#geometry-passthrough-passthrough PassthroughNV>+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#geometry-passthrough-passthrough PassthroughNV> -- in--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#geometry-passthrough Geometry Shader Passthrough>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#geometry-passthrough Geometry Shader Passthrough> -- -- == New SPIR-V Capabilities ----- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-GeometryShaderPassthroughNV GeometryShaderPassthroughNV>+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-GeometryShaderPassthroughNV GeometryShaderPassthroughNV> -- -- == Issues --@@ -117,12 +117,12 @@ -- 2) How does interface matching work with passthrough geometry shaders? -- -- __RESOLVED__: This is described in--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#geometry-passthrough-interface Passthrough Interface Matching>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#geometry-passthrough-interface Passthrough Interface Matching>. -- In GL when using passthough geometry shaders in separable mode, all -- inputs must also be explicitly assigned location layout qualifiers. In -- Vulkan all SPIR-V shader inputs (except built-ins) must also have--- location decorations specified. Redeclarations of built-in varables that--- add the passthrough layout qualifier are exempted from the rule+-- location decorations specified. Redeclarations of built-in variables+-- that add the passthrough layout qualifier are exempted from the rule -- requiring location assignment because built-in variables do not have -- locations and are matched by @BuiltIn@ decoration. --@@ -201,7 +201,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_geometry_shader_passthrough Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_geometry_shader_passthrough Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_NV_glsl_shader.hs view
@@ -19,7 +19,7 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 -- -- [__Deprecation state__] --@@ -103,7 +103,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_glsl_shader Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_glsl_shader Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_NV_inherited_viewport_scissor.hs view
@@ -19,7 +19,7 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 -- -- [__Contact__] --@@ -146,7 +146,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_inherited_viewport_scissor Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_inherited_viewport_scissor Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.@@ -349,13 +349,13 @@ -- -- - #VUID-VkCommandBufferInheritanceViewportScissorInfoNV-viewportScissor2D-04782# -- If the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-inheritedViewportScissor2D inherited viewport scissor>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-inheritedViewportScissor2D inheritedViewportScissor2D> -- feature is not enabled, @viewportScissor2D@ /must/ be -- 'Vulkan.Core10.FundamentalTypes.FALSE' -- -- - #VUID-VkCommandBufferInheritanceViewportScissorInfoNV-viewportScissor2D-04783# -- If the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-multiViewport multiple viewports>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-multiViewport multiViewport> -- feature is not enabled and @viewportScissor2D@ is -- 'Vulkan.Core10.FundamentalTypes.TRUE', then @viewportDepthCount@ -- /must/ be @1@
src/Vulkan/Extensions/VK_NV_inherited_viewport_scissor.hs-boot view
@@ -19,7 +19,7 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 -- -- [__Contact__] --@@ -146,7 +146,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_inherited_viewport_scissor Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_inherited_viewport_scissor Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_NV_linear_color_attachment.hs view
@@ -19,7 +19,7 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 -- -- [__Contact__] --@@ -33,8 +33,7 @@ -- -- [__Interactions and External Dependencies__] ----- - This extension requires--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_format_feature_flags2 VK_KHR_format_feature_flags2>+-- - This extension requires @VK_KHR_format_feature_flags2@ -- -- [__Contributors__] --@@ -108,7 +107,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_linear_color_attachment Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_linear_color_attachment Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.@@ -148,7 +147,7 @@ -- -- = Members ----- This structure describes the following features:+-- This structure describes the following feature: -- -- = Description --@@ -172,7 +171,7 @@ data PhysicalDeviceLinearColorAttachmentFeaturesNV = PhysicalDeviceLinearColorAttachmentFeaturesNV { -- | #features-linearColorAttachment# @linearColorAttachment@ indicates -- whether the implementation supports renderable- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#glossary Linear Color Attachment>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#glossary Linear Color Attachment> linearColorAttachment :: Bool } deriving (Typeable, Eq) #if defined(GENERIC_INSTANCES)
src/Vulkan/Extensions/VK_NV_linear_color_attachment.hs-boot view
@@ -19,7 +19,7 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 -- -- [__Contact__] --@@ -33,8 +33,7 @@ -- -- [__Interactions and External Dependencies__] ----- - This extension requires--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_format_feature_flags2 VK_KHR_format_feature_flags2>+-- - This extension requires @VK_KHR_format_feature_flags2@ -- -- [__Contributors__] --@@ -108,7 +107,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_linear_color_attachment Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_linear_color_attachment Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_NV_mesh_shader.hs view
@@ -19,9 +19,10 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_get_physical_device_properties2@+-- - Requires @VK_KHR_get_physical_device_properties2@ to be enabled+-- for any device-level functionality -- -- [__Contact__] --@@ -65,7 +66,7 @@ -- generate these collections to be processed by fixed-function primitive -- assembly and rasterization logic. When task and mesh shaders are -- dispatched, they replace the core--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization stages>,+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization stages>, -- including vertex array attribute fetching, vertex shader processing, -- tessellation, and geometry shader processing. --@@ -106,16 +107,16 @@ -- - Extending -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlagBits': ----- - 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_MESH_SHADER_BIT_NV'+-- - 'PIPELINE_STAGE_MESH_SHADER_BIT_NV' ----- - 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TASK_SHADER_BIT_NV'+-- - 'PIPELINE_STAGE_TASK_SHADER_BIT_NV' -- -- - Extending -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.ShaderStageFlagBits': ----- - 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_NV'+-- - 'SHADER_STAGE_MESH_BIT_NV' ----- - 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_NV'+-- - 'SHADER_STAGE_TASK_BIT_NV' -- -- - Extending 'Vulkan.Core10.Enums.StructureType.StructureType': --@@ -125,21 +126,21 @@ -- -- == New or Modified Built-In Variables ----- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-taskcount TaskCountNV>+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-taskcount TaskCountNV> ----- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-primitivecount PrimitiveCountNV>+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-primitivecount PrimitiveCountNV> ----- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-primitiveindices PrimitiveIndicesNV>+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-primitiveindices PrimitiveIndicesNV> ----- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-clipdistancepv ClipDistancePerViewNV>+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-clipdistancepv ClipDistancePerViewNV> ----- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-culldistancepv CullDistancePerViewNV>+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-culldistancepv CullDistancePerViewNV> ----- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-layerpv LayerPerViewNV>+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-layerpv LayerPerViewNV> ----- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-meshviewcount MeshViewCountNV>+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-meshviewcount MeshViewCountNV> ----- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-meshviewindices MeshViewIndicesNV>+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-meshviewindices MeshViewIndicesNV> -- -- - (modified)@Position@ --@@ -175,7 +176,7 @@ -- -- == New SPIR-V Capability ----- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-MeshShadingNV MeshShadingNV>+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-MeshShadingNV MeshShadingNV> -- -- == Issues --@@ -252,13 +253,17 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_mesh_shader Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_mesh_shader Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly. module Vulkan.Extensions.VK_NV_mesh_shader ( cmdDrawMeshTasksNV , cmdDrawMeshTasksIndirectNV , cmdDrawMeshTasksIndirectCountNV+ , pattern SHADER_STAGE_TASK_BIT_NV+ , pattern SHADER_STAGE_MESH_BIT_NV+ , pattern PIPELINE_STAGE_TASK_SHADER_BIT_NV+ , pattern PIPELINE_STAGE_MESH_SHADER_BIT_NV , PhysicalDeviceMeshShaderFeaturesNV(..) , PhysicalDeviceMeshShaderPropertiesNV(..) , DrawMeshTasksIndirectCommandNV(..)@@ -313,6 +318,14 @@ import Vulkan.Dynamic (DeviceCmds(pVkCmdDrawMeshTasksNV)) import Vulkan.Core10.FundamentalTypes (DeviceSize) import Vulkan.Core10.Enums.StructureType (StructureType)+import Vulkan.Core10.Enums.PipelineStageFlagBits (PipelineStageFlags)+import Vulkan.Core10.Enums.PipelineStageFlagBits (PipelineStageFlagBits(PIPELINE_STAGE_MESH_SHADER_BIT_EXT))+import Vulkan.Core10.Enums.PipelineStageFlagBits (PipelineStageFlags)+import Vulkan.Core10.Enums.PipelineStageFlagBits (PipelineStageFlagBits(PIPELINE_STAGE_TASK_SHADER_BIT_EXT))+import Vulkan.Core10.Enums.ShaderStageFlagBits (ShaderStageFlags)+import Vulkan.Core10.Enums.ShaderStageFlagBits (ShaderStageFlagBits(SHADER_STAGE_MESH_BIT_EXT))+import Vulkan.Core10.Enums.ShaderStageFlagBits (ShaderStageFlags)+import Vulkan.Core10.Enums.ShaderStageFlagBits (ShaderStageFlagBits(SHADER_STAGE_TASK_BIT_EXT)) import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV)) import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV)) foreign import ccall@@ -368,16 +381,16 @@ -- -- - #VUID-vkCmdDrawMeshTasksNV-None-02692# If a -- 'Vulkan.Core10.Handles.ImageView' is sampled with--- 'Vulkan.Extensions.VK_EXT_filter_cubic.FILTER_CUBIC_EXT' as a result--- of this command, then the image view’s+-- 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as a result of this+-- command, then the image view’s -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features> -- /must/ contain--- 'Vulkan.Extensions.VK_EXT_filter_cubic.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT'+-- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT' -- -- - #VUID-vkCmdDrawMeshTasksNV-filterCubic-02694# Any -- 'Vulkan.Core10.Handles.ImageView' being sampled with--- 'Vulkan.Extensions.VK_EXT_filter_cubic.FILTER_CUBIC_EXT' as a result--- of this command /must/ have a+-- 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as a result of this+-- command /must/ have a -- 'Vulkan.Core10.Enums.ImageViewType.ImageViewType' and format that -- supports cubic filtering, as specified by -- 'Vulkan.Extensions.VK_EXT_filter_cubic.FilterCubicImageViewImageFormatPropertiesEXT'::@filterCubic@@@ -386,8 +399,8 @@ -- -- - #VUID-vkCmdDrawMeshTasksNV-filterCubicMinmax-02695# Any -- 'Vulkan.Core10.Handles.ImageView' being sampled with--- 'Vulkan.Extensions.VK_EXT_filter_cubic.FILTER_CUBIC_EXT' with a--- reduction mode of either+-- 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' with a reduction mode+-- of either -- 'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MIN' -- or -- 'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MAX'@@ -407,22 +420,38 @@ -- 'Vulkan.Core10.Enums.SamplerAddressMode.SamplerAddressMode' of -- 'Vulkan.Core10.Enums.SamplerAddressMode.SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE' ----- - #VUID-vkCmdDrawMeshTasksNV-OpTypeImage-06423# Any--- 'Vulkan.Core10.Handles.ImageView' or--- 'Vulkan.Core10.Handles.BufferView' being written as a storage image--- or storage texel buffer where the image format field of the--- @OpTypeImage@ is @Unknown@ then the view’s format feature /must/--- contain+-- - #VUID-vkCmdDrawMeshTasksNV-OpTypeImage-07027# For any+-- 'Vulkan.Core10.Handles.ImageView' being written as a storage image+-- where the image format field of the @OpTypeImage@ is @Unknown@, the+-- view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain -- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT' ----- - #VUID-vkCmdDrawMeshTasksNV-OpTypeImage-06424# Any--- 'Vulkan.Core10.Handles.ImageView' or--- 'Vulkan.Core10.Handles.BufferView' being read as a storage image or--- storage texel buffer where the image format field of the--- @OpTypeImage@ is @Unknown@ then the view’s format feature /must/--- contain+-- - #VUID-vkCmdDrawMeshTasksNV-OpTypeImage-07028# For any+-- 'Vulkan.Core10.Handles.ImageView' being read as a storage image+-- where the image format field of the @OpTypeImage@ is @Unknown@, the+-- view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain -- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT' --+-- - #VUID-vkCmdDrawMeshTasksNV-OpTypeImage-07029# For any+-- 'Vulkan.Core10.Handles.BufferView' being written as a storage texel+-- buffer where the image format field of the @OpTypeImage@ is+-- @Unknown@, the view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkFormatProperties3 buffer features>+-- /must/ contain+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT'+--+-- - #VUID-vkCmdDrawMeshTasksNV-OpTypeImage-07030# Any+-- 'Vulkan.Core10.Handles.BufferView' being read as a storage texel+-- buffer where the image format field of the @OpTypeImage@ is+-- @Unknown@ then the view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkFormatProperties3 buffer features>+-- /must/ contain+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT'+-- -- - #VUID-vkCmdDrawMeshTasksNV-None-02697# For each set /n/ that is -- statically used by the 'Vulkan.Core10.Handles.Pipeline' bound to the -- pipeline bind point used by this command, a descriptor set /must/@@ -497,21 +526,31 @@ -- @OpImageSample*@ or @OpImageSparseSample*@ instructions that -- includes a LOD bias or any offset values, in any shader stage ----- - #VUID-vkCmdDrawMeshTasksNV-None-02705# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robust buffer access>--- feature is not enabled, and if the 'Vulkan.Core10.Handles.Pipeline'--- object bound to the pipeline bind point used by this command--- accesses a uniform buffer, it /must/ not access values outside of--- the range of the buffer as specified in the descriptor set bound to--- the same pipeline bind point+-- - #VUID-vkCmdDrawMeshTasksNV-uniformBuffers-06935# If any stage of the+-- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind+-- point used by this command accesses a uniform buffer, and that stage+-- was created without enabling either+-- 'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT'+-- or+-- 'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT'+-- for @uniformBuffers@, and the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>+-- feature is not enabled, that stage /must/ not access values outside+-- of the range of the buffer as specified in the descriptor set bound+-- to the same pipeline bind point ----- - #VUID-vkCmdDrawMeshTasksNV-None-02706# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robust buffer access>--- feature is not enabled, and if the 'Vulkan.Core10.Handles.Pipeline'--- object bound to the pipeline bind point used by this command--- accesses a storage buffer, it /must/ not access values outside of--- the range of the buffer as specified in the descriptor set bound to--- the same pipeline bind point+-- - #VUID-vkCmdDrawMeshTasksNV-storageBuffers-06936# If any stage of the+-- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind+-- point used by this command accesses a storage buffer, and that stage+-- was created without enabling either+-- 'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT'+-- or+-- 'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT'+-- for @storageBuffers@, and the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>+-- feature is not enabled, that stage /must/ not access values outside+-- of the range of the buffer as specified in the descriptor set bound+-- to the same pipeline bind point -- -- - #VUID-vkCmdDrawMeshTasksNV-commandBuffer-02707# If @commandBuffer@ -- is an unprotected command buffer and@@ -595,6 +634,67 @@ -- @OpTypeImage@ with a @SampledType@ with a @Width@ of 64 by this -- command --+-- - #VUID-vkCmdDrawMeshTasksNV-OpImageWeightedSampleQCOM-06971# If+-- @OpImageWeightedSampleQCOM@ is used to sample a+-- 'Vulkan.Core10.Handles.ImageView' as a result of this command, then+-- the image view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM'+--+-- - #VUID-vkCmdDrawMeshTasksNV-OpImageWeightedSampleQCOM-06972# If+-- @OpImageWeightedSampleQCOM@ uses a 'Vulkan.Core10.Handles.ImageView'+-- as a sample weight image as a result of this command, then the image+-- view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM'+--+-- - #VUID-vkCmdDrawMeshTasksNV-OpImageBoxFilterQCOM-06973# If+-- @OpImageBoxFilterQCOM@ is used to sample a+-- 'Vulkan.Core10.Handles.ImageView' as a result of this command, then+-- the image view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM'+--+-- - #VUID-vkCmdDrawMeshTasksNV-OpImageBlockMatchSSDQCOM-06974# If+-- @OpImageBlockMatchSSDQCOM@ is used to read from an+-- 'Vulkan.Core10.Handles.ImageView' as a result of this command, then+-- the image view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM'+--+-- - #VUID-vkCmdDrawMeshTasksNV-OpImageBlockMatchSADQCOM-06975# If+-- @OpImageBlockMatchSADQCOM@ is used to read from an+-- 'Vulkan.Core10.Handles.ImageView' as a result of this command, then+-- the image view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM'+--+-- - #VUID-vkCmdDrawMeshTasksNV-OpImageBlockMatchSADQCOM-06976# If+-- @OpImageBlockMatchSADQCOM@ or OpImageBlockMatchSSDQCOM is used to+-- read from a reference image as result of this command, then the+-- specified reference coordinates /must/ not fail+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-integer-coordinate-validation integer texel coordinate validation>.+--+-- - #VUID-vkCmdDrawMeshTasksNV-OpImageWeightedSampleQCOM-06977# If+-- @OpImageWeightedSampleQCOM@, @OpImageBoxFilterQCOM@,+-- @OpImageBlockMatchSSDQCOM@, or @OpImageBlockMatchSADQCOM@ uses a+-- 'Vulkan.Core10.Handles.Sampler' as a result of this command, then+-- the sampler /must/ have been created with+-- 'Vulkan.Core10.Enums.SamplerCreateFlagBits.SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM'.+--+-- - #VUID-vkCmdDrawMeshTasksNV-OpImageWeightedSampleQCOM-06978# If any+-- command other than @OpImageWeightedSampleQCOM@,+-- @OpImageBoxFilterQCOM@, @OpImageBlockMatchSSDQCOM@, or+-- @OpImageBlockMatchSADQCOM@ uses a 'Vulkan.Core10.Handles.Sampler' as+-- a result of this command, then the sampler /must/ not have been+-- created with+-- 'Vulkan.Core10.Enums.SamplerCreateFlagBits.SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM'.+-- -- - #VUID-vkCmdDrawMeshTasksNV-renderPass-02684# The current render pass -- /must/ be -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-compatibility compatible>@@ -630,6 +730,18 @@ -- attachment in any way other than as an attachment, this command -- /must/ not write to that image subresource as an attachment --+-- - #VUID-vkCmdDrawMeshTasksNV-None-06886# If the current render pass+-- instance uses a depth\/stencil attachment with a read-only layout+-- for the depth aspect,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragops-depth-write depth writes>+-- /must/ be disabled+--+-- - #VUID-vkCmdDrawMeshTasksNV-None-06887# If the current render pass+-- instance uses a depth\/stencil attachment with a read-only layout+-- for the stencil aspect and stencil test is enabled,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragops-stencil all stencil ops>+-- /must/ be 'Vulkan.Core10.Enums.StencilOp.STENCIL_OP_KEEP'+-- -- - #VUID-vkCmdDrawMeshTasksNV-maxMultiviewInstanceIndex-02688# If the -- draw is recorded in a render pass instance with multiview enabled, -- the maximum instance index /must/ be less than or equal to@@ -748,8 +860,9 @@ -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT' -- dynamic state enabled and a -- 'Vulkan.Extensions.VK_NV_viewport_swizzle.PipelineViewportSwizzleStateCreateInfoNV'--- structure chained from @VkPipelineVieportCreateInfo@, then the bound--- graphics pipeline /must/ have been created with+-- structure chained from+-- 'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo', then the+-- bound graphics pipeline /must/ have been created with -- 'Vulkan.Extensions.VK_NV_viewport_swizzle.PipelineViewportSwizzleStateCreateInfoNV'::@viewportCount@ -- greater or equal to the @viewportCount@ parameter in the last call -- to@@ -760,8 +873,9 @@ -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT' -- dynamic state enabled and a -- 'Vulkan.Extensions.VK_NV_scissor_exclusive.PipelineViewportExclusiveScissorStateCreateInfoNV'--- structure chained from @VkPipelineVieportCreateInfo@, then the bound--- graphics pipeline /must/ have been created with+-- structure chained from+-- 'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo', then the+-- bound graphics pipeline /must/ have been created with -- 'Vulkan.Extensions.VK_NV_scissor_exclusive.PipelineViewportExclusiveScissorStateCreateInfoNV'::@exclusiveScissorCount@ -- greater or equal to the @viewportCount@ parameter in the last call -- to@@ -919,31 +1033,42 @@ -- /must/ have been called in the current command buffer prior to this -- drawing command, and the @attachmentCount@ parameter of -- 'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'--- /must/ be equal to the+-- /must/ be greater than or equal to the -- 'Vulkan.Core10.Pipeline.PipelineColorBlendStateCreateInfo'::@attachmentCount@ -- of the currently bound graphics pipeline --+-- - #VUID-vkCmdDrawMeshTasksNV-attachmentCount-06815# If the bound+-- graphics pipeline state was created with the+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT'+-- dynamic state enabled then+-- 'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'+-- /must/ have been called in the current command buffer prior to this+-- drawing command, and the @attachmentCount@ parameter of+-- 'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'+-- /must/ be less than or equal to the @maxColorAttachments@ member of+-- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'+-- -- - #VUID-vkCmdDrawMeshTasksNV-pDepthAttachment-06181# If the current -- render pass instance was begun with -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' -- and--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->pname@:imageView+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@ -- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@depthAttachmentFormat@ -- used to create the currently bound graphics pipeline /must/ be equal -- to the 'Vulkan.Core10.Enums.Format.Format' used to create--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->pname@:imageView+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@ -- -- - #VUID-vkCmdDrawMeshTasksNV-pStencilAttachment-06182# If the current -- render pass instance was begun with -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' -- and--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->pname@:imageView+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@ -- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@stencilAttachmentFormat@ -- used to create the currently bound graphics pipeline /must/ be equal -- to the 'Vulkan.Core10.Enums.Format.Format' used to create--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->pname@:imageView+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@ -- -- - #VUID-vkCmdDrawMeshTasksNV-imageView-06183# If the current render -- pass instance was begun with@@ -991,7 +1116,7 @@ -- or -- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV' -- structure, and--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->pname@:imageView+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@ -- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of the -- @depthStencilAttachmentSamples@ member of -- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'@@ -999,7 +1124,7 @@ -- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV' -- used to create the currently bound graphics pipeline /must/ be equal -- to the sample count used to create--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->pname@:imageView+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@ -- -- - #VUID-vkCmdDrawMeshTasksNV-pStencilAttachment-06187# If the current -- render pass instance was begun with@@ -1009,7 +1134,7 @@ -- or -- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV' -- structure, and--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->pname@:imageView+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@ -- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of the -- @depthStencilAttachmentSamples@ member of -- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'@@ -1017,7 +1142,7 @@ -- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV' -- used to create the currently bound graphics pipeline /must/ be equal -- to the sample count used to create--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->pname@:imageView+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@ -- -- - #VUID-vkCmdDrawMeshTasksNV-colorAttachmentCount-06188# If the -- currently bound pipeline was created without a@@ -1044,12 +1169,12 @@ -- or -- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV' -- structure, and--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->pname@:imageView+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@ -- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of -- 'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'::@rasterizationSamples@ -- used to create the currently bound graphics pipeline /must/ be equal -- to the sample count used to create--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->pname@:imageView+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@ -- -- - #VUID-vkCmdDrawMeshTasksNV-pStencilAttachment-06190# If the current -- render pass instance was begun with@@ -1059,12 +1184,12 @@ -- or -- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV' -- structure, and--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->pname@:imageView+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@ -- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of -- 'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'::@rasterizationSamples@ -- used to create the currently bound graphics pipeline /must/ be equal -- to the sample count used to create--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->pname@:imageView+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@ -- -- - #VUID-vkCmdDrawMeshTasksNV-renderPass-06198# If the current render -- pass instance was begun with@@ -1091,6 +1216,21 @@ -- created with a non-zero value in -- 'Vulkan.Extensions.VK_EXT_transform_feedback.PipelineRasterizationStateStreamCreateInfoEXT'::@rasterizationStream@. --+-- - #VUID-vkCmdDrawMeshTasksNV-stage-07073# If the currently bound+-- pipeline was created with the+-- 'Vulkan.Core10.Pipeline.PipelineShaderStageCreateInfo'::@stage@+-- member of an element of+-- 'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo'::@pStages@ set+-- to+-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT',+-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_CONTROL_BIT',+-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT'+-- or+-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT',+-- then+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#queries-mesh-shader Mesh Shader Queries>+-- must not be active+-- -- - #VUID-vkCmdDrawMeshTasksNV-stage-06480# The bound graphics pipeline -- /must/ not have been created with the -- 'Vulkan.Core10.Pipeline.PipelineShaderStageCreateInfo'::@stage@@@ -1103,10 +1243,39 @@ -- or -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT' --+-- - #VUID-vkCmdDrawMeshTasksNV-None-07074#+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#queries-transform-feedback Transform Feedback Queries>+-- /must/ not be active+--+-- - #VUID-vkCmdDrawMeshTasksNV-None-07075#+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#queries-primitives-generated Primitives Generated Queries>+-- /must/ not be active+--+-- - #VUID-vkCmdDrawMeshTasksNV-pipelineStatistics-07076# The+-- @pipelineStatistics@ member used to create any active+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#queries-pipestats Pipeline Statistics Query>+-- /must/ not contain+-- 'Vulkan.Core10.Enums.QueryPipelineStatisticFlagBits.QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT',+-- 'Vulkan.Core10.Enums.QueryPipelineStatisticFlagBits.QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT',+-- 'Vulkan.Core10.Enums.QueryPipelineStatisticFlagBits.QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT',+-- 'Vulkan.Core10.Enums.QueryPipelineStatisticFlagBits.QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT',+-- 'Vulkan.Core10.Enums.QueryPipelineStatisticFlagBits.QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT',+-- 'Vulkan.Core10.Enums.QueryPipelineStatisticFlagBits.QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT',+-- 'Vulkan.Core10.Enums.QueryPipelineStatisticFlagBits.QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT',+-- 'Vulkan.Core10.Enums.QueryPipelineStatisticFlagBits.QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT',+-- or+-- 'Vulkan.Core10.Enums.QueryPipelineStatisticFlagBits.QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT'+-- -- - #VUID-vkCmdDrawMeshTasksNV-taskCount-02119# @taskCount@ /must/ be -- less than or equal to -- 'PhysicalDeviceMeshShaderPropertiesNV'::@maxDrawMeshTasksCount@ --+-- - #VUID-vkCmdDrawMeshTasksNV-MeshNV-07080# The current pipeline bound+-- to+-- 'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_GRAPHICS'+-- /must/ contain a shader stage using the @MeshNV@ @Execution@+-- @Model@.+-- -- == Valid Usage (Implicit) -- -- - #VUID-vkCmdDrawMeshTasksNV-commandBuffer-parameter# @commandBuffer@@@ -1123,6 +1292,9 @@ -- - #VUID-vkCmdDrawMeshTasksNV-renderpass# This command /must/ only be -- called inside of a render pass instance --+-- - #VUID-vkCmdDrawMeshTasksNV-videocoding# This command /must/ only be+-- called outside of a video coding scope+-- -- == Host Synchronization -- -- - Host access to @commandBuffer@ /must/ be externally synchronized@@ -1134,12 +1306,12 @@ -- -- \' ----- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | Primary | Inside | Graphics |--- | Secondary | | |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================++-- | Primary | Inside | Outside | Graphics |+-- | Secondary | | | |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+ -- -- = See Also --@@ -1224,16 +1396,16 @@ -- -- - #VUID-vkCmdDrawMeshTasksIndirectNV-None-02692# If a -- 'Vulkan.Core10.Handles.ImageView' is sampled with--- 'Vulkan.Extensions.VK_EXT_filter_cubic.FILTER_CUBIC_EXT' as a result--- of this command, then the image view’s+-- 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as a result of this+-- command, then the image view’s -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features> -- /must/ contain--- 'Vulkan.Extensions.VK_EXT_filter_cubic.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT'+-- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT' -- -- - #VUID-vkCmdDrawMeshTasksIndirectNV-filterCubic-02694# Any -- 'Vulkan.Core10.Handles.ImageView' being sampled with--- 'Vulkan.Extensions.VK_EXT_filter_cubic.FILTER_CUBIC_EXT' as a result--- of this command /must/ have a+-- 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as a result of this+-- command /must/ have a -- 'Vulkan.Core10.Enums.ImageViewType.ImageViewType' and format that -- supports cubic filtering, as specified by -- 'Vulkan.Extensions.VK_EXT_filter_cubic.FilterCubicImageViewImageFormatPropertiesEXT'::@filterCubic@@@ -1242,8 +1414,8 @@ -- -- - #VUID-vkCmdDrawMeshTasksIndirectNV-filterCubicMinmax-02695# Any -- 'Vulkan.Core10.Handles.ImageView' being sampled with--- 'Vulkan.Extensions.VK_EXT_filter_cubic.FILTER_CUBIC_EXT' with a--- reduction mode of either+-- 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' with a reduction mode+-- of either -- 'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MIN' -- or -- 'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MAX'@@ -1263,22 +1435,38 @@ -- 'Vulkan.Core10.Enums.SamplerAddressMode.SamplerAddressMode' of -- 'Vulkan.Core10.Enums.SamplerAddressMode.SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE' ----- - #VUID-vkCmdDrawMeshTasksIndirectNV-OpTypeImage-06423# Any--- 'Vulkan.Core10.Handles.ImageView' or--- 'Vulkan.Core10.Handles.BufferView' being written as a storage image--- or storage texel buffer where the image format field of the--- @OpTypeImage@ is @Unknown@ then the view’s format feature /must/--- contain+-- - #VUID-vkCmdDrawMeshTasksIndirectNV-OpTypeImage-07027# For any+-- 'Vulkan.Core10.Handles.ImageView' being written as a storage image+-- where the image format field of the @OpTypeImage@ is @Unknown@, the+-- view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain -- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT' ----- - #VUID-vkCmdDrawMeshTasksIndirectNV-OpTypeImage-06424# Any--- 'Vulkan.Core10.Handles.ImageView' or--- 'Vulkan.Core10.Handles.BufferView' being read as a storage image or--- storage texel buffer where the image format field of the--- @OpTypeImage@ is @Unknown@ then the view’s format feature /must/--- contain+-- - #VUID-vkCmdDrawMeshTasksIndirectNV-OpTypeImage-07028# For any+-- 'Vulkan.Core10.Handles.ImageView' being read as a storage image+-- where the image format field of the @OpTypeImage@ is @Unknown@, the+-- view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain -- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT' --+-- - #VUID-vkCmdDrawMeshTasksIndirectNV-OpTypeImage-07029# For any+-- 'Vulkan.Core10.Handles.BufferView' being written as a storage texel+-- buffer where the image format field of the @OpTypeImage@ is+-- @Unknown@, the view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkFormatProperties3 buffer features>+-- /must/ contain+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT'+--+-- - #VUID-vkCmdDrawMeshTasksIndirectNV-OpTypeImage-07030# Any+-- 'Vulkan.Core10.Handles.BufferView' being read as a storage texel+-- buffer where the image format field of the @OpTypeImage@ is+-- @Unknown@ then the view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkFormatProperties3 buffer features>+-- /must/ contain+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT'+-- -- - #VUID-vkCmdDrawMeshTasksIndirectNV-None-02697# For each set /n/ that -- is statically used by the 'Vulkan.Core10.Handles.Pipeline' bound to -- the pipeline bind point used by this command, a descriptor set@@ -1353,21 +1541,31 @@ -- @OpImageSample*@ or @OpImageSparseSample*@ instructions that -- includes a LOD bias or any offset values, in any shader stage ----- - #VUID-vkCmdDrawMeshTasksIndirectNV-None-02705# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robust buffer access>--- feature is not enabled, and if the 'Vulkan.Core10.Handles.Pipeline'--- object bound to the pipeline bind point used by this command--- accesses a uniform buffer, it /must/ not access values outside of--- the range of the buffer as specified in the descriptor set bound to--- the same pipeline bind point+-- - #VUID-vkCmdDrawMeshTasksIndirectNV-uniformBuffers-06935# If any+-- stage of the 'Vulkan.Core10.Handles.Pipeline' object bound to the+-- pipeline bind point used by this command accesses a uniform buffer,+-- and that stage was created without enabling either+-- 'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT'+-- or+-- 'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT'+-- for @uniformBuffers@, and the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>+-- feature is not enabled, that stage /must/ not access values outside+-- of the range of the buffer as specified in the descriptor set bound+-- to the same pipeline bind point ----- - #VUID-vkCmdDrawMeshTasksIndirectNV-None-02706# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robust buffer access>--- feature is not enabled, and if the 'Vulkan.Core10.Handles.Pipeline'--- object bound to the pipeline bind point used by this command--- accesses a storage buffer, it /must/ not access values outside of--- the range of the buffer as specified in the descriptor set bound to--- the same pipeline bind point+-- - #VUID-vkCmdDrawMeshTasksIndirectNV-storageBuffers-06936# If any+-- stage of the 'Vulkan.Core10.Handles.Pipeline' object bound to the+-- pipeline bind point used by this command accesses a storage buffer,+-- and that stage was created without enabling either+-- 'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT'+-- or+-- 'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT'+-- for @storageBuffers@, and the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>+-- feature is not enabled, that stage /must/ not access values outside+-- of the range of the buffer as specified in the descriptor set bound+-- to the same pipeline bind point -- -- - #VUID-vkCmdDrawMeshTasksIndirectNV-commandBuffer-02707# If -- @commandBuffer@ is an unprotected command buffer and@@ -1453,6 +1651,67 @@ -- @OpTypeImage@ with a @SampledType@ with a @Width@ of 64 by this -- command --+-- - #VUID-vkCmdDrawMeshTasksIndirectNV-OpImageWeightedSampleQCOM-06971#+-- If @OpImageWeightedSampleQCOM@ is used to sample a+-- 'Vulkan.Core10.Handles.ImageView' as a result of this command, then+-- the image view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM'+--+-- - #VUID-vkCmdDrawMeshTasksIndirectNV-OpImageWeightedSampleQCOM-06972#+-- If @OpImageWeightedSampleQCOM@ uses a+-- 'Vulkan.Core10.Handles.ImageView' as a sample weight image as a+-- result of this command, then the image view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM'+--+-- - #VUID-vkCmdDrawMeshTasksIndirectNV-OpImageBoxFilterQCOM-06973# If+-- @OpImageBoxFilterQCOM@ is used to sample a+-- 'Vulkan.Core10.Handles.ImageView' as a result of this command, then+-- the image view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM'+--+-- - #VUID-vkCmdDrawMeshTasksIndirectNV-OpImageBlockMatchSSDQCOM-06974#+-- If @OpImageBlockMatchSSDQCOM@ is used to read from an+-- 'Vulkan.Core10.Handles.ImageView' as a result of this command, then+-- the image view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM'+--+-- - #VUID-vkCmdDrawMeshTasksIndirectNV-OpImageBlockMatchSADQCOM-06975#+-- If @OpImageBlockMatchSADQCOM@ is used to read from an+-- 'Vulkan.Core10.Handles.ImageView' as a result of this command, then+-- the image view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM'+--+-- - #VUID-vkCmdDrawMeshTasksIndirectNV-OpImageBlockMatchSADQCOM-06976#+-- If @OpImageBlockMatchSADQCOM@ or OpImageBlockMatchSSDQCOM is used to+-- read from a reference image as result of this command, then the+-- specified reference coordinates /must/ not fail+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-integer-coordinate-validation integer texel coordinate validation>.+--+-- - #VUID-vkCmdDrawMeshTasksIndirectNV-OpImageWeightedSampleQCOM-06977#+-- If @OpImageWeightedSampleQCOM@, @OpImageBoxFilterQCOM@,+-- @OpImageBlockMatchSSDQCOM@, or @OpImageBlockMatchSADQCOM@ uses a+-- 'Vulkan.Core10.Handles.Sampler' as a result of this command, then+-- the sampler /must/ have been created with+-- 'Vulkan.Core10.Enums.SamplerCreateFlagBits.SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM'.+--+-- - #VUID-vkCmdDrawMeshTasksIndirectNV-OpImageWeightedSampleQCOM-06978#+-- If any command other than @OpImageWeightedSampleQCOM@,+-- @OpImageBoxFilterQCOM@, @OpImageBlockMatchSSDQCOM@, or+-- @OpImageBlockMatchSADQCOM@ uses a 'Vulkan.Core10.Handles.Sampler' as+-- a result of this command, then the sampler /must/ not have been+-- created with+-- 'Vulkan.Core10.Enums.SamplerCreateFlagBits.SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM'.+-- -- - #VUID-vkCmdDrawMeshTasksIndirectNV-renderPass-02684# The current -- render pass /must/ be -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-compatibility compatible>@@ -1488,6 +1747,18 @@ -- used as an attachment in any way other than as an attachment, this -- command /must/ not write to that image subresource as an attachment --+-- - #VUID-vkCmdDrawMeshTasksIndirectNV-None-06886# If the current render+-- pass instance uses a depth\/stencil attachment with a read-only+-- layout for the depth aspect,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragops-depth-write depth writes>+-- /must/ be disabled+--+-- - #VUID-vkCmdDrawMeshTasksIndirectNV-None-06887# If the current render+-- pass instance uses a depth\/stencil attachment with a read-only+-- layout for the stencil aspect and stencil test is enabled,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragops-stencil all stencil ops>+-- /must/ be 'Vulkan.Core10.Enums.StencilOp.STENCIL_OP_KEEP'+-- -- - #VUID-vkCmdDrawMeshTasksIndirectNV-maxMultiviewInstanceIndex-02688# -- If the draw is recorded in a render pass instance with multiview -- enabled, the maximum instance index /must/ be less than or equal to@@ -1606,8 +1877,9 @@ -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT' -- dynamic state enabled and a -- 'Vulkan.Extensions.VK_NV_viewport_swizzle.PipelineViewportSwizzleStateCreateInfoNV'--- structure chained from @VkPipelineVieportCreateInfo@, then the bound--- graphics pipeline /must/ have been created with+-- structure chained from+-- 'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo', then the+-- bound graphics pipeline /must/ have been created with -- 'Vulkan.Extensions.VK_NV_viewport_swizzle.PipelineViewportSwizzleStateCreateInfoNV'::@viewportCount@ -- greater or equal to the @viewportCount@ parameter in the last call -- to@@ -1618,8 +1890,9 @@ -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT' -- dynamic state enabled and a -- 'Vulkan.Extensions.VK_NV_scissor_exclusive.PipelineViewportExclusiveScissorStateCreateInfoNV'--- structure chained from @VkPipelineVieportCreateInfo@, then the bound--- graphics pipeline /must/ have been created with+-- structure chained from+-- 'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo', then the+-- bound graphics pipeline /must/ have been created with -- 'Vulkan.Extensions.VK_NV_scissor_exclusive.PipelineViewportExclusiveScissorStateCreateInfoNV'::@exclusiveScissorCount@ -- greater or equal to the @viewportCount@ parameter in the last call -- to@@ -1778,31 +2051,42 @@ -- /must/ have been called in the current command buffer prior to this -- drawing command, and the @attachmentCount@ parameter of -- 'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'--- /must/ be equal to the+-- /must/ be greater than or equal to the -- 'Vulkan.Core10.Pipeline.PipelineColorBlendStateCreateInfo'::@attachmentCount@ -- of the currently bound graphics pipeline --+-- - #VUID-vkCmdDrawMeshTasksIndirectNV-attachmentCount-06815# If the+-- bound graphics pipeline state was created with the+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT'+-- dynamic state enabled then+-- 'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'+-- /must/ have been called in the current command buffer prior to this+-- drawing command, and the @attachmentCount@ parameter of+-- 'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'+-- /must/ be less than or equal to the @maxColorAttachments@ member of+-- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'+-- -- - #VUID-vkCmdDrawMeshTasksIndirectNV-pDepthAttachment-06181# If the -- current render pass instance was begun with -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' -- and--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->pname@:imageView+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@ -- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@depthAttachmentFormat@ -- used to create the currently bound graphics pipeline /must/ be equal -- to the 'Vulkan.Core10.Enums.Format.Format' used to create--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->pname@:imageView+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@ -- -- - #VUID-vkCmdDrawMeshTasksIndirectNV-pStencilAttachment-06182# If the -- current render pass instance was begun with -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' -- and--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->pname@:imageView+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@ -- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@stencilAttachmentFormat@ -- used to create the currently bound graphics pipeline /must/ be equal -- to the 'Vulkan.Core10.Enums.Format.Format' used to create--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->pname@:imageView+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@ -- -- - #VUID-vkCmdDrawMeshTasksIndirectNV-imageView-06183# If the current -- render pass instance was begun with@@ -1850,7 +2134,7 @@ -- or -- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV' -- structure, and--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->pname@:imageView+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@ -- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of the -- @depthStencilAttachmentSamples@ member of -- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'@@ -1858,7 +2142,7 @@ -- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV' -- used to create the currently bound graphics pipeline /must/ be equal -- to the sample count used to create--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->pname@:imageView+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@ -- -- - #VUID-vkCmdDrawMeshTasksIndirectNV-pStencilAttachment-06187# If the -- current render pass instance was begun with@@ -1868,7 +2152,7 @@ -- or -- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV' -- structure, and--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->pname@:imageView+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@ -- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of the -- @depthStencilAttachmentSamples@ member of -- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'@@ -1876,7 +2160,7 @@ -- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV' -- used to create the currently bound graphics pipeline /must/ be equal -- to the sample count used to create--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->pname@:imageView+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@ -- -- - #VUID-vkCmdDrawMeshTasksIndirectNV-colorAttachmentCount-06188# If -- the currently bound pipeline was created without a@@ -1903,12 +2187,12 @@ -- or -- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV' -- structure, and--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->pname@:imageView+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@ -- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of -- 'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'::@rasterizationSamples@ -- used to create the currently bound graphics pipeline /must/ be equal -- to the sample count used to create--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->pname@:imageView+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@ -- -- - #VUID-vkCmdDrawMeshTasksIndirectNV-pStencilAttachment-06190# If the -- current render pass instance was begun with@@ -1918,12 +2202,12 @@ -- or -- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV' -- structure, and--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->pname@:imageView+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@ -- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of -- 'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'::@rasterizationSamples@ -- used to create the currently bound graphics pipeline /must/ be equal -- to the sample count used to create--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->pname@:imageView+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@ -- -- - #VUID-vkCmdDrawMeshTasksIndirectNV-renderPass-06198# If the current -- render pass instance was begun with@@ -1950,6 +2234,21 @@ -- created with a non-zero value in -- 'Vulkan.Extensions.VK_EXT_transform_feedback.PipelineRasterizationStateStreamCreateInfoEXT'::@rasterizationStream@. --+-- - #VUID-vkCmdDrawMeshTasksIndirectNV-stage-07073# If the currently+-- bound pipeline was created with the+-- 'Vulkan.Core10.Pipeline.PipelineShaderStageCreateInfo'::@stage@+-- member of an element of+-- 'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo'::@pStages@ set+-- to+-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT',+-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_CONTROL_BIT',+-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT'+-- or+-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT',+-- then+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#queries-mesh-shader Mesh Shader Queries>+-- must not be active+-- -- - #VUID-vkCmdDrawMeshTasksIndirectNV-stage-06480# The bound graphics -- pipeline /must/ not have been created with the -- 'Vulkan.Core10.Pipeline.PipelineShaderStageCreateInfo'::@stage@@@ -1962,6 +2261,29 @@ -- or -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT' --+-- - #VUID-vkCmdDrawMeshTasksIndirectNV-None-07074#+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#queries-transform-feedback Transform Feedback Queries>+-- /must/ not be active+--+-- - #VUID-vkCmdDrawMeshTasksIndirectNV-None-07075#+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#queries-primitives-generated Primitives Generated Queries>+-- /must/ not be active+--+-- - #VUID-vkCmdDrawMeshTasksIndirectNV-pipelineStatistics-07076# The+-- @pipelineStatistics@ member used to create any active+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#queries-pipestats Pipeline Statistics Query>+-- /must/ not contain+-- 'Vulkan.Core10.Enums.QueryPipelineStatisticFlagBits.QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT',+-- 'Vulkan.Core10.Enums.QueryPipelineStatisticFlagBits.QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT',+-- 'Vulkan.Core10.Enums.QueryPipelineStatisticFlagBits.QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT',+-- 'Vulkan.Core10.Enums.QueryPipelineStatisticFlagBits.QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT',+-- 'Vulkan.Core10.Enums.QueryPipelineStatisticFlagBits.QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT',+-- 'Vulkan.Core10.Enums.QueryPipelineStatisticFlagBits.QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT',+-- 'Vulkan.Core10.Enums.QueryPipelineStatisticFlagBits.QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT',+-- 'Vulkan.Core10.Enums.QueryPipelineStatisticFlagBits.QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT',+-- or+-- 'Vulkan.Core10.Enums.QueryPipelineStatisticFlagBits.QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT'+-- -- - #VUID-vkCmdDrawMeshTasksIndirectNV-buffer-02708# If @buffer@ is -- non-sparse then it /must/ be bound completely and contiguously to a -- single 'Vulkan.Core10.Handles.DeviceMemory' object@@ -1978,7 +2300,7 @@ -- @commandBuffer@ /must/ not be a protected command buffer -- -- - #VUID-vkCmdDrawMeshTasksIndirectNV-drawCount-02718# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multiDrawIndirect multi-draw indirect>+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multiDrawIndirect multiDrawIndirect> -- feature is not enabled, @drawCount@ /must/ be @0@ or @1@ -- -- - #VUID-vkCmdDrawMeshTasksIndirectNV-drawCount-02719# @drawCount@@@ -2000,6 +2322,12 @@ -- @sizeof@('DrawMeshTasksIndirectCommandNV')) /must/ be less than or -- equal to the size of @buffer@ --+-- - #VUID-vkCmdDrawMeshTasksIndirectNV-MeshNV-07081# The current+-- pipeline bound to+-- 'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_GRAPHICS'+-- /must/ contain a shader stage using the @MeshNV@ @Execution@+-- @Model@.+-- -- == Valid Usage (Implicit) -- -- - #VUID-vkCmdDrawMeshTasksIndirectNV-commandBuffer-parameter#@@ -2020,6 +2348,9 @@ -- - #VUID-vkCmdDrawMeshTasksIndirectNV-renderpass# This command /must/ -- only be called inside of a render pass instance --+-- - #VUID-vkCmdDrawMeshTasksIndirectNV-videocoding# This command /must/+-- only be called outside of a video coding scope+-- -- - #VUID-vkCmdDrawMeshTasksIndirectNV-commonparent# Both of @buffer@, -- and @commandBuffer@ /must/ have been created, allocated, or -- retrieved from the same 'Vulkan.Core10.Handles.Device'@@ -2035,12 +2366,12 @@ -- -- \' ----- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | Primary | Inside | Graphics |--- | Secondary | | |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================++-- | Primary | Inside | Outside | Graphics |+-- | Secondary | | | |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+ -- -- = See Also --@@ -2127,16 +2458,16 @@ -- -- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02692# If a -- 'Vulkan.Core10.Handles.ImageView' is sampled with--- 'Vulkan.Extensions.VK_EXT_filter_cubic.FILTER_CUBIC_EXT' as a result--- of this command, then the image view’s+-- 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as a result of this+-- command, then the image view’s -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features> -- /must/ contain--- 'Vulkan.Extensions.VK_EXT_filter_cubic.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT'+-- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT' -- -- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-filterCubic-02694# Any -- 'Vulkan.Core10.Handles.ImageView' being sampled with--- 'Vulkan.Extensions.VK_EXT_filter_cubic.FILTER_CUBIC_EXT' as a result--- of this command /must/ have a+-- 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as a result of this+-- command /must/ have a -- 'Vulkan.Core10.Enums.ImageViewType.ImageViewType' and format that -- supports cubic filtering, as specified by -- 'Vulkan.Extensions.VK_EXT_filter_cubic.FilterCubicImageViewImageFormatPropertiesEXT'::@filterCubic@@@ -2145,8 +2476,8 @@ -- -- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-filterCubicMinmax-02695# Any -- 'Vulkan.Core10.Handles.ImageView' being sampled with--- 'Vulkan.Extensions.VK_EXT_filter_cubic.FILTER_CUBIC_EXT' with a--- reduction mode of either+-- 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' with a reduction mode+-- of either -- 'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MIN' -- or -- 'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MAX'@@ -2166,22 +2497,38 @@ -- 'Vulkan.Core10.Enums.SamplerAddressMode.SamplerAddressMode' of -- 'Vulkan.Core10.Enums.SamplerAddressMode.SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE' ----- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-OpTypeImage-06423# Any--- 'Vulkan.Core10.Handles.ImageView' or--- 'Vulkan.Core10.Handles.BufferView' being written as a storage image--- or storage texel buffer where the image format field of the--- @OpTypeImage@ is @Unknown@ then the view’s format feature /must/--- contain+-- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-OpTypeImage-07027# For any+-- 'Vulkan.Core10.Handles.ImageView' being written as a storage image+-- where the image format field of the @OpTypeImage@ is @Unknown@, the+-- view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain -- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT' ----- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-OpTypeImage-06424# Any--- 'Vulkan.Core10.Handles.ImageView' or--- 'Vulkan.Core10.Handles.BufferView' being read as a storage image or--- storage texel buffer where the image format field of the--- @OpTypeImage@ is @Unknown@ then the view’s format feature /must/--- contain+-- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-OpTypeImage-07028# For any+-- 'Vulkan.Core10.Handles.ImageView' being read as a storage image+-- where the image format field of the @OpTypeImage@ is @Unknown@, the+-- view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain -- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT' --+-- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-OpTypeImage-07029# For any+-- 'Vulkan.Core10.Handles.BufferView' being written as a storage texel+-- buffer where the image format field of the @OpTypeImage@ is+-- @Unknown@, the view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkFormatProperties3 buffer features>+-- /must/ contain+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT'+--+-- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-OpTypeImage-07030# Any+-- 'Vulkan.Core10.Handles.BufferView' being read as a storage texel+-- buffer where the image format field of the @OpTypeImage@ is+-- @Unknown@ then the view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkFormatProperties3 buffer features>+-- /must/ contain+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT'+-- -- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02697# For each set /n/ -- that is statically used by the 'Vulkan.Core10.Handles.Pipeline' -- bound to the pipeline bind point used by this command, a descriptor@@ -2256,21 +2603,31 @@ -- @OpImageSample*@ or @OpImageSparseSample*@ instructions that -- includes a LOD bias or any offset values, in any shader stage ----- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02705# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robust buffer access>--- feature is not enabled, and if the 'Vulkan.Core10.Handles.Pipeline'--- object bound to the pipeline bind point used by this command--- accesses a uniform buffer, it /must/ not access values outside of--- the range of the buffer as specified in the descriptor set bound to--- the same pipeline bind point+-- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-uniformBuffers-06935# If any+-- stage of the 'Vulkan.Core10.Handles.Pipeline' object bound to the+-- pipeline bind point used by this command accesses a uniform buffer,+-- and that stage was created without enabling either+-- 'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT'+-- or+-- 'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT'+-- for @uniformBuffers@, and the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>+-- feature is not enabled, that stage /must/ not access values outside+-- of the range of the buffer as specified in the descriptor set bound+-- to the same pipeline bind point ----- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02706# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robust buffer access>--- feature is not enabled, and if the 'Vulkan.Core10.Handles.Pipeline'--- object bound to the pipeline bind point used by this command--- accesses a storage buffer, it /must/ not access values outside of--- the range of the buffer as specified in the descriptor set bound to--- the same pipeline bind point+-- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-storageBuffers-06936# If any+-- stage of the 'Vulkan.Core10.Handles.Pipeline' object bound to the+-- pipeline bind point used by this command accesses a storage buffer,+-- and that stage was created without enabling either+-- 'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT'+-- or+-- 'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT'+-- for @storageBuffers@, and the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>+-- feature is not enabled, that stage /must/ not access values outside+-- of the range of the buffer as specified in the descriptor set bound+-- to the same pipeline bind point -- -- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-commandBuffer-02707# If -- @commandBuffer@ is an unprotected command buffer and@@ -2356,6 +2713,67 @@ -- @OpTypeImage@ with a @SampledType@ with a @Width@ of 64 by this -- command --+-- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-OpImageWeightedSampleQCOM-06971#+-- If @OpImageWeightedSampleQCOM@ is used to sample a+-- 'Vulkan.Core10.Handles.ImageView' as a result of this command, then+-- the image view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM'+--+-- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-OpImageWeightedSampleQCOM-06972#+-- If @OpImageWeightedSampleQCOM@ uses a+-- 'Vulkan.Core10.Handles.ImageView' as a sample weight image as a+-- result of this command, then the image view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM'+--+-- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-OpImageBoxFilterQCOM-06973#+-- If @OpImageBoxFilterQCOM@ is used to sample a+-- 'Vulkan.Core10.Handles.ImageView' as a result of this command, then+-- the image view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM'+--+-- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-OpImageBlockMatchSSDQCOM-06974#+-- If @OpImageBlockMatchSSDQCOM@ is used to read from an+-- 'Vulkan.Core10.Handles.ImageView' as a result of this command, then+-- the image view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM'+--+-- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-OpImageBlockMatchSADQCOM-06975#+-- If @OpImageBlockMatchSADQCOM@ is used to read from an+-- 'Vulkan.Core10.Handles.ImageView' as a result of this command, then+-- the image view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM'+--+-- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-OpImageBlockMatchSADQCOM-06976#+-- If @OpImageBlockMatchSADQCOM@ or OpImageBlockMatchSSDQCOM is used to+-- read from a reference image as result of this command, then the+-- specified reference coordinates /must/ not fail+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-integer-coordinate-validation integer texel coordinate validation>.+--+-- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-OpImageWeightedSampleQCOM-06977#+-- If @OpImageWeightedSampleQCOM@, @OpImageBoxFilterQCOM@,+-- @OpImageBlockMatchSSDQCOM@, or @OpImageBlockMatchSADQCOM@ uses a+-- 'Vulkan.Core10.Handles.Sampler' as a result of this command, then+-- the sampler /must/ have been created with+-- 'Vulkan.Core10.Enums.SamplerCreateFlagBits.SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM'.+--+-- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-OpImageWeightedSampleQCOM-06978#+-- If any command other than @OpImageWeightedSampleQCOM@,+-- @OpImageBoxFilterQCOM@, @OpImageBlockMatchSSDQCOM@, or+-- @OpImageBlockMatchSADQCOM@ uses a 'Vulkan.Core10.Handles.Sampler' as+-- a result of this command, then the sampler /must/ not have been+-- created with+-- 'Vulkan.Core10.Enums.SamplerCreateFlagBits.SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM'.+-- -- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-renderPass-02684# The -- current render pass /must/ be -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-compatibility compatible>@@ -2391,6 +2809,18 @@ -- used as an attachment in any way other than as an attachment, this -- command /must/ not write to that image subresource as an attachment --+-- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-06886# If the current+-- render pass instance uses a depth\/stencil attachment with a+-- read-only layout for the depth aspect,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragops-depth-write depth writes>+-- /must/ be disabled+--+-- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-06887# If the current+-- render pass instance uses a depth\/stencil attachment with a+-- read-only layout for the stencil aspect and stencil test is enabled,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragops-stencil all stencil ops>+-- /must/ be 'Vulkan.Core10.Enums.StencilOp.STENCIL_OP_KEEP'+-- -- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-maxMultiviewInstanceIndex-02688# -- If the draw is recorded in a render pass instance with multiview -- enabled, the maximum instance index /must/ be less than or equal to@@ -2509,8 +2939,9 @@ -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT' -- dynamic state enabled and a -- 'Vulkan.Extensions.VK_NV_viewport_swizzle.PipelineViewportSwizzleStateCreateInfoNV'--- structure chained from @VkPipelineVieportCreateInfo@, then the bound--- graphics pipeline /must/ have been created with+-- structure chained from+-- 'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo', then the+-- bound graphics pipeline /must/ have been created with -- 'Vulkan.Extensions.VK_NV_viewport_swizzle.PipelineViewportSwizzleStateCreateInfoNV'::@viewportCount@ -- greater or equal to the @viewportCount@ parameter in the last call -- to@@ -2521,8 +2952,9 @@ -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT' -- dynamic state enabled and a -- 'Vulkan.Extensions.VK_NV_scissor_exclusive.PipelineViewportExclusiveScissorStateCreateInfoNV'--- structure chained from @VkPipelineVieportCreateInfo@, then the bound--- graphics pipeline /must/ have been created with+-- structure chained from+-- 'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo', then the+-- bound graphics pipeline /must/ have been created with -- 'Vulkan.Extensions.VK_NV_scissor_exclusive.PipelineViewportExclusiveScissorStateCreateInfoNV'::@exclusiveScissorCount@ -- greater or equal to the @viewportCount@ parameter in the last call -- to@@ -2681,31 +3113,42 @@ -- /must/ have been called in the current command buffer prior to this -- drawing command, and the @attachmentCount@ parameter of -- 'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'--- /must/ be equal to the+-- /must/ be greater than or equal to the -- 'Vulkan.Core10.Pipeline.PipelineColorBlendStateCreateInfo'::@attachmentCount@ -- of the currently bound graphics pipeline --+-- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-attachmentCount-06815# If+-- the bound graphics pipeline state was created with the+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT'+-- dynamic state enabled then+-- 'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'+-- /must/ have been called in the current command buffer prior to this+-- drawing command, and the @attachmentCount@ parameter of+-- 'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'+-- /must/ be less than or equal to the @maxColorAttachments@ member of+-- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'+-- -- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-pDepthAttachment-06181# If -- the current render pass instance was begun with -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' -- and--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->pname@:imageView+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@ -- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@depthAttachmentFormat@ -- used to create the currently bound graphics pipeline /must/ be equal -- to the 'Vulkan.Core10.Enums.Format.Format' used to create--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->pname@:imageView+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@ -- -- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-pStencilAttachment-06182# If -- the current render pass instance was begun with -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' -- and--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->pname@:imageView+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@ -- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@stencilAttachmentFormat@ -- used to create the currently bound graphics pipeline /must/ be equal -- to the 'Vulkan.Core10.Enums.Format.Format' used to create--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->pname@:imageView+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@ -- -- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-imageView-06183# If the -- current render pass instance was begun with@@ -2753,7 +3196,7 @@ -- or -- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV' -- structure, and--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->pname@:imageView+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@ -- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of the -- @depthStencilAttachmentSamples@ member of -- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'@@ -2761,7 +3204,7 @@ -- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV' -- used to create the currently bound graphics pipeline /must/ be equal -- to the sample count used to create--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->pname@:imageView+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@ -- -- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-pStencilAttachment-06187# If -- the current render pass instance was begun with@@ -2771,7 +3214,7 @@ -- or -- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV' -- structure, and--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->pname@:imageView+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@ -- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of the -- @depthStencilAttachmentSamples@ member of -- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'@@ -2779,7 +3222,7 @@ -- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV' -- used to create the currently bound graphics pipeline /must/ be equal -- to the sample count used to create--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->pname@:imageView+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@ -- -- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-colorAttachmentCount-06188# -- If the currently bound pipeline was created without a@@ -2806,12 +3249,12 @@ -- or -- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV' -- structure, and--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->pname@:imageView+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@ -- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of -- 'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'::@rasterizationSamples@ -- used to create the currently bound graphics pipeline /must/ be equal -- to the sample count used to create--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->pname@:imageView+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@ -- -- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-pStencilAttachment-06190# If -- the current render pass instance was begun with@@ -2821,12 +3264,12 @@ -- or -- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV' -- structure, and--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->pname@:imageView+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@ -- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of -- 'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'::@rasterizationSamples@ -- used to create the currently bound graphics pipeline /must/ be equal -- to the sample count used to create--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->pname@:imageView+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@ -- -- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-renderPass-06198# If the -- current render pass instance was begun with@@ -2853,6 +3296,21 @@ -- created with a non-zero value in -- 'Vulkan.Extensions.VK_EXT_transform_feedback.PipelineRasterizationStateStreamCreateInfoEXT'::@rasterizationStream@. --+-- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-stage-07073# If the+-- currently bound pipeline was created with the+-- 'Vulkan.Core10.Pipeline.PipelineShaderStageCreateInfo'::@stage@+-- member of an element of+-- 'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo'::@pStages@ set+-- to+-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT',+-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_CONTROL_BIT',+-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT'+-- or+-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT',+-- then+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#queries-mesh-shader Mesh Shader Queries>+-- must not be active+-- -- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-stage-06480# The bound -- graphics pipeline /must/ not have been created with the -- 'Vulkan.Core10.Pipeline.PipelineShaderStageCreateInfo'::@stage@@@ -2865,6 +3323,29 @@ -- or -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT' --+-- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07074#+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#queries-transform-feedback Transform Feedback Queries>+-- /must/ not be active+--+-- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07075#+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#queries-primitives-generated Primitives Generated Queries>+-- /must/ not be active+--+-- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-pipelineStatistics-07076#+-- The @pipelineStatistics@ member used to create any active+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#queries-pipestats Pipeline Statistics Query>+-- /must/ not contain+-- 'Vulkan.Core10.Enums.QueryPipelineStatisticFlagBits.QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT',+-- 'Vulkan.Core10.Enums.QueryPipelineStatisticFlagBits.QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT',+-- 'Vulkan.Core10.Enums.QueryPipelineStatisticFlagBits.QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT',+-- 'Vulkan.Core10.Enums.QueryPipelineStatisticFlagBits.QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT',+-- 'Vulkan.Core10.Enums.QueryPipelineStatisticFlagBits.QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT',+-- 'Vulkan.Core10.Enums.QueryPipelineStatisticFlagBits.QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT',+-- 'Vulkan.Core10.Enums.QueryPipelineStatisticFlagBits.QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT',+-- 'Vulkan.Core10.Enums.QueryPipelineStatisticFlagBits.QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT',+-- or+-- 'Vulkan.Core10.Enums.QueryPipelineStatisticFlagBits.QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT'+-- -- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-buffer-02708# If @buffer@ is -- non-sparse then it /must/ be bound completely and contiguously to a -- single 'Vulkan.Core10.Handles.DeviceMemory' object@@ -2925,6 +3406,12 @@ -- @sizeof@('DrawMeshTasksIndirectCommandNV')) /must/ be less than or -- equal to the size of @buffer@ --+-- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-MeshNV-07082# The current+-- pipeline bound to+-- 'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_GRAPHICS'+-- /must/ contain a shader stage using the @MeshNV@ @Execution@+-- @Model@.+-- -- == Valid Usage (Implicit) -- -- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-commandBuffer-parameter#@@ -2949,6 +3436,9 @@ -- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-renderpass# This command -- /must/ only be called inside of a render pass instance --+-- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-videocoding# This command+-- /must/ only be called outside of a video coding scope+-- -- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-commonparent# Each of -- @buffer@, @commandBuffer@, and @countBuffer@ /must/ have been -- created, allocated, or retrieved from the same@@ -2965,12 +3455,12 @@ -- -- \' ----- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | Primary | Inside | Graphics |--- | Secondary | | |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================++-- | Primary | Inside | Outside | Graphics |+-- | Secondary | | | |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+ -- -- = See Also --@@ -3007,6 +3497,22 @@ pure $ () +-- No documentation found for TopLevel "VK_SHADER_STAGE_TASK_BIT_NV"+pattern SHADER_STAGE_TASK_BIT_NV = SHADER_STAGE_TASK_BIT_EXT+++-- No documentation found for TopLevel "VK_SHADER_STAGE_MESH_BIT_NV"+pattern SHADER_STAGE_MESH_BIT_NV = SHADER_STAGE_MESH_BIT_EXT+++-- No documentation found for TopLevel "VK_PIPELINE_STAGE_TASK_SHADER_BIT_NV"+pattern PIPELINE_STAGE_TASK_SHADER_BIT_NV = PIPELINE_STAGE_TASK_SHADER_BIT_EXT+++-- No documentation found for TopLevel "VK_PIPELINE_STAGE_MESH_SHADER_BIT_NV"+pattern PIPELINE_STAGE_MESH_SHADER_BIT_NV = PIPELINE_STAGE_MESH_SHADER_BIT_EXT++ -- | VkPhysicalDeviceMeshShaderFeaturesNV - Structure describing mesh shading -- features that can be supported by an implementation --@@ -3034,11 +3540,13 @@ -- 'Vulkan.Core10.FundamentalTypes.Bool32', -- 'Vulkan.Core10.Enums.StructureType.StructureType' data PhysicalDeviceMeshShaderFeaturesNV = PhysicalDeviceMeshShaderFeaturesNV- { -- | #features-taskShader# @taskShader@ indicates whether the task shader- -- stage is supported.+ { -- | @taskShader@ specifies whether task shaders are supported. If this+ -- feature is not enabled, the 'SHADER_STAGE_TASK_BIT_NV' and+ -- 'PIPELINE_STAGE_TASK_SHADER_BIT_NV' enum values /must/ not be used. taskShader :: Bool- , -- | #features-meshShader# @meshShader@ indicates whether the mesh shader- -- stage is supported.+ , -- | @meshShader@ specifies whether mesh shaders are supported. If this+ -- feature is not enabled, the 'SHADER_STAGE_MESH_BIT_NV' and+ -- 'PIPELINE_STAGE_MESH_SHADER_BIT_NV' enum values /must/ not be used. meshShader :: Bool } deriving (Typeable, Eq)@@ -3105,7 +3613,7 @@ data PhysicalDeviceMeshShaderPropertiesNV = PhysicalDeviceMeshShaderPropertiesNV { -- | @maxDrawMeshTasksCount@ is the maximum number of local workgroups that -- /can/ be launched by a single draw mesh tasks command. See- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#drawing-mesh-shading>.+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#drawing-mesh-shading>. maxDrawMeshTasksCount :: Word32 , -- | @maxTaskWorkGroupInvocations@ is the maximum total number of task shader -- invocations in a single local workgroup. The product of the X, Y, and Z@@ -3148,7 +3656,7 @@ , -- | @maxMeshOutputPrimitives@ is the maximum number of primitives a mesh -- shader output can store. maxMeshOutputPrimitives :: Word32- , -- | @maxMeshMultiviewViewCount@ is the maximum number of multi-view views a+ , -- | @maxMeshMultiviewViewCount@ is the maximum number of multiview views a -- mesh shader can use. maxMeshMultiviewViewCount :: Word32 , -- | @meshOutputPerVertexGranularity@ is the granularity with which mesh
src/Vulkan/Extensions/VK_NV_mesh_shader.hs-boot view
@@ -19,9 +19,10 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_get_physical_device_properties2@+-- - Requires @VK_KHR_get_physical_device_properties2@ to be enabled+-- for any device-level functionality -- -- [__Contact__] --@@ -65,7 +66,7 @@ -- generate these collections to be processed by fixed-function primitive -- assembly and rasterization logic. When task and mesh shaders are -- dispatched, they replace the core--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization stages>,+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization stages>, -- including vertex array attribute fetching, vertex shader processing, -- tessellation, and geometry shader processing. --@@ -106,16 +107,16 @@ -- - Extending -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlagBits': ----- - 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_MESH_SHADER_BIT_NV'+-- - 'PIPELINE_STAGE_MESH_SHADER_BIT_NV' ----- - 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TASK_SHADER_BIT_NV'+-- - 'PIPELINE_STAGE_TASK_SHADER_BIT_NV' -- -- - Extending -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.ShaderStageFlagBits': ----- - 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_NV'+-- - 'SHADER_STAGE_MESH_BIT_NV' ----- - 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_NV'+-- - 'SHADER_STAGE_TASK_BIT_NV' -- -- - Extending 'Vulkan.Core10.Enums.StructureType.StructureType': --@@ -125,21 +126,21 @@ -- -- == New or Modified Built-In Variables ----- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-taskcount TaskCountNV>+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-taskcount TaskCountNV> ----- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-primitivecount PrimitiveCountNV>+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-primitivecount PrimitiveCountNV> ----- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-primitiveindices PrimitiveIndicesNV>+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-primitiveindices PrimitiveIndicesNV> ----- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-clipdistancepv ClipDistancePerViewNV>+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-clipdistancepv ClipDistancePerViewNV> ----- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-culldistancepv CullDistancePerViewNV>+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-culldistancepv CullDistancePerViewNV> ----- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-layerpv LayerPerViewNV>+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-layerpv LayerPerViewNV> ----- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-meshviewcount MeshViewCountNV>+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-meshviewcount MeshViewCountNV> ----- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-meshviewindices MeshViewIndicesNV>+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-meshviewindices MeshViewIndicesNV> -- -- - (modified)@Position@ --@@ -175,7 +176,7 @@ -- -- == New SPIR-V Capability ----- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-MeshShadingNV MeshShadingNV>+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-MeshShadingNV MeshShadingNV> -- -- == Issues --@@ -252,7 +253,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_mesh_shader Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_mesh_shader Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_NV_ray_tracing.hs view
@@ -19,11 +19,13 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_get_physical_device_properties2@+-- - Requires @VK_KHR_get_physical_device_properties2@ to be enabled+-- for any device-level functionality ----- - Requires @VK_KHR_get_memory_requirements2@+-- - Requires @VK_KHR_get_memory_requirements2@ to be enabled for any+-- device-level functionality -- -- [__Contact__] --@@ -347,41 +349,41 @@ -- -- == New or Modified Built-In Variables ----- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-launchid LaunchIdNV>+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-launchid LaunchIdNV> ----- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-launchsize LaunchSizeNV>+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-launchsize LaunchSizeNV> ----- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-worldrayorigin WorldRayOriginNV>+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-worldrayorigin WorldRayOriginNV> ----- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-worldraydirection WorldRayDirectionNV>+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-worldraydirection WorldRayDirectionNV> ----- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-objectrayorigin ObjectRayOriginNV>+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-objectrayorigin ObjectRayOriginNV> ----- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-objectraydirection ObjectRayDirectionNV>+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-objectraydirection ObjectRayDirectionNV> ----- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-raytmin RayTminNV>+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-raytmin RayTminNV> ----- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-raytmax RayTmaxNV>+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-raytmax RayTmaxNV> ----- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-instancecustomindex InstanceCustomIndexNV>+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-instancecustomindex InstanceCustomIndexNV> ----- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-instanceid InstanceId>+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-instanceid InstanceId> ----- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-objecttoworld ObjectToWorldNV>+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-objecttoworld ObjectToWorldNV> ----- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-worldtoobject WorldToObjectNV>+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-worldtoobject WorldToObjectNV> ----- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-hitt HitTNV>+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-hitt HitTNV> ----- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-hitkind HitKindNV>+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-hitkind HitKindNV> ----- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-incomingrayflags IncomingRayFlagsNV>+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-incomingrayflags IncomingRayFlagsNV> -- -- - (modified)@PrimitiveId@ -- -- == New SPIR-V Capabilities ----- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-RayTracingNV RayTracingNV>+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-RayTracingNV RayTracingNV> -- -- == Issues --@@ -461,7 +463,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_ray_tracing Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_ray_tracing Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.@@ -915,7 +917,7 @@ -- structure. AccelerationStructureCreateInfoNV -> -- | @pAllocator@ controls host memory allocation as described in the- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation> -- chapter. ("allocator" ::: Maybe AllocationCallbacks) -> io (AccelerationStructureNV)@@ -1012,7 +1014,7 @@ -> -- | @accelerationStructure@ is the acceleration structure to destroy. AccelerationStructureNV -> -- | @pAllocator@ controls host memory allocation as described in the- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation> -- chapter. ("allocator" ::: Maybe AllocationCallbacks) -> io ()@@ -1140,12 +1142,12 @@ -- = Description -- -- Accesses to @src@ and @dst@ /must/ be--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies synchronized>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies synchronized> -- with the -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR'--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages pipeline stage>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages pipeline stage> -- and an--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-access-types access type>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-access-types access type> -- of -- 'Vulkan.Core10.Enums.AccessFlagBits.ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR' -- or@@ -1205,6 +1207,9 @@ -- - #VUID-vkCmdCopyAccelerationStructureNV-renderpass# This command -- /must/ only be called outside of a render pass instance --+-- - #VUID-vkCmdCopyAccelerationStructureNV-videocoding# This command+-- /must/ only be called outside of a video coding scope+-- -- - #VUID-vkCmdCopyAccelerationStructureNV-commonparent# Each of -- @commandBuffer@, @dst@, and @src@ /must/ have been created, -- allocated, or retrieved from the same 'Vulkan.Core10.Handles.Device'@@ -1220,12 +1225,12 @@ -- -- \' ----- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | Primary | Outside | Compute |--- | Secondary | | |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================++-- | Primary | Outside | Outside | Compute |+-- | Secondary | | | |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+ -- -- = See Also --@@ -1270,12 +1275,12 @@ -- -- Accesses to any of the acceleration structures listed in -- @pAccelerationStructures@ /must/ be--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies synchronized>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies synchronized> -- with the -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR'--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages pipeline stage>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages pipeline stage> -- and an--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-access-types access type>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-access-types access type> -- of -- 'Vulkan.Core10.Enums.AccessFlagBits.ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR'. --@@ -1339,6 +1344,9 @@ -- - #VUID-vkCmdWriteAccelerationStructuresPropertiesNV-renderpass# This -- command /must/ only be called outside of a render pass instance --+-- - #VUID-vkCmdWriteAccelerationStructuresPropertiesNV-videocoding# This+-- command /must/ only be called outside of a video coding scope+-- -- - #VUID-vkCmdWriteAccelerationStructuresPropertiesNV-accelerationStructureCount-arraylength# -- @accelerationStructureCount@ /must/ be greater than @0@ --@@ -1358,12 +1366,12 @@ -- -- \' ----- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | Primary | Outside | Compute |--- | Secondary | | |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================++-- | Primary | Outside | Outside | Compute |+-- | Secondary | | | |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+ -- -- = See Also --@@ -1412,12 +1420,12 @@ -- = Description -- -- Accesses to @dst@, @src@, and @scratch@ /must/ be--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies synchronized>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies synchronized> -- with the -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR'--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages pipeline stage>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages pipeline stage> -- and an--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-access-types access type>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-access-types access type> -- of -- 'Vulkan.Core10.Enums.AccessFlagBits.ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR' -- or@@ -1491,17 +1499,17 @@ -- - #VUID-vkCmdBuildAccelerationStructureNV-update-03524# If @update@ is -- 'Vulkan.Core10.FundamentalTypes.TRUE', then objects that were -- previously active /must/ not be made inactive as per--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#acceleration-structure-inactive-prims>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#acceleration-structure-inactive-prims> -- -- - #VUID-vkCmdBuildAccelerationStructureNV-update-03525# If @update@ is -- 'Vulkan.Core10.FundamentalTypes.TRUE', then objects that were -- previously inactive /must/ not be made active as per--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#acceleration-structure-inactive-prims>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#acceleration-structure-inactive-prims> -- -- - #VUID-vkCmdBuildAccelerationStructureNV-update-03526# If @update@ is -- 'Vulkan.Core10.FundamentalTypes.TRUE', the @src@ and @dst@ objects -- /must/ either be the same object or not have any--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#resources-memory-aliasing memory aliasing>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#resources-memory-aliasing memory aliasing> -- -- == Valid Usage (Implicit) --@@ -1540,6 +1548,9 @@ -- - #VUID-vkCmdBuildAccelerationStructureNV-renderpass# This command -- /must/ only be called outside of a render pass instance --+-- - #VUID-vkCmdBuildAccelerationStructureNV-videocoding# This command+-- /must/ only be called outside of a video coding scope+-- -- - #VUID-vkCmdBuildAccelerationStructureNV-commonparent# Each of -- @commandBuffer@, @dst@, @instanceData@, @scratch@, and @src@ that -- are valid handles of non-ignored parameters /must/ have been@@ -1557,12 +1568,12 @@ -- -- \' ----- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | Primary | Outside | Compute |--- | Secondary | | |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================++-- | Primary | Outside | Outside | Compute |+-- | Secondary | | | |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+ -- -- = See Also --@@ -1666,16 +1677,16 @@ -- -- - #VUID-vkCmdTraceRaysNV-None-02692# If a -- 'Vulkan.Core10.Handles.ImageView' is sampled with--- 'Vulkan.Extensions.VK_EXT_filter_cubic.FILTER_CUBIC_EXT' as a result--- of this command, then the image view’s+-- 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as a result of this+-- command, then the image view’s -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features> -- /must/ contain--- 'Vulkan.Extensions.VK_EXT_filter_cubic.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT'+-- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT' -- -- - #VUID-vkCmdTraceRaysNV-filterCubic-02694# Any -- 'Vulkan.Core10.Handles.ImageView' being sampled with--- 'Vulkan.Extensions.VK_EXT_filter_cubic.FILTER_CUBIC_EXT' as a result--- of this command /must/ have a+-- 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as a result of this+-- command /must/ have a -- 'Vulkan.Core10.Enums.ImageViewType.ImageViewType' and format that -- supports cubic filtering, as specified by -- 'Vulkan.Extensions.VK_EXT_filter_cubic.FilterCubicImageViewImageFormatPropertiesEXT'::@filterCubic@@@ -1684,8 +1695,8 @@ -- -- - #VUID-vkCmdTraceRaysNV-filterCubicMinmax-02695# Any -- 'Vulkan.Core10.Handles.ImageView' being sampled with--- 'Vulkan.Extensions.VK_EXT_filter_cubic.FILTER_CUBIC_EXT' with a--- reduction mode of either+-- 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' with a reduction mode+-- of either -- 'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MIN' -- or -- 'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MAX'@@ -1705,22 +1716,38 @@ -- 'Vulkan.Core10.Enums.SamplerAddressMode.SamplerAddressMode' of -- 'Vulkan.Core10.Enums.SamplerAddressMode.SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE' ----- - #VUID-vkCmdTraceRaysNV-OpTypeImage-06423# Any--- 'Vulkan.Core10.Handles.ImageView' or--- 'Vulkan.Core10.Handles.BufferView' being written as a storage image--- or storage texel buffer where the image format field of the--- @OpTypeImage@ is @Unknown@ then the view’s format feature /must/--- contain+-- - #VUID-vkCmdTraceRaysNV-OpTypeImage-07027# For any+-- 'Vulkan.Core10.Handles.ImageView' being written as a storage image+-- where the image format field of the @OpTypeImage@ is @Unknown@, the+-- view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain -- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT' ----- - #VUID-vkCmdTraceRaysNV-OpTypeImage-06424# Any--- 'Vulkan.Core10.Handles.ImageView' or--- 'Vulkan.Core10.Handles.BufferView' being read as a storage image or--- storage texel buffer where the image format field of the--- @OpTypeImage@ is @Unknown@ then the view’s format feature /must/--- contain+-- - #VUID-vkCmdTraceRaysNV-OpTypeImage-07028# For any+-- 'Vulkan.Core10.Handles.ImageView' being read as a storage image+-- where the image format field of the @OpTypeImage@ is @Unknown@, the+-- view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain -- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT' --+-- - #VUID-vkCmdTraceRaysNV-OpTypeImage-07029# For any+-- 'Vulkan.Core10.Handles.BufferView' being written as a storage texel+-- buffer where the image format field of the @OpTypeImage@ is+-- @Unknown@, the view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkFormatProperties3 buffer features>+-- /must/ contain+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT'+--+-- - #VUID-vkCmdTraceRaysNV-OpTypeImage-07030# Any+-- 'Vulkan.Core10.Handles.BufferView' being read as a storage texel+-- buffer where the image format field of the @OpTypeImage@ is+-- @Unknown@ then the view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkFormatProperties3 buffer features>+-- /must/ contain+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT'+-- -- - #VUID-vkCmdTraceRaysNV-None-02697# For each set /n/ that is -- statically used by the 'Vulkan.Core10.Handles.Pipeline' bound to the -- pipeline bind point used by this command, a descriptor set /must/@@ -1795,21 +1822,31 @@ -- @OpImageSample*@ or @OpImageSparseSample*@ instructions that -- includes a LOD bias or any offset values, in any shader stage ----- - #VUID-vkCmdTraceRaysNV-None-02705# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robust buffer access>--- feature is not enabled, and if the 'Vulkan.Core10.Handles.Pipeline'--- object bound to the pipeline bind point used by this command--- accesses a uniform buffer, it /must/ not access values outside of--- the range of the buffer as specified in the descriptor set bound to--- the same pipeline bind point+-- - #VUID-vkCmdTraceRaysNV-uniformBuffers-06935# If any stage of the+-- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind+-- point used by this command accesses a uniform buffer, and that stage+-- was created without enabling either+-- 'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT'+-- or+-- 'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT'+-- for @uniformBuffers@, and the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>+-- feature is not enabled, that stage /must/ not access values outside+-- of the range of the buffer as specified in the descriptor set bound+-- to the same pipeline bind point ----- - #VUID-vkCmdTraceRaysNV-None-02706# If the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robust buffer access>--- feature is not enabled, and if the 'Vulkan.Core10.Handles.Pipeline'--- object bound to the pipeline bind point used by this command--- accesses a storage buffer, it /must/ not access values outside of--- the range of the buffer as specified in the descriptor set bound to--- the same pipeline bind point+-- - #VUID-vkCmdTraceRaysNV-storageBuffers-06936# If any stage of the+-- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind+-- point used by this command accesses a storage buffer, and that stage+-- was created without enabling either+-- 'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT'+-- or+-- 'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT'+-- for @storageBuffers@, and the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>+-- feature is not enabled, that stage /must/ not access values outside+-- of the range of the buffer as specified in the descriptor set bound+-- to the same pipeline bind point -- -- - #VUID-vkCmdTraceRaysNV-commandBuffer-02707# If @commandBuffer@ is an -- unprotected command buffer and@@ -1893,6 +1930,67 @@ -- @OpTypeImage@ with a @SampledType@ with a @Width@ of 64 by this -- command --+-- - #VUID-vkCmdTraceRaysNV-OpImageWeightedSampleQCOM-06971# If+-- @OpImageWeightedSampleQCOM@ is used to sample a+-- 'Vulkan.Core10.Handles.ImageView' as a result of this command, then+-- the image view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM'+--+-- - #VUID-vkCmdTraceRaysNV-OpImageWeightedSampleQCOM-06972# If+-- @OpImageWeightedSampleQCOM@ uses a 'Vulkan.Core10.Handles.ImageView'+-- as a sample weight image as a result of this command, then the image+-- view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM'+--+-- - #VUID-vkCmdTraceRaysNV-OpImageBoxFilterQCOM-06973# If+-- @OpImageBoxFilterQCOM@ is used to sample a+-- 'Vulkan.Core10.Handles.ImageView' as a result of this command, then+-- the image view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM'+--+-- - #VUID-vkCmdTraceRaysNV-OpImageBlockMatchSSDQCOM-06974# If+-- @OpImageBlockMatchSSDQCOM@ is used to read from an+-- 'Vulkan.Core10.Handles.ImageView' as a result of this command, then+-- the image view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM'+--+-- - #VUID-vkCmdTraceRaysNV-OpImageBlockMatchSADQCOM-06975# If+-- @OpImageBlockMatchSADQCOM@ is used to read from an+-- 'Vulkan.Core10.Handles.ImageView' as a result of this command, then+-- the image view’s+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+-- /must/ contain+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM'+--+-- - #VUID-vkCmdTraceRaysNV-OpImageBlockMatchSADQCOM-06976# If+-- @OpImageBlockMatchSADQCOM@ or OpImageBlockMatchSSDQCOM is used to+-- read from a reference image as result of this command, then the+-- specified reference coordinates /must/ not fail+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-integer-coordinate-validation integer texel coordinate validation>.+--+-- - #VUID-vkCmdTraceRaysNV-OpImageWeightedSampleQCOM-06977# If+-- @OpImageWeightedSampleQCOM@, @OpImageBoxFilterQCOM@,+-- @OpImageBlockMatchSSDQCOM@, or @OpImageBlockMatchSADQCOM@ uses a+-- 'Vulkan.Core10.Handles.Sampler' as a result of this command, then+-- the sampler /must/ have been created with+-- 'Vulkan.Core10.Enums.SamplerCreateFlagBits.SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM'.+--+-- - #VUID-vkCmdTraceRaysNV-OpImageWeightedSampleQCOM-06978# If any+-- command other than @OpImageWeightedSampleQCOM@,+-- @OpImageBoxFilterQCOM@, @OpImageBlockMatchSSDQCOM@, or+-- @OpImageBlockMatchSADQCOM@ uses a 'Vulkan.Core10.Handles.Sampler' as+-- a result of this command, then the sampler /must/ not have been+-- created with+-- 'Vulkan.Core10.Enums.SamplerCreateFlagBits.SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM'.+-- -- - #VUID-vkCmdTraceRaysNV-None-03429# Any shader group handle -- referenced by this call /must/ have been queried from the currently -- bound ray tracing pipeline@@ -1903,7 +2001,7 @@ -- - #VUID-vkCmdTraceRaysNV-maxRecursionDepth-03625# This command /must/ -- not cause a pipeline trace ray instruction to be executed from a -- shader invocation with a--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#ray-tracing-recursion-depth recursion depth>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#ray-tracing-recursion-depth recursion depth> -- greater than the value of @maxRecursionDepth@ used to create the -- bound ray tracing pipeline --@@ -2033,6 +2131,9 @@ -- - #VUID-vkCmdTraceRaysNV-renderpass# This command /must/ only be -- called outside of a render pass instance --+-- - #VUID-vkCmdTraceRaysNV-videocoding# This command /must/ only be+-- called outside of a video coding scope+-- -- - #VUID-vkCmdTraceRaysNV-commonparent# Each of -- @callableShaderBindingTableBuffer@, @commandBuffer@, -- @hitShaderBindingTableBuffer@, @missShaderBindingTableBuffer@, and@@ -2051,12 +2152,12 @@ -- -- \' ----- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | Primary | Outside | Compute |--- | Secondary | | |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================++-- | Primary | Outside | Outside | Compute |+-- | Secondary | | | |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+ -- -- = See Also --@@ -2290,7 +2391,7 @@ Device -> -- | @pipelineCache@ is either 'Vulkan.Core10.APIConstants.NULL_HANDLE', -- indicating that pipeline caching is disabled, or the handle of a valid- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-cache pipeline cache>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-cache pipeline cache> -- object, in which case use of that cache is enabled for the duration of -- the command. PipelineCache@@ -2298,7 +2399,7 @@ -- 'RayTracingPipelineCreateInfoNV' structures. ("createInfos" ::: Vector (SomeStruct RayTracingPipelineCreateInfoNV)) -> -- | @pAllocator@ controls host memory allocation as described in the- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation> -- chapter. ("allocator" ::: Maybe AllocationCallbacks) -> io (Result, ("pipelines" ::: Vector Pipeline))@@ -2623,7 +2724,7 @@ -- -- The parameters @basePipelineHandle@ and @basePipelineIndex@ are -- described in more detail in--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-pipeline-derivatives Pipeline Derivatives>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-pipeline-derivatives Pipeline Derivatives>. -- -- == Valid Usage --@@ -2738,6 +2839,16 @@ -- 'Vulkan.Core13.Promoted_From_VK_EXT_pipeline_creation_feedback.PipelineCreationFeedbackCreateInfo'::@pipelineStageCreationFeedbackCount@ -- is not @0@, it /must/ be equal to @stageCount@ --+-- - #VUID-VkRayTracingPipelineCreateInfoNV-stage-06898# The @stage@+-- value in all @pStages@ elements /must/ be one of+-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_RAYGEN_BIT_KHR',+-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_ANY_HIT_BIT_KHR',+-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_CLOSEST_HIT_BIT_KHR',+-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MISS_BIT_KHR',+-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_INTERSECTION_BIT_KHR',+-- or+-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_CALLABLE_BIT_KHR'+-- -- == Valid Usage (Implicit) -- -- - #VUID-VkRayTracingPipelineCreateInfoNV-sType-sType# @sType@ /must/@@ -2806,7 +2917,7 @@ -- pipeline. groups :: Vector RayTracingShaderGroupCreateInfoNV , -- | @maxRecursionDepth@ is the- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#ray-tracing-recursion-depth maximum recursion depth>+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#ray-tracing-recursion-depth maximum recursion depth> -- of shaders executed by this pipeline. maxRecursionDepth :: Word32 , -- | @layout@ is the description of binding locations used by both the@@ -3698,7 +3809,7 @@ -- -- - #VUID-VkWriteDescriptorSetAccelerationStructureNV-pAccelerationStructures-03749# -- If the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-nullDescriptor nullDescriptor>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-nullDescriptor nullDescriptor> -- feature is not enabled, each member of @pAccelerationStructures@ -- /must/ not be 'Vulkan.Core10.APIConstants.NULL_HANDLE' --
src/Vulkan/Extensions/VK_NV_ray_tracing.hs-boot view
@@ -19,11 +19,13 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_get_physical_device_properties2@+-- - Requires @VK_KHR_get_physical_device_properties2@ to be enabled+-- for any device-level functionality ----- - Requires @VK_KHR_get_memory_requirements2@+-- - Requires @VK_KHR_get_memory_requirements2@ to be enabled for any+-- device-level functionality -- -- [__Contact__] --@@ -347,41 +349,41 @@ -- -- == New or Modified Built-In Variables ----- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-launchid LaunchIdNV>+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-launchid LaunchIdNV> ----- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-launchsize LaunchSizeNV>+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-launchsize LaunchSizeNV> ----- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-worldrayorigin WorldRayOriginNV>+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-worldrayorigin WorldRayOriginNV> ----- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-worldraydirection WorldRayDirectionNV>+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-worldraydirection WorldRayDirectionNV> ----- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-objectrayorigin ObjectRayOriginNV>+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-objectrayorigin ObjectRayOriginNV> ----- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-objectraydirection ObjectRayDirectionNV>+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-objectraydirection ObjectRayDirectionNV> ----- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-raytmin RayTminNV>+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-raytmin RayTminNV> ----- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-raytmax RayTmaxNV>+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-raytmax RayTmaxNV> ----- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-instancecustomindex InstanceCustomIndexNV>+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-instancecustomindex InstanceCustomIndexNV> ----- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-instanceid InstanceId>+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-instanceid InstanceId> ----- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-objecttoworld ObjectToWorldNV>+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-objecttoworld ObjectToWorldNV> ----- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-worldtoobject WorldToObjectNV>+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-worldtoobject WorldToObjectNV> ----- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-hitt HitTNV>+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-hitt HitTNV> ----- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-hitkind HitKindNV>+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-hitkind HitKindNV> ----- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-incomingrayflags IncomingRayFlagsNV>+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-incomingrayflags IncomingRayFlagsNV> -- -- - (modified)@PrimitiveId@ -- -- == New SPIR-V Capabilities ----- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-RayTracingNV RayTracingNV>+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-RayTracingNV RayTracingNV> -- -- == Issues --@@ -461,7 +463,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_ray_tracing Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_ray_tracing Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_NV_ray_tracing_motion_blur.hs view
@@ -19,9 +19,10 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_ray_tracing_pipeline@+-- - Requires @VK_KHR_ray_tracing_pipeline@ to be enabled for any+-- device-level functionality -- -- [__Contact__] --@@ -174,7 +175,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_ray_tracing_motion_blur Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_ray_tracing_motion_blur Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.@@ -281,7 +282,7 @@ -- -- = Members ----- This structure describes the following feature:+-- This structure describes the following features: -- -- = Description --
src/Vulkan/Extensions/VK_NV_ray_tracing_motion_blur.hs-boot view
@@ -19,9 +19,10 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_ray_tracing_pipeline@+-- - Requires @VK_KHR_ray_tracing_pipeline@ to be enabled for any+-- device-level functionality -- -- [__Contact__] --@@ -174,7 +175,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_ray_tracing_motion_blur Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_ray_tracing_motion_blur Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_NV_representative_fragment_test.hs view
@@ -19,7 +19,7 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 -- -- [__Contact__] --@@ -156,7 +156,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_representative_fragment_test Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_representative_fragment_test Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.@@ -223,7 +223,7 @@ { -- | #features-representativeFragmentTest# @representativeFragmentTest@ -- indicates whether the implementation supports the representative -- fragment test. See- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#fragops-rep-frag-test Representative Fragment Test>.+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fragops-rep-frag-test Representative Fragment Test>. representativeFragmentTest :: Bool } deriving (Typeable, Eq) #if defined(GENERIC_INSTANCES)
src/Vulkan/Extensions/VK_NV_representative_fragment_test.hs-boot view
@@ -19,7 +19,7 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 -- -- [__Contact__] --@@ -156,7 +156,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_representative_fragment_test Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_representative_fragment_test Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_NV_sample_mask_override_coverage.hs view
@@ -19,7 +19,7 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 -- -- [__Contact__] --@@ -40,7 +40,7 @@ -- <https://htmlpreview.github.io/?https://github.com/KhronosGroup/SPIRV-Registry/blob/master/extensions/NV/SPV_NV_sample_mask_override_coverage.html SPV_NV_sample_mask_override_coverage> -- -- - This extension provides API support for--- <https://www.khronos.org/registry/OpenGL/extensions/NV/NV_sample_mask_override_coverage.txt GL_NV_sample_mask_override_coverage>+-- <https://registry.khronos.org/OpenGL/extensions/NV/NV_sample_mask_override_coverage.txt GL_NV_sample_mask_override_coverage> -- -- [__Contributors__] --@@ -77,11 +77,11 @@ -- -- == New Variable Decoration ----- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-samplemask OverrideCoverageNV in SampleMask>+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-samplemask OverrideCoverageNV in SampleMask> -- -- == New SPIR-V Capabilities ----- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-SampleMaskOverrideCoverageNV SampleMaskOverrideCoverageNV>+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-SampleMaskOverrideCoverageNV SampleMaskOverrideCoverageNV> -- -- == Version History --@@ -96,7 +96,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_sample_mask_override_coverage Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_sample_mask_override_coverage Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_NV_scissor_exclusive.hs view
@@ -19,9 +19,10 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_get_physical_device_properties2@+-- - Requires @VK_KHR_get_physical_device_properties2@ to be enabled+-- for any device-level functionality -- -- [__Contact__] --@@ -117,7 +118,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_scissor_exclusive Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_scissor_exclusive Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.@@ -206,7 +207,7 @@ -- == Valid Usage -- -- - #VUID-vkCmdSetExclusiveScissorNV-None-02031# The--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-exclusiveScissor exclusive scissor>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-exclusiveScissor exclusiveScissor> -- feature /must/ be enabled -- -- - #VUID-vkCmdSetExclusiveScissorNV-firstExclusiveScissor-02034# The@@ -216,11 +217,11 @@ -- inclusive -- -- - #VUID-vkCmdSetExclusiveScissorNV-firstExclusiveScissor-02035# If the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-multiViewport multiple viewports>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-multiViewport multiViewport> -- feature is not enabled, @firstExclusiveScissor@ /must/ be @0@ -- -- - #VUID-vkCmdSetExclusiveScissorNV-exclusiveScissorCount-02036# If the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-multiViewport multiple viewports>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-multiViewport multiViewport> -- feature is not enabled, @exclusiveScissorCount@ /must/ be @1@ -- -- - #VUID-vkCmdSetExclusiveScissorNV-x-02037# The @x@ and @y@ members of@@ -256,6 +257,9 @@ -- 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was -- allocated from /must/ support graphics operations --+-- - #VUID-vkCmdSetExclusiveScissorNV-videocoding# This command /must/+-- only be called outside of a video coding scope+-- -- - #VUID-vkCmdSetExclusiveScissorNV-exclusiveScissorCount-arraylength# -- @exclusiveScissorCount@ /must/ be greater than @0@ --@@ -270,12 +274,12 @@ -- -- \' ----- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | Primary | Both | Graphics |--- | Secondary | | |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================++-- | Primary | Both | Outside | Graphics |+-- | Secondary | | | |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+ -- -- = See Also --@@ -316,7 +320,7 @@ -- = Description -- -- See--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#fragops-exclusive-scissor Exclusive Scissor Test>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fragops-exclusive-scissor Exclusive Scissor Test> -- for more information. -- -- If the 'PhysicalDeviceExclusiveScissorFeaturesNV' structure is included@@ -398,7 +402,7 @@ -- -- - #VUID-VkPipelineViewportExclusiveScissorStateCreateInfoNV-exclusiveScissorCount-02027# -- If the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-multiViewport multiple viewports>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-multiViewport multiViewport> -- feature is not enabled, @exclusiveScissorCount@ /must/ be @0@ or @1@ -- -- - #VUID-VkPipelineViewportExclusiveScissorStateCreateInfoNV-exclusiveScissorCount-02028#
src/Vulkan/Extensions/VK_NV_scissor_exclusive.hs-boot view
@@ -19,9 +19,10 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_get_physical_device_properties2@+-- - Requires @VK_KHR_get_physical_device_properties2@ to be enabled+-- for any device-level functionality -- -- [__Contact__] --@@ -117,7 +118,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_scissor_exclusive Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_scissor_exclusive Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_NV_shader_image_footprint.hs view
@@ -19,9 +19,10 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_get_physical_device_properties2@+-- - Requires @VK_KHR_get_physical_device_properties2@ to be enabled+-- for any device-level functionality -- -- [__Contact__] --@@ -84,8 +85,8 @@ -- This extension should be useful for multi-pass rendering operations that -- do an initial expensive rendering pass to produce a first image that is -- then used as a texture for a second pass. If the second pass ends up--- accessing only portions of the first image (e.g., due to visbility), the--- work spent rendering the non-accessed portion of the first image was+-- accessing only portions of the first image (e.g., due to visibility),+-- the work spent rendering the non-accessed portion of the first image was -- wasted. With this feature, an application can limit this waste using an -- initial pass over the geometry in the second image that performs a -- footprint query for each visible pixel to determine the set of pixels@@ -127,7 +128,7 @@ -- -- == New SPIR-V Capability ----- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-ImageFootprintNV ImageFootprintNV>+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-ImageFootprintNV ImageFootprintNV> -- -- == Issues --@@ -190,7 +191,7 @@ -- and y offset values and then atomically OR the updated mask bits into -- the contents of the corresponding footprint texel. ----- > uint64_t returnedMask = (uint64_t(footprint.mask.x) | (uint64_t(footprint.mask.y) link:https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html# 32));+-- > uint64_t returnedMask = (uint64_t(footprint.mask.x) | (uint64_t(footprint.mask.y) link:https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html# 32)); -- > uint64_t rightMask = ((0xFF [^] footprint.offset.x) * 0x0101010101010101UL); -- > uint64_t bottomMask = 0xFFFFFFFFFFFFFFFFUL >> (8 * footprint.offset.y); -- > uint64_t bottomRight = returnedMask & bottomMask & rightMask;@@ -262,7 +263,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_shader_image_footprint Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_shader_image_footprint Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.@@ -306,7 +307,7 @@ -- = Description -- -- See--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#textures-footprint Texel Footprint Evaluation>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#textures-footprint Texel Footprint Evaluation> -- for more information. -- -- If the 'PhysicalDeviceShaderImageFootprintFeaturesNV' structure is
src/Vulkan/Extensions/VK_NV_shader_image_footprint.hs-boot view
@@ -19,9 +19,10 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_get_physical_device_properties2@+-- - Requires @VK_KHR_get_physical_device_properties2@ to be enabled+-- for any device-level functionality -- -- [__Contact__] --@@ -84,8 +85,8 @@ -- This extension should be useful for multi-pass rendering operations that -- do an initial expensive rendering pass to produce a first image that is -- then used as a texture for a second pass. If the second pass ends up--- accessing only portions of the first image (e.g., due to visbility), the--- work spent rendering the non-accessed portion of the first image was+-- accessing only portions of the first image (e.g., due to visibility),+-- the work spent rendering the non-accessed portion of the first image was -- wasted. With this feature, an application can limit this waste using an -- initial pass over the geometry in the second image that performs a -- footprint query for each visible pixel to determine the set of pixels@@ -127,7 +128,7 @@ -- -- == New SPIR-V Capability ----- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-ImageFootprintNV ImageFootprintNV>+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-ImageFootprintNV ImageFootprintNV> -- -- == Issues --@@ -190,7 +191,7 @@ -- and y offset values and then atomically OR the updated mask bits into -- the contents of the corresponding footprint texel. ----- > uint64_t returnedMask = (uint64_t(footprint.mask.x) | (uint64_t(footprint.mask.y) link:https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html# 32));+-- > uint64_t returnedMask = (uint64_t(footprint.mask.x) | (uint64_t(footprint.mask.y) link:https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html# 32)); -- > uint64_t rightMask = ((0xFF [^] footprint.offset.x) * 0x0101010101010101UL); -- > uint64_t bottomMask = 0xFFFFFFFFFFFFFFFFUL >> (8 * footprint.offset.y); -- > uint64_t bottomRight = returnedMask & bottomMask & rightMask;@@ -262,7 +263,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_shader_image_footprint Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_shader_image_footprint Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_NV_shader_sm_builtins.hs view
@@ -19,7 +19,7 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.1+-- - Requires support for Vulkan 1.1 -- -- [__Contact__] --@@ -86,17 +86,17 @@ -- -- == New or Modified Built-In Variables ----- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-warpspersmnv WarpsPerSMNV>+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-warpspersmnv WarpsPerSMNV> ----- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-smcountnv SMCountNV>+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-smcountnv SMCountNV> ----- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-warpidnv WarpIDNV>+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-warpidnv WarpIDNV> ----- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-smidnv SMIDNV>+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-smidnv SMIDNV> -- -- == New SPIR-V Capabilities ----- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-ShaderSMBuiltinsNV ShaderSMBuiltinsNV>+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-ShaderSMBuiltinsNV ShaderSMBuiltinsNV> -- -- == Issues --@@ -125,7 +125,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_shader_sm_builtins Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_shader_sm_builtins Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_NV_shader_sm_builtins.hs-boot view
@@ -19,7 +19,7 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.1+-- - Requires support for Vulkan 1.1 -- -- [__Contact__] --@@ -86,17 +86,17 @@ -- -- == New or Modified Built-In Variables ----- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-warpspersmnv WarpsPerSMNV>+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-warpspersmnv WarpsPerSMNV> ----- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-smcountnv SMCountNV>+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-smcountnv SMCountNV> ----- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-warpidnv WarpIDNV>+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-warpidnv WarpIDNV> ----- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-smidnv SMIDNV>+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-smidnv SMIDNV> -- -- == New SPIR-V Capabilities ----- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-ShaderSMBuiltinsNV ShaderSMBuiltinsNV>+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-ShaderSMBuiltinsNV ShaderSMBuiltinsNV> -- -- == Issues --@@ -125,7 +125,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_shader_sm_builtins Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_shader_sm_builtins Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_NV_shader_subgroup_partitioned.hs view
@@ -19,7 +19,7 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.1+-- - Requires support for Vulkan 1.1 -- -- [__Contact__] --@@ -46,9 +46,9 @@ -- == Description -- -- This extension enables support for a new class of--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-group-operations group operations>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-group-operations group operations> -- on--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-scope-subgroup subgroups>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-scope-subgroup subgroups> -- via the -- <https://github.com/KhronosGroup/GLSL/blob/master/extensions/nv/GL_NV_shader_subgroup_partitioned.txt GL_NV_shader_subgroup_partitioned> -- GLSL extension and@@ -83,7 +83,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_shader_subgroup_partitioned Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_shader_subgroup_partitioned Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_NV_shading_rate_image.hs view
@@ -19,9 +19,10 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_get_physical_device_properties2@+-- - Requires @VK_KHR_get_physical_device_properties2@ to be enabled+-- for any device-level functionality -- -- [__Contact__] --@@ -190,10 +191,10 @@ -- a coarse fragment. This sort of test can be implemented using an output -- sample mask, but such a shader would need to know which bit in the mask -- corresponds to each sample in the coarse fragment. We are including a--- mechanism to allow aplications to specify the orders of coverage samples--- for each shading rate and sample count, either as static pipeline state--- or dynamically via a command buffer. This portion of the extension has--- its own feature bit.+-- mechanism to allow applications to specify the orders of coverage+-- samples for each shading rate and sample count, either as static+-- pipeline state or dynamically via a command buffer. This portion of the+-- extension has its own feature bit. -- -- We will not be providing a query to determine the -- implementation-dependent default ordering. The thinking here is that if@@ -209,7 +210,7 @@ -- -- __RESOLVED__ We are specifying the pipeline stage to be between the -- final--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader stage>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader stage> -- ('Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_GEOMETRY_SHADER_BIT') -- and before the first stage used for fragment processing -- ('Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT'),@@ -270,7 +271,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_shading_rate_image Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_shading_rate_image Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.@@ -397,7 +398,7 @@ -- == Valid Usage -- -- - #VUID-vkCmdBindShadingRateImageNV-None-02058# The--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-shadingRateImage shading rate image>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage> -- feature /must/ be enabled -- -- - #VUID-vkCmdBindShadingRateImageNV-imageView-02059# If @imageView@ is@@ -449,6 +450,9 @@ -- 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was -- allocated from /must/ support graphics operations --+-- - #VUID-vkCmdBindShadingRateImageNV-videocoding# This command /must/+-- only be called outside of a video coding scope+-- -- - #VUID-vkCmdBindShadingRateImageNV-commonparent# Both of -- @commandBuffer@, and @imageView@ that are valid handles of -- non-ignored parameters /must/ have been created, allocated, or@@ -465,12 +469,12 @@ -- -- \' ----- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | Primary | Both | Graphics |--- | Secondary | | |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================++-- | Primary | Both | Outside | Graphics |+-- | Secondary | | | |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+ -- -- = See Also --@@ -525,7 +529,7 @@ -- == Valid Usage -- -- - #VUID-vkCmdSetViewportShadingRatePaletteNV-None-02064# The--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-shadingRateImage shading rate image>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage> -- feature /must/ be enabled -- -- - #VUID-vkCmdSetViewportShadingRatePaletteNV-firstViewport-02067# The@@ -535,12 +539,12 @@ -- -- - #VUID-vkCmdSetViewportShadingRatePaletteNV-firstViewport-02068# If -- the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-multiViewport multiple viewports>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-multiViewport multiViewport> -- feature is not enabled, @firstViewport@ /must/ be @0@ -- -- - #VUID-vkCmdSetViewportShadingRatePaletteNV-viewportCount-02069# If -- the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-multiViewport multiple viewports>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-multiViewport multiViewport> -- feature is not enabled, @viewportCount@ /must/ be @1@ -- -- == Valid Usage (Implicit)@@ -561,6 +565,9 @@ -- The 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was -- allocated from /must/ support graphics operations --+-- - #VUID-vkCmdSetViewportShadingRatePaletteNV-videocoding# This command+-- /must/ only be called outside of a video coding scope+-- -- - #VUID-vkCmdSetViewportShadingRatePaletteNV-viewportCount-arraylength# -- @viewportCount@ /must/ be greater than @0@ --@@ -575,12 +582,12 @@ -- -- \' ----- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | Primary | Both | Graphics |--- | Secondary | | |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================++-- | Primary | Both | Outside | Graphics |+-- | Secondary | | | |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+ -- -- = See Also --@@ -668,6 +675,9 @@ -- 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was -- allocated from /must/ support graphics operations --+-- - #VUID-vkCmdSetCoarseSampleOrderNV-videocoding# This command /must/+-- only be called outside of a video coding scope+-- -- == Host Synchronization -- -- - Host access to @commandBuffer@ /must/ be externally synchronized@@ -679,12 +689,12 @@ -- -- \' ----- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |--- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+--- | Primary | Both | Graphics |--- | Secondary | | |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================++-- | Primary | Both | Outside | Graphics |+-- | Secondary | | | |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+ -- -- = See Also --@@ -795,7 +805,7 @@ -- -- - #VUID-VkPipelineViewportShadingRateImageStateCreateInfoNV-viewportCount-02054# -- If the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-multiViewport multiple viewports>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-multiViewport multiViewport> -- feature is not enabled, @viewportCount@ /must/ be @0@ or @1@ -- -- - #VUID-VkPipelineViewportShadingRateImageStateCreateInfoNV-viewportCount-02055#@@ -879,7 +889,7 @@ -- = Description -- -- See--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-shading-rate-image Shading Rate Image>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-shading-rate-image Shading Rate Image> -- for more information. -- -- If the 'PhysicalDeviceShadingRateImageFeaturesNV' structure is included@@ -966,7 +976,7 @@ -- property. -- -- These properties are related to the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-shading-rate-image shading rate image>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-shading-rate-image shading rate image> -- feature. -- -- == Valid Usage (Implicit)@@ -1122,9 +1132,9 @@ -- -- When using a custom sample ordering, element /j/ in @pSampleLocations@ -- specifies a specific pixel location and--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-multisampling-coverage-mask sample index>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-multisampling-coverage-mask sample index> -- that corresponds to--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-multisampling-coverage-mask coverage index>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-multisampling-coverage-mask coverage index> -- /j/ in the multi-pixel fragment. -- -- == Valid Usage@@ -1464,11 +1474,11 @@ -- | 'COARSE_SAMPLE_ORDER_TYPE_PIXEL_MAJOR_NV' specifies that coverage -- samples will be ordered sequentially, sorted first by pixel coordinate -- (in row-major order) and then by--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-multisampling-coverage-mask sample index>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-multisampling-coverage-mask sample index>. pattern COARSE_SAMPLE_ORDER_TYPE_PIXEL_MAJOR_NV = CoarseSampleOrderTypeNV 2 -- | 'COARSE_SAMPLE_ORDER_TYPE_SAMPLE_MAJOR_NV' specifies that coverage -- samples will be ordered sequentially, sorted first by--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-multisampling-coverage-mask sample index>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-multisampling-coverage-mask sample index> -- and then by pixel coordinate (in row-major order). pattern COARSE_SAMPLE_ORDER_TYPE_SAMPLE_MAJOR_NV = CoarseSampleOrderTypeNV 3 {-# complete COARSE_SAMPLE_ORDER_TYPE_DEFAULT_NV,
src/Vulkan/Extensions/VK_NV_shading_rate_image.hs-boot view
@@ -19,9 +19,10 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_get_physical_device_properties2@+-- - Requires @VK_KHR_get_physical_device_properties2@ to be enabled+-- for any device-level functionality -- -- [__Contact__] --@@ -190,10 +191,10 @@ -- a coarse fragment. This sort of test can be implemented using an output -- sample mask, but such a shader would need to know which bit in the mask -- corresponds to each sample in the coarse fragment. We are including a--- mechanism to allow aplications to specify the orders of coverage samples--- for each shading rate and sample count, either as static pipeline state--- or dynamically via a command buffer. This portion of the extension has--- its own feature bit.+-- mechanism to allow applications to specify the orders of coverage+-- samples for each shading rate and sample count, either as static+-- pipeline state or dynamically via a command buffer. This portion of the+-- extension has its own feature bit. -- -- We will not be providing a query to determine the -- implementation-dependent default ordering. The thinking here is that if@@ -209,7 +210,7 @@ -- -- __RESOLVED__ We are specifying the pipeline stage to be between the -- final--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader stage>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader stage> -- ('Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_GEOMETRY_SHADER_BIT') -- and before the first stage used for fragment processing -- ('Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT'),@@ -270,7 +271,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_shading_rate_image Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_shading_rate_image Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_NV_viewport_array2.hs view
@@ -19,7 +19,7 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 -- -- [__Contact__] --@@ -37,7 +37,7 @@ -- <https://htmlpreview.github.io/?https://github.com/KhronosGroup/SPIRV-Registry/blob/master/extensions/NV/SPV_NV_viewport_array2.html SPV_NV_viewport_array2> -- -- - This extension provides API support for--- <https://www.khronos.org/registry/OpenGL/extensions/NV/NV_viewport_array2.txt GL_NV_viewport_array2>+-- <https://registry.khronos.org/OpenGL/extensions/NV/NV_viewport_array2.txt GL_NV_viewport_array2> -- -- - This extension requires the @geometryShader@ and @multiViewport@ -- features.@@ -79,7 +79,7 @@ -- built-in output variable and @viewport_relative@ layout qualifier from -- @GL_NV_viewport_array2@ map to the @ViewportMaskNV@ and -- @ViewportRelativeNV@ decorations, respectively. Behaviour is described--- in the @GL_NV_viewport_array2@ extension specificiation.+-- in the @GL_NV_viewport_array2@ extension specification. -- -- Note --@@ -100,22 +100,22 @@ -- == New or Modified Built-In Variables -- -- - (modified)--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-layer Layer>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-layer Layer> -- -- - (modified)--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-viewportindex ViewportIndex>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-viewportindex ViewportIndex> ----- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-viewportmask ViewportMaskNV>+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-viewportmask ViewportMaskNV> -- -- == New Variable Decoration ----- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-layer ViewportRelativeNV in Layer>+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-layer ViewportRelativeNV in Layer> -- -- == New SPIR-V Capabilities ----- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-ShaderViewportIndexLayerNV ShaderViewportIndexLayerNV>+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-ShaderViewportIndexLayerNV ShaderViewportIndexLayerNV> ----- - <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-ShaderViewportMaskNV ShaderViewportMaskNV>+-- - <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-ShaderViewportMaskNV ShaderViewportMaskNV> -- -- == Version History --@@ -130,7 +130,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_viewport_array2 Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_viewport_array2 Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_NV_viewport_swizzle.hs view
@@ -19,7 +19,7 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 -- -- [__Contact__] --@@ -259,7 +259,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_viewport_swizzle Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_viewport_swizzle Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.@@ -511,7 +511,7 @@ -- = Description -- -- These values are described in detail in--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#vertexpostproc-viewport-swizzle Viewport Swizzle>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#vertexpostproc-viewport-swizzle Viewport Swizzle>. -- -- = See Also --
src/Vulkan/Extensions/VK_NV_viewport_swizzle.hs-boot view
@@ -19,7 +19,7 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 -- -- [__Contact__] --@@ -259,7 +259,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_viewport_swizzle Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_viewport_swizzle Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_NV_win32_keyed_mutex.hs view
@@ -19,9 +19,10 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_NV_external_memory_win32@+-- - Requires @VK_NV_external_memory_win32@ to be enabled for any+-- device-level functionality -- -- [__Deprecation state__] --@@ -226,7 +227,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_win32_keyed_mutex Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_win32_keyed_mutex Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_NV_win32_keyed_mutex.hs-boot view
@@ -19,9 +19,10 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_NV_external_memory_win32@+-- - Requires @VK_NV_external_memory_win32@ to be enabled for any+-- device-level functionality -- -- [__Deprecation state__] --@@ -226,7 +227,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_win32_keyed_mutex Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_win32_keyed_mutex Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_QCOM_fragment_density_map_offset.hs view
@@ -19,11 +19,13 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_get_physical_device_properties2@+-- - Requires @VK_KHR_get_physical_device_properties2@ to be enabled+-- for any device-level functionality ----- - Requires @VK_EXT_fragment_density_map@+-- - Requires @VK_EXT_fragment_density_map@ to be enabled for any+-- device-level functionality -- -- [__Contact__] --@@ -104,7 +106,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_QCOM_fragment_density_map_offset Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_QCOM_fragment_density_map_offset Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.@@ -153,12 +155,12 @@ import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_PROPERTIES_QCOM)) import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_SUBPASS_FRAGMENT_DENSITY_MAP_OFFSET_END_INFO_QCOM)) -- | VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM - Structure--- describing fragment density map offet features that can be supported by+-- describing fragment density map offset features that can be supported by -- an implementation -- -- = Members ----- This structure describes the following features:+-- This structure describes the following feature: -- -- = Description --@@ -245,7 +247,7 @@ data PhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM = PhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM { -- | #limits-fragmentdensityoffsetgranularity# -- @fragmentDensityOffsetGranularity@ is the granularity for- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-fragmentdensitymapoffsets fragment density offsets>.+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-fragmentdensitymapoffsets fragment density offsets>. fragmentDensityOffsetGranularity :: Extent2D } deriving (Typeable) #if defined(GENERIC_INSTANCES)@@ -291,7 +293,7 @@ -- = Description -- -- The array elements are given per @layer@ as defined by--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#fragmentdensitymap-fetch-density-value Fetch Density Value>,+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fragmentdensitymap-fetch-density-value Fetch Density Value>, -- where index = layer. Each (x,y) offset is in framebuffer pixels and -- shifts the fetch of the fragment density map by that amount. Offsets can -- be positive or negative.@@ -302,13 +304,13 @@ -- chain for the last subpass of a renderpass does not include -- 'SubpassFragmentDensityMapOffsetEndInfoQCOM', or if -- @fragmentDensityOffsetCount@ is zero, then the offset (0,0) is used for--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#fragmentdensitymap-fetch-density-value Fetch Density Value>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fragmentdensitymap-fetch-density-value Fetch Density Value>. -- -- == Valid Usage -- -- - #VUID-VkSubpassFragmentDensityMapOffsetEndInfoQCOM-fragmentDensityMapOffsets-06503# -- If the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#features-fragmentDensityMapOffsets fragmentDensityMapOffsets>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-fragmentDensityMapOffsets fragmentDensityMapOffsets> -- feature is not enabled or fragment density map is not enabled in the -- render pass, @fragmentDensityOffsetCount@ /must/ equal @0@. --
src/Vulkan/Extensions/VK_QCOM_fragment_density_map_offset.hs-boot view
@@ -19,11 +19,13 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_get_physical_device_properties2@+-- - Requires @VK_KHR_get_physical_device_properties2@ to be enabled+-- for any device-level functionality ----- - Requires @VK_EXT_fragment_density_map@+-- - Requires @VK_EXT_fragment_density_map@ to be enabled for any+-- device-level functionality -- -- [__Contact__] --@@ -104,7 +106,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_QCOM_fragment_density_map_offset Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_QCOM_fragment_density_map_offset Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
+ src/Vulkan/Extensions/VK_QCOM_image_processing.hs view
@@ -0,0 +1,509 @@+{-# language CPP #-}+-- | = Name+--+-- VK_QCOM_image_processing - device extension+--+-- == VK_QCOM_image_processing+--+-- [__Name String__]+-- @VK_QCOM_image_processing@+--+-- [__Extension Type__]+-- Device extension+--+-- [__Registered Extension Number__]+-- 441+--+-- [__Revision__]+-- 1+--+-- [__Extension and Version Dependencies__]+--+-- - Requires support for Vulkan 1.0+--+-- - Requires @VK_KHR_format_feature_flags2@ to be enabled for any+-- device-level functionality+--+-- [__Contact__]+--+-- - Jeff Leger+-- <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_QCOM_image_processing] @jackohound%0A<<Here describe the issue or question you have about the VK_QCOM_image_processing extension>> >+--+-- [__Extension Proposal__]+-- <https://github.com/KhronosGroup/Vulkan-Docs/tree/main/proposals/VK_QCOM_image_processing.adoc VK_QCOM_image_processing>+--+-- == Other Extension Metadata+--+-- [__Last Modified Date__]+-- 2022-07-08+--+-- [__Interactions and External Dependencies__]+--+-- - This extension requires+-- <https://htmlpreview.github.io/?https://github.com/KhronosGroup/SPIRV-Registry/blob/master/extensions/QCOM/SPV_QCOM_image_processing.html SPV_QCOM_image_processing>+--+-- - This extension provides API support for+-- <https://github.com/KhronosGroup/GLSL/blob/master/extensions/qcom/GLSL_QCOM_image_processing.txt GL_QCOM_image_processing>+--+-- [__Contributors__]+--+-- - Jeff Leger, Qualcomm Technologies, Inc.+--+-- - Ruihao Zhang, Qualcomm Technologies, Inc.+--+-- == Description+--+-- GPUs are commonly used to process images for various applications from+-- 3D graphics to UI and from composition to compute applications. Simple+-- scaling and filtering can be done with bilinear filtering, which comes+-- for free during texture sampling. However, as screen sizes get larger+-- and more use-cases rely on GPU such as camera and video post-processing+-- needs, there is increasing demand for GPU to support higher order+-- filtering and other advanced image processing.+--+-- This extension introduces a new set of SPIR-V built-in functions for+-- image processing. It exposes the following new imaging operations+--+-- - The @OpImageSampleWeightedQCOM@ instruction takes 3 operands:+-- /sampled image/, /weight image/, and texture coordinates. The+-- instruction computes a weighted average of an MxN region of texels+-- in the /sampled image/, using a set of MxN weights in the /weight+-- image/.+--+-- - The @OpImageBoxFilterQCOM@ instruction takes 3 operands: /sampled+-- image/, /box size/, and texture coordinates. Note that /box size/+-- specifies a floating point width and height in texels. The+-- instruction computes a weighted average of all texels in the+-- /sampled image/ that are covered (either partially or fully) by a+-- box with the specified size and centered at the specified texture+-- coordinates.+--+-- - The @OpImageBlockMatchSADQCOM@ and @OpImageBlockMatchSSDQCOM@+-- instructions each takes 5 operands: /target image/, /target+-- coordinates/, /reference image/, /reference coordinates/, and /block+-- size/. Each instruction computes an error metric, that describes+-- whether a block of texels in the /target image/ matches a+-- corresponding block of texels in the /reference image/. The error+-- metric is computed per-component. @OpImageBlockMatchSADQCOM@+-- computes \"Sum Of Absolute Difference\" and+-- @OpImageBlockMatchSSDQCOM@ computes \"Sum of Squared Difference\".+--+-- Each of the image processing instructions operate only on 2D images. The+-- instructions do not-support sampling of mipmap, multi-plane,+-- multi-layer, multi-sampled, or depth\/stencil images. The instructions+-- can be used in any shader stage.+--+-- Implementations of this this extension should support these operations+-- natively at the HW instruction level, offering potential performance+-- gains as well as ease of development.+--+-- == New Structures+--+-- - Extending 'Vulkan.Core10.ImageView.ImageViewCreateInfo':+--+-- - 'ImageViewSampleWeightCreateInfoQCOM'+--+-- - Extending+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',+-- 'Vulkan.Core10.Device.DeviceCreateInfo':+--+-- - 'PhysicalDeviceImageProcessingFeaturesQCOM'+--+-- - Extending+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2':+--+-- - 'PhysicalDeviceImageProcessingPropertiesQCOM'+--+-- == New Enum Constants+--+-- - 'QCOM_IMAGE_PROCESSING_EXTENSION_NAME'+--+-- - 'QCOM_IMAGE_PROCESSING_SPEC_VERSION'+--+-- - Extending 'Vulkan.Core10.Enums.DescriptorType.DescriptorType':+--+-- - 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_BLOCK_MATCH_IMAGE_QCOM'+--+-- - 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_SAMPLE_WEIGHT_IMAGE_QCOM'+--+-- - Extending+-- 'Vulkan.Core10.Enums.ImageUsageFlagBits.ImageUsageFlagBits':+--+-- - 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_SAMPLE_BLOCK_MATCH_BIT_QCOM'+--+-- - 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_SAMPLE_WEIGHT_BIT_QCOM'+--+-- - Extending+-- 'Vulkan.Core10.Enums.SamplerCreateFlagBits.SamplerCreateFlagBits':+--+-- - 'Vulkan.Core10.Enums.SamplerCreateFlagBits.SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM'+--+-- - Extending 'Vulkan.Core10.Enums.StructureType.StructureType':+--+-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_IMAGE_VIEW_SAMPLE_WEIGHT_CREATE_INFO_QCOM'+--+-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_FEATURES_QCOM'+--+-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_PROPERTIES_QCOM'+--+-- If+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_format_feature_flags2 VK_KHR_format_feature_flags2>+-- is supported:+--+-- - Extending+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FormatFeatureFlagBits2':+--+-- - 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM'+--+-- - 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM'+--+-- - 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM'+--+-- - 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM'+--+-- == Version History+--+-- - Revision 1, 2022-07-08 (Jeff Leger)+--+-- == See Also+--+-- 'ImageViewSampleWeightCreateInfoQCOM',+-- 'PhysicalDeviceImageProcessingFeaturesQCOM',+-- 'PhysicalDeviceImageProcessingPropertiesQCOM'+--+-- == Document Notes+--+-- For more information, see the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_QCOM_image_processing Vulkan Specification>+--+-- This page is a generated document. Fixes and changes should be made to+-- the generator scripts, not directly.+module Vulkan.Extensions.VK_QCOM_image_processing ( ImageViewSampleWeightCreateInfoQCOM(..)+ , PhysicalDeviceImageProcessingFeaturesQCOM(..)+ , PhysicalDeviceImageProcessingPropertiesQCOM(..)+ , QCOM_IMAGE_PROCESSING_SPEC_VERSION+ , pattern QCOM_IMAGE_PROCESSING_SPEC_VERSION+ , QCOM_IMAGE_PROCESSING_EXTENSION_NAME+ , pattern QCOM_IMAGE_PROCESSING_EXTENSION_NAME+ ) where++import Foreign.Marshal.Alloc (allocaBytes)+import Foreign.Ptr (nullPtr)+import Foreign.Ptr (plusPtr)+import Vulkan.CStruct (FromCStruct)+import Vulkan.CStruct (FromCStruct(..))+import Vulkan.CStruct (ToCStruct)+import Vulkan.CStruct (ToCStruct(..))+import Vulkan.Zero (Zero(..))+import Data.String (IsString)+import Data.Typeable (Typeable)+import Foreign.Storable (Storable)+import Foreign.Storable (Storable(peek))+import Foreign.Storable (Storable(poke))+import qualified Foreign.Storable (Storable(..))+import GHC.Generics (Generic)+import Foreign.Ptr (Ptr)+import Data.Word (Word32)+import Data.Kind (Type)+import Vulkan.Core10.FundamentalTypes (bool32ToBool)+import Vulkan.Core10.FundamentalTypes (boolToBool32)+import Vulkan.Core10.FundamentalTypes (Bool32)+import Vulkan.Core10.FundamentalTypes (Extent2D)+import Vulkan.Core10.FundamentalTypes (Offset2D)+import Vulkan.Core10.Enums.StructureType (StructureType)+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_IMAGE_VIEW_SAMPLE_WEIGHT_CREATE_INFO_QCOM))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_FEATURES_QCOM))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_PROPERTIES_QCOM))+-- | VkImageViewSampleWeightCreateInfoQCOM - Structure describing weight+-- sampling parameters for image view+--+-- = Description+--+-- The @filterCenter@ specifies the origin or center of the filter kernel,+-- as described in+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#textures-weightimage-filteroperation Weight Sampling Operation>.+-- The @numPhases@ describes the number of sub-pixel filter phases as+-- described in+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#textures-weightimage-filterphases Weight Sampling Phases>.+--+-- == Valid Usage (Implicit)+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_QCOM_image_processing VK_QCOM_image_processing>,+-- 'Vulkan.Core10.FundamentalTypes.Extent2D',+-- 'Vulkan.Core10.FundamentalTypes.Offset2D',+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data ImageViewSampleWeightCreateInfoQCOM = ImageViewSampleWeightCreateInfoQCOM+ { -- | @filterCenter@ is a 'Vulkan.Core10.FundamentalTypes.Offset2D' describing+ -- the location of the weight filter origin.+ filterCenter :: Offset2D+ , -- | @filterSize@ is a 'Vulkan.Core10.FundamentalTypes.Extent2D' specifying+ -- weight filter dimensions.+ filterSize :: Extent2D+ , -- | @numPhases@ is number of sub-pixel filter phases.+ --+ -- #VUID-VkImageViewSampleWeightCreateInfoQCOM-numPhases-06962# @numPhases@+ -- /must/ be a power of two squared value (i.e., 1, 4, 16, 64, 256, etc.)+ --+ -- #VUID-VkImageViewSampleWeightCreateInfoQCOM-numPhases-06963# @numPhases@+ -- /must/ be less than or equal to+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-weightfilter-phases ::maxWeightFilterPhases>+ numPhases :: Word32+ }+ deriving (Typeable)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (ImageViewSampleWeightCreateInfoQCOM)+#endif+deriving instance Show ImageViewSampleWeightCreateInfoQCOM++instance ToCStruct ImageViewSampleWeightCreateInfoQCOM where+ withCStruct x f = allocaBytes 40 $ \p -> pokeCStruct p x (f p)+ pokeCStruct p ImageViewSampleWeightCreateInfoQCOM{..} f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_IMAGE_VIEW_SAMPLE_WEIGHT_CREATE_INFO_QCOM)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr Offset2D)) (filterCenter)+ poke ((p `plusPtr` 24 :: Ptr Extent2D)) (filterSize)+ poke ((p `plusPtr` 32 :: Ptr Word32)) (numPhases)+ f+ cStructSize = 40+ cStructAlignment = 8+ pokeZeroCStruct p f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_IMAGE_VIEW_SAMPLE_WEIGHT_CREATE_INFO_QCOM)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr Offset2D)) (zero)+ poke ((p `plusPtr` 24 :: Ptr Extent2D)) (zero)+ poke ((p `plusPtr` 32 :: Ptr Word32)) (zero)+ f++instance FromCStruct ImageViewSampleWeightCreateInfoQCOM where+ peekCStruct p = do+ filterCenter <- peekCStruct @Offset2D ((p `plusPtr` 16 :: Ptr Offset2D))+ filterSize <- peekCStruct @Extent2D ((p `plusPtr` 24 :: Ptr Extent2D))+ numPhases <- peek @Word32 ((p `plusPtr` 32 :: Ptr Word32))+ pure $ ImageViewSampleWeightCreateInfoQCOM+ filterCenter filterSize numPhases++instance Storable ImageViewSampleWeightCreateInfoQCOM where+ sizeOf ~_ = 40+ alignment ~_ = 8+ peek = peekCStruct+ poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero ImageViewSampleWeightCreateInfoQCOM where+ zero = ImageViewSampleWeightCreateInfoQCOM+ zero+ zero+ zero+++-- | VkPhysicalDeviceImageProcessingFeaturesQCOM - Structure describing image+-- processing features that can be supported by an implementation+--+-- = Members+--+-- This structure describes the following features:+--+-- = Description+--+-- If the 'PhysicalDeviceImageProcessingFeaturesQCOM' structure is included+-- in the @pNext@ chain of the+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2'+-- structure passed to+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceFeatures2',+-- it is filled in to indicate whether each corresponding feature is+-- supported. 'PhysicalDeviceImageProcessingFeaturesQCOM' /can/ also be+-- used in the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to+-- selectively enable these features.+--+-- == Valid Usage (Implicit)+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_QCOM_image_processing VK_QCOM_image_processing>,+-- 'Vulkan.Core10.FundamentalTypes.Bool32',+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data PhysicalDeviceImageProcessingFeaturesQCOM = PhysicalDeviceImageProcessingFeaturesQCOM+ { -- | #features-textureSampleWeighted# @textureSampleWeighted@ indicates that+ -- the implementation supports shader modules that declare the+ -- @TextureSampleWeightedQCOM@ capability.+ textureSampleWeighted :: Bool+ , -- | #features-TextureBoxFilter# @textureBoxFilter@ indicates that the+ -- implementation supports shader modules that declare the+ -- @TextureBoxFilterQCOM@ capability.+ textureBoxFilter :: Bool+ , -- | #features-TextureBlockMatch# @textureBlockMatch@ indicates that the+ -- implementation supports shader modules that declare the+ -- @TextureBlockMatchQCOM@ capability.+ textureBlockMatch :: Bool+ }+ deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (PhysicalDeviceImageProcessingFeaturesQCOM)+#endif+deriving instance Show PhysicalDeviceImageProcessingFeaturesQCOM++instance ToCStruct PhysicalDeviceImageProcessingFeaturesQCOM where+ withCStruct x f = allocaBytes 32 $ \p -> pokeCStruct p x (f p)+ pokeCStruct p PhysicalDeviceImageProcessingFeaturesQCOM{..} f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_FEATURES_QCOM)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (textureSampleWeighted))+ poke ((p `plusPtr` 20 :: Ptr Bool32)) (boolToBool32 (textureBoxFilter))+ poke ((p `plusPtr` 24 :: Ptr Bool32)) (boolToBool32 (textureBlockMatch))+ f+ cStructSize = 32+ cStructAlignment = 8+ pokeZeroCStruct p f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_FEATURES_QCOM)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (zero))+ poke ((p `plusPtr` 20 :: Ptr Bool32)) (boolToBool32 (zero))+ poke ((p `plusPtr` 24 :: Ptr Bool32)) (boolToBool32 (zero))+ f++instance FromCStruct PhysicalDeviceImageProcessingFeaturesQCOM where+ peekCStruct p = do+ textureSampleWeighted <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))+ textureBoxFilter <- peek @Bool32 ((p `plusPtr` 20 :: Ptr Bool32))+ textureBlockMatch <- peek @Bool32 ((p `plusPtr` 24 :: Ptr Bool32))+ pure $ PhysicalDeviceImageProcessingFeaturesQCOM+ (bool32ToBool textureSampleWeighted) (bool32ToBool textureBoxFilter) (bool32ToBool textureBlockMatch)++instance Storable PhysicalDeviceImageProcessingFeaturesQCOM where+ sizeOf ~_ = 32+ alignment ~_ = 8+ peek = peekCStruct+ poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero PhysicalDeviceImageProcessingFeaturesQCOM where+ zero = PhysicalDeviceImageProcessingFeaturesQCOM+ zero+ zero+ zero+++-- | VkPhysicalDeviceImageProcessingPropertiesQCOM - Structure containing+-- image processing properties+--+-- = Members+--+-- - @sType@ is the type of this structure.+--+-- - @pNext@ is @NULL@ or a pointer to a structure extending this+-- structure.+--+-- - #limits-weightfilter-phases#@maxWeightFilterPhases@ is the maximum+-- value that /can/ be specified for+-- 'ImageViewSampleWeightCreateInfoQCOM'::@numPhases@. in+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#textures-weightimage-filterphases weight image sampling>+-- operations.+--+-- - #limits-weightfilter-maxdimension#@maxWeightFilterDimension@ is a+-- 'Vulkan.Core10.FundamentalTypes.Extent2D' describing the largest+-- dimensions (@width@ and @height@) that /can/ be specified for+-- 'ImageViewSampleWeightCreateInfoQCOM'::@filterSize@.+--+-- - #limits-blockmatch-maxblocksize#@maxBlockMatchRegion@ is a+-- 'Vulkan.Core10.FundamentalTypes.Extent2D' describing the largest+-- dimensions (@width@ and @height@) that /can/ be specified for+-- @blockSize@ in+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#textures-blockmatch block matching>+-- operations.+--+-- - #limits-boxfilter-maxblocksize#@maxBoxFilterBlockSize@ is a+-- 'Vulkan.Core10.FundamentalTypes.Extent2D' describing the the maximum+-- dimensions (@width@ and @height@) that /can/ be specified for+-- @blocksize@ in+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#textures-boxfilter box filter sampling>+-- operations.+--+-- = Description+--+-- If the 'PhysicalDeviceImageProcessingPropertiesQCOM' structure is+-- included in the @pNext@ chain of the+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2'+-- structure passed to+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceProperties2',+-- it is filled in with each corresponding implementation-dependent+-- property.+--+-- These are properties of the image processing information of a physical+-- device.+--+-- == Valid Usage (Implicit)+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_QCOM_image_processing VK_QCOM_image_processing>,+-- 'Vulkan.Core10.FundamentalTypes.Extent2D',+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data PhysicalDeviceImageProcessingPropertiesQCOM = PhysicalDeviceImageProcessingPropertiesQCOM+ { -- No documentation found for Nested "VkPhysicalDeviceImageProcessingPropertiesQCOM" "maxWeightFilterPhases"+ maxWeightFilterPhases :: Word32+ , -- No documentation found for Nested "VkPhysicalDeviceImageProcessingPropertiesQCOM" "maxWeightFilterDimension"+ maxWeightFilterDimension :: Extent2D+ , -- No documentation found for Nested "VkPhysicalDeviceImageProcessingPropertiesQCOM" "maxBlockMatchRegion"+ maxBlockMatchRegion :: Extent2D+ , -- No documentation found for Nested "VkPhysicalDeviceImageProcessingPropertiesQCOM" "maxBoxFilterBlockSize"+ maxBoxFilterBlockSize :: Extent2D+ }+ deriving (Typeable)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (PhysicalDeviceImageProcessingPropertiesQCOM)+#endif+deriving instance Show PhysicalDeviceImageProcessingPropertiesQCOM++instance ToCStruct PhysicalDeviceImageProcessingPropertiesQCOM where+ withCStruct x f = allocaBytes 48 $ \p -> pokeCStruct p x (f p)+ pokeCStruct p PhysicalDeviceImageProcessingPropertiesQCOM{..} f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_PROPERTIES_QCOM)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr Word32)) (maxWeightFilterPhases)+ poke ((p `plusPtr` 20 :: Ptr Extent2D)) (maxWeightFilterDimension)+ poke ((p `plusPtr` 28 :: Ptr Extent2D)) (maxBlockMatchRegion)+ poke ((p `plusPtr` 36 :: Ptr Extent2D)) (maxBoxFilterBlockSize)+ f+ cStructSize = 48+ cStructAlignment = 8+ pokeZeroCStruct p f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_PROPERTIES_QCOM)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ f++instance FromCStruct PhysicalDeviceImageProcessingPropertiesQCOM where+ peekCStruct p = do+ maxWeightFilterPhases <- peek @Word32 ((p `plusPtr` 16 :: Ptr Word32))+ maxWeightFilterDimension <- peekCStruct @Extent2D ((p `plusPtr` 20 :: Ptr Extent2D))+ maxBlockMatchRegion <- peekCStruct @Extent2D ((p `plusPtr` 28 :: Ptr Extent2D))+ maxBoxFilterBlockSize <- peekCStruct @Extent2D ((p `plusPtr` 36 :: Ptr Extent2D))+ pure $ PhysicalDeviceImageProcessingPropertiesQCOM+ maxWeightFilterPhases maxWeightFilterDimension maxBlockMatchRegion maxBoxFilterBlockSize++instance Storable PhysicalDeviceImageProcessingPropertiesQCOM where+ sizeOf ~_ = 48+ alignment ~_ = 8+ peek = peekCStruct+ poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero PhysicalDeviceImageProcessingPropertiesQCOM where+ zero = PhysicalDeviceImageProcessingPropertiesQCOM+ zero+ zero+ zero+ zero+++type QCOM_IMAGE_PROCESSING_SPEC_VERSION = 1++-- No documentation found for TopLevel "VK_QCOM_IMAGE_PROCESSING_SPEC_VERSION"+pattern QCOM_IMAGE_PROCESSING_SPEC_VERSION :: forall a . Integral a => a+pattern QCOM_IMAGE_PROCESSING_SPEC_VERSION = 1+++type QCOM_IMAGE_PROCESSING_EXTENSION_NAME = "VK_QCOM_image_processing"++-- No documentation found for TopLevel "VK_QCOM_IMAGE_PROCESSING_EXTENSION_NAME"+pattern QCOM_IMAGE_PROCESSING_EXTENSION_NAME :: forall a . (Eq a, IsString a) => a+pattern QCOM_IMAGE_PROCESSING_EXTENSION_NAME = "VK_QCOM_image_processing"+
+ src/Vulkan/Extensions/VK_QCOM_image_processing.hs-boot view
@@ -0,0 +1,212 @@+{-# language CPP #-}+-- | = Name+--+-- VK_QCOM_image_processing - device extension+--+-- == VK_QCOM_image_processing+--+-- [__Name String__]+-- @VK_QCOM_image_processing@+--+-- [__Extension Type__]+-- Device extension+--+-- [__Registered Extension Number__]+-- 441+--+-- [__Revision__]+-- 1+--+-- [__Extension and Version Dependencies__]+--+-- - Requires support for Vulkan 1.0+--+-- - Requires @VK_KHR_format_feature_flags2@ to be enabled for any+-- device-level functionality+--+-- [__Contact__]+--+-- - Jeff Leger+-- <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_QCOM_image_processing] @jackohound%0A<<Here describe the issue or question you have about the VK_QCOM_image_processing extension>> >+--+-- [__Extension Proposal__]+-- <https://github.com/KhronosGroup/Vulkan-Docs/tree/main/proposals/VK_QCOM_image_processing.adoc VK_QCOM_image_processing>+--+-- == Other Extension Metadata+--+-- [__Last Modified Date__]+-- 2022-07-08+--+-- [__Interactions and External Dependencies__]+--+-- - This extension requires+-- <https://htmlpreview.github.io/?https://github.com/KhronosGroup/SPIRV-Registry/blob/master/extensions/QCOM/SPV_QCOM_image_processing.html SPV_QCOM_image_processing>+--+-- - This extension provides API support for+-- <https://github.com/KhronosGroup/GLSL/blob/master/extensions/qcom/GLSL_QCOM_image_processing.txt GL_QCOM_image_processing>+--+-- [__Contributors__]+--+-- - Jeff Leger, Qualcomm Technologies, Inc.+--+-- - Ruihao Zhang, Qualcomm Technologies, Inc.+--+-- == Description+--+-- GPUs are commonly used to process images for various applications from+-- 3D graphics to UI and from composition to compute applications. Simple+-- scaling and filtering can be done with bilinear filtering, which comes+-- for free during texture sampling. However, as screen sizes get larger+-- and more use-cases rely on GPU such as camera and video post-processing+-- needs, there is increasing demand for GPU to support higher order+-- filtering and other advanced image processing.+--+-- This extension introduces a new set of SPIR-V built-in functions for+-- image processing. It exposes the following new imaging operations+--+-- - The @OpImageSampleWeightedQCOM@ instruction takes 3 operands:+-- /sampled image/, /weight image/, and texture coordinates. The+-- instruction computes a weighted average of an MxN region of texels+-- in the /sampled image/, using a set of MxN weights in the /weight+-- image/.+--+-- - The @OpImageBoxFilterQCOM@ instruction takes 3 operands: /sampled+-- image/, /box size/, and texture coordinates. Note that /box size/+-- specifies a floating point width and height in texels. The+-- instruction computes a weighted average of all texels in the+-- /sampled image/ that are covered (either partially or fully) by a+-- box with the specified size and centered at the specified texture+-- coordinates.+--+-- - The @OpImageBlockMatchSADQCOM@ and @OpImageBlockMatchSSDQCOM@+-- instructions each takes 5 operands: /target image/, /target+-- coordinates/, /reference image/, /reference coordinates/, and /block+-- size/. Each instruction computes an error metric, that describes+-- whether a block of texels in the /target image/ matches a+-- corresponding block of texels in the /reference image/. The error+-- metric is computed per-component. @OpImageBlockMatchSADQCOM@+-- computes \"Sum Of Absolute Difference\" and+-- @OpImageBlockMatchSSDQCOM@ computes \"Sum of Squared Difference\".+--+-- Each of the image processing instructions operate only on 2D images. The+-- instructions do not-support sampling of mipmap, multi-plane,+-- multi-layer, multi-sampled, or depth\/stencil images. The instructions+-- can be used in any shader stage.+--+-- Implementations of this this extension should support these operations+-- natively at the HW instruction level, offering potential performance+-- gains as well as ease of development.+--+-- == New Structures+--+-- - Extending 'Vulkan.Core10.ImageView.ImageViewCreateInfo':+--+-- - 'ImageViewSampleWeightCreateInfoQCOM'+--+-- - Extending+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',+-- 'Vulkan.Core10.Device.DeviceCreateInfo':+--+-- - 'PhysicalDeviceImageProcessingFeaturesQCOM'+--+-- - Extending+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2':+--+-- - 'PhysicalDeviceImageProcessingPropertiesQCOM'+--+-- == New Enum Constants+--+-- - 'QCOM_IMAGE_PROCESSING_EXTENSION_NAME'+--+-- - 'QCOM_IMAGE_PROCESSING_SPEC_VERSION'+--+-- - Extending 'Vulkan.Core10.Enums.DescriptorType.DescriptorType':+--+-- - 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_BLOCK_MATCH_IMAGE_QCOM'+--+-- - 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_SAMPLE_WEIGHT_IMAGE_QCOM'+--+-- - Extending+-- 'Vulkan.Core10.Enums.ImageUsageFlagBits.ImageUsageFlagBits':+--+-- - 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_SAMPLE_BLOCK_MATCH_BIT_QCOM'+--+-- - 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_SAMPLE_WEIGHT_BIT_QCOM'+--+-- - Extending+-- 'Vulkan.Core10.Enums.SamplerCreateFlagBits.SamplerCreateFlagBits':+--+-- - 'Vulkan.Core10.Enums.SamplerCreateFlagBits.SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM'+--+-- - Extending 'Vulkan.Core10.Enums.StructureType.StructureType':+--+-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_IMAGE_VIEW_SAMPLE_WEIGHT_CREATE_INFO_QCOM'+--+-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_FEATURES_QCOM'+--+-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_PROPERTIES_QCOM'+--+-- If+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_format_feature_flags2 VK_KHR_format_feature_flags2>+-- is supported:+--+-- - Extending+-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FormatFeatureFlagBits2':+--+-- - 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM'+--+-- - 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM'+--+-- - 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM'+--+-- - 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM'+--+-- == Version History+--+-- - Revision 1, 2022-07-08 (Jeff Leger)+--+-- == See Also+--+-- 'ImageViewSampleWeightCreateInfoQCOM',+-- 'PhysicalDeviceImageProcessingFeaturesQCOM',+-- 'PhysicalDeviceImageProcessingPropertiesQCOM'+--+-- == Document Notes+--+-- For more information, see the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_QCOM_image_processing Vulkan Specification>+--+-- This page is a generated document. Fixes and changes should be made to+-- the generator scripts, not directly.+module Vulkan.Extensions.VK_QCOM_image_processing ( ImageViewSampleWeightCreateInfoQCOM+ , PhysicalDeviceImageProcessingFeaturesQCOM+ , PhysicalDeviceImageProcessingPropertiesQCOM+ ) where++import Vulkan.CStruct (FromCStruct)+import Vulkan.CStruct (ToCStruct)+import Data.Kind (Type)++data ImageViewSampleWeightCreateInfoQCOM++instance ToCStruct ImageViewSampleWeightCreateInfoQCOM+instance Show ImageViewSampleWeightCreateInfoQCOM++instance FromCStruct ImageViewSampleWeightCreateInfoQCOM+++data PhysicalDeviceImageProcessingFeaturesQCOM++instance ToCStruct PhysicalDeviceImageProcessingFeaturesQCOM+instance Show PhysicalDeviceImageProcessingFeaturesQCOM++instance FromCStruct PhysicalDeviceImageProcessingFeaturesQCOM+++data PhysicalDeviceImageProcessingPropertiesQCOM++instance ToCStruct PhysicalDeviceImageProcessingPropertiesQCOM+instance Show PhysicalDeviceImageProcessingPropertiesQCOM++instance FromCStruct PhysicalDeviceImageProcessingPropertiesQCOM+
src/Vulkan/Extensions/VK_QCOM_render_pass_shader_resolve.hs view
@@ -19,7 +19,7 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 -- -- [__Contact__] --@@ -150,7 +150,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_QCOM_render_pass_shader_resolve Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_QCOM_render_pass_shader_resolve Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_QCOM_render_pass_store_ops.hs view
@@ -19,7 +19,7 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 -- -- [__Contact__] --@@ -92,7 +92,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_QCOM_render_pass_store_ops Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_QCOM_render_pass_store_ops Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_QCOM_render_pass_transform.hs view
@@ -15,15 +15,17 @@ -- 283 -- -- [__Revision__]--- 2+-- 3 -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_swapchain@+-- - Requires @VK_KHR_swapchain@ to be enabled for any device-level+-- functionality ----- - Requires @VK_KHR_surface@+-- - Requires @VK_KHR_surface@ to be enabled for any device-level+-- functionality -- -- [__Contact__] --@@ -33,7 +35,7 @@ -- == Other Extension Metadata -- -- [__Last Modified Date__]--- 2021-03-09+-- 2022-07-21 -- -- [__Interactions and External Dependencies__] --@@ -43,6 +45,8 @@ -- -- - This extension interacts with @VK_KHR_fragment_shading_rate@ --+-- - This extension interacts with @VK_QCOM_tile_properties@+-- -- [__Contributors__] -- -- - Jeff Leger, Qualcomm Technologies, Inc.@@ -55,7 +59,7 @@ -- -- This extension provides a mechanism for applications to enable driver -- support for--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#vertexpostproc-renderpass-transform render pass transform>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#vertexpostproc-renderpass-transform render pass transform>. -- -- Mobile devices can be rotated and mobile applications need to render -- properly when a device is held in a landscape or portrait orientation.@@ -63,7 +67,7 @@ -- orientation, a rotation is required so that the “up” direction of the -- rendered scene matches the current orientation. ----- If the Display Processing Unit (DPU) doesnt natively support rotation,+-- If the Display Processing Unit (DPU) does not natively support rotation, -- the Vulkan presentation engine can handle this rotation in a separate -- composition pass. Alternatively, the application can render frames -- “pre-rotated” to avoid this extra pass. The latter is preferred to@@ -120,6 +124,12 @@ -- - The implementation is responsible for transforming @position@ to the -- rotated coordinate system. --+-- - If this extension is used with @VK_QCOM_tile_properties@, then+-- 'Vulkan.Extensions.VK_QCOM_tile_properties.getFramebufferTilePropertiesQCOM'+-- and+-- 'Vulkan.Extensions.VK_QCOM_tile_properties.getDynamicRenderingTilePropertiesQCOM'+-- return tile properties in the rotated coordinate space.+-- -- == New Structures -- -- - Extending@@ -225,7 +235,7 @@ -- coordinate system. -- -- The--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-fragment-shading-rate set of supported shading rates>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-fragment-shading-rate set of supported shading rates> -- /may/ be different per transform. Supported rates queried from -- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.getPhysicalDeviceFragmentShadingRatesKHR' -- are in the native (rotated) coordinate system. This means that the@@ -240,6 +250,10 @@ -- -- - Adds interactions with VK_KHR_fragment_shading_rate --+-- - Revision 3, 2022-07-11 (Arpit Agarwal)+--+-- - Adds interactions with VK_QCOM_tile_properties+-- -- == See Also -- -- 'CommandBufferInheritanceRenderPassTransformInfoQCOM',@@ -248,7 +262,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_QCOM_render_pass_transform Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_QCOM_render_pass_transform Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.@@ -437,11 +451,11 @@ zero -type QCOM_RENDER_PASS_TRANSFORM_SPEC_VERSION = 2+type QCOM_RENDER_PASS_TRANSFORM_SPEC_VERSION = 3 -- No documentation found for TopLevel "VK_QCOM_RENDER_PASS_TRANSFORM_SPEC_VERSION" pattern QCOM_RENDER_PASS_TRANSFORM_SPEC_VERSION :: forall a . Integral a => a-pattern QCOM_RENDER_PASS_TRANSFORM_SPEC_VERSION = 2+pattern QCOM_RENDER_PASS_TRANSFORM_SPEC_VERSION = 3 type QCOM_RENDER_PASS_TRANSFORM_EXTENSION_NAME = "VK_QCOM_render_pass_transform"
src/Vulkan/Extensions/VK_QCOM_render_pass_transform.hs-boot view
@@ -15,15 +15,17 @@ -- 283 -- -- [__Revision__]--- 2+-- 3 -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_swapchain@+-- - Requires @VK_KHR_swapchain@ to be enabled for any device-level+-- functionality ----- - Requires @VK_KHR_surface@+-- - Requires @VK_KHR_surface@ to be enabled for any device-level+-- functionality -- -- [__Contact__] --@@ -33,7 +35,7 @@ -- == Other Extension Metadata -- -- [__Last Modified Date__]--- 2021-03-09+-- 2022-07-21 -- -- [__Interactions and External Dependencies__] --@@ -43,6 +45,8 @@ -- -- - This extension interacts with @VK_KHR_fragment_shading_rate@ --+-- - This extension interacts with @VK_QCOM_tile_properties@+-- -- [__Contributors__] -- -- - Jeff Leger, Qualcomm Technologies, Inc.@@ -55,7 +59,7 @@ -- -- This extension provides a mechanism for applications to enable driver -- support for--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#vertexpostproc-renderpass-transform render pass transform>.+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#vertexpostproc-renderpass-transform render pass transform>. -- -- Mobile devices can be rotated and mobile applications need to render -- properly when a device is held in a landscape or portrait orientation.@@ -63,7 +67,7 @@ -- orientation, a rotation is required so that the “up” direction of the -- rendered scene matches the current orientation. ----- If the Display Processing Unit (DPU) doesnt natively support rotation,+-- If the Display Processing Unit (DPU) does not natively support rotation, -- the Vulkan presentation engine can handle this rotation in a separate -- composition pass. Alternatively, the application can render frames -- “pre-rotated” to avoid this extra pass. The latter is preferred to@@ -120,6 +124,12 @@ -- - The implementation is responsible for transforming @position@ to the -- rotated coordinate system. --+-- - If this extension is used with @VK_QCOM_tile_properties@, then+-- 'Vulkan.Extensions.VK_QCOM_tile_properties.getFramebufferTilePropertiesQCOM'+-- and+-- 'Vulkan.Extensions.VK_QCOM_tile_properties.getDynamicRenderingTilePropertiesQCOM'+-- return tile properties in the rotated coordinate space.+-- -- == New Structures -- -- - Extending@@ -225,7 +235,7 @@ -- coordinate system. -- -- The--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-fragment-shading-rate set of supported shading rates>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-fragment-shading-rate set of supported shading rates> -- /may/ be different per transform. Supported rates queried from -- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.getPhysicalDeviceFragmentShadingRatesKHR' -- are in the native (rotated) coordinate system. This means that the@@ -240,6 +250,10 @@ -- -- - Adds interactions with VK_KHR_fragment_shading_rate --+-- - Revision 3, 2022-07-11 (Arpit Agarwal)+--+-- - Adds interactions with VK_QCOM_tile_properties+-- -- == See Also -- -- 'CommandBufferInheritanceRenderPassTransformInfoQCOM',@@ -248,7 +262,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_QCOM_render_pass_transform Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_QCOM_render_pass_transform Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_QCOM_rotated_copy_commands.hs view
@@ -19,11 +19,13 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_swapchain@+-- - Requires @VK_KHR_swapchain@ to be enabled for any device-level+-- functionality ----- - Requires @VK_KHR_copy_commands2@+-- - Requires @VK_KHR_copy_commands2@ to be enabled for any+-- device-level functionality -- -- [__Contact__] --@@ -115,7 +117,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_QCOM_rotated_copy_commands Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_QCOM_rotated_copy_commands Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_QCOM_rotated_copy_commands.hs-boot view
@@ -19,11 +19,13 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_swapchain@+-- - Requires @VK_KHR_swapchain@ to be enabled for any device-level+-- functionality ----- - Requires @VK_KHR_copy_commands2@+-- - Requires @VK_KHR_copy_commands2@ to be enabled for any+-- device-level functionality -- -- [__Contact__] --@@ -115,7 +117,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_QCOM_rotated_copy_commands Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_QCOM_rotated_copy_commands Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
+ src/Vulkan/Extensions/VK_QCOM_tile_properties.hs view
@@ -0,0 +1,482 @@+{-# language CPP #-}+-- | = Name+--+-- VK_QCOM_tile_properties - device extension+--+-- == VK_QCOM_tile_properties+--+-- [__Name String__]+-- @VK_QCOM_tile_properties@+--+-- [__Extension Type__]+-- Device extension+--+-- [__Registered Extension Number__]+-- 485+--+-- [__Revision__]+-- 1+--+-- [__Extension and Version Dependencies__]+--+-- - Requires support for Vulkan 1.0+--+-- - Requires @VK_KHR_get_physical_device_properties2@ to be enabled+-- for any device-level functionality+--+-- [__Contact__]+--+-- - Jeff Leger+-- <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_QCOM_tile_properties] @jackohound%0A<<Here describe the issue or question you have about the VK_QCOM_tile_properties extension>> >+--+-- [__Extension Proposal__]+-- <https://github.com/KhronosGroup/Vulkan-Docs/tree/main/proposals/VK_QCOM_tile_properties.adoc VK_QCOM_tile_properties>+--+-- == Other Extension Metadata+--+-- [__Last Modified Date__]+-- 2022-07-11+--+-- [__Interactions and External Dependencies__]+--+-- - This extension interacts with @VK_EXT_subpass_merge_feedback@+--+-- [__Contributors__]+--+-- - Jonathan Wicks, Qualcomm Technologies, Inc.+--+-- - Jonathan Tinkham, Qualcomm Technologies, Inc.+--+-- - Arpit Agarwal, Qualcomm Technologies, Inc.+--+-- - Jeff Leger, Qualcomm Technologies, Inc.+--+-- == Description+--+-- This extension allows an application to query the tile properties. This+-- extension supports both renderpasses and dynamic rendering.+--+-- == New Commands+--+-- - 'getDynamicRenderingTilePropertiesQCOM'+--+-- - 'getFramebufferTilePropertiesQCOM'+--+-- == New Structures+--+-- - 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'+--+-- - 'TilePropertiesQCOM'+--+-- - Extending+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',+-- 'Vulkan.Core10.Device.DeviceCreateInfo':+--+-- - 'PhysicalDeviceTilePropertiesFeaturesQCOM'+--+-- == New Enum Constants+--+-- - 'QCOM_TILE_PROPERTIES_EXTENSION_NAME'+--+-- - 'QCOM_TILE_PROPERTIES_SPEC_VERSION'+--+-- - Extending 'Vulkan.Core10.Enums.StructureType.StructureType':+--+-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_TILE_PROPERTIES_FEATURES_QCOM'+--+-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_TILE_PROPERTIES_QCOM'+--+-- == Version History+--+-- - Revision 1, 2022-07-11 (Arpit Agarwal)+--+-- - Initial version+--+-- == See Also+--+-- 'PhysicalDeviceTilePropertiesFeaturesQCOM',+-- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR',+-- 'TilePropertiesQCOM', 'getDynamicRenderingTilePropertiesQCOM',+-- 'getFramebufferTilePropertiesQCOM'+--+-- == Document Notes+--+-- For more information, see the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_QCOM_tile_properties Vulkan Specification>+--+-- This page is a generated document. Fixes and changes should be made to+-- the generator scripts, not directly.+module Vulkan.Extensions.VK_QCOM_tile_properties ( getFramebufferTilePropertiesQCOM+ , getDynamicRenderingTilePropertiesQCOM+ , PhysicalDeviceTilePropertiesFeaturesQCOM(..)+ , TilePropertiesQCOM(..)+ , QCOM_TILE_PROPERTIES_SPEC_VERSION+ , pattern QCOM_TILE_PROPERTIES_SPEC_VERSION+ , QCOM_TILE_PROPERTIES_EXTENSION_NAME+ , pattern QCOM_TILE_PROPERTIES_EXTENSION_NAME+ , RenderingInfoKHR+ ) where++import Vulkan.Internal.Utils (traceAroundEvent)+import Control.Exception.Base (bracket)+import Control.Monad (unless)+import Control.Monad.IO.Class (liftIO)+import Foreign.Marshal.Alloc (allocaBytes)+import Foreign.Marshal.Alloc (callocBytes)+import Foreign.Marshal.Alloc (free)+import GHC.IO (throwIO)+import GHC.Ptr (nullFunPtr)+import Foreign.Ptr (nullPtr)+import Foreign.Ptr (plusPtr)+import Control.Monad.Trans.Class (lift)+import Control.Monad.Trans.Cont (evalContT)+import Data.Vector (generateM)+import Vulkan.CStruct (FromCStruct)+import Vulkan.CStruct (FromCStruct(..))+import Vulkan.CStruct (ToCStruct)+import Vulkan.CStruct (ToCStruct(..))+import Vulkan.Zero (Zero(..))+import Control.Monad.IO.Class (MonadIO)+import Data.String (IsString)+import Data.Typeable (Typeable)+import Foreign.Storable (Storable)+import Foreign.Storable (Storable(peek))+import Foreign.Storable (Storable(poke))+import qualified Foreign.Storable (Storable(..))+import GHC.Generics (Generic)+import GHC.IO.Exception (IOErrorType(..))+import GHC.IO.Exception (IOException(..))+import Foreign.Ptr (FunPtr)+import Foreign.Ptr (Ptr)+import Data.Word (Word32)+import Data.Kind (Type)+import Control.Monad.Trans.Cont (ContT(..))+import Data.Vector (Vector)+import Vulkan.CStruct.Utils (advancePtrBytes)+import Vulkan.Core10.FundamentalTypes (bool32ToBool)+import Vulkan.Core10.FundamentalTypes (boolToBool32)+import Vulkan.CStruct.Extends (forgetExtensions)+import Vulkan.NamedType ((:::))+import Vulkan.Core10.FundamentalTypes (Bool32)+import Vulkan.Core10.Handles (Device)+import Vulkan.Core10.Handles (Device(..))+import Vulkan.Core10.Handles (Device(Device))+import Vulkan.Dynamic (DeviceCmds(pVkGetDynamicRenderingTilePropertiesQCOM))+import Vulkan.Dynamic (DeviceCmds(pVkGetFramebufferTilePropertiesQCOM))+import Vulkan.Core10.Handles (Device_T)+import Vulkan.CStruct.Extends (Extendss)+import Vulkan.Core10.FundamentalTypes (Extent2D)+import Vulkan.Core10.FundamentalTypes (Extent3D)+import Vulkan.Core10.Handles (Framebuffer)+import Vulkan.Core10.Handles (Framebuffer(..))+import Vulkan.Core10.FundamentalTypes (Offset2D)+import Vulkan.CStruct.Extends (PokeChain)+import Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering (RenderingInfo)+import Vulkan.Core10.Enums.Result (Result)+import Vulkan.Core10.Enums.Result (Result(..))+import Vulkan.CStruct.Extends (SomeStruct)+import Vulkan.Core10.Enums.StructureType (StructureType)+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_TILE_PROPERTIES_FEATURES_QCOM))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_TILE_PROPERTIES_QCOM))+import Vulkan.Extensions.VK_KHR_dynamic_rendering (RenderingInfoKHR)+foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+ unsafe+#endif+ "dynamic" mkVkGetFramebufferTilePropertiesQCOM+ :: FunPtr (Ptr Device_T -> Framebuffer -> Ptr Word32 -> Ptr TilePropertiesQCOM -> IO Result) -> Ptr Device_T -> Framebuffer -> Ptr Word32 -> Ptr TilePropertiesQCOM -> IO Result++-- | vkGetFramebufferTilePropertiesQCOM - Get tile properties from the+-- attachments in framebuffer+--+-- = Description+--+-- If @pProperties@ is @NULL@, then the number of tile properties available+-- is returned in @pPropertiesCount@. Otherwise, @pPropertiesCount@ /must/+-- point to a variable set by the user to the number of elements in the+-- @pProperties@ array, and on return the variable is overwritten with the+-- number of properties actually written to @pProperties@. If+-- @pPropertiesCount@ is less than the number of tile properties available,+-- at most @pPropertiesCount@ structures will be written, and+-- 'Vulkan.Core10.Enums.Result.INCOMPLETE' will be returned instead of+-- 'Vulkan.Core10.Enums.Result.SUCCESS', to indicate that not all the+-- available properties were returned.+--+-- The number of tile properties available is determined by the number of+-- merged subpasses, and each tile property is associated with a merged+-- subpass. There will be at most as many properties as there are subpasses+-- within the render pass. To obtain the tile properties for a given merged+-- subpass, the @pProperties@ array can be indexed using the+-- @postMergeIndex@ value provided in+-- 'Vulkan.Extensions.VK_EXT_subpass_merge_feedback.RenderPassSubpassFeedbackInfoEXT'.+--+-- == Valid Usage (Implicit)+--+-- - #VUID-vkGetFramebufferTilePropertiesQCOM-device-parameter# @device@+-- /must/ be a valid 'Vulkan.Core10.Handles.Device' handle+--+-- - #VUID-vkGetFramebufferTilePropertiesQCOM-framebuffer-parameter#+-- @framebuffer@ /must/ be a valid 'Vulkan.Core10.Handles.Framebuffer'+-- handle+--+-- - #VUID-vkGetFramebufferTilePropertiesQCOM-pPropertiesCount-parameter#+-- @pPropertiesCount@ /must/ be a valid pointer to a @uint32_t@ value+--+-- - #VUID-vkGetFramebufferTilePropertiesQCOM-pProperties-parameter# If+-- the value referenced by @pPropertiesCount@ is not @0@, and+-- @pProperties@ is not @NULL@, @pProperties@ /must/ be a valid pointer+-- to an array of @pPropertiesCount@ 'TilePropertiesQCOM' structures+--+-- - #VUID-vkGetFramebufferTilePropertiesQCOM-framebuffer-parent#+-- @framebuffer@ /must/ have been created, allocated, or retrieved from+-- @device@+--+-- == Return Codes+--+-- [<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodes Success>]+--+-- - 'Vulkan.Core10.Enums.Result.SUCCESS'+--+-- - 'Vulkan.Core10.Enums.Result.INCOMPLETE'+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_QCOM_tile_properties VK_QCOM_tile_properties>,+-- 'Vulkan.Core10.Handles.Device', 'Vulkan.Core10.Handles.Framebuffer',+-- 'TilePropertiesQCOM'+getFramebufferTilePropertiesQCOM :: forall io+ . (MonadIO io)+ => -- | @device@ is a logical device associated with the framebuffer.+ Device+ -> -- | @framebuffer@ is a handle of the framebuffer to query.+ Framebuffer+ -> io (Result, ("properties" ::: Vector TilePropertiesQCOM))+getFramebufferTilePropertiesQCOM device framebuffer = liftIO . evalContT $ do+ let vkGetFramebufferTilePropertiesQCOMPtr = pVkGetFramebufferTilePropertiesQCOM (case device of Device{deviceCmds} -> deviceCmds)+ lift $ unless (vkGetFramebufferTilePropertiesQCOMPtr /= nullFunPtr) $+ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetFramebufferTilePropertiesQCOM is null" Nothing Nothing+ let vkGetFramebufferTilePropertiesQCOM' = mkVkGetFramebufferTilePropertiesQCOM vkGetFramebufferTilePropertiesQCOMPtr+ let device' = deviceHandle (device)+ pPPropertiesCount <- ContT $ bracket (callocBytes @Word32 4) free+ _ <- lift $ traceAroundEvent "vkGetFramebufferTilePropertiesQCOM" (vkGetFramebufferTilePropertiesQCOM' device' (framebuffer) (pPPropertiesCount) (nullPtr))+ pPropertiesCount <- lift $ peek @Word32 pPPropertiesCount+ pPProperties <- ContT $ bracket (callocBytes @TilePropertiesQCOM ((fromIntegral (pPropertiesCount)) * 48)) free+ _ <- traverse (\i -> ContT $ pokeZeroCStruct (pPProperties `advancePtrBytes` (i * 48) :: Ptr TilePropertiesQCOM) . ($ ())) [0..(fromIntegral (pPropertiesCount)) - 1]+ r <- lift $ traceAroundEvent "vkGetFramebufferTilePropertiesQCOM" (vkGetFramebufferTilePropertiesQCOM' device' (framebuffer) (pPPropertiesCount) ((pPProperties)))+ pPropertiesCount' <- lift $ peek @Word32 pPPropertiesCount+ pProperties' <- lift $ generateM (fromIntegral (pPropertiesCount')) (\i -> peekCStruct @TilePropertiesQCOM (((pPProperties) `advancePtrBytes` (48 * (i)) :: Ptr TilePropertiesQCOM)))+ pure $ (r, pProperties')+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+ unsafe+#endif+ "dynamic" mkVkGetDynamicRenderingTilePropertiesQCOM+ :: FunPtr (Ptr Device_T -> Ptr (SomeStruct RenderingInfo) -> Ptr TilePropertiesQCOM -> IO Result) -> Ptr Device_T -> Ptr (SomeStruct RenderingInfo) -> Ptr TilePropertiesQCOM -> IO Result++-- | vkGetDynamicRenderingTilePropertiesQCOM - Get the properties when using+-- dynamic rendering+--+-- == Return Codes+--+-- [<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodes Success>]+--+-- - 'Vulkan.Core10.Enums.Result.SUCCESS'+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_QCOM_tile_properties VK_QCOM_tile_properties>,+-- 'Vulkan.Core10.Handles.Device',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo',+-- 'TilePropertiesQCOM'+getDynamicRenderingTilePropertiesQCOM :: forall a io+ . (Extendss RenderingInfo a, PokeChain a, MonadIO io)+ => -- | @device@ is a logical device associated with the render pass.+ --+ -- #VUID-vkGetDynamicRenderingTilePropertiesQCOM-device-parameter# @device@+ -- /must/ be a valid 'Vulkan.Core10.Handles.Device' handle+ Device+ -> -- | @pRenderingInfo@ is a pointer to the+ -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'+ -- structure specifying details of the render pass instance in dynamic+ -- rendering.+ --+ -- #VUID-vkGetDynamicRenderingTilePropertiesQCOM-pRenderingInfo-parameter#+ -- @pRenderingInfo@ /must/ be a valid pointer to a valid+ -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'+ -- structure+ (RenderingInfo a)+ -> io (TilePropertiesQCOM)+getDynamicRenderingTilePropertiesQCOM device renderingInfo = liftIO . evalContT $ do+ let vkGetDynamicRenderingTilePropertiesQCOMPtr = pVkGetDynamicRenderingTilePropertiesQCOM (case device of Device{deviceCmds} -> deviceCmds)+ lift $ unless (vkGetDynamicRenderingTilePropertiesQCOMPtr /= nullFunPtr) $+ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetDynamicRenderingTilePropertiesQCOM is null" Nothing Nothing+ let vkGetDynamicRenderingTilePropertiesQCOM' = mkVkGetDynamicRenderingTilePropertiesQCOM vkGetDynamicRenderingTilePropertiesQCOMPtr+ pRenderingInfo <- ContT $ withCStruct (renderingInfo)+ pPProperties <- ContT (withZeroCStruct @TilePropertiesQCOM)+ _ <- lift $ traceAroundEvent "vkGetDynamicRenderingTilePropertiesQCOM" (vkGetDynamicRenderingTilePropertiesQCOM' (deviceHandle (device)) (forgetExtensions pRenderingInfo) (pPProperties))+ pProperties <- lift $ peekCStruct @TilePropertiesQCOM pPProperties+ pure $ (pProperties)+++-- | VkPhysicalDeviceTilePropertiesFeaturesQCOM - Structure describing tile+-- properties features that can be supported by an implementation+--+-- = Members+--+-- This structure describes the following features:+--+-- = Description+--+-- If the 'PhysicalDeviceTilePropertiesFeaturesQCOM' structure is included+-- in the @pNext@ chain of the+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2'+-- structure passed to+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceFeatures2',+-- it is filled in to indicate whether each corresponding feature is+-- supported. 'PhysicalDeviceTilePropertiesFeaturesQCOM' /can/ also be used+-- in the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to+-- selectively enable these features.+--+-- == Valid Usage (Implicit)+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_QCOM_tile_properties VK_QCOM_tile_properties>,+-- 'Vulkan.Core10.FundamentalTypes.Bool32',+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data PhysicalDeviceTilePropertiesFeaturesQCOM = PhysicalDeviceTilePropertiesFeaturesQCOM+ { -- | #features-tileProperties# @tileProperties@ indicates that the+ -- implementation supports queries for returning tile properties.+ tileProperties :: Bool }+ deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (PhysicalDeviceTilePropertiesFeaturesQCOM)+#endif+deriving instance Show PhysicalDeviceTilePropertiesFeaturesQCOM++instance ToCStruct PhysicalDeviceTilePropertiesFeaturesQCOM where+ withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)+ pokeCStruct p PhysicalDeviceTilePropertiesFeaturesQCOM{..} f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_TILE_PROPERTIES_FEATURES_QCOM)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (tileProperties))+ f+ cStructSize = 24+ cStructAlignment = 8+ pokeZeroCStruct p f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_TILE_PROPERTIES_FEATURES_QCOM)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (zero))+ f++instance FromCStruct PhysicalDeviceTilePropertiesFeaturesQCOM where+ peekCStruct p = do+ tileProperties <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))+ pure $ PhysicalDeviceTilePropertiesFeaturesQCOM+ (bool32ToBool tileProperties)++instance Storable PhysicalDeviceTilePropertiesFeaturesQCOM where+ sizeOf ~_ = 24+ alignment ~_ = 8+ peek = peekCStruct+ poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero PhysicalDeviceTilePropertiesFeaturesQCOM where+ zero = PhysicalDeviceTilePropertiesFeaturesQCOM+ zero+++-- | VkTilePropertiesQCOM - Structure holding available tile properties+--+-- = Description+--+-- All tiles will be tightly packed around the first tile, with edges being+-- multiples of tile width and\/or height from the origin.+--+-- Note+--+-- Reported value for @apronSize@ will be zero and its functionality will+-- be described in a future extension.+--+-- == Valid Usage (Implicit)+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_QCOM_tile_properties VK_QCOM_tile_properties>,+-- 'Vulkan.Core10.FundamentalTypes.Extent2D',+-- 'Vulkan.Core10.FundamentalTypes.Extent3D',+-- 'Vulkan.Core10.FundamentalTypes.Offset2D',+-- 'Vulkan.Core10.Enums.StructureType.StructureType',+-- 'getDynamicRenderingTilePropertiesQCOM',+-- 'getFramebufferTilePropertiesQCOM'+data TilePropertiesQCOM = TilePropertiesQCOM+ { -- | @tileSize@ is the dimensions of a tile, with width and height describing+ -- the width and height of a tile in pixels, and depth corresponding to the+ -- number of slices the tile spans.+ tileSize :: Extent3D+ , -- | @apronSize@ is the dimension of the apron.+ apronSize :: Extent2D+ , -- | @origin@ is the top-left corner of the first tile in attachment space.+ origin :: Offset2D+ }+ deriving (Typeable)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (TilePropertiesQCOM)+#endif+deriving instance Show TilePropertiesQCOM++instance ToCStruct TilePropertiesQCOM where+ withCStruct x f = allocaBytes 48 $ \p -> pokeCStruct p x (f p)+ pokeCStruct p TilePropertiesQCOM{..} f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_TILE_PROPERTIES_QCOM)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr Extent3D)) (tileSize)+ poke ((p `plusPtr` 28 :: Ptr Extent2D)) (apronSize)+ poke ((p `plusPtr` 36 :: Ptr Offset2D)) (origin)+ f+ cStructSize = 48+ cStructAlignment = 8+ pokeZeroCStruct p f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_TILE_PROPERTIES_QCOM)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr Extent3D)) (zero)+ poke ((p `plusPtr` 28 :: Ptr Extent2D)) (zero)+ poke ((p `plusPtr` 36 :: Ptr Offset2D)) (zero)+ f++instance FromCStruct TilePropertiesQCOM where+ peekCStruct p = do+ tileSize <- peekCStruct @Extent3D ((p `plusPtr` 16 :: Ptr Extent3D))+ apronSize <- peekCStruct @Extent2D ((p `plusPtr` 28 :: Ptr Extent2D))+ origin <- peekCStruct @Offset2D ((p `plusPtr` 36 :: Ptr Offset2D))+ pure $ TilePropertiesQCOM+ tileSize apronSize origin++instance Storable TilePropertiesQCOM where+ sizeOf ~_ = 48+ alignment ~_ = 8+ peek = peekCStruct+ poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero TilePropertiesQCOM where+ zero = TilePropertiesQCOM+ zero+ zero+ zero+++type QCOM_TILE_PROPERTIES_SPEC_VERSION = 1++-- No documentation found for TopLevel "VK_QCOM_TILE_PROPERTIES_SPEC_VERSION"+pattern QCOM_TILE_PROPERTIES_SPEC_VERSION :: forall a . Integral a => a+pattern QCOM_TILE_PROPERTIES_SPEC_VERSION = 1+++type QCOM_TILE_PROPERTIES_EXTENSION_NAME = "VK_QCOM_tile_properties"++-- No documentation found for TopLevel "VK_QCOM_TILE_PROPERTIES_EXTENSION_NAME"+pattern QCOM_TILE_PROPERTIES_EXTENSION_NAME :: forall a . (Eq a, IsString a) => a+pattern QCOM_TILE_PROPERTIES_EXTENSION_NAME = "VK_QCOM_tile_properties"+
+ src/Vulkan/Extensions/VK_QCOM_tile_properties.hs-boot view
@@ -0,0 +1,131 @@+{-# language CPP #-}+-- | = Name+--+-- VK_QCOM_tile_properties - device extension+--+-- == VK_QCOM_tile_properties+--+-- [__Name String__]+-- @VK_QCOM_tile_properties@+--+-- [__Extension Type__]+-- Device extension+--+-- [__Registered Extension Number__]+-- 485+--+-- [__Revision__]+-- 1+--+-- [__Extension and Version Dependencies__]+--+-- - Requires support for Vulkan 1.0+--+-- - Requires @VK_KHR_get_physical_device_properties2@ to be enabled+-- for any device-level functionality+--+-- [__Contact__]+--+-- - Jeff Leger+-- <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_QCOM_tile_properties] @jackohound%0A<<Here describe the issue or question you have about the VK_QCOM_tile_properties extension>> >+--+-- [__Extension Proposal__]+-- <https://github.com/KhronosGroup/Vulkan-Docs/tree/main/proposals/VK_QCOM_tile_properties.adoc VK_QCOM_tile_properties>+--+-- == Other Extension Metadata+--+-- [__Last Modified Date__]+-- 2022-07-11+--+-- [__Interactions and External Dependencies__]+--+-- - This extension interacts with @VK_EXT_subpass_merge_feedback@+--+-- [__Contributors__]+--+-- - Jonathan Wicks, Qualcomm Technologies, Inc.+--+-- - Jonathan Tinkham, Qualcomm Technologies, Inc.+--+-- - Arpit Agarwal, Qualcomm Technologies, Inc.+--+-- - Jeff Leger, Qualcomm Technologies, Inc.+--+-- == Description+--+-- This extension allows an application to query the tile properties. This+-- extension supports both renderpasses and dynamic rendering.+--+-- == New Commands+--+-- - 'getDynamicRenderingTilePropertiesQCOM'+--+-- - 'getFramebufferTilePropertiesQCOM'+--+-- == New Structures+--+-- - 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR'+--+-- - 'TilePropertiesQCOM'+--+-- - Extending+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',+-- 'Vulkan.Core10.Device.DeviceCreateInfo':+--+-- - 'PhysicalDeviceTilePropertiesFeaturesQCOM'+--+-- == New Enum Constants+--+-- - 'QCOM_TILE_PROPERTIES_EXTENSION_NAME'+--+-- - 'QCOM_TILE_PROPERTIES_SPEC_VERSION'+--+-- - Extending 'Vulkan.Core10.Enums.StructureType.StructureType':+--+-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_TILE_PROPERTIES_FEATURES_QCOM'+--+-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_TILE_PROPERTIES_QCOM'+--+-- == Version History+--+-- - Revision 1, 2022-07-11 (Arpit Agarwal)+--+-- - Initial version+--+-- == See Also+--+-- 'PhysicalDeviceTilePropertiesFeaturesQCOM',+-- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR',+-- 'TilePropertiesQCOM', 'getDynamicRenderingTilePropertiesQCOM',+-- 'getFramebufferTilePropertiesQCOM'+--+-- == Document Notes+--+-- For more information, see the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_QCOM_tile_properties Vulkan Specification>+--+-- This page is a generated document. Fixes and changes should be made to+-- the generator scripts, not directly.+module Vulkan.Extensions.VK_QCOM_tile_properties ( PhysicalDeviceTilePropertiesFeaturesQCOM+ , TilePropertiesQCOM+ ) where++import Vulkan.CStruct (FromCStruct)+import Vulkan.CStruct (ToCStruct)+import Data.Kind (Type)++data PhysicalDeviceTilePropertiesFeaturesQCOM++instance ToCStruct PhysicalDeviceTilePropertiesFeaturesQCOM+instance Show PhysicalDeviceTilePropertiesFeaturesQCOM++instance FromCStruct PhysicalDeviceTilePropertiesFeaturesQCOM+++data TilePropertiesQCOM++instance ToCStruct TilePropertiesQCOM+instance Show TilePropertiesQCOM++instance FromCStruct TilePropertiesQCOM+
src/Vulkan/Extensions/VK_QNX_screen_surface.hs view
@@ -19,9 +19,9 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_surface@+-- - Requires @VK_KHR_surface@ to be enabled -- -- [__Contact__] --@@ -87,7 +87,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_QNX_screen_surface Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_QNX_screen_surface Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.@@ -226,7 +226,7 @@ ScreenSurfaceCreateInfoQNX -> -- | @pAllocator@ is the allocator used for host memory allocated for the -- surface object when there is no more specific allocator available (see- -- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>).+ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>). ("allocator" ::: Maybe AllocationCallbacks) -> io (SurfaceKHR) createScreenSurfaceQNX instance' createInfo allocator = liftIO . evalContT $ do
src/Vulkan/Extensions/VK_QNX_screen_surface.hs-boot view
@@ -19,9 +19,9 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_surface@+-- - Requires @VK_KHR_surface@ to be enabled -- -- [__Contact__] --@@ -87,7 +87,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_QNX_screen_surface Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_QNX_screen_surface Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
+ src/Vulkan/Extensions/VK_SEC_amigo_profiling.hs view
@@ -0,0 +1,300 @@+{-# language CPP #-}+-- | = Name+--+-- VK_SEC_amigo_profiling - device extension+--+-- == VK_SEC_amigo_profiling+--+-- [__Name String__]+-- @VK_SEC_amigo_profiling@+--+-- [__Extension Type__]+-- Device extension+--+-- [__Registered Extension Number__]+-- 486+--+-- [__Revision__]+-- 1+--+-- [__Extension and Version Dependencies__]+--+-- - Requires support for Vulkan 1.0+--+-- - Requires @VK_KHR_get_physical_device_properties2@ to be enabled+-- for any device-level functionality+--+-- [__Contact__]+--+-- - Ralph Potter <<data:image/png;base64, GitLab>>r_potter+--+-- == Other Extension Metadata+--+-- [__Last Modified Date__]+-- 2022-07-29+--+-- [__IP Status__]+-- No known IP claims.+--+-- [__Contributors__]+--+-- - Ralph Potter, Samsung+--+-- - Sangrak Oh, Samsung+--+-- - Jinku Kang, Samsung+--+-- == Description+--+-- This extension is intended to communicate information from layered API+-- implementations such as ANGLE to internal proprietary system schedulers.+-- It has no behavioural implications beyond enabling more intelligent+-- behaviour from the system scheduler.+--+-- Application developers should avoid using this extension. It is+-- documented solely for the benefit of tools and layer developers, who may+-- need to manipulate @pNext@ chains that include these structures.+--+-- Note+--+-- There is currently no specification language written for this extension.+-- The links to APIs defined by the extension are to stubs that only+-- include generated content such as API declarations and implicit valid+-- usage statements.+--+-- Note+--+-- This extension is only intended for use in specific embedded+-- environments with known implementation details, and is therefore+-- undocumented.+--+-- == New Structures+--+-- - Extending+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',+-- 'Vulkan.Core10.Device.DeviceCreateInfo':+--+-- - 'PhysicalDeviceAmigoProfilingFeaturesSEC'+--+-- - Extending 'Vulkan.Core10.Queue.SubmitInfo':+--+-- - 'AmigoProfilingSubmitInfoSEC'+--+-- == New Enum Constants+--+-- - 'SEC_AMIGO_PROFILING_EXTENSION_NAME'+--+-- - 'SEC_AMIGO_PROFILING_SPEC_VERSION'+--+-- - Extending 'Vulkan.Core10.Enums.StructureType.StructureType':+--+-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_AMIGO_PROFILING_SUBMIT_INFO_SEC'+--+-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_AMIGO_PROFILING_FEATURES_SEC'+--+-- == Stub API References+--+-- There is currently no specification language written for this type. This+-- section acts only as placeholder and to avoid dead links in the+-- specification and reference pages.+--+-- > // Provided by VK_SEC_amigo_profiling+-- > typedef struct VkPhysicalDeviceAmigoProfilingFeaturesSEC {+-- > VkStructureType sType;+-- > void* pNext;+-- > VkBool32 amigoProfiling;+-- > } VkPhysicalDeviceAmigoProfilingFeaturesSEC;+--+-- === Valid Usage (Implicit)+--+-- - #VUID-VkPhysicalDeviceAmigoProfilingFeaturesSEC-sType-sType# @sType@+-- /must/ be+-- 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_AMIGO_PROFILING_FEATURES_SEC'+--+-- There is currently no specification language written for this type. This+-- section acts only as placeholder and to avoid dead links in the+-- specification and reference pages.+--+-- > // Provided by VK_SEC_amigo_profiling+-- > typedef struct VkAmigoProfilingSubmitInfoSEC {+-- > VkStructureType sType;+-- > const void* pNext;+-- > uint64_t firstDrawTimestamp;+-- > uint64_t swapBufferTimestamp;+-- > } VkAmigoProfilingSubmitInfoSEC;+--+-- === Valid Usage (Implicit)+--+-- - #VUID-VkAmigoProfilingSubmitInfoSEC-sType-sType# @sType@ /must/ be+-- 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_AMIGO_PROFILING_SUBMIT_INFO_SEC'+--+-- == Version History+--+-- - Revision 1, 2022-07-29 (Ralph Potter)+--+-- - Initial specification+--+-- == See Also+--+-- 'AmigoProfilingSubmitInfoSEC', 'PhysicalDeviceAmigoProfilingFeaturesSEC'+--+-- == Document Notes+--+-- For more information, see the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_SEC_amigo_profiling Vulkan Specification>+--+-- This page is a generated document. Fixes and changes should be made to+-- the generator scripts, not directly.+module Vulkan.Extensions.VK_SEC_amigo_profiling ( PhysicalDeviceAmigoProfilingFeaturesSEC(..)+ , AmigoProfilingSubmitInfoSEC(..)+ , SEC_AMIGO_PROFILING_SPEC_VERSION+ , pattern SEC_AMIGO_PROFILING_SPEC_VERSION+ , SEC_AMIGO_PROFILING_EXTENSION_NAME+ , pattern SEC_AMIGO_PROFILING_EXTENSION_NAME+ ) where++import Foreign.Marshal.Alloc (allocaBytes)+import Foreign.Ptr (nullPtr)+import Foreign.Ptr (plusPtr)+import Vulkan.CStruct (FromCStruct)+import Vulkan.CStruct (FromCStruct(..))+import Vulkan.CStruct (ToCStruct)+import Vulkan.CStruct (ToCStruct(..))+import Vulkan.Zero (Zero(..))+import Data.String (IsString)+import Data.Typeable (Typeable)+import Foreign.Storable (Storable)+import Foreign.Storable (Storable(peek))+import Foreign.Storable (Storable(poke))+import qualified Foreign.Storable (Storable(..))+import GHC.Generics (Generic)+import Foreign.Ptr (Ptr)+import Data.Word (Word64)+import Data.Kind (Type)+import Vulkan.Core10.FundamentalTypes (bool32ToBool)+import Vulkan.Core10.FundamentalTypes (boolToBool32)+import Vulkan.Core10.FundamentalTypes (Bool32)+import Vulkan.Core10.Enums.StructureType (StructureType)+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_AMIGO_PROFILING_SUBMIT_INFO_SEC))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_AMIGO_PROFILING_FEATURES_SEC))+-- | VkPhysicalDeviceAmigoProfilingFeaturesSEC - Stub description of+-- VkPhysicalDeviceAmigoProfilingFeaturesSEC+--+-- == Valid Usage (Implicit)+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_SEC_amigo_profiling VK_SEC_amigo_profiling>,+-- 'Vulkan.Core10.FundamentalTypes.Bool32',+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data PhysicalDeviceAmigoProfilingFeaturesSEC = PhysicalDeviceAmigoProfilingFeaturesSEC+ { -- No documentation found for Nested "VkPhysicalDeviceAmigoProfilingFeaturesSEC" "amigoProfiling"+ amigoProfiling :: Bool }+ deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (PhysicalDeviceAmigoProfilingFeaturesSEC)+#endif+deriving instance Show PhysicalDeviceAmigoProfilingFeaturesSEC++instance ToCStruct PhysicalDeviceAmigoProfilingFeaturesSEC where+ withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)+ pokeCStruct p PhysicalDeviceAmigoProfilingFeaturesSEC{..} f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_AMIGO_PROFILING_FEATURES_SEC)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (amigoProfiling))+ f+ cStructSize = 24+ cStructAlignment = 8+ pokeZeroCStruct p f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_AMIGO_PROFILING_FEATURES_SEC)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (zero))+ f++instance FromCStruct PhysicalDeviceAmigoProfilingFeaturesSEC where+ peekCStruct p = do+ amigoProfiling <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))+ pure $ PhysicalDeviceAmigoProfilingFeaturesSEC+ (bool32ToBool amigoProfiling)++instance Storable PhysicalDeviceAmigoProfilingFeaturesSEC where+ sizeOf ~_ = 24+ alignment ~_ = 8+ peek = peekCStruct+ poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero PhysicalDeviceAmigoProfilingFeaturesSEC where+ zero = PhysicalDeviceAmigoProfilingFeaturesSEC+ zero+++-- | VkAmigoProfilingSubmitInfoSEC - Stub description of+-- VkAmigoProfilingSubmitInfoSEC+--+-- == Valid Usage (Implicit)+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_SEC_amigo_profiling VK_SEC_amigo_profiling>,+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data AmigoProfilingSubmitInfoSEC = AmigoProfilingSubmitInfoSEC+ { -- No documentation found for Nested "VkAmigoProfilingSubmitInfoSEC" "firstDrawTimestamp"+ firstDrawTimestamp :: Word64+ , -- No documentation found for Nested "VkAmigoProfilingSubmitInfoSEC" "swapBufferTimestamp"+ swapBufferTimestamp :: Word64+ }+ deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (AmigoProfilingSubmitInfoSEC)+#endif+deriving instance Show AmigoProfilingSubmitInfoSEC++instance ToCStruct AmigoProfilingSubmitInfoSEC where+ withCStruct x f = allocaBytes 32 $ \p -> pokeCStruct p x (f p)+ pokeCStruct p AmigoProfilingSubmitInfoSEC{..} f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_AMIGO_PROFILING_SUBMIT_INFO_SEC)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr Word64)) (firstDrawTimestamp)+ poke ((p `plusPtr` 24 :: Ptr Word64)) (swapBufferTimestamp)+ f+ cStructSize = 32+ cStructAlignment = 8+ pokeZeroCStruct p f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_AMIGO_PROFILING_SUBMIT_INFO_SEC)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr Word64)) (zero)+ poke ((p `plusPtr` 24 :: Ptr Word64)) (zero)+ f++instance FromCStruct AmigoProfilingSubmitInfoSEC where+ peekCStruct p = do+ firstDrawTimestamp <- peek @Word64 ((p `plusPtr` 16 :: Ptr Word64))+ swapBufferTimestamp <- peek @Word64 ((p `plusPtr` 24 :: Ptr Word64))+ pure $ AmigoProfilingSubmitInfoSEC+ firstDrawTimestamp swapBufferTimestamp++instance Storable AmigoProfilingSubmitInfoSEC where+ sizeOf ~_ = 32+ alignment ~_ = 8+ peek = peekCStruct+ poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero AmigoProfilingSubmitInfoSEC where+ zero = AmigoProfilingSubmitInfoSEC+ zero+ zero+++type SEC_AMIGO_PROFILING_SPEC_VERSION = 1++-- No documentation found for TopLevel "VK_SEC_AMIGO_PROFILING_SPEC_VERSION"+pattern SEC_AMIGO_PROFILING_SPEC_VERSION :: forall a . Integral a => a+pattern SEC_AMIGO_PROFILING_SPEC_VERSION = 1+++type SEC_AMIGO_PROFILING_EXTENSION_NAME = "VK_SEC_amigo_profiling"++-- No documentation found for TopLevel "VK_SEC_AMIGO_PROFILING_EXTENSION_NAME"+pattern SEC_AMIGO_PROFILING_EXTENSION_NAME :: forall a . (Eq a, IsString a) => a+pattern SEC_AMIGO_PROFILING_EXTENSION_NAME = "VK_SEC_amigo_profiling"+
+ src/Vulkan/Extensions/VK_SEC_amigo_profiling.hs-boot view
@@ -0,0 +1,170 @@+{-# language CPP #-}+-- | = Name+--+-- VK_SEC_amigo_profiling - device extension+--+-- == VK_SEC_amigo_profiling+--+-- [__Name String__]+-- @VK_SEC_amigo_profiling@+--+-- [__Extension Type__]+-- Device extension+--+-- [__Registered Extension Number__]+-- 486+--+-- [__Revision__]+-- 1+--+-- [__Extension and Version Dependencies__]+--+-- - Requires support for Vulkan 1.0+--+-- - Requires @VK_KHR_get_physical_device_properties2@ to be enabled+-- for any device-level functionality+--+-- [__Contact__]+--+-- - Ralph Potter <<data:image/png;base64, GitLab>>r_potter+--+-- == Other Extension Metadata+--+-- [__Last Modified Date__]+-- 2022-07-29+--+-- [__IP Status__]+-- No known IP claims.+--+-- [__Contributors__]+--+-- - Ralph Potter, Samsung+--+-- - Sangrak Oh, Samsung+--+-- - Jinku Kang, Samsung+--+-- == Description+--+-- This extension is intended to communicate information from layered API+-- implementations such as ANGLE to internal proprietary system schedulers.+-- It has no behavioural implications beyond enabling more intelligent+-- behaviour from the system scheduler.+--+-- Application developers should avoid using this extension. It is+-- documented solely for the benefit of tools and layer developers, who may+-- need to manipulate @pNext@ chains that include these structures.+--+-- Note+--+-- There is currently no specification language written for this extension.+-- The links to APIs defined by the extension are to stubs that only+-- include generated content such as API declarations and implicit valid+-- usage statements.+--+-- Note+--+-- This extension is only intended for use in specific embedded+-- environments with known implementation details, and is therefore+-- undocumented.+--+-- == New Structures+--+-- - Extending+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',+-- 'Vulkan.Core10.Device.DeviceCreateInfo':+--+-- - 'PhysicalDeviceAmigoProfilingFeaturesSEC'+--+-- - Extending 'Vulkan.Core10.Queue.SubmitInfo':+--+-- - 'AmigoProfilingSubmitInfoSEC'+--+-- == New Enum Constants+--+-- - 'SEC_AMIGO_PROFILING_EXTENSION_NAME'+--+-- - 'SEC_AMIGO_PROFILING_SPEC_VERSION'+--+-- - Extending 'Vulkan.Core10.Enums.StructureType.StructureType':+--+-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_AMIGO_PROFILING_SUBMIT_INFO_SEC'+--+-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_AMIGO_PROFILING_FEATURES_SEC'+--+-- == Stub API References+--+-- There is currently no specification language written for this type. This+-- section acts only as placeholder and to avoid dead links in the+-- specification and reference pages.+--+-- > // Provided by VK_SEC_amigo_profiling+-- > typedef struct VkPhysicalDeviceAmigoProfilingFeaturesSEC {+-- > VkStructureType sType;+-- > void* pNext;+-- > VkBool32 amigoProfiling;+-- > } VkPhysicalDeviceAmigoProfilingFeaturesSEC;+--+-- === Valid Usage (Implicit)+--+-- - #VUID-VkPhysicalDeviceAmigoProfilingFeaturesSEC-sType-sType# @sType@+-- /must/ be+-- 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_AMIGO_PROFILING_FEATURES_SEC'+--+-- There is currently no specification language written for this type. This+-- section acts only as placeholder and to avoid dead links in the+-- specification and reference pages.+--+-- > // Provided by VK_SEC_amigo_profiling+-- > typedef struct VkAmigoProfilingSubmitInfoSEC {+-- > VkStructureType sType;+-- > const void* pNext;+-- > uint64_t firstDrawTimestamp;+-- > uint64_t swapBufferTimestamp;+-- > } VkAmigoProfilingSubmitInfoSEC;+--+-- === Valid Usage (Implicit)+--+-- - #VUID-VkAmigoProfilingSubmitInfoSEC-sType-sType# @sType@ /must/ be+-- 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_AMIGO_PROFILING_SUBMIT_INFO_SEC'+--+-- == Version History+--+-- - Revision 1, 2022-07-29 (Ralph Potter)+--+-- - Initial specification+--+-- == See Also+--+-- 'AmigoProfilingSubmitInfoSEC', 'PhysicalDeviceAmigoProfilingFeaturesSEC'+--+-- == Document Notes+--+-- For more information, see the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_SEC_amigo_profiling Vulkan Specification>+--+-- This page is a generated document. Fixes and changes should be made to+-- the generator scripts, not directly.+module Vulkan.Extensions.VK_SEC_amigo_profiling ( AmigoProfilingSubmitInfoSEC+ , PhysicalDeviceAmigoProfilingFeaturesSEC+ ) where++import Vulkan.CStruct (FromCStruct)+import Vulkan.CStruct (ToCStruct)+import Data.Kind (Type)++data AmigoProfilingSubmitInfoSEC++instance ToCStruct AmigoProfilingSubmitInfoSEC+instance Show AmigoProfilingSubmitInfoSEC++instance FromCStruct AmigoProfilingSubmitInfoSEC+++data PhysicalDeviceAmigoProfilingFeaturesSEC++instance ToCStruct PhysicalDeviceAmigoProfilingFeaturesSEC+instance Show PhysicalDeviceAmigoProfilingFeaturesSEC++instance FromCStruct PhysicalDeviceAmigoProfilingFeaturesSEC+
src/Vulkan/Extensions/VK_VALVE_descriptor_set_host_mapping.hs view
@@ -19,7 +19,7 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 -- -- [__Special Use__] --@@ -222,7 +222,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_VALVE_descriptor_set_host_mapping Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_VALVE_descriptor_set_host_mapping Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_VALVE_descriptor_set_host_mapping.hs-boot view
@@ -19,7 +19,7 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 -- -- [__Special Use__] --@@ -222,7 +222,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_VALVE_descriptor_set_host_mapping Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_VALVE_descriptor_set_host_mapping Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_VALVE_mutable_descriptor_type.hs view
@@ -19,9 +19,10 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_maintenance3@+-- - Requires @VK_KHR_maintenance3@ to be enabled for any+-- device-level functionality -- -- [__Special Use__] --@@ -130,7 +131,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_VALVE_mutable_descriptor_type Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_VALVE_mutable_descriptor_type Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/Extensions/VK_VALVE_mutable_descriptor_type.hs-boot view
@@ -19,9 +19,10 @@ -- -- [__Extension and Version Dependencies__] ----- - Requires Vulkan 1.0+-- - Requires support for Vulkan 1.0 ----- - Requires @VK_KHR_maintenance3@+-- - Requires @VK_KHR_maintenance3@ to be enabled for any+-- device-level functionality -- -- [__Special Use__] --@@ -130,7 +131,7 @@ -- == Document Notes -- -- For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VK_VALVE_mutable_descriptor_type Vulkan Specification>+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_VALVE_mutable_descriptor_type Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.
src/Vulkan/SPIRVRequirements.hs view
@@ -20,11 +20,15 @@ import Vulkan.Extensions.VK_NV_cooperative_matrix (PhysicalDeviceCooperativeMatrixFeaturesNV(..)) import Vulkan.Core10.DeviceInitialization (PhysicalDeviceFeatures(..)) import Vulkan.Extensions.VK_EXT_fragment_density_map (PhysicalDeviceFragmentDensityMapFeaturesEXT(..))-import Vulkan.Extensions.VK_NV_fragment_shader_barycentric (PhysicalDeviceFragmentShaderBarycentricFeaturesNV(..))+import Vulkan.Extensions.VK_KHR_fragment_shader_barycentric (PhysicalDeviceFragmentShaderBarycentricFeaturesKHR(..))+import Vulkan.Extensions.VK_NV_fragment_shader_barycentric (PhysicalDeviceFragmentShaderBarycentricFeaturesNV)+import Vulkan.Extensions.VK_KHR_fragment_shader_barycentric (PhysicalDeviceFragmentShaderBarycentricFeaturesKHR(..)) import Vulkan.Extensions.VK_EXT_fragment_shader_interlock (PhysicalDeviceFragmentShaderInterlockFeaturesEXT(..)) import Vulkan.Extensions.VK_KHR_fragment_shading_rate (PhysicalDeviceFragmentShadingRateFeaturesKHR(..))+import Vulkan.Extensions.VK_QCOM_image_processing (PhysicalDeviceImageProcessingFeaturesQCOM(..)) import Vulkan.Core11.Promoted_From_VK_KHR_multiview (PhysicalDeviceMultiviewFeatures(..)) import Vulkan.Extensions.VK_KHR_ray_query (PhysicalDeviceRayQueryFeaturesKHR(..))+import Vulkan.Extensions.VK_KHR_ray_tracing_maintenance1 (PhysicalDeviceRayTracingMaintenance1FeaturesKHR(..)) import Vulkan.Extensions.VK_NV_ray_tracing_motion_blur (PhysicalDeviceRayTracingMotionBlurFeaturesNV(..)) import Vulkan.Extensions.VK_KHR_ray_tracing_pipeline (PhysicalDeviceRayTracingPipelineFeaturesKHR(..)) import Vulkan.Extensions.VK_EXT_shader_atomic_float2 (PhysicalDeviceShaderAtomicFloat2FeaturesEXT(..))@@ -62,6 +66,7 @@ import Vulkan.Extensions.VK_EXT_descriptor_indexing (pattern EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME) import Vulkan.Extensions.VK_EXT_fragment_density_map (pattern EXT_FRAGMENT_DENSITY_MAP_EXTENSION_NAME) import Vulkan.Extensions.VK_EXT_fragment_shader_interlock (pattern EXT_FRAGMENT_SHADER_INTERLOCK_EXTENSION_NAME)+import Vulkan.Extensions.VK_EXT_mesh_shader (pattern EXT_MESH_SHADER_EXTENSION_NAME) import Vulkan.Extensions.VK_EXT_post_depth_coverage (pattern EXT_POST_DEPTH_COVERAGE_EXTENSION_NAME) import Vulkan.Extensions.VK_EXT_shader_atomic_float2 (pattern EXT_SHADER_ATOMIC_FLOAT_2_EXTENSION_NAME) import Vulkan.Extensions.VK_EXT_shader_atomic_float (pattern EXT_SHADER_ATOMIC_FLOAT_EXTENSION_NAME)@@ -85,6 +90,7 @@ import Vulkan.Extensions.VK_KHR_device_group_creation (pattern KHR_DEVICE_GROUP_CREATION_EXTENSION_NAME) import Vulkan.Extensions.VK_KHR_device_group (pattern KHR_DEVICE_GROUP_EXTENSION_NAME) import Vulkan.Extensions.VK_KHR_format_feature_flags2 (pattern KHR_FORMAT_FEATURE_FLAGS_2_EXTENSION_NAME)+import Vulkan.Extensions.VK_KHR_fragment_shader_barycentric (pattern KHR_FRAGMENT_SHADER_BARYCENTRIC_EXTENSION_NAME) import Vulkan.Extensions.VK_KHR_fragment_shading_rate (pattern KHR_FRAGMENT_SHADING_RATE_EXTENSION_NAME) import Vulkan.Extensions.VK_KHR_get_memory_requirements2 (pattern KHR_GET_MEMORY_REQUIREMENTS_2_EXTENSION_NAME) import Vulkan.Extensions.VK_KHR_get_physical_device_properties2 (pattern KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME)@@ -92,6 +98,7 @@ import Vulkan.Extensions.VK_KHR_maintenance3 (pattern KHR_MAINTENANCE_3_EXTENSION_NAME) import Vulkan.Extensions.VK_KHR_multiview (pattern KHR_MULTIVIEW_EXTENSION_NAME) import Vulkan.Extensions.VK_KHR_ray_query (pattern KHR_RAY_QUERY_EXTENSION_NAME)+import Vulkan.Extensions.VK_KHR_ray_tracing_maintenance1 (pattern KHR_RAY_TRACING_MAINTENANCE_1_EXTENSION_NAME) import Vulkan.Extensions.VK_KHR_ray_tracing_pipeline (pattern KHR_RAY_TRACING_PIPELINE_EXTENSION_NAME) import Vulkan.Extensions.VK_KHR_shader_atomic_int64 (pattern KHR_SHADER_ATOMIC_INT64_EXTENSION_NAME) import Vulkan.Extensions.VK_KHR_shader_clock (pattern KHR_SHADER_CLOCK_EXTENSION_NAME)@@ -122,6 +129,7 @@ import Vulkan.Extensions.VK_NV_shader_subgroup_partitioned (pattern NV_SHADER_SUBGROUP_PARTITIONED_EXTENSION_NAME) import Vulkan.Extensions.VK_NV_shading_rate_image (pattern NV_SHADING_RATE_IMAGE_EXTENSION_NAME) import Vulkan.Extensions.VK_NV_viewport_array2 (pattern NV_VIEWPORT_ARRAY_2_EXTENSION_NAME)+import Vulkan.Extensions.VK_QCOM_image_processing (pattern QCOM_IMAGE_PROCESSING_EXTENSION_NAME) import Vulkan.Core11.Enums.SubgroupFeatureFlagBits (SubgroupFeatureFlags) import Vulkan.Core11.Enums.SubgroupFeatureFlagBits (SubgroupFeatureFlagBits(SUBGROUP_FEATURE_ARITHMETIC_BIT)) import Vulkan.Core11.Enums.SubgroupFeatureFlagBits (SubgroupFeatureFlags)@@ -461,6 +469,37 @@ , deviceExtensionMinVersion = 0 } ]+ "SPV_KHR_ray_cull_mask" -> (,)+ [ RequireInstanceExtension { instanceExtensionLayerName = Nothing+ , instanceExtensionName = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME+ , instanceExtensionMinVersion = 0+ }+ ]+ [ RequireDeviceExtension { deviceExtensionLayerName = Nothing+ , deviceExtensionName = KHR_RAY_TRACING_MAINTENANCE_1_EXTENSION_NAME+ , deviceExtensionMinVersion = 0+ }+ , RequireDeviceExtension { deviceExtensionLayerName = Nothing+ , deviceExtensionName = KHR_ACCELERATION_STRUCTURE_EXTENSION_NAME+ , deviceExtensionMinVersion = 0+ }+ , RequireDeviceExtension { deviceExtensionLayerName = Nothing+ , deviceExtensionName = EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME+ , deviceExtensionMinVersion = 0+ }+ , RequireDeviceExtension { deviceExtensionLayerName = Nothing+ , deviceExtensionName = KHR_BUFFER_DEVICE_ADDRESS_EXTENSION_NAME+ , deviceExtensionMinVersion = 0+ }+ , RequireDeviceExtension { deviceExtensionLayerName = Nothing+ , deviceExtensionName = KHR_DEFERRED_HOST_OPERATIONS_EXTENSION_NAME+ , deviceExtensionMinVersion = 0+ }+ , RequireDeviceExtension { deviceExtensionLayerName = Nothing+ , deviceExtensionName = KHR_MAINTENANCE_3_EXTENSION_NAME+ , deviceExtensionMinVersion = 0+ }+ ] "SPV_GOOGLE_hlsl_functionality1" -> (,) [] [ RequireDeviceExtension { deviceExtensionLayerName = Nothing@@ -599,6 +638,17 @@ , deviceExtensionMinVersion = 0 } ]+ "SPV_KHR_fragment_shader_barycentric" -> (,)+ [ RequireInstanceExtension { instanceExtensionLayerName = Nothing+ , instanceExtensionName = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME+ , instanceExtensionMinVersion = 0+ }+ ]+ [ RequireDeviceExtension { deviceExtensionLayerName = Nothing+ , deviceExtensionName = KHR_FRAGMENT_SHADER_BARYCENTRIC_EXTENSION_NAME+ , deviceExtensionMinVersion = 0+ }+ ] "SPV_KHR_subgroup_uniform_control_flow" -> (,) [RequireInstanceVersion $ MAKE_API_VERSION 1 3 0] [RequireDeviceVersion $ MAKE_API_VERSION 1 3 0] "SPV_EXT_shader_atomic_float_min_max" -> (,)@@ -646,6 +696,32 @@ ] "SPV_KHR_device_group" -> (,) [RequireInstanceVersion $ MAKE_API_VERSION 1 1 0] [RequireDeviceVersion $ MAKE_API_VERSION 1 1 0]+ "SPV_QCOM_image_processing" -> (,)+ [ RequireInstanceExtension { instanceExtensionLayerName = Nothing+ , instanceExtensionName = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME+ , instanceExtensionMinVersion = 0+ }+ ]+ [ RequireDeviceExtension { deviceExtensionLayerName = Nothing+ , deviceExtensionName = QCOM_IMAGE_PROCESSING_EXTENSION_NAME+ , deviceExtensionMinVersion = 0+ }+ , RequireDeviceExtension { deviceExtensionLayerName = Nothing+ , deviceExtensionName = KHR_FORMAT_FEATURE_FLAGS_2_EXTENSION_NAME+ , deviceExtensionMinVersion = 0+ }+ ]+ "SPV_EXT_mesh_shader" -> (,)+ [ RequireInstanceExtension { instanceExtensionLayerName = Nothing+ , instanceExtensionName = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME+ , instanceExtensionMinVersion = 0+ }+ ]+ [ RequireDeviceExtension { deviceExtensionLayerName = Nothing+ , deviceExtensionName = EXT_MESH_SHADER_EXTENSION_NAME+ , deviceExtensionMinVersion = 0+ }+ ] _ -> ([], []) spirvCapabilityRequirements :: ByteString -> ([InstanceRequirement], [DeviceRequirement])@@ -1900,9 +1976,9 @@ ] [ RequireDeviceFeature { featureName = "fragmentShaderBarycentric"- , checkFeature = \PhysicalDeviceFragmentShaderBarycentricFeaturesNV { fragmentShaderBarycentric } ->+ , checkFeature = \PhysicalDeviceFragmentShaderBarycentricFeaturesKHR { fragmentShaderBarycentric } -> fragmentShaderBarycentric- , enableFeature = \_ -> PhysicalDeviceFragmentShaderBarycentricFeaturesNV { fragmentShaderBarycentric = True }+ , enableFeature = \_ -> PhysicalDeviceFragmentShaderBarycentricFeaturesKHR { fragmentShaderBarycentric = True } } , RequireDeviceExtension { deviceExtensionLayerName = Nothing , deviceExtensionName = NV_FRAGMENT_SHADER_BARYCENTRIC_EXTENSION_NAME@@ -2087,6 +2163,44 @@ , deviceExtensionMinVersion = 0 } ]+ "RayCullMaskKHR" -> (,)+ [ RequireInstanceExtension { instanceExtensionLayerName = Nothing+ , instanceExtensionName = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME+ , instanceExtensionMinVersion = 0+ }+ ]+ [ RequireDeviceFeature+ { featureName = "rayTracingMaintenance1"+ , checkFeature = \PhysicalDeviceRayTracingMaintenance1FeaturesKHR { rayTracingMaintenance1 } ->+ rayTracingMaintenance1+ , enableFeature = \PhysicalDeviceRayTracingMaintenance1FeaturesKHR {..} ->+ PhysicalDeviceRayTracingMaintenance1FeaturesKHR { rayTracingMaintenance1 = True, .. }+ }+ , RequireDeviceExtension { deviceExtensionLayerName = Nothing+ , deviceExtensionName = KHR_RAY_TRACING_MAINTENANCE_1_EXTENSION_NAME+ , deviceExtensionMinVersion = 0+ }+ , RequireDeviceExtension { deviceExtensionLayerName = Nothing+ , deviceExtensionName = KHR_ACCELERATION_STRUCTURE_EXTENSION_NAME+ , deviceExtensionMinVersion = 0+ }+ , RequireDeviceExtension { deviceExtensionLayerName = Nothing+ , deviceExtensionName = EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME+ , deviceExtensionMinVersion = 0+ }+ , RequireDeviceExtension { deviceExtensionLayerName = Nothing+ , deviceExtensionName = KHR_BUFFER_DEVICE_ADDRESS_EXTENSION_NAME+ , deviceExtensionMinVersion = 0+ }+ , RequireDeviceExtension { deviceExtensionLayerName = Nothing+ , deviceExtensionName = KHR_DEFERRED_HOST_OPERATIONS_EXTENSION_NAME+ , deviceExtensionMinVersion = 0+ }+ , RequireDeviceExtension { deviceExtensionLayerName = Nothing+ , deviceExtensionName = KHR_MAINTENANCE_3_EXTENSION_NAME+ , deviceExtensionMinVersion = 0+ }+ ] "RayTracingNV" -> (,) [ RequireInstanceExtension { instanceExtensionLayerName = Nothing , instanceExtensionName = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME@@ -2510,6 +2624,97 @@ , RequireDeviceVersion $ MAKE_API_VERSION 1 3 0 , RequireDeviceExtension { deviceExtensionLayerName = Nothing , deviceExtensionName = KHR_SHADER_INTEGER_DOT_PRODUCT_EXTENSION_NAME+ , deviceExtensionMinVersion = 0+ }+ ]+ "FragmentBarycentricKHR" -> (,)+ [ RequireInstanceExtension { instanceExtensionLayerName = Nothing+ , instanceExtensionName = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME+ , instanceExtensionMinVersion = 0+ }+ ]+ [ RequireDeviceFeature+ { featureName = "fragmentShaderBarycentric"+ , checkFeature = \PhysicalDeviceFragmentShaderBarycentricFeaturesKHR { fragmentShaderBarycentric } ->+ fragmentShaderBarycentric+ , enableFeature = \_ -> PhysicalDeviceFragmentShaderBarycentricFeaturesKHR { fragmentShaderBarycentric = True }+ }+ , RequireDeviceExtension { deviceExtensionLayerName = Nothing+ , deviceExtensionName = KHR_FRAGMENT_SHADER_BARYCENTRIC_EXTENSION_NAME+ , deviceExtensionMinVersion = 0+ }+ ]+ "TextureSampleWeightedQCOM" -> (,)+ [ RequireInstanceExtension { instanceExtensionLayerName = Nothing+ , instanceExtensionName = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME+ , instanceExtensionMinVersion = 0+ }+ ]+ [ RequireDeviceFeature+ { featureName = "textureSampleWeighted"+ , checkFeature = \PhysicalDeviceImageProcessingFeaturesQCOM { textureSampleWeighted } -> textureSampleWeighted+ , enableFeature = \PhysicalDeviceImageProcessingFeaturesQCOM {..} ->+ PhysicalDeviceImageProcessingFeaturesQCOM { textureSampleWeighted = True, .. }+ }+ , RequireDeviceExtension { deviceExtensionLayerName = Nothing+ , deviceExtensionName = QCOM_IMAGE_PROCESSING_EXTENSION_NAME+ , deviceExtensionMinVersion = 0+ }+ , RequireDeviceExtension { deviceExtensionLayerName = Nothing+ , deviceExtensionName = KHR_FORMAT_FEATURE_FLAGS_2_EXTENSION_NAME+ , deviceExtensionMinVersion = 0+ }+ ]+ "TextureBoxFilterQCOM" -> (,)+ [ RequireInstanceExtension { instanceExtensionLayerName = Nothing+ , instanceExtensionName = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME+ , instanceExtensionMinVersion = 0+ }+ ]+ [ RequireDeviceFeature+ { featureName = "textureBoxFilter"+ , checkFeature = \PhysicalDeviceImageProcessingFeaturesQCOM { textureBoxFilter } -> textureBoxFilter+ , enableFeature = \PhysicalDeviceImageProcessingFeaturesQCOM {..} ->+ PhysicalDeviceImageProcessingFeaturesQCOM { textureBoxFilter = True, .. }+ }+ , RequireDeviceExtension { deviceExtensionLayerName = Nothing+ , deviceExtensionName = QCOM_IMAGE_PROCESSING_EXTENSION_NAME+ , deviceExtensionMinVersion = 0+ }+ , RequireDeviceExtension { deviceExtensionLayerName = Nothing+ , deviceExtensionName = KHR_FORMAT_FEATURE_FLAGS_2_EXTENSION_NAME+ , deviceExtensionMinVersion = 0+ }+ ]+ "TextureBlockMatchQCOM" -> (,)+ [ RequireInstanceExtension { instanceExtensionLayerName = Nothing+ , instanceExtensionName = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME+ , instanceExtensionMinVersion = 0+ }+ ]+ [ RequireDeviceFeature+ { featureName = "textureBlockMatch"+ , checkFeature = \PhysicalDeviceImageProcessingFeaturesQCOM { textureBlockMatch } -> textureBlockMatch+ , enableFeature = \PhysicalDeviceImageProcessingFeaturesQCOM {..} ->+ PhysicalDeviceImageProcessingFeaturesQCOM { textureBlockMatch = True, .. }+ }+ , RequireDeviceExtension { deviceExtensionLayerName = Nothing+ , deviceExtensionName = QCOM_IMAGE_PROCESSING_EXTENSION_NAME+ , deviceExtensionMinVersion = 0+ }+ , RequireDeviceExtension { deviceExtensionLayerName = Nothing+ , deviceExtensionName = KHR_FORMAT_FEATURE_FLAGS_2_EXTENSION_NAME+ , deviceExtensionMinVersion = 0+ }+ ]+ "MeshShadingEXT" -> (,)+ [ RequireInstanceExtension { instanceExtensionLayerName = Nothing+ , instanceExtensionName = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME+ , instanceExtensionMinVersion = 0+ }+ ]+ [ RequireDeviceExtension { deviceExtensionLayerName = Nothing+ , deviceExtensionName = EXT_MESH_SHADER_EXTENSION_NAME , deviceExtensionMinVersion = 0 } ]
src/Vulkan/Version.hs view
@@ -19,11 +19,11 @@ import Data.Word (Word32) pattern HEADER_VERSION :: Word32-pattern HEADER_VERSION = 210+pattern HEADER_VERSION = 226 pattern HEADER_VERSION_COMPLETE :: Word32-pattern HEADER_VERSION_COMPLETE = MAKE_API_VERSION 1 3 210+pattern HEADER_VERSION_COMPLETE = MAKE_API_VERSION 1 3 226 pattern MAKE_API_VERSION :: Word32 -> Word32 -> Word32 -> Word32
vulkan.cabal view
@@ -5,7 +5,7 @@ -- see: https://github.com/sol/hpack name: vulkan-version: 3.17+version: 3.21 synopsis: Bindings to the Vulkan graphics API. description: Please see [the readme](https://github.com/expipiplus1/vulkan/#readme) category: Graphics@@ -300,6 +300,7 @@ Vulkan.Extensions.VK_AMD_shader_ballot Vulkan.Extensions.VK_AMD_shader_core_properties Vulkan.Extensions.VK_AMD_shader_core_properties2+ Vulkan.Extensions.VK_AMD_shader_early_and_late_fragment_tests Vulkan.Extensions.VK_AMD_shader_explicit_vertex_parameter Vulkan.Extensions.VK_AMD_shader_fragment_mask Vulkan.Extensions.VK_AMD_shader_image_load_store_lod@@ -312,6 +313,7 @@ Vulkan.Extensions.VK_EXT_acquire_drm_display Vulkan.Extensions.VK_EXT_acquire_xlib_display Vulkan.Extensions.VK_EXT_astc_decode_mode+ Vulkan.Extensions.VK_EXT_attachment_feedback_loop_layout Vulkan.Extensions.VK_EXT_blend_operation_advanced Vulkan.Extensions.VK_EXT_border_color_swizzle Vulkan.Extensions.VK_EXT_buffer_device_address@@ -323,6 +325,7 @@ Vulkan.Extensions.VK_EXT_debug_marker Vulkan.Extensions.VK_EXT_debug_report Vulkan.Extensions.VK_EXT_debug_utils+ Vulkan.Extensions.VK_EXT_depth_clamp_zero_one Vulkan.Extensions.VK_EXT_depth_clip_control Vulkan.Extensions.VK_EXT_depth_clip_enable Vulkan.Extensions.VK_EXT_depth_range_unrestricted@@ -348,6 +351,9 @@ Vulkan.Extensions.VK_EXT_hdr_metadata Vulkan.Extensions.VK_EXT_headless_surface Vulkan.Extensions.VK_EXT_host_query_reset+ Vulkan.Extensions.VK_EXT_image_2d_view_of_3d+ Vulkan.Extensions.VK_EXT_image_compression_control+ Vulkan.Extensions.VK_EXT_image_compression_control_swapchain Vulkan.Extensions.VK_EXT_image_drm_format_modifier Vulkan.Extensions.VK_EXT_image_robustness Vulkan.Extensions.VK_EXT_image_view_min_lod@@ -357,19 +363,26 @@ Vulkan.Extensions.VK_EXT_load_store_op_none Vulkan.Extensions.VK_EXT_memory_budget Vulkan.Extensions.VK_EXT_memory_priority+ Vulkan.Extensions.VK_EXT_mesh_shader+ Vulkan.Extensions.VK_EXT_metal_objects Vulkan.Extensions.VK_EXT_metal_surface Vulkan.Extensions.VK_EXT_multi_draw+ Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled+ Vulkan.Extensions.VK_EXT_non_seamless_cube_map Vulkan.Extensions.VK_EXT_pageable_device_local_memory Vulkan.Extensions.VK_EXT_pci_bus_info Vulkan.Extensions.VK_EXT_physical_device_drm Vulkan.Extensions.VK_EXT_pipeline_creation_cache_control Vulkan.Extensions.VK_EXT_pipeline_creation_feedback+ Vulkan.Extensions.VK_EXT_pipeline_properties+ Vulkan.Extensions.VK_EXT_pipeline_robustness Vulkan.Extensions.VK_EXT_post_depth_coverage Vulkan.Extensions.VK_EXT_primitive_topology_list_restart Vulkan.Extensions.VK_EXT_primitives_generated_query Vulkan.Extensions.VK_EXT_private_data Vulkan.Extensions.VK_EXT_provoking_vertex Vulkan.Extensions.VK_EXT_queue_family_foreign+ Vulkan.Extensions.VK_EXT_rasterization_order_attachment_access Vulkan.Extensions.VK_EXT_rgba10x6_formats Vulkan.Extensions.VK_EXT_robustness2 Vulkan.Extensions.VK_EXT_sample_locations@@ -380,11 +393,13 @@ Vulkan.Extensions.VK_EXT_shader_atomic_float2 Vulkan.Extensions.VK_EXT_shader_demote_to_helper_invocation Vulkan.Extensions.VK_EXT_shader_image_atomic_int64+ Vulkan.Extensions.VK_EXT_shader_module_identifier Vulkan.Extensions.VK_EXT_shader_stencil_export Vulkan.Extensions.VK_EXT_shader_subgroup_ballot Vulkan.Extensions.VK_EXT_shader_subgroup_vote Vulkan.Extensions.VK_EXT_shader_viewport_index_layer Vulkan.Extensions.VK_EXT_subgroup_size_control+ Vulkan.Extensions.VK_EXT_subpass_merge_feedback Vulkan.Extensions.VK_EXT_swapchain_colorspace Vulkan.Extensions.VK_EXT_texel_buffer_alignment Vulkan.Extensions.VK_EXT_texture_compression_astc_hdr@@ -446,6 +461,7 @@ Vulkan.Extensions.VK_KHR_external_semaphore_fd Vulkan.Extensions.VK_KHR_external_semaphore_win32 Vulkan.Extensions.VK_KHR_format_feature_flags2+ Vulkan.Extensions.VK_KHR_fragment_shader_barycentric Vulkan.Extensions.VK_KHR_fragment_shading_rate Vulkan.Extensions.VK_KHR_get_display_properties2 Vulkan.Extensions.VK_KHR_get_memory_requirements2@@ -469,6 +485,7 @@ Vulkan.Extensions.VK_KHR_present_wait Vulkan.Extensions.VK_KHR_push_descriptor Vulkan.Extensions.VK_KHR_ray_query+ Vulkan.Extensions.VK_KHR_ray_tracing_maintenance1 Vulkan.Extensions.VK_KHR_ray_tracing_pipeline Vulkan.Extensions.VK_KHR_relaxed_block_layout Vulkan.Extensions.VK_KHR_sampler_mirror_clamp_to_edge@@ -547,11 +564,14 @@ Vulkan.Extensions.VK_NVX_image_view_handle Vulkan.Extensions.VK_NVX_multiview_per_view_attributes Vulkan.Extensions.VK_QCOM_fragment_density_map_offset+ Vulkan.Extensions.VK_QCOM_image_processing Vulkan.Extensions.VK_QCOM_render_pass_shader_resolve Vulkan.Extensions.VK_QCOM_render_pass_store_ops Vulkan.Extensions.VK_QCOM_render_pass_transform Vulkan.Extensions.VK_QCOM_rotated_copy_commands+ Vulkan.Extensions.VK_QCOM_tile_properties Vulkan.Extensions.VK_QNX_screen_surface+ Vulkan.Extensions.VK_SEC_amigo_profiling Vulkan.Extensions.VK_VALVE_descriptor_set_host_mapping Vulkan.Extensions.VK_VALVE_mutable_descriptor_type Vulkan.NamedType